エッジの高性能カメラAIへの旅は、ハードウェアから始まります。あなたは強力なNPUを持つHiSilicon SoCを選ぶべきです。この選択は成功のためのあなたの基礎です。
最大AIパフォーマンスのロックを解除するための鍵は、ゼロコピーデータパイプラインです。この効率的な方法により、SoCの画像プロセッサはNPUに直接フィードできます。
このプロセスをマスターするには、3つのコアアイデアが含まれます。パイプラインアーキテクチャ、スマートAI対応画像チューニング、およびNPUモデルの最適化を理解する必要があります。
重要なポイント
- 強力なNPUを持つHiSilicon SoCを選択してください。このハードウェアの選択は、優れたカメラAIにとって重要です。
- ゼロコピーデータパイプラインを作成します。これは、ISPとNPUを直接接続する。これにより、AIの実行が速くなり、使用電力が少なくなります。
- AIモデルのISPを調整します。これは、人間の目だけでなく、AIがよりよく見えるようにカメラの設定を調整することを意味します。
- NPU用のAIモデルを最適化します。INT8量子化を使用して、モデルをより小さく高速にします。これは、エッジデバイスでうまく動作するのに役立ちます。
モダンなカメラAIスタック:
最新のモバイルSoCでは、単一のプロセッサで作業していません。あなたはのオーケストラを指揮しています専用ハードウェアアクセラレータを参照してください。これらの部品がどのように連携するかを理解することは、強力なカメラAIシステムをエッジに構築するために重要です。このオーケストラで最も重要な2人のプレーヤーは、画像信号プロセッサ (ISP) と神経処理ユニット (NPU) です。
PRE-PROCESSINGにおけるISPの役割:
ISPをNPUのスマートアシスタントと考えてください。その仕事は、写真の見栄えを良くするだけではありません。AIパイプラインでは、ISPは前処理のためのハードウェアアクセラレータとして機能します。それは、ニューラルネットワークのために画像データを完全に準備する。たとえば、AIモデルには224x224ピクセルの小さな画像が必要な場合がありますが、カメラセンサー大きな4K画像をキャプチャします。ISPは専用の出力パイプを使用してイメージのサイズを直接変更します、ソフトウェアでこの遅いステップを行うことからあなたを救います。また、ニューラルネットワークが期待するものに一致するように色空間を変換するなどのタスクも処理します。
NPUのDA VINCIアーキテクチャ:
神経処理ユニットは、AI操作の脳です。HiSiliconのDa Vinci NPUアーキテクチャは、AI推論に生の力を提供します。その設計は、複雑なAIワークロードに対して信じられないほどのパフォーマンスを提供します。
Da Vinciアーキテクチャの中心は、その「3D Cube」コンピューティングユニットです。この特殊なAIコアは、すべてのニューラルネットワーク計算の基礎を形成する行列計算を加速するように設計されています。
この独自の構造により、NPUは1クロックサイクルで数千の動作を実行できます。複数のデータ精度をサポートし、AI開発のさまざまな段階に柔軟性を提供し、効率的で低電力の推論を保証します。これは、AI推論のためのハードウェアアクセラレーションを提供するエンジンです。
ISP-NPUデータブリッジ:
本当の魔法は、ISPとNPUが一緒に働くときに起こります。それらはSoC上に直接データブリッジを形成し、強力なフィードバックループを作成します。これはどのように機能するかです:
- NPUは、そのビジョン処理能力を使用して、フレーム内の人物を検出する。
- それはISPにその人の正確な場所を伝えます。
- 次に、ISPは、露出やフォーカスなどの独自の設定をその特定の領域に調整して、人のより鮮明な画像をキャプチャします。
- この改善された画像は、より正確なAI分析のためにNPUに送り返されます。
この緊密なコラボレーションにより、システム全体のパフォーマンスとAIの最終的な精度が向上します。
モバイルSOCの内部:
あなたは重要なコンポーネントを持っています:ISPとNPUを参照してください。今、あなたはモバイルSoCの中にそれらを接続する必要があります。このセクションでは、高性能データパイプラインを構築するための実用的な手順を説明します。ハードウェアの設定方法、管理方法を学びますメモリ効率的に、コンポーネントをコードで結合します。このプロセスは、エッジのカメラAIアプリケーションに不可欠です。
ISPの出力の概要:
最初のステップは、AIモデルの画像データを準備する方法をISPに伝えることです。ニューラルネットワークには特定の入力ニーズがあります。例えば、BGRカラーフォーマットの224x224ピクセル画像を期待することができる。これらの要件に正確に一致するようにISP出力チャネルを設定する必要があります。
を使用してこれを達成できます。HiSiliconメディアプロセスプラットフォーム(MPP) API。ここに簡単なガイドがあります:
- チャネル属性の定義: コードに構造を作成して、設定を保持します。
- 解像度の設定: ニューラルネットワークに必要な正確な幅と高さを指定します。
- ピクセル形式の設定: モデルの入力レイヤーに一致するカラーフォーマットを選択します。
- 設定の適用: 次のような関数を呼び出します。
HI_MPI_VI_SetChnAttr()これらの設定をモバイルSoCの特定のISPチャネルに適用します。
この直接構成は、すべての前処理作業をISPハードウェアにオフロードします。メインのアプリケーションコードは、すでにAI推論に最適なデータを受け取ります。
効率的なメモリ管理:
メモリ管理が不十分であると、アプリケーションのパフォーマンスが低下する可能性があります。ARMベースのSoCでは、一般的な問題を回避するためにメモリを処理する必要があります。
- 断片化: メモリの割り当てと解放は、使用できない小さなギャップを残す可能性があります。最終的には、十分な空きメモリがあっても、十分な大きさのブロックを見つけることができません。
- メモリリーク: 割り当てられたメモリを解放することを忘れると、利用可能なすべてのリソースがゆっくりと消費され、システムがクラッシュします。
- 失われた参照: メモリへのポインタが失われる可能性があり、後でメモリを解放することができなくなります。
これらの問題を避けるために、使用しないでください標準動的メモリ割り当てを参照してください。代わりに、SoCの専用ビデオバッファ (VB) プールからメモリを割り当てる必要があります。これにより、物理メモリの連続ブロックが得られます。
NPUはこのタイプのメモリで最もよく機能します。最適なデータアクセスのために、NPUはメモリバーストを参照してください。この方法では、データが単一の切れ目のないブロックにある必要があります。のような関数を使用するHI_MPI_VB_GetBlockHiSilicon MPPライブラリから、データがNPUに対して完全に整列されることを保証します。この手法は、一貫した低電力パフォーマンスを提供する高速で安定したモバイルAIチップアプリケーションを構築するための基本です。
コードでパイプラインをビンディングする:
最後のステップは、SoC上に物理データ接続を作成することです。ISPの出力をNPUの入力に直接送信するようにモバイルSoCに指示しています。この「バインディング」は、ゼロコピーパイプラインを作成する。CPUがデータをコピーする必要がなくなり、時間と電力を節約できます。
この接続を行うには、単一の強力な関数を使用します。HI_MPI_SYS_バインドを参照してください。この関数は、ソース (ISPチャネル) と宛先 (NPU) を引数として受け取ります。
C/Cでのコードの外観は次のとおりです。
// データのソースを定义する (ISPビデオ出力チャンネル)
MPP_CHN_S stSrcChn;
StSrcChn.enModId = HI_ID_VI; // ビデオ入力用のモジュールID
StSrcChn.s32DevId = 0; // デバイスID
StSrcChn.s32ChnId = 0; // チャンネルID
// データの宛先を定義する (NPU)
MPP_CHN_S stDestChn;
StDestChn.enModId = HI_ID_NNIE; // ニューラルネットワーク推論エンジンのモジュールID
StDestChn.s32DevId = 0; // デバイスID
StDestChn.s32ChnId = 0; // チャンネルID
// ISPチャネルをNPUに直接バインドする
HI_S32 s32Ret = HI_MPI_SYS_Bind(& stSrcChn、 & stDestChn);
If (s32Ret = = HI_SUCCESS) {
// ゼロコピーパイプラインがアクティブになりました!
// ISPは自動的にNPUにフィードします。
}
この簡単な呼び出しで、モバイルSoCのハードウェアを調整しました。ISPはNPUに直接フィードし、ニューラルネットワークで最大のAI推論パフォーマンスを可能にします。これは、現代の組み込みAI開発の中核です。
AI-AWARE ISPのチューニング:
パイプラインの構築は、最初のステップにすぎません。AIモデルを念頭に置いてISPを調整する必要があります。従来のISPチューニングにより、画像は人間の目によく見えます。ただし、AI対応のチューニングは、ニューラルネットワークの画像データを最適化します。この考え方の変化は、あなたの最高のAIパフォーマンスを達成するために重要ですモバイルSoCを参照してください。
PRE-PROCESSINGタスクを相殺する:
ISPを使用して、画像のサイズを変更するだけではありません。AIアプリケーション専用のプリプロセッサと考えてください。ISPは、広角レンズからの幾何学的歪み補正などの複雑なタスクを処理できます。これにより、ニューラルネットワークがクリーンで歪みのない画像を確実に受信できます。これらのジョブをISPにオフロードすると、CPUリソースが解放され、エッジデバイスのシステムがより効率的になります。
AI精度のための楽観化:
完璧に見える画像は、AIモデルを混乱させる可能性があります。人間の視力を改善する設定は、マシンビジョンを傷つけることがあります。たとえば、積極的なノイズリダクションにより、モデルが正確な推論に必要な重要な詳細が削除される場合があります。
調査によると、ISP設定を標準構成から変更すると、オブジェクト検出パフォーマンスが低下する可能性があります。を参照してください。重要なのは、特定のAIタスクに適したバランスを見つけることです。
- 異なるニューラルネットワークアーキテクチャは、ISPの変化に対して異なる反応をする。たとえば、ResNet50バックボーンは、ノイズリダクションによるぼかしに対してより敏感である可能性があります。
- さまざまなISP設定が適用された画像でAIをトレーニングすることで、モデルの堅牢性を向上させることができます。
- この改善には限界がある。モデルがうまく機能するには、常に最小レベルのシャープネスが必要です。
あなたの目標は、コントラスト、彩度、ノイズ除去などのISPパラメータを調整して、視覚的な魅力だけでなく、推論の精度を最大化することです。この共同設計アプローチは、システム全体の性能を改善する。
AI-TO-ISPフィードバックループ:
最も高度な手法は、AIがISPを直接制御するフィードバックループを作成することです。NPUはフレームを分析し、次のフレームに合わせて調整する方法をISPに伝えます。これにより、SoCにスマートで自己修正ビジョンシステムが作成されます。たとえば、「Infinite-ISP」システムは、この方法を使用してリアルタイムの調整を行いますを参照してください。
- オートホワイトバランス (AWB): NPUは、ISPが露出過分領域を無視して、より正確なホワイトバランスを計算するのに役立ちます。
- オート露出 (AE): AIは画像ヒストグラムを分析し、ISPにデジタルゲインを調整するように指示し、より良い分析のために明るさを修正できます。
NPUとISPの間のこのタイトなループにより、カメラは常にAIに可能な限り最高のデータをキャプチャします。
NPUモデルの光学:
データパイプラインが構築されます。これで、AIモデルをNeural Processing Unitに最適化する必要があります。強力なサーバーでトレーニングされたモデルは、低电力エッジデバイス変更なし。モバイルSoCから最高のパフォーマンスを得るには、モデルをより小さく、より速くする必要があります。このプロセスには、適切な演算子を使用した量子化と注意深いテストが含まれます。
INT8モデルの数量:
データ型を変更することで、モデルを劇的に高速化できます。ほとんどのディープニューラルネットワークは、32ビット浮動小数点数 (FP32) を使用してトレーニングされます。量子化は、8ビット整数 (INT8) を使用するようにモデルを変換するプロセスです。このモデルを4倍小さくし、推論速度を大幅に向上させますを参照してください。これは、SoCでAIワークロードを要求するために不可欠です。
AIベンチマークテストは、大幅なパフォーマンスの向上を示しています。FP32で毎秒12フレームで実行されるモデルは、INT8で毎秒30フレームに達することができますを参照してください。
| 精度 | FPS (フレーム毎秒) |
|---|---|
| FP32 | 12 |
| INT8 | 30 |
を使用できます。TensorFlow Liteコンバータのようなツールこの最適化を実行します。ツールはモデルを分析し、それをINT8形式に変換して、NPU用に準備します。
# この例は、モデルをINT8に変換する方法を示しています
Tensorflowをtfとしてインポートする
Converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
Converter.optimizations = [tf.lite.Optimize.DEFAULT]
#... INT8量子化を実施するその他の設定
Tflite_quant_model = converter.convert()
NPU-FRIENDLYオペレーターの使用:
NPUは特殊なプロセッサです。ニューラルネットワークで使用される特定の数学演算を加速するように設計されています。最大のパフォーマンスを実現するには、AIモデルでこれらの「NPUフレンドリー」オペレーターを使用する必要があります。
HiSiliconのDa Vinci npuアーキテクチャ以下を含むコア操作のハードウェアアクセラレーションを提供します。
- 畳み込み
- プーリング
- 有効化
- フルリンク
モデルがこのリストにない演算子を使用している場合、それらは低速のCPUで実行されます。これはボトルネックを作り出す。サポートされていない演算子をハードウェアで高速化された演算子に置き換えるには、ニューラルネットワークを変更する必要があります。たとえば、次のようなテクニックを使用できます。オペレータ融合複数の単純な操作を単一のNPUフレンドリーな操作に組み合わせることができます。
収益とデバッグ:
最適化は1回限りのステップではありません。変更をテストして検証する必要があります。プロファイリングツールは、ハードウェア上のモデルのパフォーマンスを分析するのに役立ちます。これらは、モデルの各レイヤーが推論中に実行するのにかかる時間を正確に示します。
AIベンチマークツールを使用して、NPUで実行されているレイヤーとCPUに戻っているレイヤーを特定できます。この情報は重要です。ボトルネックを見つけ、量子化と演算子の変更が成功したことを確認するのに役立ちます。この最終チェックにより、エッジアプリケーションで可能な限り最高のAIパフォーマンスが得られます。
ISP-NPUのFUSIONの未来:
ISPとNPUの緊密な絆はほんの始まりに過ぎません。あなたはコンピュータビジョンシステムの設計方法に革命を目の当たりにしています。将来は、これらのコンポーネントの完全な融合を示し、よりスマートで、より高速で、より効率的なカメラAIシステムを作成します。この進化はキーに従いますAiチップテクノロジーのトレンドそれはエッジで可能なことを再定義します。
より厳しいハードウェア統合:
チップ設計者は、モバイルSoC上でISPとNeural Processing Unitを物理的に近づけています。シリコンへのこのより緊密な統合は、データの移動経路を短くします。その結果、パフォーマンスが大幅に向上し、エネルギー使用量が減少します。これにより、ARMベースのSoC全体がより効率的になる。すべてのモバイルおよび低電力アプリケーションにとって重要な目標である、バッテリーの消耗を減らして、より高速な推論を得ることができます。この統合は次世代へのコアステップです低出力推論チップを参照してください。
AI-DRIVEN ISPパイプライン:
次の大きな飛躍は、完全にAIによって駆動されるISPパイプラインです。ISPをチューニングする代わりに、ニューラルネットワークが自動的にそれを行います。AIは、特定のビジョンタスクに最適なデータをキャプチャするために、リアルタイムで画像パラメータを調整します。最近の調査によると、これはすでに起こっています。
ディープニューラルネットワークはプロキシとして機能し、画質やタスクの精度を最大化するための理想的なISP設定を検索できます。
先駆的なプロジェクトはこの概念を示しています。
- ParamISP露出や感度などのカメラ設定に基づいてISP機能を制御するために、神経モジュールを使用します。
- AdaptiveISP強化学習を使用して、オブジェクト検出に最適なISPパイプラインを構築し、パフォーマンスを向上させます。
新興エッジ使用ケース:
この強力な融合により、AIエッジデバイスのアプリケーションの新しい波が解き放ちます。あなたの将来の製品は、今日のサイエンスフィクションのように見えるビジョン機能を備えています。スマートホームカメラは動きを検出するだけではありません。彼らは信じられないほどの精度でコンテキストとアイデンティティを理解します。自動車では、自動車は道路状況をより明確に認識し、運転をより安全にします。これらの低電力システムは、クラウドから直接エッジに高度なAIをもたらし、あらゆる場所で強力でリアルタイムの意思決定を可能にします。
これで、最高のパフォーマンスへの鍵があります。モバイルsocにゼロコピーパイプラインを構築し、ニューラルネットワーク用にISPを調整し、npu用にモデルを最適化します。
モバイルsocでこの相乗効果をマスターすると、最高のカメラaiの結果がアンロックされます。
エッジの未来は、完全にai駆動のsocです。次の神経aiプロジェクトのために、この新しいデザインを受け入れる必要があります。
よくある質問
ゼロコピーパイプラインがなぜそれほど重要なのですか?
速度と効率のためにゼロコピーパイプラインが必要です。CPUがISPとNPUの間でデータをコピーするのを停止します。この直接ハードウェアリンクは電力を節約し、AIアプリケーションをエッジデバイスでより高速に実行できるようにします。
これには特別なチップが必要ですか?
はい、特定のモバイルSoCで最良の結果が得られます。強力なNPUと一緒にリンクできるISPを備えたチップを選択する必要があります。HiSiliconチップこのタスクの素晴らしい例です。
INT8量子化とは何ですか?
量子化により、AIモデルがより小さく、より高速になります。モデルの数学を複雑な32ビット数から単純な8ビット整数に変更します。
この簡単な変更により、モデルをNPUで2倍の速さで走らせることができます!
このプロセスを学ぶのは難しいですか?
最初は複雑に見えます。ただし、コアステップは単純です。などの特定のAPI関数を使用します。HI_MPI_SYS_バインドを参照してください。チップメーカーのツールは、パイプラインを段階的に構築するのに役立ちます。このプロセスをマスターできます。





