M5StickCによるジェスチャ認識(2)~サンプルコードによるジェスチャ認識


M5StickCによるジェスチャー認識

  • 今回は、サンプルコードによるジェスチャ認識を目標にします。

M5StickC系のプログラム関連記事

  1. M5StickCによるジェスチャ認識(1)~インストールから加速度取得まで
  2. M5StickCによるジェスチャ認識(2)~サンプルコードによるジェスチャ認識(この記事)
  3. M5StickCによるジェスチャ認識(3)~Wi-Fi接続と学習データの生成
  4. M5StickCによるジェスチャ認識(4)~オリジナルデータによるジェスチャ認識
  5. M5StickCによる音声認識 ※現状の予定になります

ジェスチャー認識

  • Tensorflow-liteを用いてMagic Wandをしている例がありましたので、まずはサンプルを動かしてみて、そのあとにオリジナルのジェスチャーを認識することまでを目的とする
  • 参考は以下のサイトから

M5Stick-C+TensorFlow Liteでジェスチャ認識

  • サンプルに関しては、著者のかたが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内でシリアル通信で取得した加速度のデータを見ることができる。