face detection[DSFD]


本文來自《DSFD: Dual Shot Face Detector》,時間線爲2018年10月,是南理工Jian Li在騰訊優圖實驗室實習時候的做品。在WIDER FACE,FDDB上效果也超過了PyramidBox和SRN。網絡

0 引言

最近在比賽上拿到最好成績的人臉檢測模型大體能夠分紅2類:框架

  • 基於RPN的網絡,這種網絡是2階段模型
  • 基於SSD這種一次shot檢測,直接預測邊界框和置信度。

而一次shot的檢測器因其高預測速度和簡單的系統設計而更受青睞。不過度析下來,仍然有如下三個問題未徹底解決:ide

  • 特徵學習:當前特徵金字塔網絡(feature pyramid network,FPN)廣受應用,然而FPN只是將high-level和low-level的輸出網絡層簡單合併了下,並未考慮到當前層的信息,並且基於錨之間的上下文關係信息都被忽略了;
  • loss設計:主流使用的是目標檢測中傳統的loss函數,爲了解決類別不平衡問題,Focal loss能夠重點關注一個稀疏的硬樣本的訓練。爲了使用全部原始和加強的特徵,《Feature agglomeration networks for single stage face detection》提出層級loss以更有效訓練網絡。然而上面這些loss函數都沒考慮到feature map在不一樣level上須要漸進學習的能力;
    ps:平滑L1 loss有助於阻止梯度爆炸
  • 錨匹配策略:基本上,每一個feature map上面的預約義錨集合是經過在圖片上平鋪不一樣尺度和長寬比的框完成的。許多別人先前的工做分析了錨的合理尺度和錨的補償策略,以此來增長正錨的數量。然而這些策略忽略了數據加強中的隨機採樣。人臉尺度的連續性和大量不一樣尺度的錨仍然會致使負錨和正錨之間比例的差距

本文提出了一個新的人臉檢測框架叫DSFD(dual shot face detector),其繼承了SSD的結構:函數

  • 首先,結合PyramidBox中low-level的FPN與RFBNet中的感覺野塊(receptive field block,RFB),提出一個特徵加強模塊(feature enhance module,FEM)來加強特徵的判別性和魯棒性;
  • 其次,受到《Feature agglomeration networks for single stage face detection》中層級loss(hierarchical loss)和PyramidBox中的金字塔錨的啓發,將更小的錨平鋪到higher-level feature map cell上能夠得到更多關於分類的語義信息和更多關於檢測的高分辨率定位信息。提出漸進錨loss(progressive anchor,loss,PAL),經過一組更小的錨去計算輔助有監督loss,以輔助特徵學習;
  • 最後,提出一個改進錨匹配方法(improved anchor matching,IAM),在DSFD中融合錨劃分策略和基於錨的數據加強方法去,以提供更好的迴歸器初始化,讓錨和ground-truth人臉儘量匹配。


圖1顯示更小的錨平湖和改進的錨與ground-truth人臉的匹配能夠消除尺度和遮擋的問題,從而提高人臉檢測性能。性能

1 結構

1.1 DSFD的結構(Pipeline of DSFD)

DSFD的結構如圖2。
學習


做者也採用如PyramidBox和S3FD中同樣的策略,經過擴展VGG16做爲DSFD的基底骨幹網絡,即將VGG16的全鏈接層替換成其餘輔助的卷積層。做者選擇conv3_3,conv4_3,conv5_3,conv_fc7,conv6_2,conv7_2做爲first shot檢測器層,以生成6個original feature maps,其對應命名爲, \(of_1\), \(of_2\), \(of_3\), \(of_4\), \(of_5\), \(of_6\);而後,做者提出的FEM能夠將這些original feature maps 轉換成6個加強的feature maps,其對應命名爲 \(ef_1\), \(ef_2\), \(ef_3\), \(ef_4\), \(ef_5\), \(ef_6\),它們與對應的original feature maps有相同的size,經過將他們輸入到SSD類型的頭部,以此構建second shot 檢測層。注意到訓練圖片的輸入size是640,這意味着lowest-level層到highest-level層的feature map的size 從160到5。不一樣於S3FD和PyramidBox, 在使用FEM對感覺野加強和新的錨設計策略後,原則上就不必讓(stride,錨,感覺野)這三個size知足等比例間隔原則。所以,DSFD更靈活也更魯棒。同時,original和enhanced shot有2個不一樣的loss。分別被命名爲第一次shot漸進式錨loss(first shot progressive anchor loss, FSL)和第二次shot漸進式錨loss(second shot progressive anchor loss, SSL)。

