はじまり
今年もどこかのMaker Faireにtoio™で作ってみた友の会(非公式)で出たいですねーと、以前一緒にTsukubaやTokyoやSendaiに参加したメンバーで検討相談した結果、Maker Faire Tokyo 2024はそれぞれいろいろたてこんでいてちょっとエントリー手続きは無理かなー、そもそも競争率高いからエントリーしても落選するだろうとか、(出展料が比較的安いMaker区分だと)「toio」の名前が使えないからエントリー団体名どうすんだとかいろいろありましてTokyoへの出展申し込みは見送りとなりました。
Maker Faire Tokyo2024 出展要項から引用
出展区分の詳細の申し込み時の条件
企業名、製品・サービス名を出展者名や出展情報に含まないこと
(上記を含める場合は「Company」でお申し込みください)
そのあと、Ogaki Mini Maker Faire 2024の募集が始まり、開催時期もだいぶ先でそれまでに準備する余裕があるのと、出展要項を見ると出展者名や出展情報に製品名の使用を禁じる項目はなかったので団体名もそのまま「toio™で作ってみた友の会(非公式)」でいけそうだということで、出展申し込みしてみたところ、無事当選し、出展できることとなりました。
Ogakiに限らずMaker Faireへの出展申し込みの場合、出展内容を「具体的」に書く必要があります。(昔はもう少しゆるくて、出展申し込みしてから中身を考え始めるという感じではありましたが、まあ完成しなくて展示に穴をあけられても困りますし。)
簡単スタックチャン w/ toio (Stack-chan Ez w/ toio)」がすでにありましたのでそれを展示する、というのを確実な出展項目として、あとは「仲間たち」ということで参加メンバーそれぞれでなにかしらのtoio core cubeを使った作品を出してもらうこととしました。
私以外の出展メンバーとしては、 豊田陽介さん、バーバラ・アスカさんのお二人。豊田さんとは何度かMaker Faire出展をご一緒させていただいていますが、バーバラさんとは初の組み合わせ。お二人ともどういうものを作ってくるかは楽しみではありました。
新作作りたい
まあ、簡単スタックチャン w/ toio (Stack-chan Ez w/ toio)」はすでに完成しているのでそれをそのまま展示すればいいのですが、今までのMaker Faire出展では必ず新作を出している(というか毎回その都度新作しか出してない)ということもあり、新作を作りたくなってきましたw.
完全な新作とは言えないがまあ新作?
新作を作りたいといいつつも、思いついたのは本番2か月前ぐらいからなのでどうしようかと思ってたところ、Maker Faire Tokyo 2024のスイッチサイエンスさんブースで5000円という破格のアウトレット価格で出てたOAK-D IoTカメラをを買ったことを思い出し、これ使ってtoio core cube動かすかー、ということにしました。
このOAK-Dカメラですが、ステレオグレイスケールカメラで深度がRGB単眼画像と一緒に撮れるのがウリのように見えますが、実はもう一つ特徴があって、Movidius(Intel) Myriad XのNPUがはいっていてmediapipeの手認識モデルをエッジサイド推論させることができます。
このため、手の位置の推論はカメラ内NPUで処理して手や指の位置情報をかえしてくれるので、PCやJetosnのようにホスト側での推論処理をすることなく、RaspberryPiのような非力なホストでも精度が高い手認識を行うことができます。
これを使って以前、Maker Faire Tokyo 2022に出展したときのやつを再現してみよう、と思い立ちました。手の動きをとらえて4つのtoio core cubeが編隊を組んで動く、というものです。
Maker Faire Tokyo 2022に出展したものは、Jetson Xavier NXのGPUでmediapipeの手認識モデルを推論させて動かしていました。
今回はできあがったものの見た目は一緒なのですが、使っているシステムがOAK-DカメラとRaspberry Pi 4B という組み合わせに変わっています。
OAK-Dカメラでの手認識についてはすでにpythonから使える実装がありまして、この中のexamples/remote_control/HandController.pyを使うと簡単に手の位置やジェスチャ(指を何本折っているかとか)認識ができるようになっています。
で、できあがったのがこんな感じ。
Maker Faire Tokyo 2020ではtoio core cubeの上にUFOのイラストを貼り付けて動かしましたが、今回は、会場の大垣の近く各務原に航空自衛隊の基地があるということで、川崎T-4 ブルーインパルスの小さいぬいぐるみを貼り付けています。
今回、アウトレット品のOAK-D IoTを使いましたが、OAK-D liteやS2など他のモデルでも同じスクリプトで動作するはずです。(depthの機能は使ってないと思うので単眼のOAK-1でもいけると思いますが試したことがないのでなんとも)
以下の場所にpythonスクリプトを置いておきます。