2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

機械学習×Scratch ML2Scratch使ってみた2020版

Posted at

Scratchで機械学習を体験できる拡張機能を利用した記事を以前投稿したが(すでに1年以上経過)、細かくアップデートされているのでそれらを含めて記していく。

前回の記事はこちら機械学習×Scratch!? 使ってみた

ML2Scratch

ML2Scratchは専用のScratch環境で機械学習を体験できる拡張機能を提供してくれる。

前回ではPCに接続されたWEBカメラの画像をScratch上に映し出し、画像を取得しラベル付けから学習、画像認識を行った。

今回は新たに追加されている機能で、Scratchのステージ上を画像として取得・学習することでWEBカメラを利用しない機械学習をおこなってみる。

前回との違い

ML2Scratchの導入は前回の準備を参照。

カスタマイズされたScratch上でML2Scratchのブロックを追加する。
01.png

すでに前回と少しブロックのデザインが変わっているのがわかる。
左が前回、右が今回利用している時点でのブロックのデザイン。
01-2.png       01-1.png

前回と比較すると以下のブロックが追加されている。
今回の学習のキーとなる機能の一つ。カメラ ステージを切り替えることで学習・判定を行う対象を変更できる。特にステージに変更することでScratchで作成したゲーム画面を学習データとして用いたりすることができるようになる。
02.png

学習した結果を他のプログラムもしくは同一のプログラムで利用するために保存することができる。学習データを集めた状態でこのブロックを実行するとjsonファイルをダウンロードすることができ、再利用することができる。
03.png

前述のダウンロードしたjsonファイルを適用する際に実行する。実行するとファイルを選択するウィンドウが立ち上がり保存したjsonファイルをアップロードすることができる。
04.png

こちらも今回のキーとなるブロック。Scratchのステージ上に映っているWEBカメラのON/OFFを切り替えることができる。ビデオを切にすることで純粋なステージ上のみを学習データとして集めることができる。
05.png

ラベル付けのON/OFFと間隔を設定することができる。
06.png

ステージ上の学習

今回は拡張機能の開発者である石原さんが公開しているGithubにある手書き文字判定のサンプルプログラムを参考に行っていく。
今回は1~3の手書き数字の判定+何も書いていない状態の4つのラベルを使用するので取得した画像枚数をステージ上に表示するようチェックを入れる。
08.png

あらかじめ配置されているネコのスプライトに以下のプログラムを作成する。
11-1.png

次にスプライトを追加する。ここではペンのスプライトを追加しているが、非表示にするため追加するのはどれでもよい。
追加したスプライトにプログラムを作成する。ペンのブロックを利用しているが、これもML2Scratchと同じく拡張機能にあるため利用する際は拡張機能から追加する。
11-2.png

プログラムの準備はできたので学習データを集めていく。
ステージ左上の旗マークをクリックすると、ステージ上にマウスで線を引けるようになる。
今回は1,2,3の手書き数字を学習しネコに判定させる。

ステージ上に1を書いたらキーボードの1を押して画像を集める。
12.png
ステージ上の線を消す場合はスペースキーを押す。

これを1~3の数字+何も書いていない状態の4つを学習させる。
13.png

何も書いていない状態はキーボードの4を押して画像を集める。

データをそれぞれ20枚程度集め終わったら、判定できているか確かめる。
そのままステージに手書き数字を書くことで判定結果をネコが喋ってくれる。
14.png
15.png

2と3は膨らみなどが似ているようで、雑に書くと2と3の判定を行ったり来たりする場合もある。
16.png

前回から学習の幅が広がっているためいろいろなことに応用できそう。
また定期的にメンテナンスしていただけているため環境の変化にも柔軟に対応できそうなところは安心して使えるのでありがたい。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?