face detection[DSFD]



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

0 引言

最近在比賽上拿到最好成績的人臉檢測模型大致可以分成2類:

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

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

  • 特征學習:當前特征金字塔網絡(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可以通過數學定義:

這里\(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人臉之間雙向選擇。因此錨的設計和增強的人臉采樣是協同的,以此盡可能讓錨和人臉進行相配,以此提供回歸器更好的初始化。

表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 實驗結果分析


.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM