Edge Impulse Tuner
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
EON Tuner - Edge Impulseの最適化機能
概要
Edge Impulseは、組み込み機械学習モデルとデバイスのメモリ使用量を最適化する機能を導入しました。この機能は、パラメータを調整することで、機械学習アルゴリズムに詳しくない人でも、アプリケーションに最適な学習モデルを迅速に選択できるようにします。同時に、デバイスがより少ないメモリと性能を使用できるようにするため、制約内でTinyMLモデルを特定の機器に展開することが可能になります。
EON Tunerは、入力データ、潜在的な信号処理ブロック、およびニューラルネットワークアーキテクチャを分析します。その後、選択したデバイスのレイテンシーとメモリ要件に適合する可能性のあるモデルアーキテクチャの概要を提供します。これらの中から任意のものを選択することができます。

EON Tunerの位置
ご覧の通り、EON Tunerの位置はEdge Impulseプロジェクトページの左側にあり、分類のすぐ下にあります。アプリケーションを完成させた後、簡単にTunerを選択してプロジェクトを強化することができます。
EON Tunerの改善点
以下は、EON Tunerを使用した場合と使用しない場合の違いを示す例です。
はじめに
ここでは、オーディオ分類プロジェクトを提供し、EON Tunerの使用方法を示します。Wio TerminalとEdge Impulseを使用してLoRaでデータを送信することに興味がある場合は、例のプロジェクトをクリックして確認できます。
ハードウェア
必要なハードウェア
このデモでは、以下のデバイスが必要です:
ハードウェア接続
Type-Cケーブルを介してコンピュータに接続します。
ソフトウェア
必要なソフトウェア
Wio Terminalを使用した機械学習
ここでは、Wio Terminalを使用して機械学習モデルをトレーニングし、使用する方法を示します。このプロジェクトはArduinoプラットフォームに基づいているため、Arduino IDEとさまざまなArduinoライブラリが必要です。初めてWio Terminalを使用する場合は、Wio Terminalの使い方ガイドを参照することをお勧めします。
Edge Impulseトレーニングの開始
まず、Edge Impulseのアカウントを作成し、プロジェクトを作成する必要があります。
- ステップ1. Edge Impulseのウェブサイトを開き、アカウントを登録します。
- ステップ2. 新しいプロジェクトを作成します。
Wio Terminalとのウェブサイト接続
- ステップ3. 接続準備のためにファームウェアwio-terminal-ei-1.4.0.uf2をダウンロードします。
Wio Terminalの使い方ガイドラインに従って:
Wio Terminal(すでにPCに接続済み)の左下をダブルクリックすると、コンピュータにドライバ(以下のような「Arduino (F:)」)がポップアップ表示されます。その後、wio-terminal-ei-1.4.0.uf2ファームウェアをドライバにドラッグします。ドライバが消えるのを確認したら、ファームウェアがプログラムされたことを意味します。これでウェブサイトにアクセスしてWio Terminalを接続できます。
- ステップ4. ファームウェアが設定されたら、「WebUSBを使用して接続」をクリックしてWio Terminalをウェブサイトに接続します。
「デバイス」、「ラベル」、「センサー」が以下のように表示されたら、接続が完了し、データ収集を開始できます。
データ収集
Edge Impulseでデータを収集できます。
ステップ5. 「ラベル」、「サンプル長(ms)」を入力し、「サンプリング開始」をクリックします。
- 「ラベル」は分類したいカテゴリを意味します。
- 「サンプル長」はサンプリング中の時間を意味します。
ここで行う例のプロジェクトはオーディオ分類であり、内蔵マイクを使用します。
データを10回以上サンプリングすることを強くお勧めします。録音にはSPIフラッシュを使用する必要があり、消去操作が必要なため、通常設定した時間よりも長くかかります。(このプロジェクトでは約7秒かかりますが、設定時間は「3秒」です)。
機械学習モデルの生成
データが収集されたら、それを使用してMLモデルをトレーニングできます。
- ステップ6. データをサンプリングした後、「インパルスを作成」をクリックしてデータを処理します。
ここで選択した処理ブロックと学習ブロックはAudio(MFE)とニューラルネットワーク(Keras)です。処理ブロックを追加し、学習ブロックを追加することで見つけることができます。その後、「インパルスを保存」をクリックして次に進みます。
- ステップ 7. 「Spectral features」ページに移動し、下部にある「Save parameters」をクリックします。これにより自動的に「Generate feature」セクションに移動します。データは以下のように表示されるかもしれません:
こちらが「Generate feature」セクションです。このセクションでは、データを機械学習に必要な特徴に変換することができます。
「Generate feature」をクリックすると、結果が右側に表示されます:
- ステップ 8. 「NN Classifier」ページに移動し、特徴を使用して機械学習モデルをトレーニングします。ページの下部にある「Start training」をクリックします。
トレーニングの出力はページの右側に表示されます。出力が表示されたら、モデルが生成されたことを意味します。
ここで、出力が期待したものではないことがわかります:
データを再収集することも選択肢ですが、ここでは別の方法として 「EON Tuner」 を使用することができます。
EON Tuner を使用して ML モデルを最適化する
ここで、EON Tuner を使用して組み込み機械学習モデルを最適化することができます。
- ステップ 9. ページ右側の「EON Tuner」を選択し、「Start EON Tuner」をクリックします。
多数の出力モデルが表示されますが、最初に表示されるモデルは適切でない場合があります:
しかし、数秒待つと、モデルが徐々に良好にトレーニングされ、デプロイ可能な状態になります:
「Select」をクリックすると、ウェブサイトがこのモデルを主要モデルとして設定するかどうかを尋ねます。「Yes」をクリックしてください:
機械学習モデルのデプロイ
ここで、新しい機械学習モデルを Wio Terminal にデプロイすることができます。
- ステップ 10. 左側の「Deployment」列を選択してクリックします。
次に「Arduino Library」を選択し、下部の「build」を選択して Arduino に必要なライブラリを作成します。これにより、サードパーティライブラリを含む zip ファイルが自動的にダウンロードされます。
必要なライブラリの名前はプロジェクトの名前に基づいています。つまり、ステップ 2 でプロジェクトに記載した名前がここに表示されます。これにより、必要な正しいファイルを見つけることができます。
- ステップ 10. こちらからコードをダウンロードし、Arduino IDE で開きます。上記のようにサードパーティライブラリを変更し、コードを実行します。
最後に、Arduino IDE の「Serial Monitor」をクリックし、「Data Acquisition」で設定した Wio Terminal に言葉を話しかけます。モニターには結果と「Wio Terminal が結果に対してどれだけの信頼度を持っているか」、つまり精度が表示されるはずです。
チューナーがどのような違いをもたらすかに興味がある場合は、ステップ 9 をスキップして同じ手順を進めて確認することができます。