1.2 特徵加強模塊(Feature Enhance Module)

這裏提出的FEM模塊主要是爲了加強original features 讓特徵變得更據辨識性和魯棒性。對於當前錨\(a(i,j,l)\),FEM會利用包含當前層錨\(a(i-1,j-1,l)\),\(a(i-1,j,l)\),...\(a(i,j-+1,l)\),\(a(i+1,j+1,l)\)和上層錨\(a(i,j,l+1)\)的不一樣維度信息。具體的,關聯錨\(a(i,j,l)\)的feature map cell能夠經過數學定義:
spa


這裏 \(c_{i,j,l}\)是在第 \(l\)層中feature maps上座標爲 \((i,j)\)的cell, \(f\)表示擴張卷積(dilation convolution),逐元素相乘和上採樣操做的組合, \(\gamma, \delta\)分別表示當前層信息和上一層信息。

如圖3所示,其是FEM的原理,主要是受到FPN和RFB的啓發。這裏:

  • 首先用1x1卷積核去歸一化feature maps;
  • 而後,上採樣上一層feature maps並與當前層進行逐元素相乘;
  • 最後,將feature maps劃分紅3個部分,並鏈接對應的3個子網絡,每一個子網絡包含不一樣數量的擴張卷積層。

1.3 漸進錨loss(Progressive Anchor Loss)

DSFD採用的是多任務loss,由於其可讓original和enhanced feature maps的訓練任務以兩個shots進行訓練。首先,DSFD的second shot anchor-based 多任務loss函數定義以下:
\[L_{SSL}(p_i,p_i^*,t_i,g_i,a_i)=\frac{1}{N}(\sum_iL_{conf}(p_i,p_i^*)+\beta\sum_ip_i^*L_{loc}(t_i,g_i,a_i))\]
這裏\(N\)是匹配的密集邊界框的個數;\(L_{conf}\)是基於2個類(人臉和背景)的softmax loss;\(L_{loc}\)是基於錨\(a_i\)下,介於參數化的預測邊界框\(t_i\)和ground-truth邊界框\(g_i\)之間的平滑L1 loss;當\(p_i^*=1(p_i^*=\{0,1\})\)時,錨\(a_i\)是正類,且此時位置loss也是激活的。\(\beta\)是一個權衡這兩個loss的超參數。相比於同一個level中的enhanced feature maps,original feature maps針對分類的語義信息更少,可是有更多針對檢測的高分辨率定位信息。所以,做者認爲original feature maps能夠檢測和分類更小的人臉。所以,做者提出了基於一組更小錨的first shot 多任務loss:
\[L_{FSL}(p_i,sp_i^*,t_i,g_i,sa_i)=\frac{1}{N}(\sum_iL_{conf}(p_i,sp_i^*)+\beta \sum_ip_i^*L_{loc}(t_i,g_i,sa_i))\]
這兩個shot loss能夠組合成一個漸進式錨loss:
\[L_{PAL}=L_{FSL}(a)+L_{SSL}(sa)\]
這裏first shot中錨的size是second shot中的一半。在預測階段,只採用second shot的輸出,這意味着預測階段並不會有額外的計算代價。設計

1.4 改進的錨匹配策略(Improved Anchor Matching)

在訓練中,須要計算正錨和負錨以決定對應人臉邊界框是哪個錨。當前錨匹配方法是基於錨和ground-truth人臉之間雙向選擇。所以錨的設計和加強的人臉採樣是協同的,以此儘量讓錨和人臉進行相配,以此提供迴歸器更好的初始化。
3d


表1顯示DSFD的錨設計細節,每一個feature map cell是如何關聯固定shape的錨的。這裏基於人臉尺度的統計信息,將錨尺度的比例設爲1.5:1。original feature中錨的size是enhanced feature中的一半。另外,在數據加強上:

  • 基於\(\frac{2}{5}\)的機率,採用PyramidBox中data-anchor-sampling類似的基於錨的採樣,其是在一個圖片中隨機選擇一我的臉(裁剪的子圖片包含人臉),並將子圖和選擇的人臉之間size比例設置爲\(\frac{640}{rand(16,32,64,128,256,512)}\)
  • 基於\(\frac{3}{5}\)的機率,採用SSD中的數據加強方法。

2 實驗結果分析


.blog

相關文章
相關標籤/搜索