人間以外のものも認識してみましょう。バナナやレモンなどに反応するロボットが作れます。
Tensorflow.js
obnizのブロックプログラムではGoogleの出している機械学習ライブラリTensorflow.jsを使って物体の認識ができます。「バナナ」や「ボールペン」などの認識です。
JavaScriptでは1000種類の認識ができますが、ブロックプログラムでは身の回りにある数種類が選べるようになっています。
バナナに近づいてかぼちゃのおばけから離れる
実際にプログラムしてみましょう。
ループの中でカメラに写っているものをチェックします。
カメラに写っているのがバナナだったら前へ動かし、
ジャック・オー・ランタン(かぼちゃのおばけ)だったら後ろへ動くようにします。
どちらでもなければ止まるようにします。
これを動かし、ロボットにバナナを見せれば近づいてきて、かぼちゃおばけを見せれば離れていきます。
JavaScript
今回使用しているTensorflow.jsのモデルはモバイルネットになります。
https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md
JavaScriptで使えばより多くの(1000種類)の識別ができます。
識別できるもののリストは
http://image-net.org/challenges/LSVRC/2012/browse-synsets
などが参考になります。