人臉關鍵點檢測之PFLD


1. 簡介

人臉關鍵點檢測也稱為人臉對齊,目的是自動定位一組預定義的人臉基准點(比如眼角點、嘴角點)。作為一系列人臉應用的基礎,如人臉識別和驗證,以及臉部變形和人臉編輯。這個問題一直以來都受到視覺界的高度關注,在過去的幾年里,我們的產品取得了很大的進步。然而,開發一種實用的人臉關鍵點檢測器仍然具有挑戰性,因為檢測精度,處理速度和模型大小都應該考慮

在現實世界條件下,獲得完美的面孔幾乎是不可能的。換句話說,人臉經常是出現在控制不足甚至沒有約束的環境中。在不同的照明條件下,它的外表有各種各樣的姿勢、表情和形狀,有時還有部分遮擋。下圖提供了這樣的幾個例子。此外,有足夠的訓練數據用於數據驅動方法也是模型性能的關鍵。在綜合考慮不同條件下,捕捉多個人臉可能是可行的,但這種收集方式會變得不切實際,特別是當需要大規范的數據來訓練深度模型時。在這種情況下,我們經常會遇到不平衡的數據分布。以下總結了有關人臉關鍵點檢測精度的問題,分為三個挑戰(考慮實際使用時,還有一個額外的挑戰!)。
在這里插入圖片描述

  • 局部變化:表情、局部特殊光照、部分遮擋,導致一部分關鍵點偏離了正常的位置,或者不可見了;

  • 全局變化:人臉姿態、成像質量;

  • 數據不均衡:在人臉數據里面,數據不均衡體現在,大部分是正臉數據,側臉很少,所以對側臉、大角度的人臉不太准;

  • 模型效率:在 CNN 的解決方案中,模型效率主要由 backbone 網絡決定。

2. 網絡結構

在這里插入圖片描述
黃色曲線包圍的是主網絡,用於預測特征點的位置

綠色曲線包圍的部分為輔助子網絡,在訓練時預測人臉姿態(主要包括三個姿態角,,有文獻表明給網絡加這個輔助任務可以提高定位精度,具體參考原論文),這部分在測試時不需要。

backbone 網絡是 bottleneck,用MobileNet塊代替了傳統的卷積運算。通過這樣做,我們的backbone的計算量大大減少,從而加快了速度。此外,可以根據用戶需求通過調整MobileNets的width參數來壓縮我們的網絡,從而使模型更小,更快。

姿態角的計算方法:

  • 預先定義一個標准人臉(在一堆正面人臉上取平均值),在人臉主平面上固定11個關鍵點作為所有訓練人臉的參考;
  • 使用對應的11個關鍵點和估計旋轉矩陣的參考矩陣;
  • 由旋轉矩陣計算歐拉角。

網絡結構細節如下:
在這里插入圖片描述

3. 損失函數

在深度學習中,數據不平衡是另一個經常限制准確檢測性能的問題。例如,訓練集可能包含大量正面,而缺少那些姿勢較大的面孔。如果沒有額外的技巧,幾乎可以肯定的是,由這樣的訓練集訓練的模型不能很好地處理大型姿勢情況。在這種情況下,“平均”懲罰每個樣本將使其不平等。為了解決這個問題,我們主張對訓練樣本數量少進行大的懲罰,而不是對樣本數量多的進行懲罰。
在這里插入圖片描述
M為樣本個數,N為特征點個數,Yn為不同的權重,|| * ||為特征點的距離度量(L1或L2距離)。(以Y代替公式里的希臘字母)

進一步細化$Y_n$:
在這里插入圖片描述
其中:
在這里插入圖片描述
即為最終的樣本權重。

K=3,這一項代表着人臉姿態估計的三個維度,即yaw, pitch, roll 角度,由計算公式可知角度越高,權重越大。

C為不同的人臉類別數,作者將人臉分成多個類別,比如側臉、正臉、抬頭、低頭、表情、遮擋等,w為與類別對應的給定權重,如果某類別樣本少則給定權重大

4. 測試結果

檢測精度對比如下面的表所示
在這里插入圖片描述
下面來看一下算法處理速度和模型大小,圖中C代表i7-6700K CPU,G代表1080 Ti GPU,G*代表Titan X GPU,A代表移動平台Qualcomm ARM 845處理器。
在這里插入圖片描述
其中PFLD 1X是標准網絡,PFLD 0.25X是MobileNet blocks width 參數設為0.25的壓縮網絡,PFLD 1X+是在WFLW數據集上預訓練的網絡。

下圖是該算法在AFLW數據集上與其他算法的精度比較:
在這里插入圖片描述
消融實驗方面作者僅僅分析了損失函數帶來的影響,結果如下表所示。
在這里插入圖片描述

5. PFLD優化

5.1 GhostNet

這里簡單介紹一下GhostNet,因為優化過程中會使用到GhostNet提出的GhostModule,而且正是GhostModule,PFLD的效率有了一個質的提升。
《GhostNet: More Features from Cheap Operations》是2020年3月華為、北大為了提升CNN在嵌入式設備的運行效率而提出的算法。其中提出的GhostModule,巧妙地將PointWise Convolution和DepthWise Convolution結合起來,在達到相同通道輸出的前提下,有效地減少運算量。雖然上面提到的Inverted Residual Block同樣也是PointWise Convolution和DepthWise Convolution的結合體,但是兩者將它們的結合方式有所不同,而正是GhostModule的巧妙結合,讓網絡的計算量得到減少。
其實按照個人的理解,GhostModule可以一句話概況為:輸入的Tensor先做PointWise Convolution,再做DepthWise Convolution,最后將PointWise Convolution和DepthWise Convolution的結果按channel的維度進行拼接,作為最終的輸出。大道至簡,操作並不復雜,但卻大大減少了運算量。

5.2 PFLD網絡結構優化

5.2.1 1 調整PFLD網絡結構,並增加多尺度全連層的數目(保持網絡速度不變,盡可能提升網絡精度)

對PFLD的基礎網絡進行調整,沒有用NAS等技術,憑借經驗和不斷嘗試盡量找出性能較好的網絡結構,如果大家找到更好的網絡結構,也歡迎大家分享出來。
此外,PFLD論文中提到 “To enlarge the receptive field and better catch the global structure on faces, a multi-scale fully-connected (MS-FC) layer is added for precisely localizing landmarks in images”,大概意思是為了增大感受野和更好地獲取人臉的全局結構,多尺度全連層的嵌入,可以准確地定位人臉關鍵點。論文作者認為,多尺度全連層是為了提升網絡的定位精度而加入的,因此在優化過程中,增加了多尺度全連層的數目,以提高網絡的定位精度
初步優化的網絡結構如下:
在這里插入圖片描述

5.2.2 將Inverted Residual Block替換成GhostModule,並細調網絡結構(保持網絡精度不變,提升網絡速度)

由於GhostModule的輕量化,將PFLD的Inverted Residual Block全部替換成GhostModule,並繼續細調網絡結構,最終優化的網絡結構如下表:
在這里插入圖片描述

5.3 優化后的測試結果

WFLW測試結果
輸入大小為112x112
在這里插入圖片描述
輸入大小為96x96
在這里插入圖片描述
參考代碼:PFLD_UltraLight

6. 最后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM