人臉檢測之S3FD

該方法出自論文S3FD: Single Shot Scale-invariant Face Detector

文章改進點:
(1)基於不同layer層的不同scale的anchor策略
其中各個卷積層的滑動步長,anchor大小,感受野大小分別如下,其中anchor 的aspect ratio為1:1。

這樣的設定,主要是由於作者在實際真實資料樣本中得出,anchor面積要小於感受野面積,這樣才可以保證anchor對於小人臉的覆蓋率。

如上圖所示,其中(a)中黑色的整個區域表示theoretical receptive field (TRF),而白色的區域表示effective receptive field (ERF),可以看出ERF只是TRF的其中一部分。
(b)為與(a)對應的一個真實的例子,其中黑色虛線為整個的TRF,藍色的虛線為ERF,紅色的實線為anchor,可以看出大小上TRF>ERF>anchor
(c)為相同比例間隔的取樣策略,就是本人中的anchor的stride為anchor大小的1/4

(2)一個尺度修正策略來提高對小人臉的召回率
主要分為2個步驟,首選將原始的anchor閾值從0.5降低為0.35,然後再在IOU大於0.1的anchor中取top-N,其中N為第一步中的anchor大於0.35的平均值。
從下面的結果曲線可以看出,使用該策略小人臉的召回率得到了很大的提高。圖中,紅色的為尺度修正策略後的結果,藍色的為原始的結果。

(3)max-out型別的分類訓練策略,用來減少小人臉的falsepositive率

這個改進是對conv3_3層進行的改進,由於剛開始的卷積層特徵圖比較大,作者又做了比較密集的anchor來提高對小人臉的召回率,這樣就引入了新的問題,正負樣本出現了嚴重不平衡。如下圖所示。其中conv3_3層的false positive率達到了75.02%。

為了解決上面的不平衡問題,作者提出了max-out策略。如下圖所示,作者在分類中,使用預測分數最高的anchor進行梯度的回傳,大大的減少了正負樣本不平衡的現象。

 

文章網路的整體結構如下:

整體網路分為以下6個部分,Base Convolutional Layers,Extra ConvolutionalLayers ,Detection Convolutional Layers,Normalization Layers,PredictedConvolutional Layers,Multi-task Loss Layer。

 

總結:

整體來看,文章的第一個scale創新就是ssd中就有的東西。人臉尺度修正策略簡單的說就是通過小閾值來提高召回率,然後再輔之一些後處理。Max-out的策略,也不像OHEM,focal loss那樣創新性高。整體來看創新性不是很高。

 

 

References:

https://github.com/sfzhang15/SFD