テーマ名: 目の「見え」を数値化する!
−AAMを用いた目の自動構造抽出−
MIRU 2006 (予稿 (PDF 1.62MB)、ポスター(PDF 3.37MB, PNG 568KB)
目の運動(まばたき、表情)による各部位(上眼瞼(まぶた)、下眼瞼、眼瞼裂)の動きを時系列に追跡することを目的とする。生まれつき細い目なのか、目の運動の結果細い目になったのかは、1枚の画像からは判断できない。したがって、「平静の顔である」とわかっている顔画像1枚で生まれつきの目の構造(二重の厚みと濃さ、瞳のサイズと色、下まぶたの膨らみ)を取得し、残りの画像列では、この構造に基づいた目の運動追跡を行う。ここでは目の構造を取得する、すなわち目の生まれつきの“見え”を数値化する研究を紹介する。
入力は頭部運動追跡によって得られる頭部運動正規化画像列と顔特徴点(眉毛両端点、目両端点)である。この顔特徴点4点から、次の目の各部位の領域を決める。
部位 | 上眼瞼 | 眼瞼裂 | 下眼瞼 |
---|---|---|---|
領域の構成点列 | 眉毛下端5点+上眼瞼下端8点、計13点 | 上眼瞼下端8点+下眼瞼上端11点、計19点 | 下眼瞼上端11点+それらから下眼瞼上端の幅の半分の長さ下りた点11点、計22点 |
三角メッシュ化 | ![]() |
![]() |
![]() |
これを様々な構造の目を撮像したデータすべてについて用意し、これを学習データとして AAM (Active Appearance Model) [Cootes, Stegmann]を構築する。
まず、領域の構成点列の座標を並べたベクトル x を学習データすべてを使って主成分分析し、次式のように平均形状()とそこからの分散の和で表現する(
は大きい順にソートした固有値に対応する固有ベクトルを列ベクトルとする行列で、形状モデルと呼ぶ)。
次に、すべての学習データを平均形状にワープ(対応する三角パッチ間でアフィン変換)したテクスチャパターンgを同様に主成分分析し、次式のように平均テクスチャ()とそこからの分散の和で表現する(
はテクスチャモデル)。
「目のこの位置は常に明るい」といった位置とテクスチャの間の相関があることから、形状パラメータとテクスチャパラメータ
をさらに主成分分析し、次式のように表現する(
は単位を正規化する行列、QはAAM)。
次の表に、各部位の形状モデル、テクスチャモデル、AAMのそれぞれについて、累積寄与率90%を超える次元数を示す。また第1、第2主成分軸上を固有値の平方根の−3倍から3倍まで変化させた時のAAMを示す。この結果は、20次元程度のcを決めれば、目領域の形状とテクスチャの両方を生成できることを示している。
クリックすると動画が見られます:
部位 |
上眼瞼 |
眼瞼裂 |
下眼瞼 |
---|---|---|---|
形状モデル ![]() |
4次元 |
2次元 |
5次元 |
テクスチャモデル ![]() |
12次元 |
16次元 |
14次元 |
AAM Q |
17次元 |
19次元 |
20次元 |
眉毛両端点、目両端点の計4点の顔特徴点を固定するAAM探索(Constrained AAM 2001)を行い、学習データすべてについてappearanceパラメータcを求める。
注意しなければならないのは、ここでは未だ目領域の輪郭と内部の明度分布を復元したに過ぎず、目の各部位の構造を抽出したわけではない点である。
構造の未知な目領域の画像に対して、直接構造を計測するのではなく、それぞれ構造情報を埋め込んだ学習データのうち、最も近い学習データから間接的に構造情報を取得する。
入力目領域画像に対して、システムは顔特徴点を使ってまず3つの部分領域に分割する。次にAAM探索によりappearanceパラメータcを求める。そしてcに最も近いappearanceパラメータを持つ学習データを見つけ、それに関連付けられている目の生まれつきの構造の情報を獲得する。
以下にAAMで目領域を復元した結果の例を示す。
入力画像 |
AAM |
入力画像 |
AAM |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
||
入力画像 |
AAM |
入力画像 |
AAM |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
構造を決定した後、目の運動追跡を行う部分のデモは次の「高精細なモデルに基づく目の運動追跡」をご覧下さい。