BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【機械学習】Teachable Machineを使って5分で画像認識を体験してみた!

はじめに

こんにちは! 昨今のAI技術にまったくついていけていないBFT名古屋支店・インフラ女子(?)のやまぐちです。

2021年4月は機械学習の強化月間(勝手に)ということで、学んだことをどんどんアウトプットしていこうと思います。ちなみにプログラミングスキルはほぼゼロと言っても過言ではないと思います(偉そう)。

本日はブラウザで簡単に機械学習ができる「Teachable Machine」がお題です。

機械学習を簡単に体験してみよう!

「Teachable Machine」はGoogleが提供している機械学習ツールで、① ブラウザでできる、② ノーコードで機械学習ができる、という特徴があります。さっそく試してみましょう。

環境のイメージ

f:id:bftnagoya:20210401120147p:plain 「Teachable Machine」のサイトで学習をするとJavascriptのコードをエクスポートできます。あとはJavascriptを実行できる環境にそのプログラムを持っていくだけです。Javascriptを実行できる環境、というのが最初イメージしにくかったのですが、例えばブラウザで実行できるサイトに貼り付けるとか、ローカルのWSLにApacheをたててindex.htmlとして保存してアクセスする、などで可能でした。

Teachable Machineで学習する

まずはこちらからTeachable Machineのサイトへアクセスします。「使ってみる」を押すと三種類の機械学習を選択できるページに遷移します。
f:id:bftnagoya:20210401103542p:plain:w600

今回は画像認識をするので「画像プロジェクト」を選択し、用意したコップ、本、時計をその場でWebカメラから撮影します。長押しすれば連続で写真を取得してくれるのであらかじめデータを用意しなくていいところが便利です。調子に乗って300枚前後の写真を撮ってしまいました。多ければ多いほど精度が高くなるから良しとしよう。
f:id:bftnagoya:20210401104633p:plain:w600

画像を取り終えたら「トレーニング」です。800枚以上の写真が3分かからないで完了しました。

学習が終わるとプレビューが表示されます。
試しにコップ、時計、本をかざしてみました。ちょっと見にくいですが、下にコップ、本、時計の横棒グラフがあって、何%マッチするかをリアルタイムで表示しています。100%になるところがすごい。
f:id:bftnagoya:20210401124426g:plain:w600

ここで終わらせても構いません。今回はブラウザ上でサクッとコードの動作を試せるCodePenでも確認してみます。
「モデルをエクスポートする」を押すと、Googleクラウド上に無料で学習モデルをアップロードすることができます。 f:id:bftnagoya:20210401113014p:plain:w450

画面の下にある「モデルを使用するコードスニペット」の[ Javascript ]タブの内容をコピーし、CodePenのHTMLに貼り付けます。コードの結果が画面下に表示されるので、「Start」を押します。 f:id:bftnagoya:20210401115316p:plain:w600

ハサミやボンド・マウスなどもかざしてみましたが、どうやら形で認識しているらしくマウスはほぼ時計という結果に。
f:id:bftnagoya:20210401125410g:plain:w600

Teachable Machineのサイトとは異なり、数値で表示されています。少しプログラムを書き加えれば、〇秒間〇%だったら正解の名前を表示する、など簡単にできそうですね。

終わりに

機械学習って名前からして難しそうなのですが、今はこんな簡単に実践できるツールがあるんですね!とても驚きました。学ぶことはたくさんあるけど、こうして一個できるとちょっとだけ安心します。小さな成功体験を大事にして今後も勉強していきたいと思います!