Seeed Studio XIAO nRF52840 Sense での TensorFlow Lite 入門
この Wiki では、Seeed Studio XIAO nRF52840 Sense で TensorFlow Lite を使用し、オンボード加速度計を使ってパンチやフレックスなどのジェスチャーを検出する方法を説明します。ここでは、データトレーニングはデバイス自体で行われます。
組み込み AI アプリケーションには、「Seeed nrf52 mbed-enabled Boards Library」の使用を強く推奨します。
ソフトウェアセットアップ
まず、初期のハードウェアとソフトウェアのセットアップについて、"Getting Started with Seeed Studio XIAO nRF52840 (Sense)" の Wiki に従ってください。
それでは、残りのソフトウェアセットアップに進みましょう。
- ステップ 1. Seeed_Arduino_LSM6DS3 ライブラリ を zip ファイルとしてダウンロードします
- ステップ 2. tflite-micro-arduino-examples ライブラリ を zip ファイルとしてダウンロードします
- ステップ 3. Arduino IDE を開き、
Sketch > Include Library > Add .ZIP Library...
に移動し、ダウンロードした両方の zip ファイルを順番に開きます
- ステップ 4.
File > Examples > Seeeed Arduino LSM6DS3 > IMU_Capture
に移動して IMU_Capture.ino を開きます
- ステップ 5. コードをアップロードし、シリアルモニター を開きます
注意: コードをアップロードした後、Arduino ウィンドウの右上角にある シリアルモニター をクリックするまで、自動的に実行されません。
データトレーニング
パンチアクション
シリアルモニターが開いている間に、パンチアクションのデータトレーニングを開始します。
- ステップ 1. Seeed Studio XIAO nRF52840 Sense を手のひらに握り、前方にパンチを始めると、シリアルモニターにいくつかのデータが出力されます
-
ステップ 2. パンチアクションを約 10 回繰り返すと、各パンチの後に新しいデータが生成されます
-
ステップ 3. シリアルモニターの完全な出力をコピーしてテキストファイルに貼り付け、テキストファイルを punch.csv として保存します
注意: aX,aY,aZ,gX,gY,gZ を含む最初の行もコピーしてください
フレックスアクション
- ステップ 1. Seeed Studio XIAO nRF52840 Sense に USB ケーブルを再接続し、シリアルモニターを開き、Seeed Studio XIAO nRF52840 Sense を手のひらに握って内側にフレックスを始めると、シリアルモニターにいくつかのデータが出力されます
-
ステップ 2. フレックスアクションを約 10 回繰り返すと、各フレックスの後に新しいデータが生成されます
-
ステップ 3. シリアルモニターの完全な出力をコピーしてテキストファイルに貼り付け、テキストファイルを flex.csv として保存します
注意: aX,aY,aZ,gX,gY,gZ を含む最初の行もコピーしてください
TensorFlow Liteモデルファイルの生成
これから、以前に作成したpunch.csvとflex.csvファイルを使用して、TensorFlow Liteモデルファイル**(model.h)**を生成します。
- ステップ1. 必要なmodel.hファイルの生成に役立つこのPythonノートブックを開きます
- ステップ2. 左側のナビゲーションパネルのファイルタブに移動し、punch.csvとflex.csvファイルをドラッグアンドドロップします
- ステップ3. Setup Python Environmentセクション内で、コードをpip install tensorflow==2.0.0-rc1からpip install tensorflowに変更します
- ステップ4.
Runtime > Run all
に移動して、すべてのコードセルを実行します
- ステップ5. ポップアップするエラーメッセージに対してRun anywayをクリックします
- ステップ6. すべてのコードセルが実行されると、以前に見たfilesタブの下に新しいmodel.hファイルが生成されているのが確認できます
注意: 上記のmodel.hファイルが表示されない場合は、ページを更新してください。
- ステップ7. ファイルを右クリックしてDownloadをクリックし、ファイルをPCにダウンロードします
推論
これから、ダウンロードしたTensorFlow Liteモデルファイル**(model.h)**を使用して、Seeed Studio XIAO nRF52840 Senseからパンチとフレックス動作を認識します。
- ステップ1. Seeed_Arduino_LSM6DS3ライブラリのライブラリパス(通常はDocuments > Arduino > libraries > Seeed_Arduino_LSM6DS3の下)に移動し、examples > IMU_Classifierにアクセスします
-
ステップ2. model.hファイルを以前にダウンロードしたものと置き換えます
-
ステップ3. IMU_Classifier.inoをダブルクリックして、コードをSeeed Studio XIAO nRF52840 Senseにアップロードします。
パンチ動作
シリアルモニターを開いてパンチ動作を実行します。punchの横に1に近い結果が表示されることが確認できます
フレックス動作
フレックス動作を実行します。flexの横に1に近い結果が表示されることが確認できます
リソース
- [Webページ] TensorFlow Lite ドキュメント
技術サポート & 製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを用意しています。