Sipeed Maixduino を Arduino IDE で味見 ーエッジAI活用への道 4ー
さてこれまでは金魚の認識を目指してオリジナルの認識用モデルをつくってMaixPy IDEでMaixduinoに書き込んで認識動作を確認いたしました。
MaixduinoはArduino IDEでもコーディングできるとのことで今回はArduinoサンプルコードを試してみました。
今後Maixduinoにセンサなども接続して画像認識と連動などもしたいと考えており、慣れ親しんだArduino IDEでも設計できれば最高と思った次第です。
目次
Arduino IDEの導入
以下を参考にArduino IDEにMAixボード用のライブラリをインストールします。
https://maixduino.sipeed.com/en/get_started/install.html
2019年10月現在ライブラリのバージョンは0.3.10でした。
なお、Aduono IDE のバージョンは1.8.10だとMaixduinoに搭載したSDカードが認識出来ませんでした。めっちゃハマりました。。。(´;ω;`)ウゥゥ
1.8.9では問題なく動作しました!!
ボード設定は以下のようにいたします。
物体認識サンプル
スケッチ例の物体認識 mobilenet_v1.ino を試してみました。
スケッチ例 → Maix_KPU → mobilenet_v1
コードの説明にもあるように認識モデルをSDカードに保存してMaixduinoに搭載する必要があります。
mobilenet_0x300000.kfpkgをDLして解凍しm.kmodelをmというファイルに名前変更してSDに保存します。
動作
MaixduinoでArduino IDE用物体認識サンプルコード味見 pic.twitter.com/p5juao2sX9
— HomeMadeGarbage (@H0meMadeGarbage) October 10, 2019
なんかたくさん文字が出て色々認識してくれてます。1000クラスの認識モデルのようです。ちょっと驚いたのがキーボードのスペースキーまで認識してますね。
さて例のごとくコードの意味は全くよくわからないのですが。SDカードのモデル(m)を前回作成した金魚モデルにしてみたのですが金魚が認識されるようにはなりませんでした。いずれもmobilenet形式なのでいけると思ったのですが甘かったです。
ちゃんと勉強しないと。。。しかしここからオリジナルの認識モデルを導入できるようにするのはつらい感じがします。なんとなく。。。
音声認識サンプル
物体認識はいまのところ残念な結果でしたが、驚いたのは音声認識サンプルコードです。MaixduinoにはMEMSマイクが搭載されています。
スケッチ例の voice_control_led_en.ino です。
Maixduino のArduinoサンプルが凄いんだけど。。#音声認識 #Maixduino #sipeed pic.twitter.com/tBLiveITYf
— HomeMadeGarbage (@H0meMadeGarbage) October 2, 2019
モデルにはred, green, blue, turn offの4つの発話があり、それぞれ配列パターンが4つづつ入っておりました。発話認識でGPIOピンを制御してLEDを点灯させています。
中国語のサンプルもありましたよ。
もっとすごいのが発話の配列パターン録音用のサンプルもあることです。get_voice_model.ino をMaixduinoに書き込んで発話パターンを録音します。パターンを先ほどの音声認識サンプルに貼り付ければオリジナルの音声認識コードが書けてしまうのです。
早速、「赤」、「緑」、「青」、「消して」を4回ずつ録音して先ほどの英語のコードのモデルの配列を入れ替えてみました。
サンプルは英語と中国語しかないのだけど。録音用サンプルコードもあって各発話4個の録音データでモデルできちゃう。
すごくない?https://t.co/JWM1qoySSh#音声認識 #Maixduino #sipeed pic.twitter.com/c9URTH2lyE
— HomeMadeGarbage (@H0meMadeGarbage) October 3, 2019
できたー!いやーこれは可能性広がりそう。たった4個のデータでどうやってるんだろう?これが転移学習というヤツなのでしょうか?
おわりに
Arduinoのサンプルコードでサクッとオリジナル認識モデル動くかと期待したのですが難しそうです。やはりMaixPy IDEで開発がよさそうな気が来ております。
ちょうどトランジスタ技術 2019年11月号がK210マイコン特集でMAixボードのGPIOやUARTの使用法が記載されていたのです♪
それでは道はまだまだ続きます!