究極のエッジ処理!インテリジェントなセンサでシステム効率アップ
エッジ処理を可能にするモーション·センサ
STのMEMSモーション・センサには、2種類の内蔵機能があります。どちらも、センサ内部でデータ処理を実行することで、マイクロコントローラ(マイコン)の負荷を軽減することを主眼としています。その結果、システムの電力消費を抑えられます。STの多くのモーション・センサには、設定可能な内蔵機能(例 : ウェイクアップ、フリーフォール、4方向 / 6方向検出)があります。主にしきい値と期間のパラメータ設定により、これらの機能を調整できます。ただし、その名前が示すとおり、これらの機能はあくまで設定可能なだけであり、独自のデータ処理をプログラミングすることはできません。しかしSTの最近のMEMSモーション・センサには、機械学習コア(MLC)、インテリジェント・センサ処理ユニット(ISPU)、ステート・マシン(FSM)のようなプログラム可能な機能が内蔵されており、独自のデータ処理をセンサ内で実行する3つのアプローチに対応しています。
- 標準アプローチ : センサが提供する生データをマイコンが読み込み、マイコンが処理を実行します。
- プログラム可能なロジック・アプローチ : 特定の処理モデルを活用し、消費電力の最小化を目指します。割込み信号が発行されると、マイコンがモデルの結果を、また可能な場合は生データを読み込みます。
- 完全にプログラム可能なDSPアプローチ : 任意のカスタム・コード(演算およびコンパイラの制限を考慮)をセンサ内部で実行します。マイコンはセンサから出力された処理済みデータを読み込みます。
一般的には、プログラム可能なロジック・アプローチ、または完全にプログラム可能なDSPアプローチを活用すれば、以下のメリットがあります。
- マイコン内部で同一の機能を実行する場合と比べ、内蔵機能の消費電力を低減
- センサからのデータ読み込みは、割り込みがトリガされるイベントに限定可能 → そのほかの時間には、マイコンはSLEEPモードを維持
- センサとマイコン間のI²C/SPIバス上のトラフィックが減少
- マイコンのオフロード : 処理時間を別の目的に使用できる。また、より安価なマイコンの選択可
シンプル & スピーディ!機械学習コアをすぐに活用できる無償ツール
STのMLC内蔵モーション・センサを使えば、独自に機械学習アルゴリズムを作成し、アプリケーションに応じて最適なディシジョン·ツリーを構築することができます。STではログ・データの収集からディシジョン·ツリーの生成までをシンプルかつスピーディに実施できるGUI(Unico-GUI)を無償で提供しています。STのGUIを使えば、わずか5ステップでMLCを使ったIoT端末を開発することが可能です。プログラミングなどの作業は不要です。
動画で解説: 15分で作成可能!電子ペンのモーション検出
わずか15分でディシジョン・ツリーを作成する具体的な手順
インテリジェント・センサ処理ユニット内蔵のMEMSセンサが新登場
AIアルゴリズムの実行およびセンサの信号処理に最適化されたデジタル・シグナル・プロセッサ(DSP)とMEMSセンサを1チップに集積したISPU内蔵MEMSセンサが新たに製品ラインアップに加わりました。
MLCが機械学習により構築したディシジョン·ツリーによる分類を行うのに対し、ISPUは信号処理とAI技術を使用してモーション·データを高効率に分析するように設計されており、メインプロセッサを使用せずにセンサ内でニューラル·ネットワークなどの高度なAIアルゴリズムを実行します。さらに、センサのキャリブレーション·プログラムや、センサ·データの前処理を実行することも可能です。
メイン·システムを起動せずにAIアルゴリズムやセンサ·データの前処理をセンサ側で実行できるため、既存のエッジAIと比べて最大80%の消費電流を削減できる可能性があります。
関連情報
機械学習コア(MLC)関連情報
ハードウェア
• プロフェッショナルMEMSツール マザーボード STEVAL-MKI109V3
• ISM330DHCX(産業機器向け6軸IMU)アダプタ・ボード STEVAL-MKI207V1
• IIS2ICLX(高精度傾斜計)アダプタ・ボード STEVAL-MKI209V1K
• LSM6DSV16X(6軸IMU)アダプタ・ボード STEVAL-MKI227KA
• LSM6DSV16BX(骨伝導マイク対応6軸IMU)アダプタ・ボード STEVAL-MKI234KA、STEVAL-MKI237KA
• LIS2DUX12 (3軸加速度センサ)アダプタ・ボード STEVAL-MKI238A
• LIS2DUXS12(3軸加速度センサ)アダプタ・ボード STEVAL-MKI235KA
• ASM330LHHX(車載グレード6軸IMU)アダプタ・ボード STEVAL-MKI212V1
ソフトウェア
• Linux / Mac OS X / Windows用MEMSセンサ評価キット・ソフトウェア・パッケージ Unico-GUI
• Unico-GUIユーザ·マニュアル
関連リソース
• MEMSセンサによる機械学習システム用開発エコシステム
• The ST blog
ISPU関連情報
ハードウェア
• プロフェッショナルMEMSツール マザーボード STEVAL-MKI109V3
• LSM6DSO16IS(6軸IMU) LSM6DSOIS
• ISM330IS(6軸IMU) ISM330IS
ソフトウェア
• Linux / Mac OS X / Windows用MEMSセンサ評価キット・ソフトウェア・パッケージ Unico-GUI
• ISPU用ツール·チェーン ISPU-Toolchain
• STM32Cube用センサ·ソフトウェア拡張パッケージ X-CUBE-ISPU
• NanoEdgeAI Studio
関連リソース
• オンライフ時代のMEMSセンサ:エッジAIを実現
• 知性を持ったセンサでエッジAIを!インテリジェント・センサ処理ユニット(技術ドキュメント)
行動分類などに最適!機械学習コア
機械学習コア(Machine Learning Core、以下MLC)は、設定可能なパラメータのセット(特徴量とも呼ばれる)とディシジョン・ツリーで構成されています。ディシジョン・ツリーは、内部ノードとリーフという2種類のノードで構成された二分木の形で表されます。ディシジョン・ツリーの内部ノードは、子ノードを持つノードとなっています。MLC内部のディシジョン・ツリーは二分木であるため、子ノードの数は2つです。内部ノードはディシジョン・ツリーの一部を表しており、生センサ・データから計算された統計的パラメータがしきい値(if-then-else)と比較され、これをもとに次の方向(真または偽)が選択されます。ディシジョン・ツリーのリーフ・ノードは、子ノードを持たないノードで、ユーザ定義クラスの1つ(結果)を含んでいます。加速度センサのデータのみを使用したアクティブ / 非アクティブ検出例に関するディシジョン・ツリーの簡単な説明については、以下の図をご覧ください。
ディシジョン・ツリーの内部ノード内でしきい値と比較される統計的パラメータは、使用可能なセンサ・データ(内部データおよび外部データ(センサ・ハブが使用できる場合)の両方)の中から、定義された時間枠内にユーザが選択した平均や分散などのパラメータです。
ユーザが選択したパラメータは、ディシジョン・ツリーのトレーニング中に評価されます。トレーニング後、統計的に関連性のあるパラメータのみが最終的なディシジョン・ツリーに含められます。
MLC機能を使用する場合は、教師あり学習アプローチを使用する必要があります。これには、以下の手順が含まれます。
- 認識するクラスを定義し、それと同時に可能なあらゆるオプションを網羅
- クラスごとに十分な量のトレーニング・データのログを取得
- クラスごとに異なるパラメータを選択(このプロセスは、初回に最も適したパラメータを見つけられる保証がないため、反復プロセスとなる場合もあります)
- 関連するソフトウェア・ツールを使用してディシジョン・ツリーを作成
- トレーニング済みのディシジョン・ツリーをセンサに読み込める設定ファイルに変換
STのMEMS評価ソフトウェア・パッケージ「Unico-GUI」には、データ・ログのラベリングからセンサ用の設定ファイルの作成に至るまで、ディシジョン・ツリーの全作成プロセスをサポートするMLCツールが含まれています。
適切なアプリケーションとしては、観察に基づくパターン検索を伴う、帰納的アプローチに従って実行できるアプリケーションが挙げられます。こうしたアプリケーションには、行動認識、フィットネス活動認識、モーション強度検出、振動強度検出、運搬ポジション認識、コンテキスト認識などが含まれます。
MLC対応センサの詳細については、st.com/MLCまたはSTのMLC GitHubリポジトリをご覧ください。MLCリポジトリには、各種のセンサで評価可能なアプリケーション例および設定ファイルのほか、ディシジョン・ツリーの作成プロセスをガイドするSTのさまざまなハードウェアやソフトウェア・ツールが含まれています。主要ソフトウェアは、MLCの開発専用ツールであるUnico-GUIです。作成したMLC設定を評価する際は、使用する評価ハードウェアに応じて、Unico-GUIまたはAlgoBuilderとUnicleo-GUIのいずれかを使用できます。
技術ドキュメント : ディシジョン・ツリー開発のヒント
さまざまなメリットを持つエッジでの機械学習ですが、標準的なプログラミングの方法論とはアプローチが大きく異なるため、機械学習の応用に興味があっても、開発が難しいのではと二の足を踏む人も多いのではないでしょうか。
この技術ドキュメントでは、機械学習プロジェクトの開発ステップ、開発の要所、STが提供する機械学習コア内蔵MEMSセンサの活用メリットに加え、ディシジョン・ツリー開発のヒントについて詳細に解説しています。
動画で解説: 15分で作成可能!電子ペンのモーション検出
この動画では、STマイクロエレクトロニクスの機械学習コア内蔵6軸モーション・センサを使用して、簡単なステップで機械学習コアを利用する実際の手順を、電子ペンの状態認識を例に紹介しています。
プロフェッショナルMEMSボード「STEVAL-MKI109V3」とアダプタ・ボード「STEVAL-MKI-197V1」、開発ソフトウェア「Unico-GUI」を使用すれば、わずか15分でディシジョン・ツリーを作成し、初期評価に着手することができます。
機械学習コア 応用例
MLCはさまざまな動作を判定することができます。その一部の動作確認が可能なMLC用サンプル設定ファイルをGitHubよりダウンロードできます。設定ファイルをMLC内蔵MEMSセンサに書き込むだけで、下記の動作判定が可能です。
MLCを用いた特定モーション分類用ディシジョン·ツリー
- 行動認識判定(携帯電話向け)
- アクティビティ判定(スマート·ウォッチ向け)
- リスト·チルト
- 手洗い判定
- ヘッド·モーション検出
- 振動判定、故障検出
- ピックアップ
- ジム·アクティビティ判定
- 動きレベル判定
MLC内蔵MEMSセンサ製品
アプリケーション | 製品名 |
コンスーマ機器用 | LSM6DSOX、LSM6DSO32X、LSM6DSRX、LSM6DSV16X、LSM6DSV16BX、LIS2DUX12、LIS2DUXS12 |
産業機器用 | ISM330DHCX、IIS2ICLX |
車載用 | ASM330LHHX |
関連リソース
柔軟なプログラムが可能!インテリジェント·センサ処理ユニット
小型で超低消費電力かつ高性能なプログラム可能なコアであるインテリジェント・センサ処理ユニット(ISPU)は、STが開発した独自のアーキテクチャをベースとしています。ISPUは、最大30個の個別ユーザ定義アルゴリズムを使用し、内部データ(加速度センサ、ジャイロセンサ、温度)および外部データ(センサ・ハブを介して外部センサと接続)の両方を処理できます。これらのアルゴリズムは、新しいデータ群がサンプリングされるたびに、アルゴリズム29からアルゴリズム0の順に実行されます。ISPUは、コード用の32KBおよび変数データ用の8KBの2つの個別RAMでサポートされており、クロックは5MHzまたは10MHzのいずれかで稼働するよう設定可能です。
下図では、データ処理に加え、センサとマイクロコントローラや外部センサとの接続について説明しています。
ISPUは、ISPUツールチェーンでコンパイル可能なC言語アルゴリズムを実行できます。また、NanoEdge™ AI Studioを使用し、異常検出ライブラリを生成できます(ISM330ISN向け)。X-CUBE-ISPUソフトウェア・パッケージには、評価可能な例(補正アルゴリズム、センサ・フュージョン、手首動作検知など)のほか、新しいカスタム内蔵機能に使用する空のテンプレート・プロジェクト、異常検出プロジェクトの統合例、そしてUnicleoと連携して使用するデータ・ログ・ファームウェアが含まれています。X-CUBE-ISPUパッケージは、STのウェブサイトまたはSTのGitHubページから入手可能です。ISPUツールチェーンでコンパイルされるISPU設定ファイルを評価する際は、選択した評価ハードウェアに対応するAlgoBuilderとUnicleo-GUIを使用できます。
ISPUセンサ・ファミリの詳細については、st.com/ISPUをご覧ください。
技術ドキュメント : 知性を持ったセンサでエッジAIを!インテリジェント・センサ処理ユニット
「オフライン時代」から「オンライン時代」へと移行する過程で、社会や日常生活とテクノロジーの融合が進み始めています。オンライン・エッジ・ベースのアプリケーションにAIを組み込むことで、新たな使用事例が数多く生まれ、高帯域幅での常時接続が求められるというシステム要件が解消されました。センサはますますスタンドアロン化し、常時接続しておかなくても、独立して検知、処理、行動できるようになりました。
この技術ドキュメントでは、オンライン・エッジ・ベースのアプリケーションにAIを組み込む際の技術的な課題について考察し、次に、ISPUの導入を簡略化する最適化されたプログラミング手法について解説します。ニューラル・ネットワーク・アルゴリズムの処理に最適かつ高効率なSTのISPUソリューションは、エッジAIアプリケーションに最適です。
動画で解説: インテリジェント・センサ処理ユニット内蔵MEMSセンサでエッジAIを加速!
STは、AIをIoTエッジのマイコンから、さらに末端のセンサに広げるためのさまざまなソリューションを提供しています。この動画では、モーション・データのAI処理に最適化されたインテリジェント・センサ処理ユニット(ISPU)を内蔵したSTの最新MEMSモーション・センサの機能や性能、開発エコシステムについて解説します。
ISPU応用例
STのISPU内蔵MEMSセンサを使えば、独自のCソースコードで記述されたプログラムをISPU内で高効率に実行·演算することができ、高度なAIアルゴリズムの実行を低消費で実行することが可能です。
ISPUで実行できるライブラリには、下図のような信号処理およびAIアルゴリズムが含まれており、そのサンプル・ライブラリをGitHubからダウンロードすれば、すぐに動作確認ができます。なお、NanoEdge™ AI StudioはISPUに対応しており、簡単に独自のAIアルゴリズムを作成することができます。
ISPUライブラリを活用した低消費電力サンプル·アプリケーション
- 落下検知
- アクティビティ認識
- 手首の回転
- 異常値検出
- 6軸 / 9軸センサ·フュージョン
- CRCセキュリティ
- IIRフィルタ
- 加速度センサ·キャリブレーション
- ジャイロセンサ·キャリブレーション
- 地磁気センサ·キャリブレーション
ジェスチャ·パターンを認識!ステート·マシン
ステート・マシンとは、ステート間を固有の形で遷移する有限数のステートで構成された動作モデルのことで、内部データと外部データ(センサ・ハブを使用できる場合)の両方を処理できるフロー・チャートに似ています。ステートには、「リセット / 継続(RNC)」と「コマンド(CMD)」の2種類があります。RNCタイプのステートは、2つの条件で構成されており、一方はステート・マシンのリセットに、もう一方はプログラム・フローの継続に使用されます。RNCステートの詳細を以下の図に示します。
まずリセット条件が評価されます。結果が真の場合、ステート・マシンがリセットされます。それ以外の場合には継続条件が評価されます。継続条件が満たされた場合、フローは次のステートに移行します。それ以外の場合には次のサンプルが到着するまでフローが一時停止し、新しいサンプルで評価(リセットおよび継続条件の両方)が行われます。
RNCステート・タイプに対する条件の例としては、操作なし、タイマ、しきい値との比較などが挙げられます。2番目のタイプのステート(CMD)では、コマンドが実行され、フロー制御と出力に関するプログラムの動作が変更されます。
コマンドの例としては、停止実行、リセット・ポインタの設定 / リセットなどが挙げられます。エンド・ステートに到達するか、一部の特定のコマンドが実行されると、FSMの割込み信号が生成されます。複数のステート・マシンを同時に実行できます。
下図では、加速度センサのデータをベースとする単純なウェイクアップの例を示しています。
ステート・マシン・アプローチは、ユーザ定義のジェスチャ・パターンを認識しなければならないアプリケーションに最適です。
FSMを内蔵したSTの最新センサには、自己構成機能(ASC)が含まれています。つまり、FSMの割り込みを使用して、デバイス設定の変更(ODR、FS、BW、パワー・モード、FIFOなど)をトリガできるので、マイクロコントローラをSLEEPモードのまま維持できます。
通常のステート・マシン
- 通常のステート・マシンはセンサ自身の設定変更は不可
- マイコンが電流を消費しながらセンサ設定の変更要
ASC機能付きステート・マシン
- ASC内蔵のステート・マシンの場合、ODRやパワー・モードなどのセンサ自身の設定変更は可能
- マイコンはスリープ状態のまま復帰する必要が無く、システム全体の消費電流を抑制
ステート・マシンの機能の詳細については、STのGitHubリポジトリをご覧ください。このリポジトリには、アプリケーション例や設定例が含まれています。アプリケーション例は、さまざまなセンサに利用でき、センサにアップロードすることで即時に評価できます。設定例には主に、STが提供するさまざまなツールを使用して自身のステート・マシンを設定し、評価するための情報が含まれています。主要ソフトウェアは、FSMの開発専用のツールを提供するUnico-GUIです。作成したFSM設定を評価する際は、使用する評価ハードウェアに応じて、Unico-GUIまたはAlgoBuilderとUnicleo-GUIのいずれかを使用できます。
FSM 応用例
FSMを用いて最も少ない電力で、その一部の例を直感的に動作確認ができるよう、FSM用のサンプル設定ファイルをGitHubよりダウンロードできます。
下記に示したいくつかの動作判定が行える設定ファイルをGitHubよりダウンロードし、FSM内蔵のセンサに書き込むだけで、すぐにその動作確認ができます。
FSMモーション判定用ライブラリ
アプリケーション
- リスト·チルト
- 自由落下
- フリップ·アップ / ダウン
- ウェイクアップ
- 動 / 不動判定
- ピックアップ
- 4D
- シェイク
- グランス
利点
- 高効率(演算能力 vs 消費電流)
- 柔軟なプログラマビリティ
- 動作検知を行うためのライブラリ例が公開
FSM内蔵MEMSセンサ製品
アプリケーション | 製品名 |
コンスーマ機器用 | LSM6DSO、LSM6DSOX、LSM6DSO32、LSM6DSO32X、LSM6DSR、LSM6DSRX、LSM6DSV、LSM6DSV16X、LSM6DSV16BX、LIS2DUX12、LIS2DUXS12 |
産業機器用 | ISM330DHCX、IIS2ICLX |
車載用 | ASM330LHHX |