ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【AI×Scratch】Scratchで手書き文字分類

成果物

www.youtube.com

今回は何と、Scratchそのものを改造して、人工知能を動かしちゃいました!(/・ω・)/

え、背後でPython動かしてるって?ScratchだってバックはJavaScriptだし、Tensorflowにも、C言語関わってくるし細かいことは気にしない(=゚ω゚)ノ

MNISTしかやってないけど、日本語扱ってみるのも面白いかもしれませんね。なにやら、漢字の方が特徴が検出しやすいから正解率高いとか…

動作環境

Tensorflow2.0
GPUは、cuDNN failed to initializeやメモリ不足で使っていませんが。動くと思います。

cuDNN failed to initializeは、どうやら環境あたりのエラーみたいです。

作り方・コード

ScratchExtensionの作り方はここが参考になると思います。この通りに進めた想定で話を進めていきます。

qiita.com

外国のサイトからも引用されててびっくりしました。少し話はそれますが、Extensionでは、Scratchの関数定義ではつくれない、戻り値があるブロックも作れるようになります。Scratchはわかりやすい分こういうところが()。数学関数の実装が驚くほど捗ります。

それでは、scratch-vm>src>extensions>scratch3_newblocks>index.jsを

次のコードで置き換えてください。

次に、こちらのPythonのコードを実行してください。

最後にこちらのスクラッチのコードを開いてください。ScratchのコードはGistにアップできないのが残念です。

https://firestorage.jp/download/3f1b8eee42657385db866377ddf0520fa2c802d69c4302

今回もSocket通信ですが、WebSocketなのが違います。ライブラリが必要なことに注意してください。

全く関係ないですが、Youtubeに子供向けの項目が増えてみたいですね。一瞬子供向けにしようかと思いましたが、制限がかかるので止めておきました。