米国シノプシス
シノプシス プロダクト・マーケティング・マネージャー Gordon Cooper
畳込みニューラル・ネットワーク(CNN)は物体検出/認識などのコンピュータ・ビジョン・タスクに使用される最先端技術として脚光を浴びていますが、これは単なる一過性のブームではありません。携帯電話、自動運転車、拡張現実(AR)機器のようにビジョン処理を必要とするエッジ・アプリケーションでは、CNNアクセラレータを内蔵した専用ビジョン・プロセッサを利用すると最小の消費電力で最大の性能を達成できます。ただし、物体検出の精度はCNNエンジン(アクセラレータ)に入力する画像の品質に大きく左右されます。結果品質を最大限に高めるには、カメラからの画像を可能な限り補正する必要があります。たとえば、夕暮れ時に撮影した画像は被写体と背景の区別がはっきりしないことがあります。このような画像を補正する1つの方法として、「正規化」と呼ばれる処理があります。
図1に示したビジョン・パイプラインの例では、まずカメラのレンズを通過した光がCMOSセンサーに到達し、ここで各ピクセルが光の強度に比例した電圧として表現されます。CMOSセンサーの出力をイメージ・シグナル・プロセッサ(ISP)に入力し、レンズの歪曲収差や色を補正します。次に、この画像をビジョン・プロセッサに入力し、ビジョン処理と物体検出を実行します。
ISPの重要な機能の1つに、カラー画像のデモザイクがあります(図2)。ほとんどのデジタル・カメラは、個々のイメージ・センサーの前にカラー・フィルター・アレイ(CFA)を重ねて入力を取得しています。「ベイヤー配列」と呼ばれる最も一般的なCFAは、50%が緑、25%が赤、25%が青で構成されており、出力をそのまま見ると緑がかった画像に見えます。緑を多くしてあるのは、人間の目が緑の光に対して最も感受性が高いという生理学的特徴を模しているためです。デモザイクとは、欠けている色の値を周囲のピクセルから補完する処理のことで、これにより、画像はより自然な色合いに見えるようになります。このように2次元(2D)画像に対してピクセル単位の処理を実行するのが、ISPの主な役割です。
カメラ・メーカーによっては、カメラ・モジュールにISP機能を組み込む場合もあれば、独自のハードワイヤードISPを設計することもあります。ISPの出力画像に対して物体検出や顔認識などのコンピュータ・ビジョン・アルゴリズムを実行するには、オンチップまたはオフチップのCNNエンジンが別途必要です。シノプシスEV62(図3)など、最新のビジョン・プロセッサは、ベクターDSP機能とニューラル・ネットワーク・アクセラレータ(エンジン)の両方を内蔵しています。ビジョン・プロセッサのベクターDSPは、特にISP機能の実行に適しています。
ベクターDSPは、異なるデータ・ストリームに対して同時に積和演算(MAC)を実行できます。たとえば、ワード幅512bのベクターDSPは、32個の8ビット乗算または16個の16ビット乗算を並列に実行できます。このように優れた並列処理性能を持つベクターDSPに消費電力と面積を最適化したアーキテクチャを組み合わせると、組込みビジョン・アプリケーション向けの非常に高効率な2D画像処理ソリューションが実現します。
プログラマブルなビジョン・プロセッサには、強力なソフトウェア・ツール・チェーンとライブラリ関数が必要です。EV62はDesignWare® ARC® MetaWare EV Development Toolkitでサポートされ、この中にはOpenVX™、OpenCV、およびOpenCL Cエンベデッド・ビジョン規格に基づいたソフトウェア開発ツールが含まれます。シノプシスのOpenVX実装はOpenVXカーネルの標準ライブラリを拡張しており、最適化したパイプライン方式のOpenVX実行環境でOpenCVライクな機能を提供する新しいカーネルも追加されています。ビジョン処理に関して、OpenVXはフレームワークと最適化済みビジョン・アルゴリズムの両方を提供しています。OpenVXでは、画像処理機能を「カーネル」として実装し、これらのカーネルを組み合わせて「グラフ」と呼ばれる画像処理アプリケーションを構築します。これらの標準および拡張OpenVXカーネルはEV6x用に移植、最適化されており、EV6xのベクターDSPの並列処理性能を最大限に引き出すことができます。
図4は、標準および拡張OpenVXカーネルを組み合わせて使用したOpenVXグラフの例を示したものです。この例では、画像のクロッピングは歪曲収差補正(リマップ)ステップで行っており、デモザイクの出力に対して歪曲収差補正、画像スケーリング、画像正規化が実行されます。正規化はピクセル強度値の範囲を調整し、これによって暗い画像や白飛びした画像のコントラストを補正します。
EV62は2個のビジョン・プロセッサCPUと1個の専用CNNエンジンを内蔵しており、1つのビジョン・プロセッサでISPアルゴリズムを実行しながら、もう1つのビジョン・プロセッサでその他のコンピュータ・ビジョン・アルゴリズムを実行するなど、2つの異なる処理を同時に実行できます。これらの処理は、CNNエンジンと並列に実行することも、CNNエンジンをサポートする形で実行することもできます。EV64は4個のビジョン・プロセッサCPUを内蔵しており、より多くの並列処理が可能です。
CNNのユース・ケースについては、新しい研究論文が次々と発表されています。たとえば、ISPによる補正処理前の画像を直接処理できるようにCNNをトレーニングする手法も提案されており、いずれはCNNの前処理としてのISPは不要になることも考えられます。しかし、センサーからの画像を補正して人間の目に正しく映るようにする必要のあるユース・ケースは多数存在します。たとえば、自動車のリアビュー・カメラの場合、CNNを利用して物体検出/衝突回避アルゴリズムを実行するだけでなく、ISPにより車載ディスプレイにもクリアな映像を映し出してドライバーが見えるようにする必要があります。