孫 杰,陸生禮
(1.東南大學國家專用集成電路系統(tǒng)工程技術研究中心,江蘇 南京210096;2.博西華電器(江蘇)有限公司,江蘇 南京210046)
人臉檢測可以看作是通用對象檢測的一種特殊情況[1,2]。隨著深度學習方法在卷積神經網絡(Convolutional Neural Networks,CNN)上的廣泛使用,近年來人臉檢測取得了很多進展,基于CNN的人臉檢測方法即使在遮擋、姿勢變化和大的光照變化的情況下也取得了卓越的性能。目前開放的問題是如何有效檢測尺度大范圍變化的人臉。大多數基于CNN的方法通過兩種策略解決尺度不變性問題:第一是將圖像分解為不同的金字塔等級,比如得到廣泛使用的多任務級聯(lián)卷積神經網絡MTCNN(Multi-task Convolutional Neural Network),隨后將圖像金字塔饋送到網絡,例如參考文獻[3],盡管Zhang[9]等使用全局和局部人臉特征減少圖像金字塔數量,但將圖像輸入到網絡多次的這種方法非常耗時,因為必須多次放大和縮小輸入圖像,推理必須在所有重新縮放的圖像上執(zhí)行;第二是建立一個更深、更大的網絡,利用不同層次的特征圖來實現尺度不變性,例如SSD(Single Shot Multi Box Detector)[4]使用VGG16[5]作為骨干網絡,而YOLO((You Only Look Once)[6]使用具有更多層的類似骨干網絡,盡管此解決方案在單個輸入圖像比例上表現良好,但它需要更大的模型尺寸且計算量大。
最先進的人臉檢測器大致可分為兩類:第一類主要基于Faster R-CNN[2]中采用的區(qū)域提議網絡(Region Proposal Network,RPN),并采用兩階段檢測方案。RPN端到端訓練并生成高質量區(qū)域提議,然后通過快速R-CNN檢測器進一步細化。另一類是基于單鏡頭檢測器(SSD)[4]的一階段方法,它不需要RPN,并直接預測了邊界框和人臉置信度[4,26,27]。最近,一階段人臉檢測框架由于其更高的推理效率和簡單的系統(tǒng)部署而引起了更多的關注。SSH(Single Stage Headless Face Detector)[17]和S3FD(Single Shot Scale-invariant Face Detector)[11]開發(fā)了規(guī)模不變的網絡,單個網絡中不同層的特征圖負責不同大小的人臉,包括R-CNN[1]、SSD[4]、YOLO[6]、Focal Loss[12]及其擴展。受益于強大的深度學習方法和端到端優(yōu)化,基于CNN的人臉檢測器取得了更好的性能,并為以后的方法提供了新的基線。
當前人臉檢測技術的主流是基于錨框(Anchor)[14]的。然而,基于Anchor的檢測器嚴重依賴于非常大的基礎網絡,訓練和推理的效率不高。S3FD也具有SSD樣式檢測框架的類似缺點,對大尺度變化的人臉檢測性能不佳。隨著對象尺寸的減小,基于Anchor的目標檢測器的準確性急劇下降,而基于Anchor的人臉檢測器更是如此。我們認為這個問題與三個方面有關:模型的架構、錨框匹配策略以及度量函數。本文將從這三個方面入手,解決當前模型的問題,并在具有挑戰(zhàn)性的WIDER FACE數據集上驗證所提出的算法。作為總結,本文的主要貢獻包括:
第一,首次提出了一種有效的基于多網絡統(tǒng)一的訓練方案,以端到端的方式對提議的互補特征增強網絡模型(Complementy Feature Augmentation Network,CFANet)進行訓練,從而為人臉檢測提供了更多的鑒別性特征。
第二,補充特征增強:我們使用輕量不同的輔助CNN產生“互補”的不同的特征,促進了針對小臉的上下文的特征增強網絡(CFANet)的特征學習能力,不僅增強了小臉檢測所依賴的高分辨率淺層特征,也能促進低分辨率的高層的高維特征,從而使網絡具有更多的鑒別性特征。
第三,在幾個公開的人臉檢測基準上進行了全面實驗,證明了所提出的CFANet框架的優(yōu)越性。實驗表明,我們的CFANet檢測器不僅可以實現最先進的檢測性能,而且執(zhí)行效率較高。
當前的人臉檢測模型和算法不具備良好的多尺度檢測能力,我們認為可以從以下三個方面來分析。
特征提取部分對于人臉檢測器至關重要。目前,特征金字塔網絡(Feature Pyramid Networks,FPN)[13]被廣泛用于最先進的人臉檢測器中,以獲得豐富的人臉特征。但是,FPN只聚合高層和低層輸出層之間的層次特征映射,它不考慮當前層的信息,并且忽略Anchor之間的上下文關系。在本文中,受Xiong[15]等成功應用異構網絡完成最先進的人臉識別模型的啟發(fā),我們設計了異構的主網絡與輔助網絡一起訓練的方案,讓主網絡在訓練時獲得輔助網絡的幫助,得到更多的鑒別性特征,但是在推理時只需主網絡,無需輔助網絡的參與,這樣的方案是高效的。同時,該方案的主網絡不是簡單與輔助網絡進行特征的拼接,而是一起訓練,一起學習到促進主網絡獲得更多的特征。Zhang[10]等人提出的聚集網絡,將同一個網絡堆疊3次,以獲得更多的人臉特征,和我們利用異構網絡的思路不一樣。據我們所知,目前的多網絡的融合方案,還沒有人提出類似方法。
基于Anchor的檢測方法中,Anchor比例是離散的(例如在S3FD方法中,使用16,32,64,128,256和512的比例),而真實場景中人臉的比例是連續(xù)的。檢測架構很難直接應用當前基于錨的通用對象檢測方法來檢測中小型人臉,因為最低層上相關聯(lián)的Anchor的步幅太大,無法檢測到小臉(例如小于20×20像素),使得與那些小臉相對應的區(qū)域在卷積層上的尺寸很小,幾乎沒有檢測特征。同時,人臉尺寸、錨定比例和相應的接收場不匹配或者匹配不足,比如Faceboxes[22]設計的最小的Anchor為32×32,對于20×20以下的分辨率基本上不能保證匹配,因此無法有效使用人臉的檢測特征,導致出現漏檢測(False Negative)。基于此,我們提出了錨框密集化的方案以解決此問題。
在距離度量學習中,適當距離算法的選擇至關重要,尋找合適的距離是在距離度量學習中執(zhí)行的任務。度量學習是學習對象上的距離函數的任務,度量或距離函數必須服從四個公理:非負性、不可分與同一性、對稱性和次可加性(或三角形不等式)。不可分與同一性指實體x與實體y是同一的、不可區(qū)分的,全部性質都相同。在實踐中,度量學習算法會忽略不可分與同一性(偽度量),即如果斷言對x成立的,那么斷言對y同樣成立(反之亦然)。人臉的檢測與人臉的識別不同,人臉檢測本身不需要測量人臉之間的距離或人臉與背景之間的距離。本文在人臉檢測中引入距離度量函數,并在端到端的學習過程中學習適當的距離,其目的是在異構網絡的同樣大小的特征圖之間度量其特征值之間的差異。只有在一定距離閾值范圍內的異構網絡之間的特征才能得到融合與增強。通過我們的度量學習算法,解決了特征融合的冗余與異常值問題,從而為多尺度的魯棒人臉檢測提供良好的鑒別性特征。
在本節(jié)中,我們將描述模型架構、錨框密集化匹配和基于輔助網絡的上下文建模及基于度量學習的互補特征增強。
基于CFANet的人臉檢測模型如圖1所示,體系結構包括三個部分:(a)是ResNet-18[20]的變體,具有6層特征圖,從第一層的160×160到第六層的5×5;(b)可以是自建的典型的CNN,也可以是VGG-16等其他模型,同樣具有與(a)相同大小的6層特征圖;(c)是從(a)和(b)的特征圖生成的最終檢測網絡,從左到右分別是FA1到FA6。
圖1 基于CFANet的人臉檢測模型架構圖Fig.1 Architecture of face detection model based on CFANet
我們的目標是創(chuàng)建具有豐富語義的有效特征表示,在各個層級上實現強大的多尺度檢測。與使用VGG-16[5]作為骨干網并在分類層截斷的Pyramid Box[14]和S3FD[11]不同,它們需要添加一些輔助結構,最終構成完整的檢測網絡,訓練和推理本質上只有同一個網絡。我們的架構在建立兩個輕量級的CNN作為輔助網絡的基礎上,幫助主網絡的特征提取和邊界框回歸。第一個使用類似于ResNet-18[20]的殘差塊的變體,而第二個使用VGG-16或任何典型的CNN(即INPUT-CONV-RELU-POOL)。兩個輔助網絡是全卷積網絡(Fully Convolutional Network,FCN),只需添加檢測層,可以面對面地進行端到端訓練檢測,即每個輔助網絡可以獨立工作。
利用兩個不同網絡的互補功能,構建了CFANet最終用于檢測的6個增強功能模塊。CFANet可以使用固定大小的圖像(即640×640)進行訓練,并可以使用任意大小的圖像進行測試。給定輸入圖像X,CFANet可以表示為:
其中,F(·|Θ)是非線性函數的情況下,每個互補特征增強操作;FAl(·|θl)均指生成的檢測卷積層中的一層,這些層經過訓練以學習參數Θ。最終的人臉檢測包括一個預測卷積層和一個多任務丟失層,該層位于我們提出的體系結構中的6個FA之后,每一層包括卷積層、ReLU和Pooling層等。
特征增強模塊能夠增強原始特征,以使其對小臉或嚴重遮擋的臉部更具區(qū)分性和魯棒性,簡稱FAM。FAM是由兩個原始ResNet和VGG的不同功能生成的。具體而言,建議的FAM可以通過以下數學公式表示:
其中,θlk表示l層的第k個輔助CNN的特征圖,l∈{1,…,6},k∈{1,2}。具體來說,對于k=1,即第一個ResNet-18變體。是諸如S3FD之類的原始特征圖,而Fl是從l+1層到l層的非線性映射。由特征增強函數Al形成,該函數用于合成每個相鄰層的特征圖。Al對于提高CFANet的性能至關重要,它包括特征圖上的多項操作,例如歸一化、級聯(lián)、維數轉換、求和、像素積、膨脹卷積和上采樣等。最后,由乘積運算組合的6個FAM在檢測微小臉部方面發(fā)揮高分辨率淺層特征的主要作用,而深層特征具有足夠的語義,并在特征提取中利用不同CNN網絡的互補性。顯然,我們構建的FAM與Guo[21]等人使用編碼器構建的特征金字塔有所不同。
如圖2所示為特征增強模塊,以FA1的生成為例,我們首先對兩個輔助網絡的每個第一特征圖(160×160)進行逐乘積運算,然后進行逐元素乘積運算。接著對第二個特征圖(80×80)執(zhí)行相同的操作,并添加雙線性上采樣以提供上下文信息。最后,兩個相鄰的層逐元素相乘,并發(fā)送到初始模塊以豐富感受野。
圖2 特征增強模塊Fig.2 Feature enhancement module
SSD類檢測器的默認錨框與單個CNN中的多尺度特征圖相關聯(lián)。不同的是,我們沿著兩個不同網絡的深度和寬度維度設計多尺度特征圖。第一,首先使用1×1卷積核對兩個輔助CNN的相同維數的特征圖進行歸一化,然后將其作為元素乘積。其次,我們對上層執(zhí)行相同的操作(1×1卷積,像素乘積),并添加雙線性上采樣以將大小調整為與下一個乘積操作的下層一致,從而提供更多上下文信息。第三,我們對相鄰層進行逐元素乘積。通過上述非線性操作,我們充分利用了異構網絡特征提取的互補特性。最后,是類似初始的模塊,其中包含不同數量的膨脹卷積層以豐富感受野。
預定義錨的平鋪間隔由相關檢測層的步幅大小確定。具體來說,每個輔助網絡遵循S3FD[11]的等比例間隔原理設計,即在圖1中,每個輔助網絡的6個檢測層的步長為{4,8,16,32,64,128}。但是,我們采用了改進的錨框密集化策略。作為基于錨點的檢測器,我們使用三組復合錨框來匹配人臉或背景,以獲得比單一網絡更多的匹配。如表1所示,有兩組輔助特征圖和一組生成的FAM,每組都有其錨框大小。
表1 Anchor匹配策略Table 1 Anchor matching strategy
Hu等[7]指出,由于感受野太大或太小而引起的失配會損害準確性。為了解決這個問題,我們的CFANet使用了三組不同的錨定尺度。因此,通過互補的異構網絡設計,我們可以獲得更多的匹配可能性。此外,與S3FD[11]相同的補償錨框匹配策略用在Jaccard重疊度大于0.1的較小人臉上執(zhí)行更多匹配。
受SSD[4]和FPN[13]的啟發(fā),我們的體系結構將具有低分辨率和高語義信息的高級功能從上到下集成到每個低級功能中。不同區(qū)域的上下文信息有助于更準確地區(qū)分面部和非面部,為了使CFANet包含不同比例的面部特征,可通過FAM將高級特征添加到低級特征中。然而,我們考慮了來自不同CNN的錨之間的互補上下文關系,FAM堆疊了不同分支的擴張卷積層以獲得更大的接收場。
SSH[17]和Faceboxes[22]使用初始模塊的思想來創(chuàng)建上下文模塊。在我們的CFANet中,除了類似于初始模式的上下文模塊之外,我們還通過特征增強方式并入了相鄰層的語義。SSH和Faceboxes已向淺層功能添加了初始模塊,以增強其特征表示。在我們的CFANet中,除了創(chuàng)建具有多個卷積分支和不同內核的類似inception[18]的上下文模塊外,我們還通過FAM組合了來自相鄰層的語義。我們的人臉上下文模塊如圖3所示。
圖3 上下文模塊Fig.3 Context module
在圖3中,通過在特征空間的自下而上的連接,以及與橫向連接的配合,我們獲得了與特征金字塔網絡類似的多尺度能力。由于我們采用了兩個不同的異構網絡,通過度量學習進行了特征的融合后,可以構建多尺度的特征增強的人臉特征。我們在訓練時采用了固定大小的圖像。但在推理時,由于網絡本身是全卷積的,對于輸入圖像的大小沒有限制。
建議的CFANet包括人臉框的回歸損失和用于識別是否檢測到人臉的分類損失的加權總和?;貧w損失用于四個坐標的回歸參數化,分類損失基于Jaccard系數與參考標準Ground-truth的重疊。通常,損失函數包括2個任務,一個是用于對象分類的,常用Softmax;另一個任務是用于人臉框的回歸函數(例如L2損失)。分類也可以用Lin等[12]提出的Focal Loss來解決人臉類較少而背景類太多的類的不平衡問題。
CFANet包含三個獨立的卷積網絡(其中主要的檢測網絡由兩個輔助網絡生成),每個卷積都有其損失函數以優(yōu)化網絡來檢測不同比例的人臉。這三個網絡的學習目標是相同的。人臉與背景的二分類問題被形式化為交叉熵損失,而人臉框被形式化為回歸問題。因此,損失函數定義為:
其中,k∈{1,2,3}是網絡的索引,Ncls和Nreg分別表示錨的數量和正錨的數量,Lcls是分類損失,pi是錨包含人臉的置信度分數,pi*表示真實標簽。Lreg是回歸目標框ti和與當前錨點ai相關的地面真實坐標ti*的平滑l1損失。λ是平衡兩個損耗項的超參數。
馬氏距離(Mahalanobis Distance)由馬哈拉諾比斯(P.C.Mahalanobis)所提出,表示數據的協(xié)方差距離。它是尺度無關的,考慮各種特征之間的聯(lián)系,而歐氏距離不考慮特性之間的聯(lián)系。方差是標準差的平方,標準差是數據集中各個點到均值點距離的平均值,描述的是數據的離散程度。標準差和方差是描述一維數據的,當存在多維數據時,需要知道每個維度之間的變量中間是否關聯(lián)。協(xié)方差是衡量多維數據集中變量之間相關性的統(tǒng)計量。
用Md'×d(R)作為維度為d'×d的矩陣集合,Sd(R)0+作為維度為d的半正定矩陣。實對稱矩陣S稱為半正定的,如果二次型X'SX半正定,即對于任意不為0的實列向量X→,都有X'SX≥0。令d∈N和M∈Sd(R)0+,對應于多維協(xié)方差矩陣M的馬氏距離是:
其中x,y∈Rd。馬氏距離來自正半定矩陣M定義的Rd中的(半)點積。當M為滿秩時,馬氏距離是適當的距離;否則,它們是偽距離。當M是單位矩陣I時,歐幾里德距離是馬氏距離的一個特定示例,即各維度獨立且同分布,只有同分布才會方差相同。馬氏距離要求樣本數大于維數,否則無法計算協(xié)方差矩陣。馬氏距離具有規(guī)范空間上的距離所特有的其他性質,即:
第一,均質性(homogeneousness):d(ax,ay)=|a|d(x,y),其中a∈R;x,y∈Rd。
第二,平移不變性:d(x,y)=d(x+z,y+z),其中x,y,z∈Rd。
由于馬氏距離的良好的尺度無關度量能力,在端到端訓練時,我們計算兩個輔助網絡相同大小的特征圖之間的馬氏距離,只有在一定閾值范圍內的特征才進行如式2所表示的非線性運算,將兩個輔助網絡的特征融合到主網絡的特征圖中。特征融合與增強的流程圖如圖4所示。
圖4 基于距離度量的特征融合與增強流程圖Fig.4 Flow chart of feature fusion and enhancement based on distance measurement
圖4中的Lt與Ht是距離閾值的下限與上限,Θlk是需要融合的原始特征圖,在規(guī)定范圍外時,直接將Θlk置0,即不參與特征的融合。
我們在WIDER FACE[23]上進行了實驗,其中每個子網絡的輸入采用與文獻[19]一樣的參數設計,以評估檢測精度并驗證FDDB等其他數據集的泛化性能。我們使用Pytorch庫實現CFANet。訓練僅使用WIDER FACE的訓練子集,而驗證子集的實驗結果如圖5所示。
圖5 WIDER FACE驗證子集中的各種最新方法的精度-召回率曲線Fig.5 Accuracy-recall curve of various latest methods in the WIDER FACE validation subset
輔助網絡可以選擇預先訓練的VGG/ResNet,然后添加一些卷積層,或者創(chuàng)建一個新的CNN作為輔助網絡。用于新卷積層和新網絡的加權初始化方法是Xavie。我們使用SGD對模型進行優(yōu)化,其動量為0.9,重量衰減為0.0005,學習率為10-3,總共迭代100次,最后20個學習率為10-4。
我們的CFANet采用的數據增強策略與SSD所使用數據增強策略類似,并遵循S3FD的設置。為了獲得更多有效的微小人臉樣本,從WIDER FACE的訓練圖像中隨機選擇了5個正方形補丁,一個是最大的正方形,其他的則在原始短邊的[0.3,1]之間。然后,將補丁大小調整為640×640。
FDDB[24]包含2845張圖像和5171張帶標簽的人臉。FDDB的人臉是橢圓形的,我們模型輸出是方形的框,通過將預測的邊界框轉換為橢圓以進行公平比較。如圖6所示,我們在不連續(xù)的ROC曲線上達到了預期的性能。
圖6 在FDDB上的非連續(xù)ROC曲線Fig.6 Discontinuous ROC curve on FDDB
WIDER FACE是全球權威的人臉檢測基準之一,具有行業(yè)中更大的數據規(guī)模和更高的檢測復雜性,它具有32203張圖像和393703個標簽,并根據檢測的難度分為3個子集。我們還將進行對比研究,以評估我們方法的有效性。圖7給出了兩個測試示例,可以看出,圖片中的人臉被全部檢測到了。
圖7 Wider Face測試集示例Fig.7 Example of Wider Face test set
如圖8所示,進一步驗證了在全球最大的自拍照上檢測大尺度人臉的性能。在圖8中檢測到904張人臉,大大超過了原始Faceboxes[25]和DSFD[26]的檢測能力,證明了文中CFANet模型的優(yōu)越性。
圖8 在世界最大自拍圖上的小臉檢測效果Fig.8 Small face detection effect on the world's largest selfie picture
進行對比實驗以評估互補特征增強模塊和復合錨匹配的有效性。根據Faceboxes[22]和DSFD[16]這兩種流行模型的開源代碼,我們通過添加助手ResNet-18構造了4個CFANet變體。特別是,我們沒有為了公平比較而更改原始參數設置,只是對新組件進行了指定的更改。表2顯示了使用WIDER FACE評估協(xié)議評估我們的方法的結果。
3.5.1 互補特征增強模塊
高級語義特征與淺層特征充分融合,有助于增強易于分類的鑒別性特征。復雜人臉具有多種外觀,存在各種不同的遮擋及光照的變化,有時候同一人的外觀看上去可能區(qū)別很大,這意味著并非所有高級語義特征都對小目標有幫助。我們在特征金字塔網絡(FPN)[13]的基礎上,將輔助網絡的語義合并到主網絡的相應層,使得高級語義與淺層網絡充分融合,有助于主網絡的特征提取。
在表2中,隨著FAM的兩個組成部分的增加,原始模型的準確性得到了顯著提高。我們的方法實現了檢測的準確性,在困難子集中分別提高了39.1%和1.2%,這與我們的設計目標是一致的。
3.5.2 錨框密集化
通過使用復合Anchor比例,我們設計了三種不同的單階段人臉檢測網絡的Anchor比例,其中兩個充當輔助監(jiān)督,從而提供更穩(wěn)定和更好的訓練來服務主網絡的特征提取。
我們進一步基于FAM分量采用復合錨框密集化進行分類和回歸。在我們的實驗中,將度量學習與Lcal一起使用,可以改善3個子集的平均精度得分,即Facebox上分別為95.1%(容易),93.3%(中等)和89.5%(困難),DSFD(VGG)在我們方法的模塊上,3個子集的平均精度得分分別為96.4%,94.8%和90.3%。
從表2中可以看出,我們的CFANet可以進一步使輕量級模型和最新模型受益。
表2 不同模塊的對比研究Table 2 Comparative study of different modules
異構網絡如果符合多樣性與互補性,融合后的模型的特征提取能力將有較大提升。我們提出了一種“互補特征增強網絡”(CFANet)的新穎框架,以解決基于單次多盒的微小人臉檢測模型的性能普遍不理想的問題。一方面,由不同網絡生成的FAM集成了豐富的語義特征,從而迫使新的特征更加易于區(qū)分。另一方面,在異構網絡中引入了距離度量學習,可以融合有效特征并丟棄冗余特征。通過在基準數據集上的廣泛實驗,證明了我們方法的優(yōu)越性。