メインコンテンツまでスキップ

説明

このアプリケーション例では、Renesas の VK-RA6E1 キットおよび Reality AI Tools(Explorer Tier)を使用した「ガラス破損検知」デモの開発とテストについて解説します。Reality AI ポータルは、視覚を使わないセンシングアプリケーション向けの AI モデルを生成するのに便利です。

本ドキュメントは以下のセクションで構成されています:

ラボセクションデモ手順
セクション1事前準備
セクション2データ収集
セクション3モデル生成
セクション4モデルのデプロイとテスト

セクションは順番に実施してください。

事前準備

概要

このセクションでは、ガラス破損検知デモを実行するために必要な準備を説明します。

手順

このラボ/デモには VK-RA6E1 キットが必要です。

キット内容:

  1. RA6E1 ボード
  2. 必要な USB ケーブル

キットリンク:TW001-VUIA6E1POCZ - RA6E1 Voice User Demonstration Kit | Renesas

このラボには、FSP 5.6 を搭載した Renesas E2-Studio IDE(バージョン 2024-07 以降)も必要です。
プラットフォームインストーラーは こちら からダウンロードできます。
e2studio のインストール先を控えておいてください。
このラボを始めるには、あらかじめ設定された e2-studio プロジェクトも必要です。

最後に、Reality AI ウェブサイトのアカウントが必要です。
Reality Tools にログインしてください(https://portal.reality.ai/login)。
認証情報が不明な場合は、Renesas AI COE カスタマーサクセスチーム(rai-cs@dm.renesas.com)までご連絡ください。


ブラウザはこのままバックグラウンドで開いたままにしてください。

データ収集

概要

このセクションでは、Reality-AI Eclipse プラグインと e² Studio を使用したデータ収集方法を解説します。

手順

E2 Studio IDE を開き、ワークスペースを選択します。

「Launch」をクリックします。

「File」→「Import...」を選択し、「General」→「Existing Projects into Workspace」を選びます。

「Next」をクリックして続行します。

「Select root directory」を選び、「Browse」でサンプルプロジェクトのフォルダを指定します。

デモプロジェクトがワークスペースにインポートされます。

Reality-AI ツールに戻り、「+Add Project」をクリックして新しいプロジェクトを作成します。
プロジェクト名と必要に応じて説明を入力し、右下の「+Add Project」ボタンをクリックします。

※Explorer Tier サブスクリプションを使用している場合は、新規プロジェクトの作成をスキップし、既存の Glass Break Detection プロジェクトを使用してください。

画面右上のユーザー名をクリックし、「API Key Option」を選択します。

表示された API キーをコピーします。これは E2 Studio IDE と Reality AI Tools を接続する際に使用します。

E2 Studio に戻り、「Renesas AI」→「Reality AI Authentication」に移動します。
※「Renesas AI」メニューが表示されない場合は付録を参照してください。

「Add」をクリックして API キーを追加し、アカウントをワークスペースに接続します。

API キーを貼り付け、「Apply and Close」をクリックします。

これで IDE と Reality AI サイトが接続されました。

次に「Renesas AI」→「Show View」→「Reality AI Data Storage Tool」を開きます。
新しいウィンドウが下部に表示されるので、タブをドラッグ&ドロップしてメインビューエリアに移動させます。
プルダウンからプロジェクトを選択し、「Data Connection」ボタンをクリックします。

表示されたメニューで、COM ポート、ボーレート(921600)、通信プロトコル(8-N-1)を設定し、「Connect」→「Close」をクリックします。

接続されると、左上のステータスに「Receiving data...」と表示され、チェックマークが付きます。
※緑のチェックマークは接続成功を示しており、まだデータを受信していないことに注意してください。

ハンマーアイコンをクリックしてプロジェクトをビルドします。

エラーがなければ正常にビルドされます。

ツールバーの「Debug」アイコンをクリックしてデバッグセッションを開始します。

Windows Defender による警告が出た場合は「アクセスを許可」を選択します。
「Remember my decision」にチェックを入れて、「Switch」をクリックします。

「Resume」ボタンを2回クリックします。プログラムが実行状態になります。

「Reality AI Data Storage Tool」ビューを開き、Signal view に波形が表示されているか確認します。表示されない場合は、「File review」→「Live view」に切り替えます。
それでも波形が出ない場合は、接続設定など前提条件を再確認してください。

「Class Name」欄に名前を入力することで、任意の長さのデータを記録できます。
※「Unlimited」チェックボックスを選択することを推奨します。これにより可変長のデータ収集が可能になります。

注意:

データ収集には「ファイルごとのフレーム数指定」と「無制限」の2通りの方法があります。
「Unlimited」をチェックすると、手動で停止するまで記録が続きます。チェックしない場合は、指定したフレーム数で自動停止します。
本プロジェクトでは「Number of frames per file = 200」とすると約52秒のデータになりますが、以降の手順では「Unlimited」での収集を前提としています。

Reality AI Data Storage Tool で「Unlimited」にチェックを入れ、「glass_break」とクラス名を入力します。
提供されたガラス破損音の音声ファイルをスマホや PC スピーカーで再生し、ボイスキットで録音します。

録音が終わったら、新たに「everything_else」というクラス名で録音を開始します。
ここでは静かに座ったり、会話やキーボードのタイピングなど、周囲の環境音を2〜3分録音します。目的は環境音の収集です。

以上でデータ収集は完了です。
赤い四角アイコンをクリックしてデバッグセッションを終了します。

※「Terminate」アイコンが見つからない場合は、画面右上の「Debug」ビューに切り替えてください。

収集したデータは下部のメタデータ/ファイル一覧に表示されます。
Reality AI Tools にアップロードして、分析を実行できるようになります。

アップロード手順:

  1. Ctrl キーを押しながらファイルを複数選択
  2. ビューをスクロールして「Upload...」ボタンを表示
  3. 「Upload...」をクリック

Reality AI サイト上に登録済みのプロジェクトが表示されます。
先ほど作成した「Glass Break Demo」プロジェクトを選択してください。

サンプリングレートを 4096 に設定し、「OK」をクリックします。
データファイルと metadata.csv ファイルが Reality AI Tools にアップロードされ、確認ダイアログが表示されます。

モデルの作成

概要

このセクションでは、収集したデータを用いて AI モデルを Reality AI Tools 上で作成する方法を解説します。
Reality AI Tools の Explorer Tier アカウントが必要です。アカウントやポータルへのアクセスが必要な場合は、Renesas AI COE カスタマーサクセスチーム(rai-cs@dm.renesas.com)までご連絡ください。

手順

Reality AI Tools にまだログインしていない場合は、以下のリンクからログインしてください:
https://portal.reality.ai/login

プロジェクト「Glass Break Demo」をクリックしてアクティブにします。

左側の「Data」タブをクリックして展開し、以下の手順に従います:

  1. 「Curate」をクリック
  2. 「Source Files」をクリックして展開
  3. ファイル名のチェックボックスで全ファイルを選択
  4. 「Action」ボタンをクリック
  5. 「Format Selected」をクリック

ダイアログが開きますので、以下の手順を実行:

  1. 「Data」セクションを展開
  2. スクロールバー(またはマウスホイール)で下に移動

2つ目のクラス(everything_else など)を「Target Class(ターゲットクラス)」として選択し、サンプルレートを 4096 に設定します。
「Confirm」をクリックします。

データの形状が 1 x {サンプル数} に、サンプルレートが 4096 Hz になっていることを確認します。

次に、データを前処理/セグメント化します。「Action」ボタンから Segment List from Selected を選択します。

補足:

なぜセグメンテーションが必要なのか?
Reality AI Tools で生成されるモデルは、Renesas MCU などのリソース制限された環境で動作することを想定しています。
そのため、リアルタイムで素早く判断するために、数秒〜数分の長いデータではなく、1秒や500msのような短いウィンドウでの予測が求められます。
この目的のため、学習用データをウィンドウ単位に分割してモデルに学習させます。

以下の手順でセグメントリストを作成:

  1. 「Window Length(ウィンドウ長)」を 4096 に設定
  2. 「50%」ボタンをクリックしてオフセットを 50% に設定
  3. 意味のある名前を入力
  4. 「Submit」をクリック

推定サンプル数は収集したデータ量により異なるため、スクリーンショットと一致しなくても問題ありません。

  • Window Length: AI が分類判断に使うデータ長
  • Offset: 新しいウィンドウ作成時に前のウィンドウからどれだけ先に進めるか

一般的には「50% オーバーラップ」が推奨されます。大量のデータがある場合は、オフセットを大きくして重複を減らしても構いません。
モデル確定後のテスト時には、「All Shifts(オフセット=1)」を使って、あらゆる入力パターンを評価するのが一般的です。

セグメントリスト作成後、「AI Explore」→「Classes」に進みます。

補足:

Reality AI Tools では以下の 3 種類の AI モデルが作成可能です:

  • Classes(分類):カテゴリ付きのラベルデータがあるとき(本チュートリアルで使用)
  • Values(回帰):数値(int や float)を予測する場合(例:温度やタイヤ圧など)
  • Anomalies(異常検出):正常データのみを用いたベースラインモデルの作成(半教師あり学習)

作成したリストをクリックし、「Start Exploring」をクリックして特徴抽出とモデル学習を開始します。

Explore が終了したら、最も性能が高いモデル(推奨:feature space = Spectral Magnitude)を選択し、「Create Base Tool」ボタンをクリックします。
各「Explanation」にマウスオーバーするとモデル情報の詳細が表示されます。

補足:

Explore の裏側で行われている処理:

「Start Explore」をクリックすると、Reality AI のアルゴリズムが自動的に特徴量と機械学習モデルを探索します。
最適な分類性能を持つモデルを選び、それぞれの精度とリソース消費をサマリ表示します。

  • Explore は各クラスのサンプル数を均等にしたサブセットを使用
  • 特徴量やアルゴリズムを多数試し、K-Fold クロスバリデーション(K=10)を実行
  • 数百のモデルと特徴量セットが比較され、最良のものが表示される

名前を指定するか、自動生成された名前を使って「Add」をクリックします。

ベースツールの作成が完了すると、アイコンが変わります。

モデルのデプロイ準備が整ったら、以下の手順でパッケージを作成します:

  1. 「Deploy」→「Embedded」をクリック
  2. 「Trained Tool Description」リストからベースツールを選択
  3. 「+ New Package」をクリック

設定画面で必要項目を入力します。
例:「glass_break_lsp_v2」など E2 Studio 側と一致する名前を付けることを推奨。別名にする場合はコードの修正が必要です。

数分でパッケージが生成されます。
10〜15分後にダウンロード可能となるので、右側のダウンロードボタンから zip ファイルを取得します。

アーカイブ内の9ファイルをすべて、E2 Studio プロジェクトの src/realityai ディレクトリに上書きコピーしてください。
※ファイル名はツール内で指定したプロジェクト名によって異なります。

例:モデル関数の呼び出しは glass_break_lsp_v2_model.h に記述されています。

モデルのデプロイとテスト

概要

このセクションでは、作成したモデルをハードウェアにデプロイし、正しく動作するかテストする方法を説明します。

手順

hal_entry.c を開き、作成したモデルのヘッダーファイルをインポートします。
もしデプロイしたモデル名が glass_break_lsp_v2 の場合は変更不要です。
別の名前でデプロイした場合は、37行目を該当のモデルのヘッダーファイルに書き換えてください。

次に、286行目を変更します。glass_break イベントに割り当てたクラス名に置き換えてください。

プロジェクトをビルドしてデバッグします。Resume ボタンを2回クリックして、ボードを推論モードで実行します。

モデルの精度と予測を確認するには、以下の手順で Reality AI Live Monitor を使用します:

  1. Renesas AI → Show View → Reality AI Live Monitor に移動します
    ※その前に Reality AI Data Storage Tool の接続を切断してください

  2. 「Data Connection」をクリックし、ボーレートを 921600、適切な COM ポートを設定

接続に成功すると、ライブのモデル予測結果が表示され始めます

上の図では、「1」が everything_else クラス、「2」が glass_break クラスを示しています。
クラススコア(y軸)が高く表示されるのが優勢クラスです。
YouTube などからガラスの破壊音を再生すると、「2」が x軸上に表示され、オレンジのバーが y軸上に高く現れるはずです。

補足:

モデルの精度が低い場合は?

  • データを追加収集して再学習することで、様々な条件に対応できるモデルに改善できます
  • データ収集方法とテスト方法が一致しているか確認しましょう。条件のバリエーションごとに追加収集するのが効果的です

収集済みデータを用いたボード上でのモデル検証

Reality AI → Hardware In-Loop Test に移動します

推論パッケージ/モデルを選択します。Reality AI Tools アカウントからトレーニング済みモデルを選択してください。Explorer Tier ユーザーは、事前に読み込まれた glass_break_lsp_v1 を選べます。

ボードが接続されていること、正しい COM ポートが選ばれていることを確認し、「Start Test」をクリックします。
この操作により、テスト用プロジェクトが自動生成されます。

Reality AI Tools でトレーニングされたモデルに含まれるシミュレーションデータがダウンロードされ、ハードウェアでテストされます。
テストが始まると、「Inference Time」や「Overall Accuracy」などの情報が表示されます。


ラボ完了

ありがとうございました