DeepFace: Closing the Gap to Human-Level Performance in Face Verification

這篇文章是Facebook公司發表於CVPR2014的Oral文章, 這段時間非常火,一衆科技媒體都在熱炒“計算機的人臉識別能力正在趕超人類或者已經趕超了人類”,甚至微博上有人斷言,CV研究的最高境界就是“用最牛的機器,實現最深度的算法”。鋪墊到此爲止,我們進入正題,由我的視角帶領大家讀一讀這篇火的一談糊塗的文章。

0. 本文的貢獻

     DeepFace一文依舊是沿着“檢測-對齊-人臉表示-分類”這一人臉識別技術路線來的,其貢獻在於對人臉對齊和人臉表示環節的改進。1)在人臉對齊環節,引入了3D人臉模型對有姿態的人臉就行分片的仿射對齊。2)在人臉表示環節,利用一個9層的深度卷積在包含4000人、400萬張人臉的數據集上學習人臉表示,這個9層的DCNN網絡有超過1.2億個參數。本文的模型在LFW數據集上取得了97.25%的平均精度(逼近了人類97.5%的極限),同時在Youtube數據集上取得了當前最好的結果,比之前的NO.1整整高出了12.7%。

1. 人臉對齊

人臉對齊是人臉特徵抽取前的預處理步驟,在real-world條件下,受姿態和表情影響,人臉對齊是一個困難的任務。本文提出了一種藉助3D模型的人臉稠密對齊方法,見下圖:


其基本步驟是:1. 檢測六個面部關鍵點 2. 基於六個關鍵點進行人臉全局仿射變換。3. 檢測67個面部關鍵點,並對人臉進行三角剖分。4. 將3D人臉轉到當前對齊人臉同一視角並獲得三角塊的可見性。5. 利用3D模型產生新的67個關鍵點位置及其三角剖分 6. 分片仿射變換得到的正面人臉。

Details 1: 如何獲得Figure 1 (d):
利用一個外部3D人臉庫USF Human-ID database我們可以獲得一個平均3D人臉模型,進一步的我們可以計算相機投影矩陣P與2D座標之間的對應關係,由此可以計算出這個相機投影矩陣P。顯然的,這個平均3D模型投影到(c)當中時,會有一個殘差r。

Details 2: 如何獲得正面人臉
在Tom-versus-Pete一文中,特別提到了Indentiy-Perserved Alignment對齊的概念,其觀點是將人臉嚴格對齊到同一個平均形狀對於保持人的身份信息是不利的,因此Tom-versus-Pete一文利用Ref-set對面部關鍵點的位置進行校正。而本文的則在對齊的平均形狀上加上殘差r(見Details 1),從而保留了不同人的形狀信息(寬鼻樑對齊後依舊是寬鼻樑)。最終的對齊就變成了對應三角塊之間的仿射變換,不可見的三角塊用對稱的三角塊來填充。

2. 表示學習


表示學習部分利用了深度卷積神經網絡,技術細節需要注意的有兩點:1. 激勵函數使用的是ReLu , 優化目標是cross-entroy Loss,SGD算法優化。2. F7層的特徵表示非常稀疏,75%的特徵表示爲0,爲了提高對光照的魯棒性,最終的特徵還進行了二範數歸一。


3. 測度學習
最終每張人臉用F7層4096維的特徵向量來表示,進一步的,本文學習了一對人臉表示的度量函數,採用了兩種方法1)加權卡方距離,用線性SVM學習權重。 2)Siame網絡。

4. 實驗
實驗是本文的重頭戲,技術細節很多,我們在這裏對其中重要的參數和結果進行講解,更細節的內容還請參考原文。

4.1 數據集

訓練集是作者組織的SFC,共有4040人,每個人800~1200張圖像,共有440萬張圖像,wow, A huge dataset! 這比孫劍老師整理的WDRef大了幾十倍。

測試集有兩個,LFW和YFC。


4.2. LFW測試結果

最重要的結果:1. LFW上的最好結果是97.25%,驚天地泣鬼神了。 2. 如果不做步驟2那一通複雜的對齊,只用全局仿射變換,94.3%。 3. 如果直接用人臉檢測的結果,87.9%。 4. 如果不用DCNN學表示,在步驟2的人臉對齊的基礎上做LBP/SVM,91.4%。 這組結果說明,對齊和特徵表示學習各自帶來了3%的增益。

另外一些中間結果,如果直接用F7層歸一化後的特徵做內積,95.92%, 如果學一個加權的卡方距離,可以提升到97.00%。

需要說明的是,雖然本文在LFW上達到了97.25的最好性能,但是來自不易。作者融合了三種網絡輸入,終於提升到了97.15%。


這還不夠,作者繼續努力,又學了Siame網絡,再和97.15%的結果融合,終於做到了97.25%。其實97.00%到97.25%, 加了一大堆複雜的東西,搞了三種網絡輸出,才走完了最後的0.25%!下表是本文方法與state-of-the-art方法的一個比較,注意人類的極限是97.53%。



4.3 YFC上的結果
啥也不說了,見下表,直接比之前最好的結果高出了12.7%。


4.4 計算複雜度
本文還討論了計算複雜度問題,通過SIMD優化,DCNN網絡提取一張圖片特徵的時間爲0.18s,這個時間不算長也不算短,如果有GPU相信這個速度還能獲得更大提升。


5. 結論

 一句話總結:DeepFace利用面部多點的稠密對齊,藉助於3D模型對有姿態的人臉進行校正,同時利用一個9層深度卷積神經網絡在400萬規模的人臉庫上訓練了一個深度人臉表示模型,在LFW數據集上取得了97.25%的平均精度(逼近了人類97.5%的極限)。

      八卦時間:博主最近改了個暱稱,叫CV_BigMouth,希望可以從此大嘴評論CV。話說facebook這個文章出來之後,博主的感覺是:3D對齊+DCNN,LFW暴庫,讀了論文之後感慨97.00%到97.25%的路走的真艱辛。

      大家可以看Yi Ma老師的微博,對這篇文章也有點評,這裏留點懸念,大家自己去體會。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章