PFLD:高精度實(shí)時人臉關(guān)鍵點(diǎn)檢測算法
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達(dá)
本文轉(zhuǎn)自:AI算法與圖像處理

這篇文章作者分別來自天津大學(xué)、武漢大學(xué)、騰訊AI實(shí)驗(yàn)室、美國天普大學(xué)。該算法對在高通ARM 845處理器可達(dá)140fps;另外模型大小較小,僅2.1MB;此外在許多關(guān)鍵點(diǎn)檢測的benchmark中也取得了相當(dāng)好的結(jié)果。
高精度,速度快,模型小是人臉關(guān)鍵點(diǎn)的實(shí)際使用必不可少的要求。為了同時考慮這三個問題,本文研究了一個整潔的模型,該模型在野外環(huán)境(如無約束的姿態(tài)、表情、光照和遮擋條件)和移動設(shè)備上的超實(shí)時速度下具有良好的檢測精度。更具體地說,我們定制了一個與加速技術(shù)相關(guān)的端到端single stage 網(wǎng)絡(luò)。在訓(xùn)練階段,對每個樣本進(jìn)行旋轉(zhuǎn)信息進(jìn)行估計(jì),用于幾何規(guī)則的關(guān)鍵點(diǎn)定位,然后在測試階段不涉及。在考慮幾何規(guī)則化的基礎(chǔ)上,設(shè)計(jì)了一種新的損失算法通過調(diào)整訓(xùn)練集中不同狀態(tài)(如大姿態(tài)、極端光照和遮擋)的樣本權(quán)重,來解決數(shù)據(jù)不平衡的問題。我們進(jìn)行了大量的實(shí)驗(yàn)來證明我們的有效性,在被廣泛采用的具有挑戰(zhàn)性的基準(zhǔn)測試中, 300W(包括iBUG, LFPW, AFW, HELEN,以及XM2VTS)和AFLW,設(shè)計(jì)并顯示其優(yōu)于最先進(jìn)的替代品的性能。我們的模型只有2.1Mb 大小和達(dá)到140幀/張?jiān)谑謾C(jī)上 (高通ARM 845處理器)高精度,適合大規(guī)模或?qū)崟r應(yīng)用。
為了能更清晰了解文章的內(nèi)容,用下面的思維導(dǎo)圖來展示文章的主要貢獻(xiàn)


