STM32マイコンではじめる組込みAI ~開発ツールの実演~ ·...
Transcript of STM32マイコンではじめる組込みAI ~開発ツールの実演~ ·...
STM32マイコンではじめる組込みAI
~開発ツールの実演~
IAR DevCon Tokyo 2019
2019年10月29日(火)
塩川 暁彦
STマイクロエレクトロ二クス株式会社マイクロコントローラ & デジタル製品グループ
目次
• IoT端末の可能性を広げる組込みAI
• 組込みAI概要
• 組込みAI実現のステップ
• STが用意する組込みAI開発環境のご紹介
• 組込みAI開発ツールのデモ実演
• まとめ
2
IoT端末の可能性を広げる組込みAI
3
IoTが直面する課題 4
IoT端末 クラウドゲートウェイ
通信量:大通信費:高
通信電力:大 負荷:高使用料:高
センサの生データ センサの生データ
AI(人工知能)などによる処理は全てクラウド
センサ・データのアップロードのみ
組込みAIで変わるIoT 5
IoT端末 クラウドゲートウェイ
アップロードするデータサイズを大幅縮小
処理を分散
通信電力:小負荷:中使用料:中
通信量:小通信費:安
前処理済データ 前処理済データ
組込みAI概要
組込みAIとは? 7
AIの推論アルゴリズムを組込みアプリケーションに入れ込んだもの
• 特徴
• 専用ハードウェアは不要、汎用マイコンで動作
• クラウドでの処理やサーバ / GPUは不要
• ネットワーク接続なしでスタンドアロン動作
組込みAIができること
• AIの推論アルゴリズムの実行
• センサ・データから特定の波形パターンを認識
• 低解像度の静止画認識
• 低解像度・低フレームレートの動画認識
• 音データからの状況認識
• 音声から特定のキーワードを認識
など…
8
組込み機器への入力信号/データについての
判断や理解
組込みAI対応マイコン STM32 9
幅広い選択肢 / シリーズを超えた互換性 / STの組込みAI開発ツールでサポート
超低消費電力
メインストリーム
Cortex-M4 Cortex-M7
ハイパフォーマンス
ワイヤレス
CPU
Cortex-M4/M0+
デュアルコア
Cortex-M33 Cortex-A7
マイクロプロセッサ
全シリーズ長期供給保証
デュアルCortex-A7
+ Cortex-M4
動作時:31uA/MHz
スタンバイ時:440nA**:内蔵SRAM 16KB保持 + RTC動作
組込みAIのメリット 10
• 専用ハードウェアは不要、汎用マイコンで動作
• クラウドでの処理やサーバ/GPU
は不要
特徴
• 低消費電力のマイコンで長時間のバッテリ駆動• マイコンのみで低コスト• 組込みシステムのため小型• サーバ / GPUが使えない過酷な環境でも仕様可
メリット
• ネットワーク接続なしでスタンドアロン動作
• 膨大な生データを送る通信(有線、Wi-Fi、LTEなど)が不要
• ネットワーク遅延が発生せず高速応答• ネットワークやクラウド負荷を削減• 生データをネットワークへアップロードしないためプライバシー確保やセキュリティ・リスクが低減
・・・
・・・
組込みAI実現のステップ
組込みAI実現のステップ 12
2
学習用データのラベリング
5
学習済みNNによるSTM32での処理 & 分析
1
学習用データ収集
4
学習済みNNをSTM32用コードへ変換
3
NNモデルの学習
ニューラル・ネットワーク(NN)モデル作成 STM32への実装
ステップ1学習用データ収集
13
• ニューラル・ネットワークを学習させるための学習用データを集める
1
学習用データ収集 例:手書き文字を認識させるなら手書き文字の画像データを用意
ステップ2学習用データのラベリング
14
2
学習用データのラベリング
• 学習用データが何であるかのラベルを付ける(教師あり学習の場合)
例:手書き文字を認識させるなら手書き文字の画像データ一つひとつに名前をラベリング
“0”
“1”
“2”
“3”
“4”
“5”
“6”
“7”
“8”
“9”
ステップ3NNモデルの学習
15
3
NNモデルの学習
• ニューラル・ネットワークを学習用データで学習させ、各層での計算に使われるパラメータを調整
①学習用データ入力
②出力結果を学習用データのラベルと比較
③各層のパラメータを調整
④ ①→②→③を繰り返し行い、パラメータを最適化
ステップ4学習済みNNをSTM32用コードへ変換
16
• ニューラル・ネットワークのコードをマイコン向けコードに変換
4
学習済みNNをSTM32用コードへ変換
学習済みニューラル・ネットワーク
変換が必要な理由・通常、ニューラル・ネットワークにはPythonというプログラミング言語を使用・ニューラル・ネットワークの実行のために必要なROM / RAMサイズが大きい
ステップ5学習済みNNによるSTM32での処理&分析
17
• 変換された学習済みニューラルネットワークの分析
分析の内容・変換後のニューラル・ネットワークモデルの規模・変換後のROMおよびRAMの使用量・変換後のエラー率
5
学習済みNNによるSTM32での処理 & 分析
STM32での処理(推論の実行)
STがカバーする組込みAIステップ 18
学習済みNNをSTM32用コードへ変換
学習用データ収集学習済みNNによる
STM32での処理 & 分析
学習用データのラベリング
各ステップに対応するソフトウェア開発環境 19
学習済みNNをSTM32用コードへ変換
学習用データ収集学習済みNNによる
STM32での処理 & 分析
学習用データのラベリング
FP-AI-SENSING1
FP-AI-SENSING1
FP-AI-VISION1
FP-AI-SENSING1
STM32Cube.AI
STM32Cube.AI
STが用意する組込みAI開発環境のご紹介
マイコン用NNコード生成ツールSTM32Cube.AI = STM32CubeMX + X-CUBE-AI
21
ディープラーニング・フレームワーク毎に異なる学習済みニューラル・ネットワークをSTM32Cube.AI変換ツールに入力
簡単にSTM32に最適化されたライブラリに自動コード変換
最先端の各種ディープラーニング・フレームワークとの相互運用性を持ったSTM32Cube.AI
学習済みNNによるSTM32での処理 & 分析
学習済みNNをSTM32用コードへ変換
NNモデルの学習
*: TensorFlowバックエンドと組み合わせて使用
*
X-CUBE-AI 概要 22
学習済みNN
インポータ
STM32専用NNレイヤライブラリ
コード生成機能
最適化されたSTM32のNNモデルは、各種統合開発環境のユーザ・プロジェクトに組込むことができ、容易にターゲット・デバイスに実装可
検証効率化圧縮 NN API
学習済みNNモデル・ディープラーニング・フレームワークに依存
STM32向けに効率化 された NN
コードを生成
フレームワークに非依存のNN表現
FP-AI-SENSING1 概要
• 組込みAIの以下の機能を実現可能
• 「学習用データ収集」
• 「学習用データのラベリング」
• 「学習済みNNによるSTM32での処理 」
• その他の特長
• RTOSを使用した超低消費電力実装
• スマートフォンアプリ「ST BLE Sensor」に対応
23
www.st.comにて最新情報が入手できますFP-AI-SENSING1
ソフトウェア・アーキテクチャ
アプリケーション
ミドルウェア
ハードウェア抽象化レイヤ
ハードウェア
FP-AI-SENSING1
BLE ファイル・システム FreeRTOS
USBデバイス オーディオライブラリ AI NNライブラリ
STM32Cube ハードウェア抽象化レイヤ
STM32 Nucleo
拡張ボード SensorTile.Kit
SensorTile
BoxIoT評価ボード
STM32 Nucleo
ボード
FP-AI-SENSING1 デモ一覧
• 以下のサンプルプログラムが用意されています
• 人間活動認識(HAR)
• 音響シーン分類 (ASC)(デフォルトはASCを選択)
• データ監視
• データロギング
• FOTA(Firmware update Over-The-Air)
24
FP-AI-SENSING1対応ハードウェア
• SensorTile Kit
25
• B-L475E-IOT01A
• マイコンボード + 拡張ボード
• マイコンボード:NUCLEO-L476RG
• 拡張ボード:X-NUCLEO-CCA02M1 (マイク)X-NUCLEO-IKS01A2 (センサ)X-NUCLEO-IDB05A1 (BLE)
• SensorTile.Box
スマートフォンアプリST BLE Sensor
• Android / iOS向け Bluetooth® Low Energy用データ監視アプリケーション
26
環境監視 各種イベント検出各種データプロット
• 大気圧• 湿度• 温度• 加速度• ジャイロ• 地磁気• マイク
• 向き• 自由落下• タップ
• ダブルタップ
• 起床• 傾き• 歩数
人の活動認識 音響シーン分類 データロギング
FP-AI-VISION1 概要
• AIを使用した画像認識アプリケーション開発のためのパッケージ
• 各種ファームウェアを同梱
• カメラキャプチャ
• フレーム画像処理
• 推論実行
• 実行結果表示
• 各種メモリに配置可能なソフトウェア
• CNNモデルを利用した食べ物分類アプリケーション
• 18種類の飲食物を分類
• 浮動小数点モデルと量子化モデル
27
www.st.comにて最新情報が入手できますFP-AI-VISION1
ソフトウェア・アーキテクチャ
ミドルウェア・レベル
ドライバ
ハードウェア・コンポーネント
評価用ボード
食べ物分類アプリケーション
STM32F4DIS-
CAMSTM32H747I-DISCO
カメラ・センサ STM32 LCD
ボード・サポートパッケージ
ハードウェア抽象化レイヤ
NNランタイムライブラリ 画像処理ライブラリ
FP-AI-VISION1 デモ
• カメラで取得した画像を組込みAIで分類(18種類の飲食物)
• 食べ物
• アップルパイ
• シーザーサラダ
• チーズケーキ
• チキンウィング
• チョコレートケーキ
• カップケーキ
• ドーナツ
• フライドポテト
28
• ハンバーガー
• ホットドッグ
• ラザニア
• ピザ
• リゾット
• スパゲティーボロネーゼ
• ステーキ
• 飲み物
• ビール
• カプチーノ
• コーラ
FP-AI-VISION1の対応ハードウェア 29
• マイコンボード + カメラボード
• マイコンボード:STM32H747I-DISCO
• カメラボード:STM32F4DIS-CAM
組込みAIに必要な開発環境 30
• 共通で必要な開発環境
• ソフトウェア環境
• 統合開発環境(IAR)
• 各ソリューションで必要な開発環境
• STM32Cube.AI
• ソフトウェア環境
• STM32CubeMX
• STM32CubeFW
• X-CUBE-AI
• NNモデル
• FP-AI-SENSING1
• ソフトウェア環境
• FP-AI-SENSING1
• ST BLE Sensor
• ハードウェア環境
• NUCLEO-L476RG + X-NUCLEO
• B-L475E-IOT01A
• SensorTile Kit / SensorTile.Box
• ST-Link/V2-1 USB driver • ST-Link/V2-1 firmware upgrade
• FP-AI-VISION1
• ソフトウェア環境
• FP-AI-VISION1
• ハードウェア環境
• STM32H747I-DISCO
+ STM32F4DIS-CAM
組込みAI開発ツールのデモ実演
本日ご紹介するデモ
• STM32Cube.AIを使用したデモ
• ステップ4:学習済みNNをSTM32用コードへ変換
• ステップ5:学習済みNNによるSTM32での分析
• FP-AI-SENSING1を使用したデモ
• ステップ1:学習用データ収集
• ステップ2:学習用データのラベリング
• ステップ5:学習済みNNによるSTM32での処理
32
STM32Cube.AIを使用したデモ
• 学習済みニューラルネットワークの変換• NNライブラリを使用してSTM32マイコン用コードに変換
• 変換済みNNモデルの分析• 複雑さ(積和演算数)• ROM使用量• RAM使用量• 圧縮率
• 変換済みNNモデルの検証• 変換前のモデルと変換後のモデル間で比較
• NNモデルのSTM32マイコンへの実装• プロジェクト生成• プロジェクトビルド• STM32マイコンへダウンロード
33
ニューラルネットワークの変換、分析、検証および実装
FP-AI-SENSING1を使用したデモ
• 加速度センサ・データから5種類の状態を検出
• 検出できる状態:静止している・歩いている・走っている・自転車に乗っている・自動車に乗っている
• Bluetooth® Low Energyでスマートフォンへ検出結果のみを送信
• 超小型開発ボード”SensorTile”で動作
• ボードサイズ:13.5 x 13.5 mm
• マイコン:STM32L476 (Cortex-M4@80MHz)
• マイコン消費電力:39uA/MHz
• マイコンサイズ:4.4 x 3.8 mm
• 高精度かつ軽量の組込みAI
• 必要なFlashメモリサイズ:5.92KB
• 必要なRAMサイズ:4.13KB
• 学習データ:240万サンプル
34
小型・低消費電力のウェアラブル機器による人の状態検出
センサの生データを送らないため、低消費電力、プライバシー確保
小型、低コスト、低消費電力
データベースと照合する方法に比べシンプルかつ高速
学習用データ収集とラベリング 35
測定したいセンサ・パラメータを選択
タップして次の画面へ
タップしてラベル追加画面へ
ラベル名を入力
タップしてラベルを追加
追加されたラベル
タップしてデータ収集開始
タップしてデータにラベリング
タップしてデータ収集終了
ラベル
測定された学習用データ
MicroSDにデータを保存
MicroSDに保存されたCSVファイル
“ST BLE Sensor”アプリをダウンロードして開く
まとめ 36
IoT機器向け組込みAI対応マイコンSTM32
• 低消費電力化、小型化、低コスト化をサポート
• 組込みAIでIoTのデータ処理を各端末へ分散
• STM32Cube.AIで組込みAI開発を簡単スタート
ご清聴ありがとうございましたSTマイクロエレクトロニクスの展示コーナーにもぜひお立ち寄りください