【論文學習記錄】RetinaFace: Single-stage Dense Face Localisation in the Wild

論文地址:RetinaFace: Single-stage Dense Face Localisation in the Wild

一、概況

本篇論文提出的RetinaFace屬於single-stage的人臉檢測器,它結合了額外監督和自監督多任務學習的優點。它主要有以下五點貢獻:

1. 在WIDER FACE數據集上標註了5個人臉的landmarks,並且在這個額外監督信號的幫助下,提升了hard face的檢測效果。

2. 添加了自監督的mesh decoder分支,與已有的監督分支並行預測像素級的3D形狀人臉信息。

3. 在WIDER FACE hard測試集上,平均精度超過當前最先進的算法1.1%,達到91.4%。

4. 在IJB-C測試集上,RetinaFace能夠改善現有方法(ArcFace)的人臉驗證結果。

5. 採用輕量級的backbone,RetinaFace可以在單個CPU上實時運行VGA分辨率的圖像。

二、多任務損失函數

其中, i是訓練的第 i個anchor

L_{cls}(p_{i}, p_{i}^{*})是人臉分類損失

p_{i}表示第 i個anchor是人臉的置信度

p_{i}^{*}是人臉爲1,非人臉爲0

L_{box}(t_{i}, t_{i}^{*})是人臉定位框迴歸損失,是使用中心歸一化後的損失(smooth-L1)

t_{i}=\left \{ t_{x},t_{y},t_{w},t_{h} \right \}_{i}表示預測的人臉定位框的座標

t_{i}^{*}=\left \{t_{x}^{*},t_{y}^{*},t_{w}^{*},t_{h}^{*} \right \}_{i}表示groundtruth的人臉定位框的座標

L_{pts}(l_{i}, l_{i}^{*})是人臉landmark迴歸損失

l_{i}=\left \{ l_{x1},l_{y1},...,l_{x5},l_{y5} \right \}_{i}表示預測的5點人臉landmark

l_{i}^{*}=\left \{l_{x1}^{*},l_{y1}^{*},...,l_{x5}^{*},l_{y5}^{*} \right \}_{i}表示groundtruth的5點人臉landmark

L_{pixel}是dense迴歸損失

控制損失平衡的三個參數\lambda _{1},\lambda _{2},\lambda _{3}分別設置爲0.25,0.1和0.01。

三、Dense Regression分支

論文直接利用了Mesh Decoder,是一種基於快速局部譜濾波的圖卷積。

二維卷積對歐式網格感受野計算加權和,而圖卷積是計算連接兩個頂點的最小邊數。

定義彩色的face mesh

其中,\nu \in R^{n \times 6}是一系列包含人臉形狀和紋理信息的頂點集合

\varepsilon \in \left \{ 0,1 \right \}^{n\times n}是編碼點間連接狀態稀疏矩陣

定義圖拉普拉斯算子

其中,D \in R^{n \times n}是對角矩陣

核爲g_{\Theta}的圖卷積可以表示爲K階截斷的遞歸切比雪夫多項式。

其中,\Theta \in R^{K}是切比雪夫係數向量

T_{k}\left ( \tilde{L} \right ) \in R^{n \times n}是在縮放的拉普拉斯算子\bar{L}下的k階切比雪夫多項式

設,\bar{x}_{k}=T_{k}\left ( \tilde{L} \right )x \in R^{n}

那麼就可以遞歸的計算

\bar{x}_{k}=2L\bar{x}_{k}-\bar{x}_{k-2}

其中,\bar{x}_{0}=x\bar{x}_{1}=\tilde{L}x

在預測出形狀和紋理參數P_{ST} \in R^{128}之後,使用一個有效的3D差分mesh renderer將一個coloured-mesh D_{P_{ST}}映射到二維圖像平面,此過程要使用相機參數P_{cam}=\left [ x_{c}, y_{c} , z_{c}, x_{c}^{'}, y_{c}^{'}, z_{c}^{'} , f_{c}\right ]和補光參數P_{ill}=\left [ x_{l}, y_{l} , z_{l}, r_{l}, g_{l} , b_{l} , r_{a}, g_{a} , b_{a}\right ]

一旦得到了渲染的2D人臉R\left (D_{P_{ST}} ,P_{cam} ,P_{ill}\right ),就可以像素級的比較渲染的人臉和原來的2D人臉之間的差異。

其中,W,H是裁剪塊I_{i,j}^{*}的寬和高。

四、實驗

4.1 數據集

WIDER FACE數據集包含32203張圖片,共393703個人臉標註框,在尺度、姿態、表情、遮擋和照明上變化很大。

WIDER FACE的劃分是訓練集40%,驗證集10%,測試集50%,並且劃分爲Easy,Medium和Hard三個等級。

論文作者根據標註人臉landmarks的難易程度將數據劃分爲5個等級。

4.2 實現細節

特徵金字塔獲取5層多尺度特徵P_{2}\sim P_{6},其中P_{2}\sim P_{5}來自ResNet的殘差結構C_{2}\sim C_{5}P_{6}是在C_{5}的基礎上接一個3x3,stride=2的卷積。C_{2}\sim C_{5}是ResNet-152在ImageNet-11k數據集上預訓練的分類網絡,P_{6}是用“Xavier”方法隨機初始化的。

受SSH和PyramidBox的啓發,論文在每層金字塔的後面也加入了Context Module,用以增大感受野和加強建模能力。採用的是可變卷積網絡(DCN)對每個尺度的輸出添加後處理模塊。

損失權重部分,負樣本只用分類損失,正樣本則計算多任務損失,添加1x1的卷積進行訓練,mesh decoder直接使用預訓練模型。

Anchor的設置見下表。

訓練時,與標註框的IOU大於0.5的匹配爲TP,小於0.3的匹配爲FP,中間未匹配部分在訓練時忽略。爲解決樣本不均衡問題,對負樣本按照損失值排序,按照與正樣本3:1的比例挑選靠前的部分。

數據增廣採用的策略是從原圖中隨機摳取正方形區域,並resize到640x640,正方形摳選區域的邊長爲原圖最小邊的0.3~1,如果某人臉標註框的中心在摳選區域內,則保留該標註爲當前摳選區域中的有效人臉,同時對圖像按照0.5的概率進行隨機水平翻轉及顏色空間變換。

訓練參數:

4張NVIDIA Tesla P40(24GB)顯卡

SGD optimiser

momentum 0.9

weight decay 0.005

batch size 8 x 4

learning rate, 初始1e-3,5 epochs後1e-2,55 epochs後1e-3,68 epochs後1e-4,共迭代80個epochs。

4.3 實驗結果

顯示多任務學習有助於提高性能。

另外,作者還設計了light-weight模型。

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