作者:Bastien
編譯:ronghuaiyang
通過回顧兩個著名的檢測算法:Faster R-CNN和Single Shot檢測器來深入Dual Shot人臉檢測器DSFD的算法。
人臉檢測是許多應用的基礎步驟,從識別到圖像處理。這是一項具有挑戰性的任務,因為在現實世界的圖像中,人臉在尺度、姿勢、遮擋、表情、外觀和光照方面呈現出非常高的可變性。模糊、化妝和反光就是多變性的好例子,這解釋了為什麼人臉檢測仍然被廣泛研究。
到目前為止,能夠產生最佳性能的方法大致可以分為兩類:
這兩種架構在更廣泛的目標檢測算法領域中都是著名和經典的算法。讓我們更深入地研究一下這兩種方法。目標檢測的目的是預測圖像或視頻幀中一組包圍目標的框,以及它們各自的類別。
注意,在人臉檢測這個特定領域中,只有兩個類:faces和not-faces(或background).
2014年,在R-CNN文章中首次引入了使用region proposal來執行物體分類的想法。它是基於對輸入圖像不同區域的檢測任務與分類任務相似的觀察。
這是基region-proposal的方法背後的一個簡單表達。
「region-proposal網絡」一詞是2015年由Faster R-CNN網絡的作者創造的,是這種架構的核心組件。這些方法作為兩階段檢測方案:
Faster R-CNN架構的主要組件。Region Proposal 網絡輸出粗略的感興趣的區域,這些區域被隨後的架構層考慮以進行檢測。在這裡,基於區域的檢測是由Fast R-CNN網絡進行的,它與RPN共享部分卷積層。
注意,兩個組件可能都不是完全斷開連接的網絡。Faster R-CNN通過在RPN和特定類別的檢測網絡上共享全卷積層,確實在計算時間上有了很大的提高。
Region Proposal網絡的細節,如原始論文中描述的那樣。帶有256個3x3濾波器的卷積層在feature map的每個位置輸出一個256維向量。然後用後者將對應的感受野分類為k個可能的參考框的目標或背景,稱為錨,並預測每一個錨點的坐標偏移量。cls是一個分類層。reg是一個回歸層。
Faster R-CNN架構中的一個關鍵概念是錨框的使用。錨是具有各種形狀和尺度的參考框,它將參數化feature map上每一點的「k」的建議區域。在卷積特徵圖上滑動窗口的每個位置,為每個錨點建議一個區域:
常見的配置是有9個預先定義的錨,涉及三種不同的比例和三種不同的高寬比(通常為1:1、2:1和1:2)。在特徵圖上的每一個點的每個錨框上都給出了一個建議區域,這一步的輸出是k⨉(number of points in the feature map)。最後,過濾建議區域,只保留最好的(例如最高的目標分類分數)。
為了訓練RPN,我們需要在預測的邊界框和ground truth邊界框之間確定匹配策略。在Faster R-CNN中,預測的邊界框被指定為:
預測框(黑色)和ground truth框(彩色)之間的匹配策略。
這些預測框被分配為正標籤,也就是說,它們的ground truth被認為是物體類。如果預測的框不符合這兩個標準之一,且IoU低於0.3,這些框都被分配負標籤。他們的ground truth被認為是背景類。其餘的預測框被忽略。
一旦每個預測框被分配好標籤,RPN網絡通過最小化所有預測框的以下損失函數的平均值來訓練:
這個損失函數是另外兩個損失函數的和,用「模型」表示:
檢測器使用類似的損失函數進行訓練。主要區別在於分類。實際上,檢測器組件執行多類分類任務,而不是二分類任務。
DSFD架構主要基於2016年的SSD: Single Shot MultiBox Detector架構,來自Wei Liu 等人,該架構不同於基於rpn的網絡,因為它沒有區域建議步驟。
利用feature map直接預測邊界框的坐標和內容,從而得到網絡的名稱,預測時間也更短。
此外,分類器和回歸器不是使用單一的特徵圖進行檢測,而是在位於核心網絡不同深度的多個特徵圖上運行,如下圖所示。這個核心網絡由VGG-16網絡的層(在分類層之前的層)和額外的卷積層組成。VGG-16層可以用其他全卷積網絡(如resnet)來替換。
SSD網絡的體系結構。Point-wise分類器和回歸器在不同深度的特徵圖上運行。每個點的分類器預測特性映射一個向量的大小84 = (20類+背景)⨉4錨。同樣的,回歸器為每個點預測的向量的大小為16 = 4坐標⨉4錨。因此在feature map中每個位置預測4個box。例如,在最淺層的特徵圖上,有38⨉38⨉4 = 5776個框,在最深的特徵圖上,只有1⨉1⨉4 = 4個。
每個特徵圖對應不同的感受野的大小。特徵圖的感受野是指輸入圖像中像素參與特徵圖各點計算的區域。特徵圖越深,感受野越寬。
直觀上,這意味著深度feature map能夠檢測到較大的物體(在輸入圖像中佔據較大的區域),而淺層feature map能夠檢測到較小的物體。
在基於RPN的架構中,參考框(錨)用於參數化檢測。這些錨框也被稱為先驗,因為它們的坐標是由回歸量細化的。在SSD架構中,需要較少數量的錨點,只是為了考慮到邊界框的各種可能形狀(寬高比),因為檢測已經在不同的尺度上進行了。因此,錨的比例對於每個特徵圖都是固定的,並取決於我們執行檢測的深度。
最後,基於分類器的置信度,利用非最大抑制方法來減少正包圍框的數量,即分類器不與背景相關聯的包圍框的數量。這裡我們不討論這個問題。
如果預測框與所有的ground truth框都只有一個小的IoU,則使用匹配策略將預測框與ground truth框匹配,或與背景類匹配。然後使用與Faster R-CNN結構類似的損失函數來訓練網絡。但是請注意,這裡沒有必要使用區域建議損失函數。
既然我們已經回顧了這兩個著名的物體檢測的基線,不過DSFD人臉檢測器才是我們感興趣的架構。現在是深入研究作者提出的新觀點的時候了。
本文介紹了對以前SSD架構的三種新的改變:
DSFD的框架如下圖所示。它使用與SSD網絡相同的骨幹網絡。這裡的一個關鍵區別是,不同深度的6個特徵圖通過一個被作者稱為feature Enhance module的模塊轉換為6個「增強」的特徵圖。此模塊的目標(下文將說明)是為物體分類器和邊界框回歸器提供更靈活和健壯的特特徵。
DSFD體系結構。就像在SSD架構中一樣,每個輸入圖像都要計算6個特徵圖。它們被稱為原始Feature Shot。這裡的不同之處在於,使用feature Enhance模塊,這些feature map被增強為增強的feature Shot,如下圖所示。分類器和回歸器都經過訓練並應用於原始的和增強的特徵圖,但這裡沒有給出。First Shot PAL和Second Shot PAL是在學習過程中優化的兩個損失函數。
來自DSFD的特徵增強模塊。計算在給定深度的核心架構上增強的feature map需要在這個深度層次上的feature map和在下一個層次上的feature map(「向上的feature map」,它更小)。
如上圖所示,FEM模塊從當前級別feature map的和下一個深度級別的feature map的上採樣版本進行element-wise乘積開始。生成的特徵圖被分為三個部分。每一個都要經過一系列比例從1到3的dilated卷積,然後被連接回一個與當前輸入相同大小的完整的特徵圖上。dilated卷積是指核函數不應用於相鄰像素,而是應用於由卷積的比例參數分隔的像素的卷積。
原始的和增強的特徵圖都被輸入到分類器和回歸器中,類似於SSD體系結構中的那些。在訓練時,利用兩個shot的分類器和回歸器的結果計算損失函數,優化:
在測試時,只用增強特徵shot的分類器和回歸器作為檢測的輸出。
如上節所述,在架構的訓練過程中,網絡的最小化的目標為錨集合的兩個損失函數的加權和:
該目標函數的每一項都類似於基於rpn的檢測架構章節中所介紹的檢測損失函數。但是這裡使用了兩組不同的錨:
實際上,由於每個增強的feature map都是使用相應的原始feature map和一層更深的原始feature map來計算的,feature map的感受野在增強的feature shot (second shot)中比在原始的feature shot中更寬。平均而言,原始shot能檢測到的人臉要小一些。為了解釋這一差異,作者在計算First Shot的損失時使用了較小的錨的集合。記住,只有從second shot的特徵被用於預測/測試。
就像在SSD中一樣,每個特徵圖使用不同的尺度的錨。增強shot的錨比原始的shot的錨大兩倍。基於人臉的統計,所有錨只使用一個形狀,1:5 .5。
目標檢測與人臉檢測的一個主要問題是錨點的選擇不能很好地覆蓋目標或人臉可能的形狀和尺度空間。這導致了訓練中檢測到的正邊界框和負邊界框數量的顯著不平衡(負邊界框更多),導致每個特徵圖上的回歸器和分類器的不穩定和較慢的優化。
為了解決這個問題,使模型對各種形狀和大小更健壯,SSD和RPN-based方法實現了各種解決方案,從固定正負樣本比例採樣預測框,到數據增強策略,到多尺度圖像輸入。
後一種方法是DSFD採用的方法。在訓練時,以40%的概率對輸入圖像進行基於錨點的採樣:
對於剩餘的概率,對輸入應用一種類似於SSD中使用的數據增強策略,即:
DSFD架構在兩個主要的人臉數據集WIDER和FDDB上實現了高精度。正如你在下圖中看到的,它克服了人臉檢測任務中的許多挑戰:遮擋、化妝、反射、模糊、姿勢……
用繪圖的方式說明了DSFD在人臉檢測中的各種挑戰的性能。只有當檢測器(分類器)置信度大於0.8時,才會繪製藍色邊框。
在這篇文章中,作者聲稱在兩個數據集上都是排第一的,並進行了消融研究,以顯示他們的三個貢獻各自的相對影響。在所有三個版本的更廣泛的數據集(簡單,中等和困難)中,每個貢獻都帶來了平均精度的提高:
英文原文:https://www.sicara.ai/blog/2019-09-26-face-detectors-dsfd-state-of-the-art-algorithms