論文メモ: 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ピクセルを決定するため、量子化誤差が発生する
提案
- 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なら
となる分類
- visibleなら
- 第3項がランドマーク座標 (
) についての対数尤度
- 位置推定の回帰
- μが期待値ベクトル、Σが分散共分散行列で、求めたいパラメータとなる
CENとVENはそれぞれDU-Netのボトルネックを入力として全結合している。
- CENは、分散共分散行列
を
(コレスキー分解) したときの下三角行列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を 、Self-occludedを
としてます。(確かに画像に写っていない裏側のランドマークを付けるなんて本来は不可能なはず。)
実験
NME、AUC、FRで評価。
- visibility
が0のときは誤差の計算に含めない
- 正解座標
に対して、予測座標
は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よりも高い精度をマークしてます
- 遮蔽有無によって、Σの値も大きくなっており、不確かさを表す予測値として機能しています
所感
「遮蔽されているランドマークは、遮蔽されていることがわかるようにする」「遮蔽されているランドマークの位置を "敢えて" 推定するなら、どの程度分散するのかわかるようにする」という実利用では避けて通れない問題を、シンプルにアプローチした研究かと思いました。
-
Diogo Luvizon, David Picard, and Hedi Tabia. 2D/3D pose estimation and action recognition using multitask deep learn- ing. In CVPR, 2018.↩
-
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.↩
-
Zhiqiang Tang, Xi Peng, Kang Li, and Dimitris Metaxas. Towards efficient U-Nets: A coupled and quantized approach. TPAMI, 2019.↩
-
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}
}
ヒートマップ回帰
画像から顔ランドマークや姿勢 (頭部・関節など) といった特定部分の位置を推定するタスクでは、ヒートマップ回帰が主流となっています。ヒートマップ回帰では、部位座標 (x, y) をモードとするガウス分布でヒートマップを作り、そのヒートマップを推定します。
- 部位がk個あれば、k枚のヒートマップが出力となります
- ヒートマップ回帰以前は、部位座標を直接回帰する方法が採られてました
損失関数にMSEを用いた場合の問題点
ヒートマップ回帰では平均二乗誤差 (MSE) がロス関数として一般的に用いられています。ですが、MSEで学習すると前景画素の強度が低くぼやけたヒートマップになりやすい傾向があります。
- 小さな誤差に対して敏感ではないため、ガウス分布のモードを正確に推定できない
- 背景画素が大多数を占めるにも関わらず、前景画素と同じ重みを用いている
提案
この論文での主だった提案は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 = 0に近い場合、MSEと類似
- 誤差が十分小さい場合の影響度を下げる
Weighted loss mapで前景画素を強調
典型的な顔ランドマーク推定タスクでは前景画素の割合は1.2%程度と極めて小さいため、前景画素を強調する目的で重み付きの損失関数マップMを用意します。
AWingから得られた損失値に、WM + 1を掛け算することで最終的な損失値としています (式(5)抜粋) 。
- 実験ではハイパラW = 10として設定
実験
実験に用いたアーキテクチャは以下です。Stacked Hourglass 4 がベースとなってます。

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

考察: ハイパパラメータを変えてみる
ハイパパラメータ (θ, ε, ω) を変えてWFLWで実験したが、そこまで敏感でもないので、上の実験で用いた初期パラメータで十分そうという結論です。
- θは0.5
- εとωを変えてもそこまで大きな変動は無い
考察: モジュールの組み合わせを変えてみる
モジュールの組み合わせを変えてMEで比較してみた結果が以下。
- MSE: 5.39 に対して AW: 4.65 なので、Adaptive Wing Lossによって問題1.が改善した
- Weighted Loss Mapの導入によって0.35ポイント改善している (問題2.の緩和)
-
[1805.10483] Look at Boundary: A Boundary-Aware Face Alignment Algorithm↩
-
[1807.03247] An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution↩
-
https://arxiv.org/abs/1711.06753 (解説記事: 論文メモ: Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks - け日記 )↩
-
[1603.06937] Stacked Hourglass Networks for Human Pose Estimation↩
-
データセットの解説記事 顔ランドマークデータセットまとめ (AFLW, LFPW, COFW, 300-W, WFLW) - け日記↩
複数の画像を組み合わせるオーグメンテーション (mixup, CutMix)
複数の画像を組み合わせたオーグメンテーションであるmixupとCutMixについてまとめます。
mixup
2枚の画像をラベルともどもブレンドするのがmixup1です。次に紹介するCutMixの論文の図がわかりやすいです。

入力 と
を重みλで足し合わせて、新たな入力
とします。ラベルも同様に重みλで加算して
を得ます。
- λは Beta(α, α) 分布に従う (αはハイパパラメータで
)
- 入力として画像だけでなく音声やテーブルデータへも適用できる

Beta分布は以下のような確率密度となっており、α < 1.0ではλがいずれかのラベルに寄りやすくなります。
- αに関する指針は特に示されていませんでしたが、ImageNetでは0.1〜0.4、CIFAR-10・CIFAR-100では1.0で改善 (大きくしすぎるとunderfittingが見られた)

またmixupを適用するにあたって、以下のポイントも示されていました。
- 同じラベル間でmixupしても性能向上に寄与しない (異なるラベル間でmixupする必要がある)
- 実装ではランダムサンプリングされたミニバッチ内でmixupすると楽
CutMix
複数の画像の一部を切り取ってつなぎ合わせて1枚の入力画像にするオーグメンテーションが CutMix2 です。
入力 (
) とラベル
を以下の式で接続します。
はマスク (⦿はアダマール積)
- λは面積比で、(0, 1)の一様分布でサンプリング

以前紹介した画像の一部を隠すオーグメンテーションでは、マスク部分を (0, 0, 0) やランダムノイズで塗りつぶしてしまうため、ロス計算やバッチ正則化の観点で学習の効率を低下させてしまいます。 またmixupでは異なる画像をピクセル単位で足し合わせてしまうため、局所的には不自然で曖昧な入力となり、物体検出では精度改善につながりません。
学習データ同士をラベルとともに繋ぎ合わせることで、学習効率の低下を防ぎつつ入力領域のドロップアウトと同等の効果を得る一方、局所的な入力信号を維持することで物体検出にも使えるオーグメンテーションにする、というのがCutMixのモチベーションです。実際、画像分類・物体検出のいずれでもmixupやCutoutよりも高い精度をマークしてます。

















