家電や産業機器、ウェアラブル機器などの組込み機器に「AI」を搭載したい、そう考えたことはありませんか?
これまで機械学習の推論処理には高性能なプロセッサーやクラウドが必要と考えられてきましたが、最近ではモデルの軽量化と専用ハードウェアの進化により、低コストなマイコン上でもAI推論を実行できるようになっています。
Texas Instruments社(以下TI社)は、Arm Cortex-M0+ コアを採用した MSPM0 マイコンに、AI推論専用の TinyEngine NPU(ニューラル プロセッシング ユニット)を内蔵した MSPM0G5187 を展開しています。
本記事では、MSPM0 の概要と TinyEngine NPU の特長を整理したうえで、MSPM0-SDK で公開されているSDKデモから「波形分類」「手書き数字認識」「在室者識別」の3つを、モデル構成や性能データとあわせてご紹介します。
TI社の汎用マイコン MSPM0 とは
低コスト・小型・アナログ統合が特長の Arm Cortex-M0+ マイコン
MSPM0 は、TI社が展開している Arm Cortex-M0+ コア搭載の32ビット汎用マイコンファミリーです。
動作周波数は24MHz、32MHz、80MHzのラインナップがあり、低価格帯の製品も揃っているため、さまざまな機器に採用しやすい製品群です。
MSPM0 の大きな特長は、マイコン内部にアナログ機能を統合している点です。ゼロドリフトのオペアンプ、コンパレーター、12ビットA/Dコンバーターといったアナログ周辺回路を内蔵した製品があり、センサー信号の取り込みから処理までを1チップで完結させやすく、外付け部品の削減と基板の小型化に貢献します。
幅広いパッケージとピン互換のラインナップ
MSPM0 は8ピンから100ピンまで幅広いパッケージを用意しています。パッケージやメモリー容量の異なる製品間でピン互換性を確保し、ソフトウェアも共通で使えるよう設計されているため、製品の機能追加やコストダウンに合わせてデバイスを柔軟に変更できます。
こうした MSPM0 ファミリーの中で、AI推論専用の TinyEngine NPU を内蔵した製品が次章以降でご紹介する MSPM0G5187(80MHz、Flash 128KB、SRAM 32KB)です。
なぜ今、マイコンでの Edge AI が注目されているのか
ルールベースの処理では対応しきれない課題が増えている
センサー信号から「人が動いたのか」「異常が起きたのか」を判断する処理は、従来、しきい値や条件分岐を組み合わせたルールベースのコードで実装されてきました。
しかし、入力パターンが多様になるほど条件は複雑化し、誤検知の増加やチューニング工数の増大を招きます。
データから特徴を学習する機械学習モデルなら、こうした多様な入力にも柔軟に対応できます。
直感的なユーザー入力へのニーズ
ボタンやスイッチに代わり、手書き文字のような直感的な入力方法へのニーズも高まっています。
こうした入力は人によるばらつきが大きくルールベースでの判定が難しいため、機械学習の活用が有効です。
マイコン上での推論がもたらすメリット
推論をマイコン上で完結させれば、リアルタイムな応答と低消費電力を両立できます。
特にバッテリー駆動の機器や常時動作が求められる検出用途では、推論レイテンシーと消費電力が製品価値を大きく左右します。
MSPM0G5187 の TinyEngine NPU とは
MSPM0G5187 に内蔵された TinyEngine NPU は、畳み込みニューラルネットワーク(CNN)の演算に最適化されたAIアクセラレーターで、80MHz動作時に2.56GOPS(毎秒25億6,000万回の演算)の性能を備えています。重みは8ビット、4ビット、2ビットに対応しており、モデルを量子化して小さくすることでメモリー使用量を抑えられます。
Arm Cortex-M0+ は小型・低消費電力を重視したシンプルなコアで、浮動小数点演算ユニット(FPU)やDSP拡張命令を備えていません。そのため、大量の積和演算を必要とするニューラルネットワークの推論はCPUだけでは負荷が大きく、専用のNPUを内蔵したことの意義は大きいといえます。
CNN の演算をCPUからNPUにオフロードすることで、推論の処理時間と消費電力を削減できます。次章でご紹介する3つのデモは、いずれも TinyEngine NPU を使って推論を実行しています。
このほか MSPM0G5187 は、最大26チャネルの12ビット1.6Msps A/Dコンバーター、マイクなどの接続に使えるI2S対応のデジタルオーディオインターフェース、USB 2.0 フルスピード、AES暗号アクセラレーターを搭載しており、センサー信号の取り込みからAI推論、結果の通信までを1チップで構成できます。
引用元:Texas Instruments, MSPM0G5187 製品ページ https://www.ti.com/product/MSPM0G5187
MSPM0G5187 で試せる Edge AI デモ事例3選
ここからは、MSPM0-SDK で公開されている3つのSDKデモをご紹介します。いずれも入力データを複数のクラスに分類する「分類タスク」の事例です。
INT8 に量子化したCNNモデルを用い、Flash 数十KB、RAM 数KB~十数KBという小さなメモリーで動作する点に注目してください。
事例1:波形分類(SDKデモ)
「のこぎり波」「正弦波」「矩形波」の3種類の波形信号を分類するデモです。ファンクションジェネレーターから入力した波形をA/Dコンバーターで取り込み、特徴量を抽出して MSPM0G5187 の TinyEngine NPU で推論し、判定結果をLEDの色で表示します。
シンプルな題材ですが、モーター電流や振動の波形で学習し直せば、故障監視や異常検知にも応用できます。
TI社の公開データでは、精度100%、NPU実行時の推論レイテンシー5.84ms、平均推論消費エネルギー412.90µJという結果が示されています。同じモデルをCPUで実行するサンプルでは推論レイテンシーが54.06msとされており、NPUにより約9分の1に短縮されています。
波形分類 AIモデル情報
|
項目 |
値 |
|
モデル構成 |
CNN |
|
パラメーター数 |
14,124 |
|
入力形状 |
Tensor [(1, 1, 128, 1)] |
|
出力クラス |
3(Sawtooth、Sine、Square) |
|
量子化 |
INT8 |
波形分類 Edge AI ソリューションの性能
|
指標 |
値 |
|
精度 |
100% |
|
Flash使用量 |
21.5KB |
|
RAM使用量 |
3.3KB |
|
推論レイテンシー(NPU) |
5.84ms |
|
推論消費エネルギー(平均) |
412.90µJ |
引用元:Texas Instruments, SDAA429 https://www.ti.com/lit/pdf/sdaa429 / MSPM0-SDK waveform_classifier_ai README(CPU実行時の推論レイテンシー) https://github.com/TexasInstruments/mspm0-sdk/tree/main/examples/nortos/LP_MSPM0G5187/edgeAI/waveform_classifier_ai
事例2:手書き数字認識(SDKデモ)
学習に用いる MNIST データセットの例
引用元:Texas Instruments, Digit recognition with TI's microcontrollers (MCUs) https://www.ti.com/technologies/edge-ai/use-cases/character-recognition-with-edge-ai.html
手書き数字認識デモのGUI(認識結果、推論時間、各数字の分類確率を表示)
引用元:Texas Instruments, Digit recognition with TI's microcontrollers (MCUs) https://www.ti.com/technologies/edge-ai/use-cases/character-recognition-with-edge-ai.html
想定アプリケーションとしては、産業用IoTにおける銘板・ラベル・在庫タグの自動読み取りや、アナログメーターの読み値のリアルタイムなデジタル化などが挙げられます。
手書き数字認識 AIモデル情報
|
項目 |
値 |
|
モデル構成 |
CNN |
|
パラメーター数 |
60,000 |
|
入力形状 |
(1, 28, 28) |
|
出力クラス |
10 |
|
量子化 |
INT8 |
手書き数字認識 Edge AI ソリューションの性能
|
指標 |
値 |
|
精度 |
約99% |
|
Flash使用量 |
73KB |
|
RAM使用量 |
10.9KB |
|
推論レイテンシー(NPU) |
6.05ms |
引用元:Texas Instruments, SDAA429 https://www.ti.com/lit/pdf/sdaa429
事例3:在室者識別(SDKデモ)
PIR(焦電型赤外線)センサーは、温度(赤外線スペクトル)の変化を捉えて人の存在や動きを検出するセンサーです。本デモでは、1個のPIRセンサーの信号から動きの種類を「人の動き」「背景の動き」「犬の動き」の3クラスに分類する軽量な機械学習モデルを、MSPM0G5187 の TinyEngine NPU で実行します。
PIR(焦電型赤外線)センサーによる検知の図
引用元:Texas Instruments, PIR based building security https://www.ti.com/ja-jp/technologies/edge-ai/use-cases/motion-detection-pir-building-security
従来のPIRセンサーによる検出では、人以外の動きによる誤報が課題でした。自社でデータを収集・ラベル付け・学習してモデルを作成すれば、1個のPIRセンサーだけで人とそれ以外の動きを見分けられ、誤検知を低減できます。
TI社は、学習データが実環境のばらつきを十分に含んでいるかを確認するために、適合度(GoF:Goodness of Fit)評価を用いています。図の左は人と人以外の動きが重なる領域が残る品質の低いデータの例、右は時間的尖度や支配的周波数といった特徴量の抽出によって、人・犬・それ以外の動きがきれいに分離された例です。データの質と前処理がモデルの精度を左右することが分かります。
データの収集には、PIRセンサーをはじめ各種センサーを搭載した Edge AI Sensor BoosterPack を利用できます。想定アプリケーションとしては、スマートホームなどのビルディングオートメーションや、人の接近を検知したディスプレイのウェイクアップなどが挙げられます。PIRセンサーとマイコン1個という最小限の構成で誤報を減らせるため、既存の人感センサー製品の付加価値向上にもつなげられます。
GoF評価による学習データの品質確認(左:人と人以外の動きが重なる品質の低いデータの例、右:特徴量抽出により各クラスが分離された例)
Texas Instruments, Multi-class motion detection for PIR based building security https://www.ti.com/technologies/edge-ai/use-cases/motion-detection-pir-building-security.html
在室者識別 AIモデル情報
|
項目 |
値 |
|
モデル構成 |
CNN |
|
パラメーター数 |
約53,000以上 |
|
入力形状 |
Tensor[(1, 1, 25, 25)] |
|
出力クラス |
3(Human Motion、Background Motion、Dog Motion) |
|
量子化 |
INT8 |
在室者識別 Edge AI ソリューションの性能(LP-MSPM0G5187で測定)
|
指標 |
値 |
|
精度(R square) |
約92.46 |
|
Flash使用量 |
64.1KB |
|
RAM使用量 |
10.4KB |
|
推論レイテンシー(NPU) |
5.25ms |
引用元:Texas Instruments, MSPM0-SDK pir_detection_ai_npu README https://github.com/TexasInstruments/mspm0-sdk/tree/main/examples/nortos/LP_MSPM0G5187/edgeAI/pir_detection_ai_npu
事例の性能まとめ
3つのデモの性能を一覧にまとめました。いずれも100KB未満のFlashと11KB以下のRAMで、10ms未満の推論を実現しています。
MSPM0G5187 のメモリー(Flash 128KB、SRAM 32KB)に対して余裕があり、センサー制御や通信などアプリケーション本体の処理と同居させやすい規模です。
MSPM0G5187 による Edge AI 事例の性能一覧(各出典の公開値)
|
アプリケーション |
モデル |
Flash |
RAM |
推論レイテンシー |
|
波形分類 |
CNN(14,124) |
21.5KB |
3.3KB |
5.84ms |
|
手書き数字認識 |
CNN(60,000) |
73KB |
10.9KB |
6.05ms |
|
在室者識別 |
CNN(約53k) |
64.1KB |
10.4KB |
5.25ms |
MSPM0 で Edge AI を始めるには
本記事でご紹介した3つの事例は、MSPM0-SDK のサンプルプロジェクト(waveform_classifier_ai_npu、character_recognition_npu、pir_detection_ai_npu)として公開されており、評価ボード LP-MSPM0G5187 ですぐに試せます。
MSPM0-SDK には、このほかにもモーターの故障検出やアーク故障検出、ウェイクワード検出など、多数の Edge AI サンプルが用意されています。
開発ツール「Edge AI Studio」でモデル作成から実装まで
SDKデモで評価した後、自社のデータで Edge AI を開発する際に役立つのが、TI社の開発ツール「Edge AI Studio」です。統合開発環境 CCStudio のエコシステムの一部で、プロセッサー、マイコン、無線デバイス、レーダーセンサー向けのGUIツールとコマンドラインツールで構成されています。TinyEngine NPU 搭載デバイスだけでなく、専用アクセラレーターを持たないデバイスにも対応しています。
GUI上では、データの収集とアノテーション(ラベル付け)、モデルの学習、評価ボードへのデプロイまでを一貫しておこなえます。TI Model Zoo に用意された最適化済みの学習済みモデルを選び、自社で集めたデータで再学習(BYOD:Bring Your Own Data)させることで、精度と性能を高められます。モデルを一から設計しなくても、センサーデータを用意するところから Edge AI に取り組める点が大きな魅力です。
マイコン向け最新版(v1.8.0)では、モデルの量子化(2/4/8ビットまたは自動混合精度)や学習結果の比較などの機能も追加されています。クラウド版とデスクトップ版(Windows/Linux)があり、MSPM0G5187 の LaunchPad 評価ボード(LP-MSPM0G5187)にも対応しています。
引用元:Texas Instruments, EDGE-AI-STUDIO https://www.ti.com/tool/EDGE-AI-STUDIO
まとめ
低コストな Arm Cortex-M0+ マイコン MSPM0 の中でも、TinyEngine NPU を内蔵した MSPM0G5187 なら、これまで高性能なプロセッサーが必要と考えられてきたAI推論をマイコン上で実行できます。
本記事でご紹介した波形分類、手書き数字認識、在室者識別の3つのデモは、いずれも100KB未満のFlashと11KB以下のRAMで、10ms未満の推論を実現しています。まずは MSPM0-SDK のデモを評価ボードで動かし、Edge AI Studio を使って自社のデータでモデルを作成するところから、MSPM0G5187 による Edge AI を始めてみてはいかがでしょうか。
お問い合わせはこちら
本記事でご紹介した製品や、MSPM0 マイコンによる Edge AI の評価・実装に関するご質問・ご相談は、下記よりお気軽にお問い合わせください。
TIアナログ製品カタログ
TI社製品を検討されるお客様が適切な製品を選べるよう、特に種類の多いアナログ製品にフォーカスした当社オリジナルカタログをご用意しています。
リンク先よりダウンロードしてご活用ください。