1. 什么是關鍵點檢測?
人臉關鍵點檢測是指給定人臉圖像,定位出人臉面部的關鍵點,包括眉毛、眼睛、鼻子、嘴巴、臉部輪廓區域的點,由於受到姿態和遮擋等因素的影響,人臉關鍵點檢測是一個富有挑戰性的任務。
人臉關鍵點是人臉各個部位的重要特征點,通常是輪廓點與角點,下圖是96個面部關鍵點檢測結果。
其中點代表位置,數字代表序號。人臉關鍵點可以有以下主要應用:
- 人臉姿態對齊,人臉識別等算法都需要對人臉的姿態進行對齊從而提高模型的精度。
- 人臉美顏與編輯,基於關鍵點可以精確分析臉型、眼睛形狀、鼻子形狀等,從而對人臉的特定位置進行修飾加工,實現人臉的特效美顏,貼片等娛樂功能,也能輔助一些人臉編輯算法更好地發揮作用。
- 人臉表情分析,基於關鍵點可以對人的面部表情進行分析,從而用於互動娛樂,行為預測等場景。
2. 人臉關鍵點數據集
關鍵點能夠反映各個部位的臉部特征,隨着技術的發展和對精度要求的增加,人臉關鍵點的數量經歷了從最初的5個點到如今超過200個點的發展歷程,在人臉等算法上擁有領先技術優勢的商湯科技先后定出過106個關鍵點等行業標准。
2.1 5點標注
人臉面部最關鍵的有5個點,分別為左右兩個嘴角,兩個眼的中心,鼻子,這5個關鍵點屬於人臉內部關鍵點,根據它們就可以計算出人臉的姿態。當然早期也有標注4個點以及6個點的方案。 2005年發布的 FRGC-V2(Face Recognition Grand Challenge Version2.0)中標注了雙眼、鼻子、嘴巴、下巴共5個關鍵點。 2007年發布的Caltech 10000 Web Faces數據集中標注了雙眼、鼻子和嘴巴共4個關鍵點。 2013年的AFW數據集中標注了雙眼、鼻子、嘴唇共6個關鍵點,其中嘴唇有3個點。 2014年發布的MTFL/MAFL數據集中標注了雙眼、鼻子和2個嘴角共5個關鍵點。
2.2 68點標注
68點標注是現今最通用的一種標注方案,早期在1999年的Xm2vtsdb數據集中就被提出,300W數據集和XM2VTS等數據集也都采用了68個關鍵點的方案,被OpenCV中的Dlib算法中所采用。 68個關鍵點的標注也有一些不同的版本,這里我們介紹最通用的Dlib中的版本,它將人臉關鍵點分為內部關鍵點和輪廓關鍵點,內部關鍵點包含眉毛、眼睛、鼻子、嘴巴共計51個關鍵點,輪廓關鍵點包含17個關鍵點。
Dlib所采用的68個人臉關鍵點標注可以看上圖,單邊眉毛有5個關鍵點,從左邊界到右邊界均勻采樣,共5×2=10個。 眼睛分為6個關鍵點,分別是左右邊界,上下眼瞼均勻采樣,共6×2=12個。 嘴唇分為20個關鍵點,除了嘴角的2個,分為上下嘴唇。上下嘴唇的外邊界,各自均勻采樣5個點,上下嘴唇的內邊界,各自均勻采樣3個點,共20個。 鼻子的標注增加了鼻梁部分4個關鍵點,而鼻尖部分則均勻采集5個,共9個關鍵點。 臉部輪廓均勻采樣了17個關鍵點。 如果把額頭部分也加上去,就可以得到更多,比如81個關鍵點。
2.3 96/98點標注
公開的數據集比較少超過68個關鍵點,其中比較有名的是Wider Facial Landmark in the Wild(WFLW),它提供了98個關鍵點。 WFLW 包含了 10000 張臉,其中 7500 用於訓練,2500 張用於測試。除了關鍵點之外,還有遮擋、姿態、妝容、光照、模糊和表情等信息的標注。
2.4 106與186點標注
106個關鍵點標注是商湯科技提出的在業內被廣泛采用的方案,包括Face++等企業開放的API多采用這個標注方式,具體信息如下:
外輪廓,33個均勻采樣點,比Dlib更加密集。 嘴巴20個關鍵點,與Dlib標注的相同。 鼻子15個關鍵點,與Dlib相比增加了兩側鼻梁部位。 眼睛20個關鍵點,每只眼睛輪廓點共8個,眼球中心點2個。 眉毛18個關鍵點,區分了上眉毛邊界。 后續又在106個關鍵點的基礎上提出了更加稠密的186個關鍵點,如今各個開發團隊使用的點數可能會有差異,比如百度使用過72和150個點的方案。 除了以上這些常用的方案,還有很多的數據集也有自己的標注標准,比如BioID Face Dataset包含20個關鍵點,BUHMAP-DB包含52個關鍵點,MUCT包含76個關鍵點,PUT大部分圖像包含30個關鍵點,其中正面人臉包括了194個點。
3. 數據集下載
數據集 | 介紹 | 鏈接 |
---|---|---|
300W | 共600張圖片(300室內,300室外),68關鍵點 | https://ibug.doc.ic.ac.uk/resources/300-W/ |
XM2VTS | 2360張正面圖,68關鍵點 | http://www.ee.surrey.ac.uk/CVSSP/xm2vtsdb/ |
LFPW | 1432張圖片,29關鍵點 | https://neerajkumar.org/projects/face-parts/ |
HELEN | 2000張訓練集,330張測試集 | http://www.ifp.illinois.edu/~vuongle2/helen/ |
IBUG | 135張圖片 | https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/ |
XM2VTS | 2360張正面圖,68關鍵點 | http://www.ee.surrey.ac.uk/CVSSP/xm2vtsdb/ |
AFLW | 20000張訓練,4386張測試 | |
FRGC V2 | 50000張訓練,4003張測試 | |
ICME 人臉106關鍵點檢測比賽官方數據集 | 106個點 | https://facial-landmarks-localization-challenge.github.io/#index https://sites.google.com/view/hailin-shi |
CelebA(2015) | 5個點,10177個人,共202599幅人臉圖像 | |
WFLW(ECCV2018) | 98個點,7500訓練集,2500測試集 | |
MTFL/MAFL(2014) | 68個點,MTFL數據集包含了12995 張臉,5個關鍵點標注;(MAFL) 數據集則包含了20000張臉,5個關鍵點標注與40個面部屬性 | |
SCUT-FBP(2017) | 86個點,2000亞洲女性,2000亞洲男性,750高加索男性,750高加索女性 |
4. 人臉關鍵點難點
人臉關鍵點是人臉相關問題的基礎,作為基礎模塊,人臉關鍵點檢測對速度很敏感,否則將會影響系統整體的效率,所以對人臉關鍵點檢測的要求是,又准又快。
人臉關鍵點目前存在的問題(不能又准又快)的原因如下:
- 局部變化:表情、局部特殊光照、部分遮擋,導致一部分關鍵點偏離了正常的位置,或者不可見了;
- 全局變化:人臉姿態、成像質量;
- 數據不均衡:在人臉數據里面,數據不均衡體現在,大部分是正臉數據,側臉很少,所以對側臉、大角度的人臉不太准;
- 模型效率:在 CNN 的解決方案中,模型效率主要由 backbone 網絡決定。
在實際使用中,人臉關鍵點的問題主要有兩個:
- 對“點是否遮擋”判斷是否准確;
- 對大角度人臉(+-60 度以內)點位置預測的准確性和穩定性。