M5StickCによるジェスチャー認識
- 今回は、サンプルコードによるジェスチャ認識を目標にします。
M5StickC系のプログラム関連記事
- M5StickCによるジェスチャ認識(1)~インストールから加速度取得まで
- M5StickCによるジェスチャ認識(2)~サンプルコードによるジェスチャ認識(この記事)
- M5StickCによるジェスチャ認識(3)~Wi-Fi接続と学習データの生成
- M5StickCによるジェスチャ認識(4)~オリジナルデータによるジェスチャ認識
- M5StickCによる音声認識
※現状の予定になります
ジェスチャー認識
- Tensorflow-liteを用いてMagic Wandをしている例がありましたので、まずはサンプルを動かしてみて、そのあとにオリジナルのジェスチャーを認識することまでを目的とする
- 参考は以下のサイトから
- サンプルに関しては、著者のかたがGitHubにまとめてくれているので、使わせていただきましょう。
- まずは、GitHubからダウンロードしてきます。
- 次に、PlatformIOで新しいプロジェクトを作成します。その後、先ほどGitHubでダウンロードしたファイルを、PlatformIOで作成したプロジェクトの中にドラッグ&ドロップします(コピーします)。
- このプロジェクトは、「〇」「W」「∠」の動きを認識し、ディスプレイに表示しするようになっています。
- ディスプレイの出力は「output_handler.cc」で定義されています。
- ジェスチャーを認識するための学習データは「magic_wand_model_data.cc」の中で定義されています。また、「magic_wand_model_data.cc.new」にも定義されており、こちらのほうが新しいモデルのようなので、中身を入れ替えてもいいかと思います。
- ダウンロードしてきたサンプルで、画面上に取得している加速度のデータを表示させたい場合は、「loop関数」の中で以下を追加するとよい
main.cpp
M5.Lcd.printf("ID: %d\n", gesture_index);
M5.Lcd.printf("%+4.0f : %+4.0f : %+4.0f\nW %3.2f/R %3.2f/S %3.2f", \
f[381], f[382], f[383], p[0], p[1], p[2]);
- プログラムを書き終えたら「Build」を押して、ビルドする。エラーがなければ、そのまま「Upload」すると、加速度がディスプレイに表示される。また「Upload and Monitor」をクリックすると、PlatformIO内でシリアル通信で取得した加速度のデータを見ることができる。