【論文學習記錄】RefineFace: Refinement Neural Network for High Performance Face Detection

論文地址RefineFace: Refinement Neural Network for High Performance Face Detection

一、概況

RefineFace是基於人臉檢測器RetinaNet改進的,論文的主要貢獻有以下幾點:

  1. 設計了STR模塊,在high level層粗略地調整anchors的定位和尺寸,爲接下來的迴歸提供更好的初始值。
  2. 設計了STC模塊,過濾掉low level層大部分簡單的負樣本,以減少分類器的搜索空間。
  3. 引入了SML模塊,更好的從背景中區分不同尺度的人臉。
  4. 提出了FSM模塊,使分類任務學習到更有區分性的特徵。
  5. 構造了RFE模塊,爲檢測極端姿態下的人臉提供不同的感受野。
  6. 在AFW、PASCAL face、FDDB、MAFA和WIDER FACE數據集上取得state-of-the-art的性能表現。

RefineFace採用的有6-level的特徵金字塔結構的ResNet作爲backbone,從這四個residual blocks提取的特徵圖即是上圖中的C2,C3,C4,C5,而C6和C7則是直接從兩個接在C5之後下采樣的3 x 3卷積層提取。P2,P3,P4,P5特徵圖是從C2,C3,C4,C5引出的旁路分支中提取,P6,P7從P5之後接兩個下采樣的3 x 3卷積層提取的。

  • STR:由C5,C6,C7,P5,P6和P7進行two-step的迴歸。
  • STC:由C2,C3,C4,P2,P3和P4進行two-step的分類。
  • SML:分類損失添加了scale-aware margin來更好的區分背景中不同尺度的人臉。
  • FSM:包含一個RoIAlign層,4個3 x 3的卷積層和一個全局平均池化層,採用focal loss,以使backbone分類任務學習到更有區分性的特徵。
  • RFE:豐富了用於預測分類和定位目標特徵的感受野。

二、STR

STR模塊的損失函數是

其中,i是一個mini-batch中anchor的索引,l_{i}^{*}是anchor i的ground truth類別標籤,g_{i}^{*}anchor i的ground truth的anchor size,x_{i}是anchor i經過第一步優化的座標,t_{i}是第二步中的bounding box的座標,N_{s1}N_{s2}分別是第一步和第二步positive anchors數量,\Psi是two-step迴歸選擇的樣本集合,\Phi代表的是第二步中的樣本集合。L_{r}是smooth L_{1} loss,\left [ l_{i}^{*} = 1\right ]表示條件爲真的輸出爲1,因此\left [ l_{i}^{*} = 1\right ]L_{r}表示忽略負anchors的迴歸損失。

三、STC

STC模塊的損失函數是

其中,p_{i}q_{i}分別是第一步和第二步預測的anchor i屬於人臉的置信度,N_{s3}N_{s4}分別是第一步和第二步中positive anchors的數量,\Omega是two-step分類選擇的樣本集合,l_{i}^{*}\Phi的意義和STR中的相同。二分類損失L_{FL}是人臉和背景兩個類別的sigmoid focal loss。

四、SML

爲了進一步提高分類能力,借鑑了人臉識別中的margin-based loss function

其中,x是還沒有經過sigmoid輸出之前的預測值,m是加在x上的margin,y是預測可能性。在此之後y被用於分類損失,可以使決策邊界更加有區分性。

但是人臉識別中使用的是固定的margin,在人臉檢測任務中並不適用,因爲人臉的尺度變化很大,爲解決這個問題,論文提出scale-aware margin loss,SML,根據每個樣本的尺度動態調整margin,

其中,\alpha是縮放margin的超參數,wh分別是樣本的寬和高。大的人臉因爲決策邊界區分性好而不需要較大的margin,相反,小的人臉決策邊界模糊因此需要較大的margin來增強分類能力。

五、FSM

single-shot檢測器學習到的特徵由於misalignment不夠有區分性。

爲解決這一問題,論文設計了feature supervision module, FSM,讓single-shot的backbone 網絡學習更有區分性的特徵。FSM接在backbone網絡之後,使用從anchor box提取的對齊的特徵來分類anchors。

FSM只作用於二分類,作爲一個輔助網絡,它的loss很小,並且不會過分佔用人臉檢測器的訓練。在推理階段並不使用FSM,因此不會帶來額外的負載。

六、RFE

大部分人臉數據集人臉的比例都是1:1左右,但是WIDER FACE數據集中有相當一部分的數據人臉比例超過2或者小於0.5,這時候單一的方形感受野就難以表達了,爲解決這一問題,論文提出Receptive Field Enhancement,RFE,在進行預測類別和位置之前使感受野多樣化。

七、訓練和推理

7.1 數據增強

  1. 光學扭曲
  2. 在[1,2]這個區間隨機選擇一個縮放因子,用mean-padding方法擴充圖像
  3. 裁剪兩個方形patches,隨機選擇其中一個用於訓練。一個patch的大小等於原圖像的短邊,另一個patch的大小是在區間[0.5,1.0]隨機選擇一個數乘以原圖像的短邊
  4. 將選擇進行訓練的patch進行隨機翻轉,然後resize到1024 x 1024,得到最終的訓練樣本

7.2 Anchor設計

在每個檢測層的每一個位置上有兩個尺度的anchors,2S2\sqrt{2}S,其中S是該檢測層的下采樣因子。以及1.25的長寬比。可以覆蓋輸入圖像的8-362個像素。

7.3 樣本匹配

與ground truth的IoU大於\theta _{p}的爲人臉,小於\theta _{n}的爲背景,在\theta _{n}\theta _{p}直接的忽略。

STR和STC的第一步,\theta _{n}=0.3\theta _{p}=0.7

STR和STC的第二步,\theta _{n}=0.4\theta _{p}=0.5

FSM,\theta _{n}=0.4\theta _{p}=0.7。​​​​​​​

7.4 Loss Function

L=L_{STR}+L_{STC}+L_{FSM}

7.5 優化

Backbone網絡使用在ImageNet上預訓練好的模型,其他新添加的卷積層使用“xavier”方法初始化。優化器使用SGD,momentum 0.9,weight decay 0.0001,batch size 32。學習率策略是在前5個epochs學習率從3.125\times 10^{-4}逐漸上升至1\times 10^{-2},然後在第120個epochs和130個epochs學習率分別除以10和100。

7.6 推理

在推理階段STC threshold \theta =0.99過濾掉大部分負樣本,經過STR調整anchors位置和尺度之後,保留threshold大於0.05的5000個檢測結果,然後使用NMS保留下大於0.4的750個置信度最高的檢測作爲最後的結果。

八、實驗

實驗中使用的backbone network是ResNet-50。

可以看出各個部分都對最終的AP有貢獻。

SML模塊超參數\alpha對AP的影響。

速度精確度對比。

 

 

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