はじめに
最近の顔特徴点(Face landmark)の抽出について書きます。
DAN(Deep Alignment Network: A convolutional neural network)とは
Deep Alignment Network: A convolutional neural network for robust face alignment:Marek Kowalski, Jacek Naruniec, Tomasz Trzcinski
https://arxiv.org/abs/1706.01789
Github https://github.com/MarekKowalski/DeepAlignmentNetwork
DANについて説明します。DANはカスケード形状回帰(CSR)にインスパイアされました。
まずはCSRについて説明します。
カスケード形状回帰 Cascade Shape Regression (CSR)とは
顔の形状はM個の点より構成されます。
ランドマークポイント(landmark point)を$ S =[x_1, y_1, ..., x_M, y_M]$とする。
各画像を$I_i$,本当の形を$\hat{S}_i$とします。$i=1,2,\cdots,N$
カスケード独立変数$R = \left( R ^ { 1 } , R ^ { 2 } , \ldots , R ^ { T } \right)$はT個の独立変数で構成されます。
画像$I$および最初の顔の形状$S_0$が与えられると、各回帰子は前の形状を更新するために形状増分ベクトル$\Delta S$を生成します。
$$S ^ { t } = S ^ { t - 1 } + R ^ { t } \left( I , S ^ { t - 1 } \right) , \text { with } \Delta S ^ { t } = R ^ { t } \left( I , S ^ { t - 1 } \right) , t = 1,2 , \ldots , T$$
損失関数は以下のようになる。これ最小化するように学習する。
$$R ^ { t } = \arg \min _ { R } \sum _ { i = 1 } ^ { N } \left| \hat { S } _ { i } - \left( S _ { i } ^ { t - 1 } + R \left( I _ { i } , S _ { i } ^ { t - 1 } \right) \left| _ { 2 }\right. \right. \right.$$
DANもCSRを使っています。
上の図を見てください。ニューラルネットワークの各段階は、初期推定値$S_0$から始めて、前の段階によって生成された顔特徴点の位置推定値を精緻化する。
接続層は、顔特徴点ヒートマップ$H_t$、特徴画像$F_t$、および入力画像を標準的な姿勢にワープするために使用される変換$T_t$を生成することによって、ネットワークの連続したステージ間のリンクを形成します。
顔特徴点のヒートマップと特徴画像を導入することによって、顔特徴点位置推定を含む重要な情報を伝達することができます。
https://drive.google.com/drive/folders/1QFZk_ED_FLW0xZC_gNuAKsYjLyKRMPPy より
以上が大まかなアイデアだと思われます。
詳細については論文をみてください。(めんどくさくなったので逃げる)
DANを漫画の顔の特徴点の抽出に使った例もあります。
Facial Landmark Detection for Manga Images:Marco Stricker, Olivier Augereau, Koichi Kise, Motoi Iwata
https://arxiv.org/abs/1811.03214
論文での結果
最後に
漫画の顔特徴点の抽出をするためには、上のGithubのDANを持ちて、漫画の顔のアノテーションを作って学習させる必要があるのだと思います。
実際にできたら記事を書きたいと思います。
参考文献
Cascaded Shape Regression for Automatic Prostate Segmentation from Extracorporeal Ultrasound Images
Jierong Cheng, Wei Xiong, Ying Gu, Shue Ching Chia, and Yue Wang
https://oar.a-star.edu.sg/jspui/bitstream/123456789/307/3/miar-csr.pdf