人臉對齊:Wing Loss人臉關鍵點檢測演算法2018
Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks
由薩里大學研究人員(第一至四作者)與江南大學研究人員(第五作者)共同研究,被CVPR2018收錄,最早於2017年11月在arXiv上發表(美[ˈɑ:rkaɪv]) :
https://arxiv.org/abs/1711.06753v4
近幾年,人臉關鍵點檢測大多在“由粗到精”(coarse to fine)上研究,而這篇文章則另闢蹊徑。依作者所說,這是第一篇在人臉關鍵點檢測任務上對loss function進行討論分析的文章,文章在loss function上進行改進,為人臉關鍵點檢測任務提出“專用”的loss function——Wing loss,作者的出發點值得借鑑。
創新點:
1.針對人臉關鍵點檢測提出新的loss function —— Wing Loss
2.針對人臉姿態角度多樣而導致的檢測精度不高問題,提出一種基於姿態的資料均衡方法,從而提升人臉姿態變化時的關鍵點檢測精度,這也是文章題目中“Robust”的體現
主要工作:
除上述兩點外,第三點是採用 two-stage landmark localisation,其實就是級聯卷積神經網路的思想,更多人臉關鍵點檢測中的級聯思想可參見:
級聯MobileNet-V2實現CelebA人臉關鍵點檢測
深度學習人臉關鍵點檢測方法—綜述
我將從三個部分進行介紹這篇論文,分別是Wing loss、資料均衡方法 和 Two-stage landmark localisation
Wing loss
命名:文中沒有提到為什麼命名為Wing loss,但是從 Wing loss的曲線圖看到,好像翅膀(Wing),或許因此得名吧
Wing loss 公式如下:
這裡丟擲兩個問題:
第一,這是一個分段函式,為什麼是分段函式?
第二,當|x|<w|x|<w 時,主體是一個對數函式,另外還有兩個控制引數,分別是w和ε,為什麼是對數函式?為什麼要加控制引數?
先解釋第二個問題,通常的人臉關鍵點檢測任務(迴歸任務)loss function都採用L2、L1和smooth L1 ,其中L2是使用最為廣泛的
這三個loss function曲線如下圖所示:
講到這裡,Wing loss的由來就講完啦,但是最最關鍵的還是要調參。要找合適的 w和ϵw和ϵ ,作者做了一系列實驗,給出了推薦值,請實驗結果:
PBD(Pose-based Data Balancing)
本文除了提出一種新的loss function,還針對人臉關鍵點檢測任務中遇到的人臉姿態多樣化問題,提出一種基於姿態的資料均衡方法,來提升人臉關鍵點檢測精度。
在分類任務中,資料不均衡非常容易導致模型效能不佳,而在人臉關鍵點任務(迴歸任務)中,作者同樣認為,正臉太多,有旋轉的臉太少,從而導致模型對有旋轉的人臉的關鍵點檢測精度低。 因此,提出一種基於姿態的資料均衡方法——PDB(Pose-based Data Balancing)
PDB方法:首先將 training shapes進行對齊,將對齊後的training shapes進行PCA,用shape eigenvector將original shapes進行投影至一維空間,用來控制姿態變化。整個訓練集投影后的係數通過一個直方圖來展示,如下圖所示:
有了這個直方圖,就可以看到哪些姿態的人臉影象多,哪些少,然後通過複製那些佔比較少的樣本,使得所有樣本均衡,這就是PDB方法。實驗結果表明PDB方法可以提升人臉關鍵點檢測精度:
Two-stage landmark localisation(Pose-based Data Balancing)
為了進一步提升精度,作者採用了級聯思想,在文中稱之為 Two-stage landmark localisation
level-1 採用的是CNN-6,level-2採用的是CNN-7, CNN-7與CNN-6不同之處在於:
- input比CNN-6大一倍,為128*128*3
- 多了一組操作——卷積、池化
- 第一個卷積層的卷積核個數為64(CNN-6為32)
level-1輸出的landmark有兩個作用:
- 移除人臉角度;
- 矯正bounding box 為level-2 提供更好的輸入
CNN-6 模型如下:
小結
通過閱讀該文章可知,在做人臉關鍵點時,可以注意以下幾點:
由於人臉關鍵點檢測是特殊的迴歸任務,因而要注意loss function是否對每一個點都“友好”,選用不同的loss function嘗試實驗,或許有新發現
資料不均衡問題不僅困擾分類任務,在人臉關鍵點檢測任務中,不同姿態的人臉樣本不均衡,同樣會影響模型獲得更高的精度,因此可嘗試使用某一種指標,去衡量訓練樣本當中,人臉姿態的分佈情況,然後對應的做資料均衡(該法資料資料增強)
級聯,利用上一級的output,對iamge進行矯正,使下一級獲得更好的input