人臉關(guān)鍵點(diǎn)檢測也稱為人臉對齊,目的是自動定位一組預(yù)定義的人臉基準(zhǔn)點(diǎn)(比如眼角點(diǎn)、嘴角點(diǎn))。作為一系列人臉應(yīng)用的基礎(chǔ),如人臉識別和驗(yàn)證,以及臉部變形和人臉編輯。這個問題一直以來都受到視覺界的高度關(guān)注,在過去的幾年里,我們的產(chǎn)品取得了很大的進(jìn)步。然而,開發(fā)一種實(shí)用的人臉關(guān)鍵點(diǎn)檢測器仍然具有挑戰(zhàn)性,因?yàn)闄z測精度,處理速度和模型大小都應(yīng)該考慮。
在現(xiàn)實(shí)世界條件下,獲得完美的面孔幾乎是不可能的。換句話說,人臉經(jīng)常是出現(xiàn)在控制不足甚至沒有約束的環(huán)境中。在不同的照明條件下,它的外表有各種各樣的姿勢、表情和形狀,有時還有部分遮擋。圖1提供了這樣的幾個例子。此外,有足夠的訓(xùn)練數(shù)據(jù)用于數(shù)據(jù)驅(qū)動方法也是模型性能的關(guān)鍵。在綜合考慮不同條件下,捕捉多個人臉可能是可行的,但這種收集方式會變得不切實(shí)際,特別是當(dāng)需要大規(guī)范的數(shù)據(jù)來訓(xùn)練深度模型時。在這種情況下,我們經(jīng)常會遇到不平衡的數(shù)據(jù)分布。以下總結(jié)了有關(guān)人臉關(guān)鍵點(diǎn)檢測精度的問題,分為三個挑戰(zhàn)(考慮實(shí)際使用時,還有一個額外的挑戰(zhàn)?。?/span>

Challenge #1 - Local Variation.
表情變化及極端光照(如高亮和陰影)和遮擋的下,人臉的部分區(qū)域特征就會發(fā)生較大偏差甚至消失的情況。
Challenge #2 - Global Variation.
姿態(tài)和成像質(zhì)量是影響人臉在圖像中出現(xiàn)的兩個主要因素,當(dāng)對人臉的整體結(jié)構(gòu)估計(jì)錯誤時,會導(dǎo)致很大一部分標(biāo)志點(diǎn)定位不理想。
Challenge #3 - Data Imbalance.
在淺層學(xué)習(xí)和深度學(xué)習(xí)中,一個可用的數(shù)據(jù)集在它的類/屬性之間顯示出不平等的分布,這是很常見的。這種不平衡很可能使算法/模型不能恰當(dāng)?shù)卮頂?shù)據(jù)的特征,從而在不同屬性之間提供不理想的準(zhǔn)確性。
上述挑戰(zhàn)極大地增加了準(zhǔn)確檢測的難度,要求檢測器更加魯棒。
隨著便攜式設(shè)備的出現(xiàn),越來越多的人喜歡隨時隨地處理他們的業(yè)務(wù)或娛樂。因此,除了追求檢測的高精度外,還應(yīng)考慮以下挑戰(zhàn)。
Challenge #4 - Model Efficiency.
對與應(yīng)用而言,另兩個限制是模型大小和計(jì)算需求。機(jī)器人、增強(qiáng)現(xiàn)實(shí)和視頻聊天等任務(wù)有望在一個裝備有限計(jì)算和內(nèi)存資源的平臺(如智能手機(jī)或嵌入式產(chǎn)品)上及時執(zhí)行。
這一點(diǎn)特別要求探測器是模型尺寸小,處理速度快。毫無疑問,建立準(zhǔn)確、高效、緊湊的實(shí)際關(guān)鍵點(diǎn)檢測系統(tǒng)是很有必要的。

黃色曲線包圍的是主網(wǎng)絡(luò),用于預(yù)測特征點(diǎn)的位置;
綠色曲線包圍的部分為輔助子網(wǎng)絡(luò),在訓(xùn)練時預(yù)測人臉姿態(tài)(主要包括三個姿態(tài)角,,有文獻(xiàn)表明給網(wǎng)絡(luò)加這個輔助任務(wù)可以提高定位精度,具體參考原論文),這部分在測試時不需要。
backbone 網(wǎng)絡(luò)是 bottleneck,用MobileNet塊代替了傳統(tǒng)的卷積運(yùn)算。通過這樣做,我們的backbone的計(jì)算量大大減少,從而加快了速度。此外,可以根據(jù)用戶需求通過調(diào)整MobileNets的width參數(shù)來壓縮我們的網(wǎng)絡(luò),從而使模型更小,更快。
姿態(tài)角的計(jì)算方法:
預(yù)先定義一個標(biāo)準(zhǔn)人臉(在一堆正面人臉上取平均值),在人臉主平面上固定11個關(guān)鍵點(diǎn)作為所有訓(xùn)練人臉的參考;
使用對應(yīng)的11個關(guān)鍵點(diǎn)和估計(jì)旋轉(zhuǎn)矩陣的參考矩陣;
由旋轉(zhuǎn)矩陣計(jì)算歐拉角。
網(wǎng)絡(luò)結(jié)構(gòu)細(xì)節(jié)如下:

