バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2017 Aug Summer vol.107

ディープ・ラーニングとコンピュータ・ビジョンによる顔の表情解析

シノプシス プロダクト・マーケティング・マネージャー Gordon Cooper

学習フェーズ(図3)ではCaffeやTensorFlowなどのディープ・ラーニング・フレームワーク上でCPUとGPUを用いて学習に必要な計算を実行します。このため、これらフレームワークの使用法に関する知識が必要です。これらフレームワークの多くには、すぐに使えるCNNグラフのサンプルが付属しています。ディープ・ラーニング・フレームワークを使用すると、層の追加、削除、変更によりグラフを微調整し、精度を最大限に高めることができます。

画像(仮)

図3:CNNの学習フェーズ

学習フェーズにおける最大の課題の1つが、ネットワークの学習に適したラベル付きのデータセットを用意する作業です。ディープ・ネットワークの精度はトレーニング・データの分布と品質によって大きく左右されます。表情解析の場合、FERC(Facial Expression Recognition Challenge)から提供されている感情のラベル付きデータセットや、VicarVision(VV)社が所有する複数ラベル付きデータセットなどを使用できます。

リアルタイム組込みデザインの場合、運用フェーズ(図4)は、プログラマブルなCNNエンジンを内蔵したシノプシスDesignWare® EV6xエンベデッド・ビジョン・プロセッサなどのエンベデッド・ビジョン・プロセッサに実装できます。性能、面積、消費電力のバランスを考えるとエンベデッド・ビジョン・プロセッサが最適な選択肢です。

画像(仮)

図4:CNNの運用フェーズ

スカラー・ユニットとベクター・ユニットはCおよびOpenCL C(ベクトル化に使用)を用いてプログラムしますが、CNNエンジンは人手でプログラムする必要はありません。学習フェーズで生成した最終グラフと重み(係数)をCNNマッピング・ツールに入力するだけで組込みビジョン・プロセッサのCNNエンジンが設定され、表情解析を実行できるようになります。

次に、カメラ・レンズやイメージ・センサーから取り込んだイメージまたはビデオ・フレームを組込みビジョン・プロセッサに入力します。しかしイメージの明度や顔の撮影角度が大きく異なるとCNNでの処理が困難なため、イメージを均一化する前処理が必要です。CNNエンジンを内蔵した高度なエンベデッド・ビジョン・プロセッサなら、ヘテロジニアス・アーキテクチャを活かしてCNNエンジンによるイメージの分類、ベクター・ユニットによる次のイメージの前処理(明度の正規化、イメージの拡大/縮小、平面回転など)、スカラー・ユニットによる意思決定(CNNの検出結果を用いて何を実行するかの判断)を並列に実行できます。

必要な並列MAC(積和演算)数および性能要件はイメージ解像度、フレーム・レート、グラフ層数、目標精度によって異なります。CNNエンジンを内蔵したシノプシスのEV6xエンベデッド・ビジョン・プロセッサは28 nmプロセス・テクノロジで最大800 MHz動作を達成しており、最大880 MACの同時演算が可能です。

感情を検出するようにCNNのコンフィギュレーションとトレーニングが完了したら、年齢層、性別、人種の判定、および髭や眼鏡の有無の認識といった表情解析も簡単なリコンフィギュレーションだけで対応できます。

まとめ

エンベデッド・ビジョン・プロセッサでCNNを実行すると、ビジョン・プロセッシングの応用の幅がこれまで以上に広がります。近い将来、喜びの感情を検出する玩具や生徒の表情を認識して理解度を判定する電子教師など、身の回りの電子機器を使って人間の感情を解釈することが当たり前になる時代がやって来るでしょう。ディープ・ラーニング、エンベデッド・ビジョン・プロセッサ、そして高性能CNNを組み合わせることにより、こうした「ビジョン」は実現に向けて大きく前進することになります。

カテゴリートップ