EdgeImpulse(エッジインパルス)は、エッジデバイスでの機械学習モデルの開発とデプロイメントをサポートするためのプラットフォームです。エッジデバイスとは、センサーやマイクロコントローラなどの制限のあるデバイスを指します。
EdgeImpulseは、開発者がセンサーデータを取得し、データセットを作成し、モデルのトレーニングと評価を行い、最終的にエッジデバイス上でモデルを実行するためのソリューションを提供します。エッジデバイス上でのモデルの実行により、リアルタイムのデータ分析や意思決定を可能にし、クラウドへのデータ転送や遅延を削減することができます。
EdgeImpulseは、さまざまな産業やアプリケーションで使用されており、センサーデータに基づく異常検知、音声および画像認識、ヘルスケアモニタリングなどの分野で活用されています。また、プラットフォームは、機械学習モデルの開発を容易にし、開発者がエッジデバイス上でのデプロイメントに集中できるようにサポートしています。
M5Stackを用いたジェスチャ認識に挑戦
(A)
Edgeimplseのアカウト作成お願いします。
Googleアカウントを活用するのがいいでしょう。
project名はgesturerecognitionなど
(B)M5StackCore2のAruidino開発環境の構築(Arduino言語を使います。micropythonやuiflowなどに挑戦してもらっても問題ありませんがその場合はジェスチャー認識コードは自分で書いてみてください。)
https://docs.m5stack.com/ja/core/core2 からArduinoIDEを選択(日本語翻訳ツールをいれてください。)
https://docs.m5stack.com/ja/quick_start/core2/arduino
windwosの人はCP210x_VCP_Windows CP2104 ダウンロードをまずは選んでください。その後zip解凍する。Zip解凍したあとx64の実行ファイルをクリックしてドライバをインストールする。デバイスマネジャーでシリアルポートを確認するとよい。
ArudionoIDEを右上にある言語設定を「日本語」にして手順をすすめてください。BordmanagerとLibrary(関連ライブラリプロジェクト→ライブラリの読み込み→ライブラリ管理.)は両方セットする必要があります。
(C)Helloworldなど各種サンプルを動かしてください。
その他のいろんなサンプルはコチラでも公開しています。
https://drive.google.com/drive/folders/1PihokRdO-3__r5y-53DxC56APn_lOm3z?usp=sharing
(D1)ジェスチャ認識用の加速度データ取得ソースの書き込み
ACCGuesturempu6886v3.zipをダウンロード後に適切な場所で展開する
https://drive.google.com/file/d/1yuKhZsS48eXV3FVMaGRuD6K7dDJ9Ma6h/view?usp=share_link
(D2)シリアル通信は115200の速度で設定
M5Stackの3つある◯のうちの左のボタンAをおしながら加速度のある動作させてください。
シリアルモニタの左下シリアル送受信の通信の速度(ボーレード)は115200にしてください。シリアルモニタの終了後Xボタンで閉じること。開きぱなしになるため。
(D2)
Windowsの場合はteratermを用いてCOMと通信をおこないます。macの場合はそのままシリアルモニタからcopy&pasteできます。
それぞれのジェスチャを30秒 =30000ミリ秒ほどがんばるといいとおもいます。
windowsの人のTeraterm入手先
https://forest.watch.impress.co.jp/library/software/utf8teraterm/
(E)csvファイルにする。
teratermの新規>シリアル通信で選択したデータを
copy&pasteでデータをvscodeなどで再保存して名前をつけてcsvファイルにします。
ファイル名は label名.sampleN番目.csv 例えばGesA.sample10.csvとしてください。
timestamp,accX,accY,accZの行から後をコピーしてください。
別のデータを取る場合はteratermの設定からバッファのクリア 画面のクリアを選んでください。その後M5StackCore2のSDカード側のりスタートを押すと最初から計測できる。
(F1)Edgeinmplseで読み込む
Edgeimplseでうまくcreateprojectでプロジェクトを作成してDataAquisitionでアップロードしていきます。
複数ファイルは同時に選択できます。
アップロードが一回目うまくいったあと2回目うまく行かない場合は再度プロジェクトを破棄して作り直してください。
(F2)
SplitはデータをクリックしてSplitで+addして隙間クリックを多めにして10個以上複数に分けてみてださい。
保存ファイル名はGesA.sample14.csvなどです。
そうすればラベルがGesAと自動で全て付きます。
一部testデータとして移動できます。2割ぐらいのデータをテストデータに移動しましょう。
(F3)Create Impluseで
Spectral Analysis
IMU (Syntiant)
Raw Data
を選択
LeaningBlockはClassificationを選択してください。
その後右のsave impulse
(F4)右の選択メニューから
Spectral Analysis
IMU (Syntiant)
Raw Data
を順番に選択してsave parametersをしていく。
結果のグラフをまって最後にClassiferを実行
結果のグラフを記録
(F5)test dataを分けている場合には左メニューからModelTestingも行う。
結果の表を記録
(F6)DeplayでIoTコードとして出力(今回は行わない)
(G)解説の録画データファイル。
EdgeIImpluseの授業動画を準備しました。参考にしてください。
https://tdu.box.com/s/akx55pbq5oa51mnb28b6g8gyq9vkqlmo
or
パスコード: @^%G5%R^
Core2用にWifiを準備
wifi
sensor-net
sensot-net0101