在深度學(xué)習(xí)中,數(shù)據(jù)不平衡是另一個經(jīng)常限制準(zhǔn)確檢測性能的問題。例如,訓(xùn)練集可能包含大量正面,而缺少那些姿勢較大的面孔。如果沒有額外的技巧,幾乎可以肯定的是,由這樣的訓(xùn)練集訓(xùn)練的模型不能很好地處理大型姿勢情況。在這種情況下,“平均”懲罰每個樣本將使其不平等。為了解決這個問題,我們主張對訓(xùn)練樣本數(shù)量少進(jìn)行大的懲罰,而不是對樣本數(shù)量多的進(jìn)行懲罰。

M為樣本個數(shù),N為特征點(diǎn)個數(shù),Yn為不同的權(quán)重,|| * ||為特征點(diǎn)的距離度量(L1或L2距離)。(以Y代替公式里的希臘字母)
進(jìn)一步細(xì)化Yn:

其中:

即為最終的樣本權(quán)重。
K=3,這一項(xiàng)代表著人臉姿態(tài)估計(jì)的三個維度,即yaw, pitch, roll 角度,由計(jì)算公式可知角度越高,權(quán)重越大。
C為不同的人臉類別數(shù),作者將人臉分成多個類別,比如側(cè)臉、正臉、抬頭、低頭、表情、遮擋等,w為與類別對應(yīng)的給定權(quán)重,如果某類別樣本少則給定權(quán)重大。
作者在主流人臉特征點(diǎn)數(shù)據(jù)集300W,AFLW上測試了精度,盡管看起來上述模型很簡單,但超過了以往文獻(xiàn)的最高精度!
下圖是在300W上的CED,與其他算法相比有一定的優(yōu)勢

圖的含義:橫坐標(biāo)是 歸一化的平均誤差,縱坐標(biāo)是 人臉關(guān)鍵點(diǎn)的比例
下面來看一下算法處理速度和模型大小,圖中C代表i7-6700K CPU,G代表080 Ti GPU,G*代表Titan X GPU,A代表移動平臺Qualcomm ARM 845處理器。

下圖為在300W數(shù)據(jù)集上不同數(shù)據(jù)集難度上精度比較結(jié)果,依然是領(lǐng)先的。

其中PFLD 1X是標(biāo)準(zhǔn)網(wǎng)絡(luò),PFLD 0.25X是MobileNet blocks width 參數(shù)設(shè)為0.25的壓縮網(wǎng)絡(luò),PFLD 1X+是在WFLW數(shù)據(jù)集上預(yù)訓(xùn)練的網(wǎng)絡(luò)。
下圖是該算法在AFLW數(shù)據(jù)集上與其他算法的精度比較:

同樣是達(dá)到了新高度!
人臉關(guān)鍵點(diǎn)探測器需要具備三個方面,才能勝任大規(guī)模和/或?qū)崟r任務(wù),即準(zhǔn)確性、效率和模型大小。本文提出了一種實(shí)用的人臉關(guān)鍵點(diǎn)檢測器,稱為PFLD,它由主干網(wǎng)和輔助子網(wǎng)組成。backbone是由MobileNet塊構(gòu)建的,它可以很大程度上釋放卷積層的計(jì)算壓力,并根據(jù)用戶的要求,通過調(diào)整寬度參數(shù),使模型在尺寸上靈活。通過引入多尺度全連接層來擴(kuò)大感受野,提高捕捉人臉結(jié)構(gòu)的能力。為了進(jìn)一步規(guī)范化關(guān)鍵點(diǎn)定位,我們自定義了另一個分支,即輔助網(wǎng)絡(luò),通過輔助網(wǎng)絡(luò)可以有效地估計(jì)出關(guān)鍵點(diǎn)的旋轉(zhuǎn)信息??紤]幾何正則化和數(shù)據(jù)不平衡問題,設(shè)計(jì)了一種新的損失算法。大量的實(shí)驗(yàn)結(jié)果表明,我們的設(shè)計(jì)在精度、模型大小和處理速度方面優(yōu)于最新的方法,因此驗(yàn)證了我們的PFLD 0.25X在實(shí)際使用中是一個很好的折衷。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

