論文メモ: LUVLi Face Alignment: Estimating Landmarks’ Location, Uncertainty, and Visibility Likelihood

先週に引き続き顔ランドマーク推定に関わる論文として、CVPR2020で提案された LUVLi Face Alignment: Estimating Landmarks’ Location, Uncertainty, and Visibility Likelihood (arXiv) を紹介します。

LUVLi Face Alignment: Estimating Landmarks’ Location, Uncertainty, and Visibility Likelihood

@misc{kumar2020luvli,
    title={LUVLi Face Alignment: Estimating Landmarks' Location, Uncertainty, and Visibility Likelihood},
    author={Abhinav Kumar and Tim K. Marks and Wenxuan Mou and Ye Wang and Michael Jones and Anoop Cherian and Toshiaki Koike-Akino and Xiaoming Liu and Chen Feng},
    year={2020},
    eprint={2004.02980},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}

モチベーション

顔ランドマークの位置だけではなく、uncertainty (不確実性) とvisibility (視認性) も同時に正確に予測したいというのがメインテーマとなります。見づらい・見えないランドマークは、その度合いも評価することが後続タスクにとって有益な情報となります。

光源やピンボケ、遮蔽 (手やマスクなどによるocclusionと顔向きによるself-occlusion) などによってランドマークの判別しづらい場合は、分散を大きくするというのがゴールとなります。

ヒートマップ回帰の問題点

不確実性と視認性を正確に予測する上で、現在主流のヒートマップ回帰は大きく2つの問題を抱えています。

  • 固定対称ガウス分布をground-truthとして学習しているため、予測されたヒートマップが不確実性の予測には適していない
    • 例えば、顎のランドマークはフェイスラインに沿った分布になるはず (なのに学習ではそれが表現できていない)
  • リサイズされたヒートマップに対してargmaxを行って、ランドマークとなる1ピクセルを決定するため、量子化誤差が発生する
    • argmaxからsoftmaxに置き換える1、最大値の近傍をサブサンプリングする2、などの工夫が行われている

提案

  • Location, Uncertainty, and Visibility Likelihood (LUVLi) によるモデル化
  • 非遮蔽・遮蔽・自己遮蔽 (self-occluded) が区別された19000枚以上の顔画像からなるデータセット

LUVLi

LUVLiではDU-Net3をベースとし、各U-netから分岐する3つのコンポネントを追加したモデルとなっています。いずれも微分可能でend-to-endで学習可能です。

  • Mean Estimator: ランドマークの位置を推定
    • 各ランドマークのヒートマップをReLUに通して加重平均することでサブピクセルの精度の推定結果を得られる
  • CEN (Cholesky Estimator Network) : ランドマーク位置の共分散行列のコレスキー係数を推定
    • 重みは全U-netで共有
  • VEN (Visibility Estimator Network) : ランドマークの視認性の確率を推定
    • 重みは全U-netで共有

LUVLiのロス関数は以下で定めている。

  • 第1項・第2項がvisibilityについてのバイナリクロスエントロピ
    • visibleなら  v_j = 1 となる分類
  • 第3項がランドマーク座標 ( \vec{p_j} = (p_{jx}\ p_{jy})^T ) についての対数尤度
    • 位置推定の回帰
    • μが期待値ベクトル、Σが分散共分散行列で、求めたいパラメータとなる

CENとVENはそれぞれDU-Netのボトルネックを入力として全結合している。

  • CENは、分散共分散行列  \Sigma_{ij}  \Sigma_{ij}=L_{ij}L_{ij}^T (コレスキー分解) したときの下三角行列Lの3つの値を出力とする
  • VENは、sigmoidで[0, 1]の確率値を出力とする

MERL-RAV

AFLW4の約19000枚の画像に対して、各ランドマーク座標に新たに以下3つのvisibilityクラスを付与したデータセット MERL Reannotation of AFLW with Visibility (MERL-RAV) を提案。

  • Unoccluded: 遮蔽なし (見える)
  • Self-occluded: 顔の角度によってランドマークが隠れている
  • Externally occluded: 髪や手、帽子などによってランドマークが隠れている

LUVLiではUnoccludedとExternally occludedを  v_j = 1 、Self-occludedを  v_j = 0 としてます。(確かに画像に写っていない裏側のランドマークを付けるなんて本来は不可能なはず。)

実験

NME、AUC、FRで評価。

  • visibility  v_j が0のときは誤差の計算に含めない
  • 正解座標  p_j に対して、予測座標  \mu_{K_{j}} はU-Net最終層の出力

300-W, Menpo, COFWにおける他モデルとの比較

それぞれSotAを達成してますが、externally occludedが多く含まれるCOFWで特筆して高い値をマークしており、遮蔽への強さが示されてます。

また300-Wのtestセットを使って、残差と分散共分散行列値の相関を調べたところ、一定の条件下で高い相関が見られました。これによって、分散共分散行列の予測値で不確かさを表現できていることがわかります。

COFWを使って遮蔽有無に依る分散共分散行列の値の変動を調べた結果が以下の表です。LUVLiでは遮蔽されている場合に十分大きな値となることがわかります。

CENについて、ヒートマップベースの手法も調査したが、直接座標を回帰する方法と比べてうまくいかなかった。分散共分散行列の最小固有値の分布を見ると、ほとんどが1ピクセル以下で、64x64のヒートマップでは解像度が低すぎるためとのことです。

MERL-RAVを使った評価

LULViの特性をさらにMERL-RAVで詳細に調べた結果が以下です。

  • 特に顔向き (yaw) の角度が大きいHalf-ProfileとProfileで素のDU-Netよりも高い精度をマークしてます
  • 遮蔽有無によって、Σの値も大きくなっており、不確かさを表す予測値として機能しています

所感

「遮蔽されているランドマークは、遮蔽されていることがわかるようにする」「遮蔽されているランドマークの位置を "敢えて" 推定するなら、どの程度分散するのかわかるようにする」という実利用では避けて通れない問題を、シンプルにアプローチした研究かと思いました。


  1. Diogo Luvizon, David Picard, and Hedi Tabia. 2D/3D pose estimation and action recognition using multitask deep learn- ing. In CVPR, 2018.

  2. Ying Tai, Yicong Liang, Xiaoming Liu, Lei Duan, Jilin Li, Chengjie Wang, Feiyue Huang, and Yu Chen. Towards highly accurate and stable face alignment for high-resolution videos. In AAAI, 2019.

  3. Zhiqiang Tang, Xi Peng, Kang Li, and Dimitris Metaxas. Towards efficient U-Nets: A coupled and quantized approach. TPAMI, 2019.

  4. Martin Koestinger, Paul Wohlhart, Peter Roth, and Horst Bischof. Annotated facial landmarks in the wild: A large-scale, real-world database for facial landmark localization. In ICCVWorkshops, 2011.

論文メモ: Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression

今回は顔ランドマーク推定に関係する論文を取り上げます。

Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression

Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression (arXiv)では、ヒートマップ回帰型の顔ランドマーク推定モデルにおける新たな損失関数を提案しています。

@article{DBLP:journals/corr/abs-1904-07399,
  author    = {Xinyao Wang and
               Liefeng Bo and
               Fuxin Li},
  title     = {Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression},
  journal   = {CoRR},
  volume    = {abs/1904.07399},
  year      = {2019},
  url       = {http://arxiv.org/abs/1904.07399},
  archivePrefix = {arXiv},
  eprint    = {1904.07399},
  timestamp = {Thu, 25 Apr 2019 13:55:01 +0200},
  biburl    = {https://dblp.org/rec/journals/corr/abs-1904-07399.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}

github.com

ヒートマップ回帰

画像から顔ランドマークや姿勢 (頭部・関節など) といった特定部分の位置を推定するタスクでは、ヒートマップ回帰が主流となっています。ヒートマップ回帰では、部位座標 (x, y) をモードとするガウス分布でヒートマップを作り、そのヒートマップを推定します。

  • 部位がk個あれば、k枚のヒートマップが出力となります
  • ヒートマップ回帰以前は、部位座標を直接回帰する方法が採られてました

損失関数にMSEを用いた場合の問題点

ヒートマップ回帰では平均二乗誤差 (MSE) がロス関数として一般的に用いられています。ですが、MSEで学習すると前景画素の強度が低くぼやけたヒートマップになりやすい傾向があります。

  • 小さな誤差に対して敏感ではないため、ガウス分布のモードを正確に推定できない
  • 背景画素が大多数を占めるにも関わらず、前景画素と同じ重みを用いている

Figure 1, 2 抜粋

提案

この論文での主だった提案は2つです。さらに実験では、Boundary channel 1 やCoordConv 2 などの手法も取り入れています。

  • Adaptive Wing Loss
  • Weighted Loss Map

Adaptive Wing Loss

Adaptive Wing Lossは以下で定義されます。(式(2)抜粋)

  • ハイパパラメータはω、θ、ε、α
    • θが線形部分と非線形部分をスイッチするための閾値として働く
    • αは2よりもわずかに大きい値
  • AとCは関数を滑らかにするための定数

y (ground truth) の値によって振る舞いを変えている点がミソです。

  • y = 1に近い場合、Wing Loss 3 と類似
    • 誤差が小さい場合に勾配が大きくなる (強調される) -> ガウス分布の中心をより正確に近づける
    • Wing Lossと異なり、 |y - \hat{y}| = 0 付近でも滑らかなので学習も安定しやすい
  • y = 0に近い場合、MSEと類似
    • 誤差が十分小さい場合の影響度を下げる

Figure 4 抜粋

Weighted loss mapで前景画素を強調

典型的な顔ランドマーク推定タスクでは前景画素の割合は1.2%程度と極めて小さいため、前景画素を強調する目的で重み付きの損失関数マップMを用意します。

AWingから得られた損失値に、WM + 1を掛け算することで最終的な損失値としています (式(5)抜粋) 。

  • 実験ではハイパラW = 10として設定

実験

実験に用いたアーキテクチャは以下です。Stacked Hourglass 4 がベースとなってます。

f:id:ohke:20200505152332p:plain
Figure 3 抜粋

COFW・300W・WFLW 5 のデータセットを用い、NME・FR (10%)・AUC(10%) で比較し、従来手法よりも高い精度をマークしてます。

f:id:ohke:20200505115936p:plain

考察: ハイパパラメータを変えてみる

ハイパパラメータ (θ, ε, ω) を変えてWFLWで実験したが、そこまで敏感でもないので、上の実験で用いた初期パラメータで十分そうという結論です。

  • θは0.5
  • εとωを変えてもそこまで大きな変動は無い

考察: モジュールの組み合わせを変えてみる

モジュールの組み合わせを変えてMEで比較してみた結果が以下。

  • MSE: 5.39 に対して AW: 4.65 なので、Adaptive Wing Lossによって問題1.が改善した
  • Weighted Loss Mapの導入によって0.35ポイント改善している (問題2.の緩和)

複数の画像を組み合わせるオーグメンテーション (mixup, CutMix)

複数の画像を組み合わせたオーグメンテーションであるmixupとCutMixについてまとめます。

mixup

2枚の画像をラベルともどもブレンドするのがmixup1です。次に紹介するCutMixの論文の図がわかりやすいです。

f:id:ohke:20200711115406p:plain
[2] Table 1 抜粋

入力  x_i x_j を重みλで足し合わせて、新たな入力  \tilde{x} とします。ラベルも同様に重みλで加算して  \tilde{y} を得ます。

  • λは Beta(α, α) 分布に従う (αはハイパパラメータで \alpha \in (0, \infty))
  • 入力として画像だけでなく音声やテーブルデータへも適用できる

f:id:ohke:20200711115024p:plain
[1] 抜粋

Beta分布は以下のような確率密度となっており、α < 1.0ではλがいずれかのラベルに寄りやすくなります。

  • αに関する指針は特に示されていませんでしたが、ImageNetでは0.1〜0.4、CIFAR-10・CIFAR-100では1.0で改善 (大きくしすぎるとunderfittingが見られた)

f:id:ohke:20200711131553p:plain

またmixupを適用するにあたって、以下のポイントも示されていました。

  • 同じラベル間でmixupしても性能向上に寄与しない (異なるラベル間でmixupする必要がある)
  • 実装ではランダムサンプリングされたミニバッチ内でmixupすると楽

CutMix

複数の画像の一部を切り取ってつなぎ合わせて1枚の入力画像にするオーグメンテーションが CutMix2 です。

入力  x_{A}, x_{B} ( x^{W \times H \times C} \in \mathbb{R}) とラベル  y_{A}, y_{B}を以下の式で接続します。

  •  M \in {0, 1}^{W \times H}はマスク (⦿はアダマール積)
  • λは面積比で、(0, 1)の一様分布でサンプリング

f:id:ohke:20200711145211p:plain
[2] 式 (1) 抜粋

以前紹介した画像の一部を隠すオーグメンテーションでは、マスク部分を (0, 0, 0) やランダムノイズで塗りつぶしてしまうため、ロス計算やバッチ正則化の観点で学習の効率を低下させてしまいます。 またmixupでは異なる画像をピクセル単位で足し合わせてしまうため、局所的には不自然で曖昧な入力となり、物体検出では精度改善につながりません。

学習データ同士をラベルとともに繋ぎ合わせることで、学習効率の低下を防ぎつつ入力領域のドロップアウトと同等の効果を得る一方、局所的な入力信号を維持することで物体検出にも使えるオーグメンテーションにする、というのがCutMixのモチベーションです。実際、画像分類・物体検出のいずれでもmixupやCutoutよりも高い精度をマークしてます。

f:id:ohke:20200711115406p:plain
[2] Table 1 抜粋