DeepFace: Closing the Gap to Human-Level Performance in Face Verification
http://blog.csdn.net/visionhack/article/details/21984495
?DeepFace: Closing the Gap to Human-Level Performance in Face Verification
? ? ? ?這篇文章是Facebook公司發(fā)表于CVPR2014的Oral文章, 這段時間非常火,一眾科技媒體都在熱炒“計算機的人臉識別能力正在趕超人類或者已經(jīng)趕超了人類”,甚至微博上有人斷言,CV研究的最高境界就是“用最牛的機器,實現(xiàn)最深度的算法”。鋪墊到此為止,我們進入正題,由我的視角帶領(lǐng)大家讀一讀這篇火的一談糊涂的文章。
0. 本文的貢獻
? ? ?DeepFace一文依舊是沿著“檢測-對齊-人臉表示-分類”這一人臉識別技術(shù)路線來的,其貢獻在于對人臉對齊和人臉表示環(huán)節(jié)的改進。1)在人臉對齊環(huán)節(jié),引入了3D人臉模型對有姿態(tài)的人臉就行分片的仿射對齊。2)在人臉表示環(huán)節(jié),利用一個9層的深度卷積在包含4000人、400萬張人臉的數(shù)據(jù)集上學(xué)習(xí)人臉表示,這個9層的DCNN網(wǎng)絡(luò)有超過1.2億個參數(shù)。本文的模型在LFW數(shù)據(jù)集上取得了97.25%的平均精度(逼近了人類97.5%的極限),同時在Youtube數(shù)據(jù)集上取得了當(dāng)前最好的結(jié)果,比之前的NO.1整整高出了12.7%。
1. 人臉對齊人臉對齊是人臉特征抽取前的預(yù)處理步驟,在real-world條件下,受姿態(tài)和表情影響,人臉對齊是一個困難的任務(wù)。本文提出了一種借助3D模型的人臉稠密對齊方法,見下圖:
其基本步驟是:1. 檢測六個面部關(guān)鍵點 2. 基于六個關(guān)鍵點進行人臉全局仿射變換。3. 檢測67個面部關(guān)鍵點,并對人臉進行三角剖分。4. 將3D人臉轉(zhuǎn)到當(dāng)前對齊人臉同一視角并獲得三角塊的可見性。5. 利用3D模型產(chǎn)生新的67個關(guān)鍵點位置及其三角剖分 6. 分片仿射變換得到的正面人臉。
Details 1: 如何獲得Figure 1 (d): 利用一個外部3D人臉庫USF Human-ID database我們可以獲得一個平均3D人臉模型,進一步的我們可以計算相機投影矩陣P與2D坐標(biāo)之間的對應(yīng)關(guān)系,由此可以計算出這個相機投影矩陣P。顯然的,這個平均3D模型投影到(c)當(dāng)中時,會有一個殘差r。
Details 2: 如何獲得正面人臉 在Tom-versus-Pete一文中,特別提到了Indentiy-Perserved Alignment對齊的概念,其觀點是將人臉嚴格對齊到同一個平均形狀對于保持人的身份信息是不利的,因此Tom-versus-Pete一文利用Ref-set對面部關(guān)鍵點的位置進行校正。而本文的則在對齊的平均形狀上加上殘差r(見Details 1),從而保留了不同人的形狀信息(寬鼻梁對齊后依舊是寬鼻梁)。最終的對齊就變成了對應(yīng)三角塊之間的仿射變換,不可見的三角塊用對稱的三角塊來填充。
2. 表示學(xué)習(xí)
表示學(xué)習(xí)部分利用了深度卷積神經(jīng)網(wǎng)絡(luò),技術(shù)細節(jié)需要注意的有兩點:1. 激勵函數(shù)使用的是ReLu , 優(yōu)化目標(biāo)是cross-entroy Loss,SGD算法優(yōu)化。2. F7層的特征表示非常稀疏,75%的特征表示為0,為了提高對光照的魯棒性,最終的特征還進行了二范數(shù)歸一。
3. 測度學(xué)習(xí) 最終每張人臉用F7層4096維的特征向量來表示,進一步的,本文學(xué)習(xí)了一對人臉表示的度量函數(shù),采用了兩種方法1)加權(quán)卡方距離,用線性SVM學(xué)習(xí)權(quán)重。 2)Siame網(wǎng)絡(luò)。
4. 實驗 實驗是本文的重頭戲,技術(shù)細節(jié)很多,我們在這里對其中重要的參數(shù)和結(jié)果進行講解,更細節(jié)的內(nèi)容還請參考原文。
4.1 數(shù)據(jù)集
訓(xùn)練集是作者組織的SFC,共有4040人,每個人800~1200張圖像,共有440萬張圖像,wow, A huge dataset! 這比孫劍老師整理的WDRef大了幾十倍。
測試集有兩個,LFW和YFC。
4.2. LFW測試結(jié)果
最重要的結(jié)果:1. LFW上的最好結(jié)果是97.25%,驚天地泣鬼神了。 2. 如果不做步驟2那一通復(fù)雜的對齊,只用全局仿射變換,94.3%。 3. 如果直接用人臉檢測的結(jié)果,87.9%。 4. 如果不用DCNN學(xué)表示,在步驟2的人臉對齊的基礎(chǔ)上做LBP/SVM,91.4%。 這組結(jié)果說明,對齊和特征表示學(xué)習(xí)各自帶來了3%的增益。
另外一些中間結(jié)果,如果直接用F7層歸一化后的特征做內(nèi)積,95.92%, 如果學(xué)一個加權(quán)的卡方距離,可以提升到97.00%。
需要說明的是,雖然本文在LFW上達到了97.25的最好性能,但是來自不易。作者融合了三種網(wǎng)絡(luò)輸入,終于提升到了97.15%。
這還不夠,作者繼續(xù)努力,又學(xué)了Siame網(wǎng)絡(luò),再和97.15%的結(jié)果融合,終于做到了97.25%。其實97.00%到97.25%, 加了一大堆復(fù)雜的東西,搞了三種網(wǎng)絡(luò)輸出,才走完了最后的0.25%!下表是本文方法與state-of-the-art方法的一個比較,注意人類的極限是97.53%。
4.3 YFC上的結(jié)果 啥也不說了,見下表,直接比之前最好的結(jié)果高出了12.7%。
4.4 計算復(fù)雜度 本文還討論了計算復(fù)雜度問題,通過SIMD優(yōu)化,DCNN網(wǎng)絡(luò)提取一張圖片特征的時間為0.18s,這個時間不算長也不算短,如果有GPU相信這個速度還能獲得更大提升。
5. 結(jié)論
?一句話總結(jié):DeepFace利用面部多點的稠密對齊,借助于3D模型對有姿態(tài)的人臉進行校正,同時利用一個9層深度卷積神經(jīng)網(wǎng)絡(luò)在400萬規(guī)模的人臉庫上訓(xùn)練了一個深度人臉表示模型,在LFW數(shù)據(jù)集上取得了97.25%的平均精度(逼近了人類97.5%的極限)。
? ? ? 八卦時間:博主最近改了個昵稱,叫CV_BigMouth,希望可以從此大嘴評論CV。話說facebook這個文章出來之后,博主的感覺是:3D對齊+DCNN,LFW暴庫,讀了論文之后感慨97.00%到97.25%的路走的真艱辛。
? ? ? 大家可以看Yi Ma老師的微博,對這篇文章也有點評,這里留點懸念,大家自己去體會。
此處還有一篇簡單的閱讀筆記,可以隨意看看
http://blog.csdn.net/sheng_ai/article/details/39053669
總結(jié)
以上是生活随笔為你收集整理的DeepFace: Closing the Gap to Human-Level Performance in Face Verification的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PS渐变自行车的做法
- 下一篇: 链路聚合、Trunk、端口绑定和捆绑简析