バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2017 Aug Summer vol.107

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

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

顔の表情や感情を認識することは人間が幼少時に学習する基本的な能力であり、人間の社会生活に重要な役割を果たします。人間は他人の顔を見るだけで怒り、喜び、驚き、嫌悪、悲しみ、恐れといった一般的な感情をすぐに認識できます。しかしこの能力を機械に移植するのは容易ではありません。これまで何十年もの間、多くの研究者が特徴を正確に認識するコンピュータ・プログラムの作成に取り組んできましたが、特徴が少し変わるだけでまた一からやり直しという状況が続いていました。

このように機械を「プログラム」するのではなく、感情を高い精度で認識するように「学習」させることができたらどうでしょうか。

ディープ・ラーニング(深層学習)の手法は、コンピュータ・ビジョンの認識および分類エラー率の低減に大きな効果があると期待されています。ディープ・ニューラル・ネットワーク(図1)を組込みシステムに実装することにより、機械は人間に匹敵する精度で顔の表情を視覚的に解釈できるようになります。

画像(仮)

図1:ディープ・ニューラル・ネットワークの模式図

ニューラル・ネットワークは、トレーニング(訓練)によってパターン認識能力を獲得します。そして、入力層と出力層の間に少なくとも1つの隠れ層(中間層)を持つものを「ディープ」ニューラル・ネットワークと呼びます。各ノードは、直前の層の複数のノードからの重み付けした入力に基づいて計算されます。これらの重みの値を調整して、目的のイメージを認識できるようにします。これをニューラル・ネットワークのトレーニング・プロセスと呼びます。

たとえばディープ・ニューラル・ネットワークに「喜び」を表す写真を認識するよう学習させる場合、まず、喜びを表す画像を生データ(イメージ・ピクセル)として入力層に与えます。ネットワークは認識結果(正解)が「喜び」であることを知った状態で画像内のパターンを認識し、正解との誤差がなるべく小さくなるように各ノードの重みを調整します。ラベル付き(この場合は「喜び」)の画像を入力するたびに重みの値が細かく調整されていきます。十分な入力を与えてトレーニングすると、ラベルなしの画像を入力してもネットワークは「喜び」に対応するパターンを正確に解析して認識できるようになります。

ディープ・ニューラル・ネットワークでは相互に接続したすべてのノードの重みの値を計算する必要があるため、非常に高い演算性能が要求されます。また、データを格納するメモリーや効率的なデータ移動も重要な要素となります。ビジョン用のディープ・ニューラル・ネットワークを最も効率よく実装できる現在最先端の方式が、CNN(畳み込みニューラル・ネットワーク)です(図2)。CNNはイメージ間で多くの重みを再利用できるため、効率が高いのが特長です。CNNはデータを2次元の入力構造とすることで冗長な演算を減らします。

画像(仮)

図2:CNNアーキテクチャ(グラフ)による表情解析の例

CNNによる表情解析を実装するには、学習フェーズと運用フェーズと呼ばれる2つの異なる独立したフェーズが必要です。

カテゴリートップ