見出し画像

生きものロボットに個性を与えよう!(ML2Scratch)

今回の記事では、拡張機能のなかでも機械学習が体験できる「ML2Scratch」を使ってみます。

ML2Scratchは、TensorFlow.jsというGoogleが開発する機械学習をScratchから簡単に体験・利用できる機能で、@jishihaさまが作成された拡張機能を利用させて頂いております。
@jishihaさまの開発する拡張機能についての詳細は、下記を御覧ください。
https://champierre.github.io/ml2scratch/
https://github.com/champierre/ml2scratch

とてもわくわくする拡張機能を開発および使用させていただき、ユカイ工学スタッフ一同感謝しております。

今回は、毎回作例で登場してくるクジラちゃんというサンプルロボットに好き嫌いを教えてみましょう。

この記事ではこんなことができるよ!

画像16

iOSは、この記事に対応しておりません。
iOSのWebBLEアプリではカメラを使うことができないため、他の端末をご利用いただくようお願いいたします。

用意するもの

・動かしたい生きものロボット(ココロキット内蔵)
・カメラを搭載したPCまたはタブレット

ml2scratch_使うもの

拡張機能をロードします

左下の青いボタンから拡張機能一覧を表示して、「ココロキット」と「ML2Scratch」をロードします。(1つずつロードしてください)

スクリーンショット 2020-04-07 18.39.28

ML2Scratchをロードすると、カメラが起動します。(初めての方は、カメラの使用を許可してあげてください)

スクリーンショット 2020-04-07 18.43.31

ML2Scratchでできること

Webカメラでいくつかの画像を撮り、ラベルを付けて学習すれば、似たような新たな画像を、学習結果をもとに分類することができます。キャプチャした画像はサーバーに送られることはなく、学習および分類はすべてブラウザ上で行われるのが特徴です。

たとえで説明すると、たこうにの画像を事前に複数枚カメラで撮影して学習させておくと、カメラで写っている画像の中から、たこうにを判断することができます。

少し難しいので一緒にやっていきましょう!

ラベルをつけてみよう

今回の記事では、学習させる画像にも生きものロボットの作例を使います。あくまで例なので、おうちにあるもの何でもOKです。

登場人物①:たこ(ちょっと不思議なハチマキを巻いているけどご愛嬌で!)

たこ

登場人物②:へびちゃん(ベロとしっぽが特徴!)

へびちゃん

まず、たこをラベル1として学習させます。

ラベル1の枚数の左側のチェックボックスにチェックを入れると、右側にラベル1の枚数という表示と数字がでます。これが学習した画像の枚数です。
いろんな角度でたこをカメラに写して、「ラベル1を学習する」ブロックをクリックして画像を学習させます。(最初の1枚目の学習には時間がかかるのでしばらく待ちましょう。)
この例では25枚の画像を撮影しています。

スクリーンショット 2020-04-07 19.41.51

たこの学習

つぎにへびちゃんをラベル2として学習させます。

へびちゃんの学習

そしてなにも写っていない背景の状態の画像をラベル3として学習させます。

背景

ここまでの手順で、以下を判別することができるようになりました。

・たこがうつっているよ
・へびちゃんがうつっているよ
・なにもうつっていないよ

ためしに、「ラベル」の横のチェックボックスをクリックしてみよう。右側に判断結果が数字で出力されるので、たこやへびちゃんをうつしてみよう。

判断してる

ラベルとなまえを対応するプログラムを作ってみる

写ったものの名前を表示するプログラムを作ってみましょう。「ラベルを受け取ったとき」ブロックと「〜と言う」ブロックを組み合わせます。

判断してしゃべる

くじらちゃんの個性を考える

つぎに、クジラちゃんの個性を考えていきます。今回は、

たこは大好きだから前に進む。
へびちゃんはちょっと苦手だから後ろにさがる。

という個性をプログラミングによって実現しましょう。

プログラムを作る

生きものロボットを前に進ませたり、後ろに下がらせたりは、モータのブロックを組み合わせると実現できるので、下の画像のようなプログラムを作ってみよう。

スクリーンショット 2020-04-07 20.11.21

さあ動かしてみよう!

動かすPC画面

画像15

へびちゃんが見えたときびっくりしすぎて後ろにひっくりかえってしましました!笑

今回は、生きものロボットの好き嫌いを機械学習の技術を使って教える方法を学びました。自分だけの、個性豊かな生きものロボットを作っていきましょう!

これを作ってくれたら、ハッシュタグ#kurikitをつけて見せてもらえると嬉しいです!

wada_個人サイン


この記事が気に入ったらサポートをしてみませんか?