Teachable Machineの利用方法を紹介します

機械学習について学んだので、googleの提供している無料で利用できる機械学習ツール[Teachable Machine](https://teachablemachine.withgoogle.com/)の使い方をメモしておきます。

#Teachable Machineとは？
無料で使える数少ない機械学習のブラウザアプリケーションツール。

出来る事は
1.カメラから読み込んだ画像を使って、モノや表情を認識
2.音声を認識
3.ポーズを認識(2020年11月現在β版に近い存在だそうです)


#そもそも機械学習って何？
機械学習という言葉は聞いた事があったのですが、深く理解していなかったのでわかった事を記録しておきます。

##学習データがまずは必要
Teachable Machineでいう学習データは、画像のパターンや音声のパターン、ポーズのパターンになります。
ブラウザアプリなので、これらの学習データを簡単に登録させる事が出来ます。

##何が出来るのか
登録された学習データをもとに、認識をする事が出来ます。

例えば、グー、チョキ、パーの自分の手のあらゆる角度からの画像をTeachable Machineに登録します。

そんなに何パターンも登録するのは大変？と思う方も安心してください。
動画を撮影している感覚で、Teachable Machineが画像パターンを記録してくれます。
簡単に何パターンも登録出来て面白かったです。

登録した学習データを元に、入力された手がグーなのか？パーなのか？チョキなのか？判断します。
手の形などの外見だけではなく、表情なども認識出来るみたいです。

その他、音声やポーズも認識できるという事で、スクワットしている回数をカウントするという事例もありました。

#Teachable Machineの始め方
[Teachable Machine](https://teachablemachine.withgoogle.com/)へアクセスするとこんな画面が出てきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/deec3d6a-61f2-45a2-7954-12ab73c92212.png)

使ってみる

をクリックしてすぐにスタート出来ます。
会員登録しなくて使える点もすごく良いなと思いました。

#画像・音声・ポーズから登録する学習データを選ぶ
Teachable Machineで登録できる学習では
・画像
・音声
・ポーズ
3種類です。登録した学習データを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/cb766ca3-74a3-10fe-4d04-b188ee18eec1.png)

##画像プロジェクト
例えばですが、じゃんけんの手を登録する時は、グー、チョキ、パーとタイトルを変えました。
また、クラスを追加で新しい種類のパターンを登録する事が出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/9542cedf-67ea-a4f4-a97c-8bbab7109c0e.png)

###画像の登録
・ウェブカメラ
・画像のアップロード
どちらからか選べます。

個人的にはウェブカメラがお勧めで、動画を撮る感覚で何パターンも学習データを採取する事が出来ます。

##音声
音声の学習データを登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/23a5154d-ea8b-8b5e-833e-47589ae1608d.png)

###バックグラウンドノイズ
環境下で正しく音声を認識させるために必須の箇所です。
何もしゃべらず20秒ほど録音をすれば大丈夫です。

録音した後に、サンプルを抽出を押し忘れないように！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/a7171c6b-73a0-f93f-1abe-cbf1d5d043d3.png)


###class2
この中に、学習させたい音声を登録していきます。class2の箇所はわかりやすい名前に変える事が出来ます。
他の音声を登録させる時はクラスを追加で、何パターンも登録する事が出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/2a29e7ff-daa5-a94e-f144-ab8328c57df7.png)

最低8種類以上、2秒以上の学習データを登録します。
色々な言い方、声で登録してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/04c55c05-67e3-3983-8d9a-0cf3c61f6971.png)


##ポーズ
ポーズの登録をした時に紹介していきます。

#トレーニング
学習データの登録が終わったら【モデルをトレーニングする】をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/cfb643af-6de4-0661-1843-615101af83c1.png)

モデルのトレーニングが終わるまでは、タブの切り替えはNGです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/768cdb97-10b2-3e48-4698-d4a51905024c.png)

#プレビュー
トレーニングが終わるとプレビューで早速認識が開始されます。
おはようの次に、おやすみも登録をしました。

おはようと認識されてる！！！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/2d961eda-f493-95c5-9ffd-6f8fed544e0e.png)

#モデルを保存
作成したモデルを保存します。
【モデルをエクスポート】をクリックして開かれたウィンドウで、【モデルをアップロード】します。
どの形でも良いのですが、アップロードしてgoogle driveに保存しておいた方が使う時に簡単に再利用できると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820683/9de8fb9a-5c5b-5f0a-b9ea-d745161c71f6.png)


#まとめ
本当に簡単です。
ウェブブラウザで動くので、すぐに試せて面白いです。

ここで作成したモデルを次はnode.jsで扱えってみます！