【論文學習記錄】Accurate Face Detection for High Performance

論文地址:Accurate Face Detection for High Performance

論文基於RetinaFace提出新的網絡結構AInnoFace,聚焦於改善小臉的檢測性能。

一、整體情況

採用的是有6-level特徵金字塔結構的ResNet-152作爲網絡的backbone來生成多尺度的feature maps,後接兩個子網絡,一個用於分類backbone的輸出,一個用於迴歸bounding box。

爲解決one-stage檢測方法面臨的正負樣本不平衡問題,論文同樣引入了focal loss,

其中,y\in \left \{ \pm 1 \right \}代表ground-truth正負樣本類別

p\in \left \left [ 0, 1 \right ]表示預測label y=1的概率

\alpha _{t}是一個平衡因子

\gamma是一個可調節的focusing參數

二、IoU Regression Loss

這裏引入的UnitBox的IoU Regression Loss,

其中,

是預測的bounding box

是ground-truth bounding box

直接優化這二者的IoU。

三、Selective Refinement Network

爲解決RetinaFace在人臉檢測中依然存在的兩個問題:(1)低召回率;(2)低定位精度,引入了SRN(Selective Refinement Network)中STC(Selective Two-step Classification)和STR(Selective Two-step Regression)。

STC在三個淺層上做two-step的分類,以過濾大部分負樣本和減少後面分類器的搜索空間。

STR在三個深層上做two-step的迴歸,來對anchor做進一步的調整和爲後面的迴歸網絡提供更好的初始位置信息。

其中,i是anchor的索引

p_{i}/q_{i}是在1/2step的預測分類

x_{i}/t_{i}是在1/2step的迴歸預測值

l_{i}^{*}/g_{i}^{*}是ground truth的分類和bounding box值

N_{s_{1}}/N_{s_{2}}是在1/2step的anchors正樣本數

\Phi是輸入2step的anchors樣本集合

L_{FL}是sigmoid focal loss

\left [l _{l}^{*}=1 \right ]\zeta_{r}表示僅在正的anchors上計算IoU Regression

四、Data Augmentation

論文除採用常規的數據增強方法外,還以50%的概率採用類似PyramidBox的data-anchor-sampling方法。

從訓練圖像的一個batch中隨機選擇一個尺度S_{face}的人臉,然後找到離它最近的一個anchor尺度S_{anchor},然後在S_{anchor}附近隨機選擇一個S_{random},最後將圖像以尺度S^{*}=S_{random}/S_{face}做resize並隨機裁剪到訓練尺寸(裁剪部分包含人臉),就得到anchor-sampled訓練數據。

五、Mat-out Label

爲減少假正例,論文也引入了max-out操作,具體做法是分類子網絡爲每個anchor預測c_{p}+c_{n}維分數,然後再選擇max\left \{ c_{p} \right \}max\left \{ c_{n} \right \}作爲最終人臉和非人臉的分數。論文設置c_{p} = 3c_{n} = 3

六、Multi-scale Testing

將圖像以多種尺度分別用訓練好的模型進行預測,得到檢測結果之後,對bounding box進行投票得到最終結果。

七、實驗結果

Anchor的設置是一個長寬比1.25,兩個尺度2S和2\sqrt{2}S(S是檢測層的下采樣尺度)。最終feature map上的每個位置有A=2兩個anchors,覆蓋了8x362像素的人臉(輸入圖像1024 x 1024)。

在STC階段設置\theta _{n} = 0.3\theta _{p} = 0.7

在STR階段設置\theta _{n} = 0.4\theta _{p} = 0.5

網絡的backbone使用的是在ImageNet數據集上預訓練的模型,新添加的卷積層使用“xavier”隨機初始化參數,optimizer是SGD,momentum 0.9,weight decay 0.0001,batch size 32。學習率的Warmup策略是開始的5個epochs從0.0003125到0.1,然後在第10和100個epochs學習率除以10,一共訓練130個epochs。

 

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