GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
がじぇるね岡宮です。
Googleが開発してくださった組み込みAIの「TensorFlow Lite for Microcontrollers」をGR-ROSEでHiroaki Nagashimaさんが動作してくださいました。
GitHubで公開されているので、簡単な「Hello World」と「micro_speech」を試してみたところ、問題なくビルドできて、動作確認も出来ました。
GitHub:https://github.com/h7ga40/GR-ROSE-TensorFlowLite?fbclid=IwAR1XhIIs-DzvIyfgXMRn7_iQ02nKostqSR2mAmeAIOnaGXUzhbB_ZlBjb1Y
以下、動作風景です。なんだかしょーもない感じですみませんが、micro_speachは言葉と言葉の切れ間がどこにあるのか分からないので、実用に応用するには、色々工夫が必要そうです。マイクにノイズを入らないようにとか、録音中・推論中の区別とか。
e2studio用のプロジェクトとしてインポートできました。Visual Studioでもできるようですが、私はまだ試してません。
インポートすると以下のように7つのプロジェクトが開かれます。GR-ROSEのSDK「rose_sketch」で「librose_sketch.a」、「tensorflow-microlite」で「libtensorflow-microlite.a」を生成し、それぞれのサンプル用プロジェクト(例えばHello World)でそれをリンクするといったワークスペースになっています。ですので、まずはrose_sketch、tenforflow-microliteのプロジェクトをビルドし、その後にそれぞれのプロジェクトをビルドすることで、正常にビルドが行われ、GR-ROSEの実行ファイル(binファイル)が生成されます。
なぜプロジェクトを分けなければならないかというと、Amazon FreeRTOSのコンパイラはC99で、TensorFlow Lite for microcontrollersはC++11なのですが、e2studioでは個別に設定できないためです。本当はCとC++で設定できるはずなのですが、e2studio V7.xでは多分できません。それから-Dオプションで設定するマクロもそれぞれのために存在するので、コンパイルとリンクを分けた方がバージョン管理もしやすくなります。
以下はmicro_speechを実行した結果です。私は手元に秋月の「高感度マイクアンプキット」があったので、それをA0につなげて試しました。
TF Liteはいまだ実験的公開のようですが、こういった組み込み向け学習済みモデルを色々試せたり、他の方が共有したり、ライセンス販売につながってくるといいですね。
いずれにしてもGitHubで公開してくださったNagashimaさんに感謝です!ありがとうございます!