どれ使う?プログラミング教育ツール
「TensorFlow」の学習データを「Scratch」のプログラムに組み込む ~AIを体感!画像を機械学習させてみよう<後編>
2020年1月30日 06:55
2020年度からついに小学校でプログラミング教育が実施されます。これに伴い家庭でも手軽にプログラミングを学習できるツールが多数登場していますが、どんなツールを使えばいいのか迷ってしまう方も多いのではないでしょうか? そこで本連載では家庭でのプログラミング教育にピッタリなお勧めツールを紹介していきたいと思います。
AIと聞いても具体的にどんなものなのか、なかなかイメージがしづらいものです。子ども向けのプログラミングツールには、AIの技術を活用できるものがあるので、お子さんと一緒に体験しながら理解を深めることができます。前回は、AIに画像を機械学習させることができるツールで、学習データを作成するところまでを行いました(前回記事参照)。今回は後編として、前回作った学習データを使い、「Scratch」で画像判定をもとに値段を表示させるプログラムを作ります。
AIブロックを使うことができるScratchを使用
前回は、“TECH PARK”のサイト上で公開されているトレーニングツールで、シャーペンの芯と消しゴムを判別する機械学習を行い、学習データを登録して“カギ”を取得しました。
今回は、“カギ”を使って「Scratch」でプログラムを行いますが、通常の「Scratch」ではできないので注意してください。AIブロックを扱えるようにアレンジされた「Scratch」を使います。対応Webブラウザーは、「Google Chrome」の最新バージョンです。
“TECH PARK”のAIブロックのページを開いたら、“Step2.拡張ブロックをScratchに登録”に進み、[Scratchにアクセス]ボタンで“TECH PARK”が公開している「Scratch」を開きます。
機能拡張を追加してAIブロックを使う
「Scratch」を開いたら、左下の[拡張機能を追加]から[画像認識]の拡張機能を追加します。画像判定用の拡張ブロックを使えるようになりました。
拡張ブロックを中心に前回機械学習させたデータを利用して、画像判定のプログラムを作成します。下の図を参考にプログラムを作ってください。画像判定の結果に応じてネコのキャラクターのセリフが変わるようにします。
プログラムに必要な学習データの“カギ”や判定する画像の番号は、前回利用したトレーニングツールで出力された“カギ”と画像番号に対応します。“カギ”の数字は半角で正確に入力し、前後にスペースが入らないように気をつけてください。
作成したプログラムを動かす
作成したプログラムは「Scratch」上でカメラを使うので、プログラムを実行するとカメラがONになります。カメラ使用の可否を問われたら許可してください。プログラムがカメラに写った画像を判定し、ネコのキャラクターがシャーペンの芯なのか、消しゴムなのかをセリフで教えてくれます。
なお、この例のように外側のカメラが機能している場合、「Scratch」上ではカメラの像が反転されています。操作者側のフロントカメラが使われる場合に合わせて反転するようになっているのでしょう。気にせずにこのまま使います。
カメラが機能しない場合、まずは「Google Chrome」を使用しているかどうかを確認し、それでもうまくいかない場合は、下の図のように最低限のプログラムを作って実行しカメラの作動と画面が映ることを確認してみましょう。
次に、プログラムのセリフ部分を変更し、値段を表示させます。シャーペンの芯と判定した場合は“200円です!”、消しゴムと判定した場合は“60円です!”というセリフにそれぞれ変えました。これで完成です。カメラに写ったものの値段を表示するので、セルフレジの簡易的なモデルになりました。
こうして実際に作ってみると、画像の機械学習について具体的にイメージすることがてきます。また、画像認識によるセルフレジの仕組みを実現するには、どれほど大量の学習データを必要とするかを想像するきっかけにもなるでしょう。ICタグによる管理との違いやメリット、デメリットに気づくこともできるはずです。
お子さんと一緒にAIを体感して、世の中の仕組みの一端を知るきっかけになるので、ぜひ試してみてください。