この記事の目的
最近、個人的にTensorflow Liteを使ってIoTエッジデバイスで機械学習モデルを実行してみたいと
思って調べている中で、ArduinoでもDeepLearningモデルが簡単に実行できると知り、実際に試してみました。
ArduinoでTensorflow Liteを動かしてみたので、その流れを書いてみたいと思います。
基本的には、公式ページの内容を試した形になっています。
この記事で使用したもの
- Arduino Nano 33 BLE Sense ※購入ページ
- 開発用PC ※私の場合は、macOS Catalina バージョン10.15.2 で行いました。
- Arduino IDE 1.8.10
開発環境のセットアップ
Tensorflow Liteをマイコンで実施するには、公式ページに記載されている通りいくつか選択肢があります。
今回は、一番上に記載されているArduino Nano 33 BLE Senseというマイコンを使用しました。
Arduino Nano 33 BLE Sense の特徴
デバイス詳細はこちらをご確認ください。
- デバイス概要
- 機械学習モデルが実行できるBLE搭載のArduino Nano。
- 特徴、スペック
- 9軸慣性センサー、温湿度センサー、気圧センサー、マイク
- ジェスチャ、近接、光の色、光強度センサー
- 価格
- 約$30
Arduino IDEの設定
サンプルスケッチをCompileするためのArduino IDEの設定を行います。
- Arduino IDEをインストール
- Arduinoのページから、ご使用のOSに合わせてインストールを行ってください。
- ボードをインストール
- ライブラリをインストール
- ボードの選択
- Tools -> Board から Arduino Nano 33 BLEを選択してください。
サンプルスケッチの実行
TensorflowLiteのサンプルスケッチがいくつか用意されています。参考
- hello world
- magic wand
- micro speech
- person detection
- カメラで人検出するサンプル。
- Arducam Mini 2MP Plusが別途必要になりますので、今回は実行できませんでした。
注意事項
- 私のMacはOSがCatalinaだったため、コンパイルで下記のようなエラーが出ていました。Arduino IDE 1.8.0から1.8.10にアップデートすることで、エラーは解消されました。
- コンパイルエラー:bad CPU type in executable...
終わりに
- 意外につまることなく、サンプルが実行できました。ただ、コードやライブラリは理解できていないので、オリジナルモデルを使って、カメラモジュールを使った独自の検出機能を作ったら理解も進んで面白そうだなーと思いました。時間があればやってみようと思います。
- 先日、Tensorflow User Groupに参加した時の感想ですが、エッジデバイスモデルの軽量化、デバイスへの組み込みについては奥が深く、個人ではなかなか手が出せない部分なので、このように簡単に試せるようになっていることに感動しました。