どれ使う?プログラミング教育ツール

Googleの「TensorFLow」を子供が手軽に使えるツール ~AIを体感!画像を機械学習させてみよう<前編>

 2020年度からついに小学校でプログラミング教育が実施されます。これに伴い家庭でも手軽にプログラミングを学習できるツールが多数登場していますが、どんなツールを使えばいいのか迷ってしまう方も多いのではないでしょうか? そこで本連載では家庭でのプログラミング教育にピッタリなお勧めツールを紹介していきたいと思います。

 AIと聞いても具体的にどんなものなのか、なかなかイメージがしづらいものです。子ども向けのプログラミングツールには、AIの技術を活用できるものがあるので、お子さんと一緒に体験しながら理解を深めることができます。以前の記事では、カメラに写った顔から年齢認識ができるツールをご紹介しました。今回は、AIに画像を機械学習させることができるツールと、「Scratch」でその学習データを使ってプログラムを作る方法をご紹介します。この記事は前編として、機械学習の部分までをご紹介します。

機械学習って何?

 今回紹介するAIツールは、Googleの「TensorFLow」というオープンソース機械学習プラットフォームを使い、子供達が画像の機械学習を体験的に利用できるようにしたツールです。“未来の学び プログラミング教育推進月間(みらプロ)”のサイトでGoogleの協力による指導案の中で紹介されています。なお、AIツール自体は、Googleの技術サポートを受けて(株)グルーヴノーツで開発され、同社が運営する“TECH PARK”のサイト上で公開されています。

 さて、画像の機械学習で、いったい何ができるようになるのでしょうか。“Grow with Google Japan”による以下の動画では、「TensorFLow」の技術を使った実例として、クリーニング店が独自にセルフレジを開発した例と、きゅうり農家がきゅうりの等級分類を効率化した例が紹介されています。

AIってなんだろう

 例えばクリーニング店のセルフレジは、お客さんが服を広げて台に置くと、カメラがとらえた画像でどんな種類の服なのかが判別され、クリーニングの値段が自動で算出される仕組みです。これを実現するには、まず、服の種別を機械学習させるために、あらかじめ大量の服を写して種別を登録する必要があります。上記の動画によると、2万5千枚ほど学習させたそうです。こうして機械学習させたデータがあって初めて、セルフレジのプログラムを作ることができるわけです。

早速機械学習をさせてみよう

 早速、機械学習を試してみましょう。“TECH PARK”のAIブロックのページを開いたら、中ほどの“Step.1 まずは画像をトレーニング”に進み、[トレーニングツールにアクセス]ボタンで“トレーニンツール”を開きます。

“TECH PARK”のAIブロックのページ。“トレーニンツール”などにアクセスできる。“トレーニンツール”はWebブラウザーで利用でき、「Google Chrome」の最新バージョンに対応している

 “トレーニンツール”にアクセスすると、パソコンについているカメラが作動するので、カメラの使用を許可してください。タブレットPCなどの場合は外側についているカメラが優先的に作動します。この記事ではタブレットPCを使用していますが、操作者側にしかカメラが付いていない場合も、写る側が違うだけで、できることや手順は同じです。

“トレーニンツール”の画面

 機械学習させたいものを決めて、登録します。ここでは、シャーペンの芯と消しゴムを登録してみます。カメラが撮影するエリアにものを置いて認識させられるように、下の写真のセッティングで行いました。

タブレットパソコンの外側カメラが作動している

 まず、何も置かれていない時の状態を登録しておきます。カメラアイコンをクリックすると連写が始まるので、そのまましばらく撮影したら停止マークをクリックして撮影を停止します。

“トレーニンツール”で、1種類目に、何も写っていない状態を登録しているところ

 2つ目の画像にシャーペンの芯、3つ目に消しゴムを、それぞれ登録しました。連写中に、向きや置き方をどんどん変えてさまざまなパターンを撮影させます。登録が完了したら、[トレーニング]ボタンをクリックします。

“トレーニンツール”で、2種類目にシャープペンシルの芯、3種類目に消しゴムを登録したところ

学習データをテストして“カギ”を発行する

 トレーニングが完了すると学習データをテストできます。カメラで何かを写すと、写ったものが、1(何も映っていない)、2(シャープペンシルの芯)、3(消しゴム)のどれなのかを判定して、赤い点線の枠が表示されるのです。思うようなテスト結果が得られない場合は、Webブラウザーを再読み込みして、何度でも登録し直し、学習データを作り直してみてください。例のように、形が似ていても配色が違うものを選ぶとか、背景をシンプルするとうまくいくかもしれません。

 この学習データで良いと判断したら、[アップロード]ボタンで学習データの登録をします。登録すると“カギ”と呼ばれる数字が発行されるので、コピーしたり書き留めたりしておきましょう。あとでプログラミングをする際にこの数字で学習データを呼び出します。なお、機械学習データがアップロードされますが、画像データがアップロードされることはありません。

トレーニング済みのツールで、認識のテストをしているところ。判定結果が赤枠で示される
学習データの登録が完了すると、学習データをプログラムで利用できるようになる。カギと呼ばれる数字が発行される

 こんな風に学習データを作るだけでも十分楽しめますね。パソコン手前のカメラが動作する場合は、家族の顔を写して登録して、誰の顔なのか判別させるのも面白そうです。ぜひ試してみてください。

 なお、この学習データのテスト中に、試しに懐かしのiPodを写して判定させてみました。その結果、iPodはシャペーンの芯と判定されました。画像としてより近い方に判定されるわけなので、もしこれがセルフレジだったらば、iPodをシャープペンの芯の値段で買えてしまいます。

登録していないiPodを写したところ。より近いと学習データが判断した方に判定される

 2つしか判定できない学習データでは、現実的な仕組みを作るのは難しいことがわかります。もしセルフレジをこの方式で作ろうと思ったら、商品点数の分だけさまざまな角度から撮影して学習させる必要があるということが想像できます。どれほど膨大な作業が必要なのかとちょっと気が遠くなりますね。

 同じセルフレジでも、画像認識による仕組みが向いているケースと、ICタグを活用する方が向いているケースがあることなども想像ができて、お子さんとさまざまな仕組みについて話すきっかけになるはずです。

 今回は学習データを作るところまでです。次回は、この機械学習データを活用して、「Scratch」でプログラムを作成します。