0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

論文まとめ:Facial expression recognition considering individual differences in facial structure and texture

Last updated at Posted at 2022-03-22

はじめに

IET Computer Vision というところから以下の論文
[1] J. Yi, et. al. "Facial expression recognition considering individual differences in facial structure and texture"
のまとめ

論文のリンク:
https://ietresearch.onlinelibrary.wiley.com/doi/pdf/10.1049/iet-cvi.2013.0171

概要

  • 動画から表情を読み取るモデルである
  • 個人による違いを考慮している。具体的には構造的特徴量と文脈情報の2つを用いる
  • 分類器はRBF neural networkを用いる

モデルの全体像

以下のような3つのパーツからなる。

  1. 特徴点の検出 (feature Point Detection)
  2. 特徴量の抽出 (Feature Extraction)
  3. 分類 (Classification)

特徴点の検出 (feature Point Detection)

[2] で提示されているAAM アルゴリズムを用いている。ちゃんと読んでいないが、エッジを利用したshapeにテクスチャ情報を組み合わせてshapeを検出するようだ。求める shape を Sとし、これを境界の頂点群、v を頂点数として、

S = \left( x_1, y_1, x_2, y_2, \cdots , x_v, y_v \right)^T \tag{1}

とする。

特徴量の抽出 (Feature Extraction)

1)feature pointの選択

まず、AAMで得られた106個のポイントから、以下の図のような

スクリーンショット 2022-03-16 17.26.23.png

26個のポイントを選択する。以下はその場所の一覧。

スクリーンショット 2022-03-16 17.27.14.png

また以下のFig5は26個のポイント例だが、上側が女性、下側が男性で、左列はneutralな表情、右側はsurpriseな表情。

スクリーンショット 2022-03-16 17.38.31.png

ここで、neutralな表情と対象とする表情はdatasetの特性上以下のようになる。

スクリーンショット 2022-03-15 16.02.37.png

開始のフレームはneutralであり、終了時点のフレームはなんらかの表情を想定している。

2)ベクトルの生成

$p_i$ : 特徴ポイントの i 番目
$d_{ij}, \ (i,j=1,2,\cdots , 26 \ i \neq j)$ : i 番目の特徴ポイントから j 番目の特徴ポイントまでの距離
として、任意の特徴ポイントからそれ以外の特徴ポイントまでの距離を

d_{ij} = \| p_i - p_j \| = \sqrt{\left( x_i - x_j \right)^2 + \left( y_i - y_j \right)^2} \tag{4}

論文中の(4)式はルートの中がマイナスになっているので間違いか?

また任意の特徴ポイント3点 i,j,kを考え、i から j 、i から k へのベクトルをそれぞれ以下で定義する。

\begin{eqnarray}
l_{ij} &=& p_j - p_i = (x_j - x_i, y_j - y_i) \\
l_{ik} &=& p_j - p_i = (x_k - x_i, y_k - y_i) 
\end{eqnarray}

としてベクトルを作り、

\alpha_{l_{ij}, l_{ik}} = \arccos \left( \frac{l_{ij} \cdot l_{jk}}{|l_{ij}||l_{ik}|} \right)

としてベクトル間の角度を求める。

FPDRC, CARC

まずはFPDRC(feature point distance ratio coefficient)から。

これは以下のように、ニュートラルな表情の特徴点間距離に対する、ある感情の特徴点間距離で算出する。

k_d(i, j) = \frac{d^{expression}_{ij}}{d^{neutral}_{ij}} \tag{8}

i と j の関数である事を明示するため、この文字を加えている。

以下のサンプル(Fig7の上側)であれば、

スクリーンショット 2022-03-17 1.02.17.png

situation1は大きな値となり、situation3は小さな値となるだろう。

当然以下のように i, jの組み合わせによって値は異なる。

スクリーンショット 2022-03-17 1.05.30.png

組み合わせ総数はコンビネーションの26, 2個なので、$C^2_{26} = 325$ 個。

ここから変動の小さいものを以下の条件で除外する。

|k_{d - final} - 1| \leq K \tag{9}

CARC(connection angle ratio coefficient)に関しても同様で、ニュートラルな表情の特徴点間角度に対する、ある感情の特徴点間角度で算出する。

