Scratch プログラミング 機械学習 画像認識

スクラッチ×機械学習|画像認識を使って植物図鑑を作ろう!

それではどんなゲームを作成できるか見ていきましょう。

機械学習を使ってどんなゲームを作るの?

今回はスクラッチの拡張機能「ML2Scratch」を使用してお花の画像(たんぽぽとチューリップ)を機械学習させ、簡易的な植物図鑑アプリ(画像を見せることでお花の名前を教えてくれる)を作ります。

ML2Scratchとはスクラッチに関するカンファレンス「Scratch 2018 Tokyo」にて公開された独自ライブラリです。
パソコンのWEBカメラで何枚か画像を撮ることで画像の特徴を学習させることができます。
学習した画像はラベル毎に管理でき判別できるようになります。

出来るようになること

・機械学習(画像認識)を使ったプログラムを作れる
・機械学習の仕組み(学習のさせ方)を知ることができる

完成イメージ

完成プログラム

完成プログラムはこちらになります。

たんぽぽを認識するプログラムを例に説明します。

あらかじめ「たんぽぽ」の画像を「ラベル2」に学習させておきます。
そして「たんぽぽ」の画像を受け取ったら「たんぽぽです♪」というプログラムです。

プログラムの大部分はML2Scratchでライブラリ化されているためプログラムの量は非常に少ないです。
素晴らしいですね。

植物図鑑の作り方

まずは拡張機能「機械学習」を追加しよう

まずはML2Scratch公式サイトにアクセスします。

ML2Scratch専用のスクラッチ3.0のワークスペースが表示されますので、拡張機能を追加するところから始めましょう。

一番左上に「ML2SCRATCH」を選択します。

「ML2SCRATCH」はパソコンのカメラを使用するため、ブラウザの設定によっては確認ポップアップが表示される場合があります。
「許可する」を選択しましょう。

事前準備 ー変数を表示させるー

下記の画面イメージを参考に4か所にチェック入れます。
チェックを入れると画面右側の実行画面上に変数が表示されます。

※変数を表示しなくてもプログラムは作れますが、重要な変数のため表示しておくことをおすすめします。

ラベルいま現在、WEBカメラに写っている画像の判定結果を表示します。
例えば「1」と表示されている場合は、ラベル1で学習した画像が表示されているいう意味になります。
ラベル1の枚数ラベル1として機械学習した枚数を表示します。
ラベル2の枚数ラベル2として機械学習した枚数を表示します。
ラベル3の枚数ラベル3として機械学習した枚数を表示します。

これで機械学習の準備は整いました。

実際は下記のボタンを押して画像を機械学習させていきます。

お花の画像を認識させよう

ここからは画像認識の作業に入っていきます。
コンピュータも私たちと同じで画像を学習することで正しい判定ができるようになります。

画像を3種類用意します。
1.待機状態の画像
2.たんぽぽ
3.チューリップ

待機状態の画像とは

ML2Scratchは常時、WEBカメラに写っているものを判定し続けますので初期値として「たんぽぽ」「チューリップ」以外の状態を画像認識させます。
これにより「たんぽぽ」と「チューリップ」以外がカメラに移りこんでいるときは「なにもしない」という判定が可能になります。

step
1
ラベル1に「待機状態の画像」を学習させる

「ラベル1を学習する」ボタンを押して最初の画像(待機状態の画像)を認識させます。
※初回読み込み自は少し時間が掛かるため3秒くらい待つ必要があります。

step
2
ラベル2に「たんぽぽ」を学習させる

カメラの前に「たんぽぽ」の写真をもっていき、「ラベル2を学習する」を20回程度押します。

画像認識のポイント

・色々な大きさで認識させる
・色々な角度で認識させる
・1枚だけではなく複数毎認識させる(今回は20枚程度)

step
3
ラベル3に「チューリップ」を学習させる

ステップ2と同様の手順で「チューリップ」の画像を機械学習させます。

プログラムしてみよう

ML2ScratchカテゴリのMLブロックを使用してプログラムしてみましょう。

【作るプログラム】
・ラベル2(たんぽぽ)の画像を受け取ったら「たんぽぽです♪」と2秒言う
・ラベル3(チューリップ)の画像を受け取ったら「チューリップです♪」と2秒言う

実行してみよう

さきほど機械学習させた「たんぽぽ」や「チューリップ」を表示させてみよう。

まとめ

スクラッチ×機械学習をテーマに「植物図鑑」アプリを作成してみました。
いかがだったでしょうか。

機械学習と聞くと難しいイメージがありますが、スクラッチのビジュアルプログラミングの分かりやすさと相まってだれでも簡単に機械学習を体験することができると思います。

小学校やプログラミング教室で使用する場合は「教科書の写真」や「自分で描いた絵」などでも植物図鑑を作ることができると思います。

また、機械学習を活用して「どんなものが作れそうか」や「何があったら便利になるだろうか」などグループで話し合ってみると思わぬアイデアが誕生するかもしれません。

植物図鑑のリミックス案

・機能拡張「音声合成」を組み合わせて画像認識の結果をしゃべらせてみる【難易度:★☆☆☆☆】

機械学習の根本的な仕組みを知ることも重要ですが、いまあるモノを組み合わせて新しいものを創出していく。
今後はこのような考え方も必要になると強く感じています。

日本の未来に幸あれ。

-追記-

今回は紹介できませんでしたが、機械学習を使って次のようなプログラミングを考えてみても楽しいと思います。

参考1

・自動車の自動ブレーキ
 道路+障害物が読み込まれたら動きを止める
 1.道路     → 進む
 2.道路+障害物 → 止める

参考2

・お店屋さん
 商品を画像認識して金額を表示する
 1.商品Aは100円
 2.商品Bは200円

-Scratch, プログラミング, 機械学習, 画像認識
-, , , , ,

© 2021 SwitchGames神レビュー