AIアルゴリズムは多くのコンピューティング リソースを消費するため、マイクロコントローラ (MCU) を使用した組み込みシステムでAIコンピューティングを実行することは不可能であると考えられていました。昨今、技術の進歩により、そうではなくなりました。この記事では、最新の技術開発動向を理解するために、MCU上のAIアプリケーションの開発状況とソリューションを紹介します。
AIコンピューティングを実行するためにMCUを使用するのが一般的な傾向です
AIに関しては、関連技術として機械学習や深層学習も含まれます。これらのテクノロジーは大量のコンピューティング リソースを必要とし、通常はCPU、GPU、FPGAなどの強力な処理テクノロジーに関連しています。しかし、クラウドからエッジコンピューティングへのAIテクノロジの発展により、AIコンピューティング エンジンにより、MCUは組み込みアプリケーションをより広い世界に展開できるようになります。少なくとも、組み込み設計により、サイバー攻撃に対するリアルタイムの対応能力が向上し、デバイスのセキュリティが強化されます。
現在、市場に出回っている多くの電子製品はMCUによって設計されており、人々の生活に広く溶け込んでいます。現在、AIの急速な発展に伴い、モノのインターネット(IoT)デバイス、スマート家電、スマートスピーカーなど、AI機能を備えたスマート製品が増えており、MCUを使用した組み込みデバイスへのAI特性の応用を重視し、AIと組み合わせたMCUの開発にさらに注目する企業が増えています。
MCUへのAIの適用には、製品の消費電力とコストの削減、製品のリリースの加速、クラウド コンピューティングなしでフロントエンドで直接処理するなど、大きな利点があり、AIコンピューティングの効率が向上します。しかし、MCUの計算能力が弱く、計算周波数も低いため、CPUの計算能力と比較すると明らかな差があります。
さらに、MCUにはモデリングおよびトレーニング ツールが不足しているため、MCU上でAIコンピューティングを実現するには通常、PC側のツールが必要であり、構築後のモデルは通常大きく、MCUでの使用には適さず、統合プロセスおよび開発ツールの適用にも依然としていくつかの困難が残っています。
新しい技術がAIコンピューティングにおけるMCU実行の問題を解決
市場の強い需要に直面して、多くのメーカーがこれに力を注ぎ、MCU上でAIコンピューティングを実行するという問題を解決してきました。現在、物体認識、音声対応サービス、自然言語処理などのアプリケーションでは、MCUにAIアルゴリズム機能を持たせることができるソリューションが数多く登場しており、IoT、ウェアラブル デバイス、医療アプリケーションにおけるバッテリー駆動のデバイスに、より高い精度とデータ プライバシーを提供することもできます。
その中で、MCUにAIアルゴリズムを実行させる最も一般的な最初の方法は、一連のニューラル ネットワーク (NN) フレームワーク (Caffe 2、TensorFlow Lite、Arm NNなど) のモデル変換と、MCUでのクラウド トレーニング用のモデルと推論エンジンです。現在、クラウドから事前トレーニング済みのニューラル ネットワークを取得し、それをCコードに変換してMCUを最適化できるソフトウェア ツールがいくつかあります。
MCU上で実行される最適化コードは、音声、視覚、異常検出アプリケーションでAI機能を実行できます。エンジニアはこれらのツールをMCU構成にダウンロードし、最適化ニューラル ネットワークの推論を実行できます。これらのAIツール セットは、ニューラル ネットワークAIアプリケーションに基づくコード例も提供します。
2番目の方法では、クラウドから借りたニューラル ネットワーク モデルを事前にトレーニングする必要がなくなります。設計者はAIライブラリをMCUに統合し、ローカルAIトレーニングおよび分析機能をコードに組み込むことができます。その後、開発者はエッジ センサー、マイク、その他の組み込みデバイスから取得した信号に基づいてデータ モデルを作成し、予測メンテナンスやパターン認識などのアプリケーションを実行できます。
3つ目の方法は、AI専用のコプロセッサを提供し、MCUサプライヤーが機械学習機能の導入を加速できるようにすることです。Arm Cortex-M33などのコプロセッサは、CMSIS-DSPなどの一般的なAPIを使用してコードの移植性を簡素化できるため、MCUとコプロセッサを緊密に結合してAI機能 (相関演算や行列演算など) を高速化できます。
コンピュータビジョン向けAI機能パッケージ
STマイクロエレクトロニクスは、STM32 MCUがAI機能をサポートできるように、コンピュータービジョンのAIアプリケーションで使用できる高性能STM32Cube用のFP-AI-VISION1機能パックを導入しました。FP-AI-VISION1には、畳み込みニューラル ネットワーク (CNN) に基づくコンピューター ビジョン アプリケーションの例があります。FP-AI-VISION1は、X-CUBE-AI拡張パッケージによって生成されたソフトウェア コンポーネントで構成され、AIベースのコンピューター ビジョン アプリケーション専用のアプリケーション ソフトウェア コンポーネントが補完されています。
機能パックで提供されるアプリケーションの例としては、食品認識(一般的な食品の18クラスを識別可能)や人物存在検出(画像内に人物がいるかどうかを識別可能)などがあります。FP-AI-VISION1は、STM32_AI_Runtimeニューラル ネットワーク ライブラリを使用して、高度なコンピューター ビジョン アプリケーションを実現します。ライブラリは事前トレーニング済みのモデルに基づいており、STM32CubeMXツールのX-CUBE-AI拡張パッケージを使用して生成されます。
製品開発をスピードアップするための完全な機能と例を提供します
FP-AI-VISION1関数パックは、32ビット浮動小数点モデルと8ビット量子化モデルの2種類のニューラル ネットワーク モデルの統合を示します。また、さまざまなメモリ構成 (MCU内部メモリのみを使用するか、外部メモリを追加で使用するか) でのモデル統合も示します。
FP-AI-VISION1機能パックには、画像前処理ライブラリSTM32_Imageが含まれており、特定のハードウェア ボードと組み合わせて特定のコンピューター ビジョン アプリケーションを開発できます。フレーム バッファの内容を処理するためのさまざまな処理関数が含まれています。FP-AI-VISION1機能パックには、USBウェブカメラ用のドライバーも含まれています。このドライバーを使用して、画像およびビデオ データ セット コレクションを作成したり、フレーム バッファーに画像をキャプチャしたり、フレーム バッファーの内容を前処理したり、ホスト上でリアルタイム テストを実行できるニューラル ネットワーク推論用のフレームワークを実行したりできます。
FP-AI-VISION1は、B-CAMS-OMVカメラ モジュール バンドル (推奨) またはSTM32F4DIS-CAMカメラ ドーター ボード (レガシーのみ) のSTM32H747I-DISCOディスカバリ ボードに接続することもでき、ホストに接続するとUSBビデオ カメラ (UVC) デバイスとして機能します。
完全なファームウェアを備えたFP-AI-VISION1は、STM32マイクロコントローラ上でコンピューター ビジョン アプリケーションを開発できます。浮動小数点モデルと量子化モデルに基づくサンプルと、組み込みアプリケーションのテスト、デバッグ、検証が可能なライブラリが統合されており、メーカーが製品を開発するのに便利な、無料で使いやすいライセンス条件を備えています。
結論
AIの応用は技術開発の最もホットなトレンドとなっています。AIとモノのインターネットアプリケーション(AIoT)の組み合わせは、さまざまな製品の応用モードを一新し、あらゆるもののよりインテリジェントな相互接続を真に実現し、人間の生活様式を完全に変えるでしょう。現在ではMCU上でAI演算を行うことが現実のものとなり、より多くの組み込みシステムにAIを適用する道が広がり、今後の技術の発展がますます期待されます。