バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2018 Mar. vol.109

ADASアプリケーションを支えるディープ・ラーニングの進化

CNNエンジンの強化によりフレーム全体の処理が可能に

エンベデッド・ビジョン・プロセッサ内蔵のCNNエンジンを強化すると、入力イメージを2段階で処理する必要がなくなります。 シノプシスの最新ビジョン・プロセッサEV6xは、880個のMACユニットを内蔵したCNNエンジンを搭載しており、従来製品に比べ大幅な性能向上を達成しています。 このプロセッサを1,200 MHzで動作させると、(880 x 1.2) = 1,056 GMACs/s(約2100 GOPs/s)の性能が得られます。これなら、1 MPイメージ全体をCNNで処理できます。 この場合も、ベクターDSPはフォーマット変更やピラミッド処理などのイメージ前処理、およびNMS(Non-Maximum Suppression)などの後処理という重要な役割を担います。 図4に示すように、EV6xもスカラー・ユニット、ベクター・ユニット、CNNユニットによるヘテロジニアス構成を採用しています。また、マルチコア設計のため複数のビジョン・コアへの拡張も容易です。

画像

図4:スカラー、ベクター、CNNユニットで構成されるDesignWare EV6xエンベデッド・ビジョン・プロセッサで前処理と後処理も実行

イメージ・フレーム全体を一度に処理できるようになると、複数の物体を検出するようにCNNをトレーニングできるという利点があります。 つまり単に歩行者だけでなく、トレーニングによってCNNグラフは自転車や他の自動車、トラックなども同時に検出できるようになります。 これをHOGなどのアルゴリズムで実装しようとすると、物体の種類ごとに人手でアルゴリズムを作成し直さなければなりません。

CNNの学習と運用

前述のように、CNNはプログラムするものではなく、トレーニングによって学習するものです。 CaffeやTensorFlowなどのディープ・ラーニング・フレームワークは大量のイメージ・データセットを使用してCNNグラフをトレーニングし、画像内の特定の特徴を検出できるようになるまで何度も学習を繰り返しながら係数を微調整します。 CNNグラフのトレーニングで使用する主なコンポーネントを図5に示します。学習フェーズでは膨大な計算処理が発生するため、クラウド上にある多数のGPUを使用します。

画像

図5:グラフのトレーニングに必要なコンポーネント

これに対し、運用フェーズ(推論フェーズ)はエンベデッド・システム上で実行します。 シノプシスのMetaWare EV Toolkitなど開発ツールを使用して、学習フェーズで出力された32ビット浮動小数点フォーマットの重み(係数)を固定小数点フォーマットに変換します。 ここでの目的は、32ビット浮動小数点出力と同等の精度を最小ビット分解能で達成することにあります。 MACユニットのビット数を抑えると少ない消費電力でCNNを計算でき、エンベデッド・ソリューションのダイ面積(すなわちコスト)が削減されます。 シノプシスの試算では、10ビット以上の分解能があればグラフの再トレーニングなしにCaffeの32ビット出力と同等の精度を確保できます。

MetaWare EV Toolkitは重みとグラフ・トポロジ(畳込みフィルタ、非線形関数、プーリング層、全結合層などCNNグラフの構造)をハードウェアにマッピングし、専用のCNNエンジンを生成します。 グラフに特殊な層が存在しなければ、これでCNNの「プログラム」が完了し、トレーニングした物体を検出できるようになります。

サイズを抑えるために、このCNNエンジンは3x3や5x5行列乗算などCNNの主要機能を実行できるように最適化していますが、高い柔軟性を維持するにはプログラマブルであることが重要なため、ハードワイヤード・ソリューションとするほどには最適化していません。 今後、新しいレイヤ手法やプーリング方法などが登場してCNNが進化していくと、ベクターDSPはビジョン処理においてもう1つの重要な役割を果たすことになります。 シノプシスのEV6xはベクターDSPとCNNエンジンを密結合しているため、必要に応じてCNNからベクターDSPへタスクを容易にディスパッチできます。 MetaWare EV Toolkitに統合されたOpenVXランタイムによって、これらのタスクはベクターDSPのその他の処理要求と共存してスケジューリングされます。 このように、ベクターDSPによってCNNエンジンの将来への適応性が確保されます。

図6はエンベデッド・ビジョン・プロセッサの入力と出力を示したものです。CNNエンジンは事前にグラフと重みが設定されており、ここに車載カメラからのストリーミング・イメージを入力すると、イメージ内容の分類結果が出力されます。

画像

図6:エンベデッド・ビジョン・プロセッサの入力と出力

カテゴリートップ