k_{\alpha} = \frac{\alpha^{expression}_{l_{ij}l_{ik}}}{\alpha^{neutral}_{l_{ij}l_{ik}}} \tag{10}

こちらはi,j,kの組み合わせになるので、 $C^3_{26} = 7800$ 存在する。

同様に変動が小さいものは削除する。

|k_{\alpha - final} - 1| \leq K \tag{11}

skin deformation energy parameter

ここまでは特徴量として特徴点同士の位置関係や角度を採用したが、それに加えてテクスチャ情報も加える。具体的には以下の図(Fig10)のように2つの領域を対象としている。

スクリーンショット 2022-03-17 10.48.07.png

  • 15, 16, 9, 2 からなる四角形領域
  • 3, 10, 13, 6 からなる四角形領域

これに対し、以下の図(Fig11)のようなプロセスで特徴量を抽出する。

スクリーンショット 2022-03-17 10.50.24.png

  1. 抽出した2領域をリサイズする
  2. それをフーリエ変換する
  3. neutralの周波数領域と対象とする表情の周波数領域で比をとる
  4. PCAで次元削減する

フーリエ変換して得た周波数領域の情報のうち、neutralなものに対するものを

B1 =
 \begin{pmatrix}
b^1_{11} & \cdots & b^1_{1N} \\
\vdots & \ddots & \vdots \\
b^1_{M1} & \cdots & b^1_{MN} \\
\end{pmatrix} \tag{12}

とする。これと対象とする表情の周波数領域の情報を $B2$ として、その要素ごとの比を求める。

\begin{eqnarray}
{\bf B} = B1 / B2 &=&
\begin{pmatrix}
b^1_{11} / b^2_{11} & \cdots & b^1_{1N} / b^2_{1N} \\
\vdots & \ddots & \vdots \\
b^1_{M1} / b^2_{M1} & \cdots & b^1_{MN} / b^2_{MN} \\
\end{pmatrix} \\
&=& 
\begin{pmatrix}
b_{11} & \cdots & b_{1N} \\
\vdots & \ddots & \vdots \\
b_{M1} & \cdots & b_{MN} \\
\end{pmatrix} \\
 \tag{14}
\end{eqnarray}

特徴量の全て

これら3つの特徴量を組み合わせる。

k_{final} = \left( k_{d-final}, k_{\alpha - finale} , k_{s-final} \right) \tag{15}

識別器

識別器は以下の図のような radial basis function(RBF) neural network を用いる。

スクリーンショット 2022-03-15 16.03.39.png

論文中に詳細は書かれていないが、記述から推測すると以下のようなものか(?)

まず上図(Fig3)中の左における入力は特徴量である $k_{final}$ のはずなので n はこの次元に相当するだろう。

X_n = k_{final, \ n}

次に、hidden layerではそれらにgaussian radial basis functionがかかる。

H_m = e^{|X - c_m|^2}

最後にこれらに重みをかけた上で足し合わせる。ただし、6分類であることを考えると以下のような形か? W を (6クラス) x M の重み行列として、

output = softmax \left( {\bf W} \cdot {\bf H} \right)

となるだろうか。

実験と結果

以下の2つのdatasetで実験を行った。

  • Cohn-Kanade database
  • BHU (Beihang University) facial expression database

実験は以下の3段階で行った。

  1. (9)式や(11)式の K 値を探索する
  2. 求めた K 値で評価する
  3. 他のモデルと比較する

以下は求めたK値で2つのデーセットに対して推論した結果。confusion matrixで評価している。

スクリーンショット 2022-03-17 12.13.45.png

以下は他のモデルと比較した結果。最右が3つの特徴量を組み合わせた手法。

スクリーンショット 2022-03-17 12.15.12.png

本手法の問題点(Conclusion and future workより)

本手法は以下の問題点がある

  1. neutralな表情のフレームと、それとは別にneutralでない未知の表情のフレームが存在する必要がある
  2. 実験室で撮られたようなdatasetでしか精度を検証していないので、照明環境が変化したり、あるいは複数人が存在する場合には対応していない

reference

[2] Cootes, T.F., Taylor, C.J., Cooper, D.H., Graham, J.: ‘Active shape models-their training and application’, Comput. Vis. Image Underst., 1995, 61, (1), pp. 38–59

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?