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

TensorFlowの機械学習による画像認識をScratch上で! 子どもでもできるAI活用プログラミング

 これまでAIの技術を手軽に使える子ども向けプログラミングの方法をいくつかご紹介してきました。今回は、「Scratch(スクラッチ)」上で、画像の機械学習をさせ、そのままプログラミングに活用できるツールをご紹介します。ここで使う「Scratch」は通常の「Scratch」ではないのでご注意ください。特別にカスタマイズされた「Scratch」にGoogleの「TensorFlow」の技術を活用できる拡張機能を読み込んで使います。

専用の「Scratch」を開き拡張機能を読み込む

 まずは複数の拡張機能を読み込める特別にカスタマイズされた「Scratch」にアクセスしてください。Webブラウザーは「Google Chrome」限定です。この「Scratch」を開いたら、まず[拡張機能を追加]ボタンを押して「ML2Scratch」をえらびます。「ML2Scratch」は石原淳也氏による画像認識のための拡張機能です。

専用の「Scratch」を開いたところ。[拡張機能を追加]ボタンを押す
「ML2Scratch」という拡張機能を選ぶ

画像学習データの作成

 拡張機能を読み込んだら、カメラを使う許可を求められるので許可してください。これから2種類の画像を覚えさせ、画像学習データを作ります。「ML2Scratch」のブロック一覧の中にある、[ラベル]、[ラベル1の枚数]、[ラベル2の枚数]にチェックを入れます。チェックを入れるとステージ上に値を示す枠が表示されます。これで、2個の画像を学習させる準備ができました。

拡張機能が読み込まれた画面。カメラは画面手前側を映している。[ラベル]には判定された結果、[ラベル1の枚数]には1個目のラベルに学習させた画像の枚数、[ラベル2の枚数]には2個目のラベルに学習させた画像の枚数が入る

 早速、画像を学習させましょう。この例では次の2種類の絵を学習させます。絵である必要はなく、物や顔などでも構いません。

左のパンダをラベル1に、右のクマをラベル2に学習させる

 画像を学習させるには、学習させるためのブロックを使います。ネコのキャラクターは邪魔にならないよう左下に移動させておきましょう。

 [ラベル1を学習する]ブロックをステージに置いて、学習させたいパンダの絵をカメラに映しながらブロックをクリックすると1枚撮影されます。少しずつ位置を変えてバリエーションを作りながら20枚分撮影します。次に[ラベル2を学習する]ブロックでクマの絵を撮影します。これで2種類の画像の学習データができました。

ラベル1にパンダの絵を登録しているところ。[ラベル1を学習する]ブロックをクリックするたびに、ラベルの表示枚数が増加する。20枚程度学習させる
同じくラベル2にクマの絵を登録しているところ

 ここまでは画像の学習データを作る手順です。学習データができるとすぐにカメラに映ったものが判定されはじめるので、いったんここで学習データの精度を確かめるのがおすすめです。ステージ上の[ラベル]の値を見ると、ラベル1(パンダの絵)と2(クマの絵)のどちらが判定されているのかがわかります。なお、画像データが完成したら、[ラベル*を学習する]ブロックはステージから削除して構いません。

画像学習の学習データを使って作品を作る

 次に、画像学習データを使って「Scratch」の作品を作ります。ここでは、パンダの絵がカメラに写ったらネコのキャラクターが大きくなり、クマの絵がカメラに写ったらネコのキャラクターが小さくなるというプログラムにしました。次の図を参考にプログラムを作成してください。

[ラベル1を受け取ったとき]ブロックに[大きさを10ずつ変える]ブロックをつなぎ、[ラベル2を受け取ったとき]ブロックに[大きさを-10ずつ変える]ブロックをつなぐ。ステージ上の[ラベル]の値は“1”で、パンダの絵だと判定され、ネコのキャラクターが大きくなっている

 パンダとクマの絵をカメラに映すと、パンダならばラベル“1”が判定されて、ネコのキャラクターが大きくなり、クマならばラベル“2”が判定されて、ネコのサイズが小さくなります。

左がパンダの絵を認識させてネコのキャラクターが大きくなっているところ、右がクマの絵を認識させてネコが小さくなっているところ。絵を見せ続けるとサイズは変わり続ける

 少しアレンジするだけで、例えばパンダを判定したら好物の笹、クマを判定したら鮭が登場するなんて作品もできそうですね。

 これまで、子どもでも手軽にAI技術に触れられる方法をいくつか紹介してきましたので、ぜひ自分が気になるツールを選んで挑戦してみてください!

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