王 茹,賀興時+,楊新社
1.西安工程大學理學院,西安 710600
2.密德薩斯大學科學與技術學院,英國劍橋CB2 1TN
人臉檢測作為目標檢測的一個分支,逐漸成為科技發展過程中不可或缺的環節。在安全支付、社會安保、圖像搜索等方面已經取得了顯著的成果,如機場、高鐵等實現了人臉檢測進出閘機;支付方式從貨幣轉換為通過人臉檢測實現支付等。而光照、遮擋、扭曲、年齡等不可控因素時刻影響著檢測的效果。
在人臉檢測方法發展歷程中,基于傳統模板的方法[1]主要通過人工提取特征、訓練分類器、再進行人臉檢測等步驟實現整個檢測過程,魯棒性雖好但受限因素較多。傳統方法在檢測理想狀態人臉圖像時效果明顯,但在實踐過程中取得的效果可能一般甚至很差[2-6]。早期Viola和Jones提出的Haar-Like與AdaBoost級聯的方法[7]在檢測速度方面取得了很大的提升,但在多尺度、姿態多樣等情形下的檢測效果非常不理想。
隨著深度學習不斷的發展和完善,卷積神經網絡(convolutional neural network,CNN)提取特征逐漸成為主流。CNN在提取圖像特征的過程中利用感受野(receptive field)表示卷積神經網絡每一層輸出的特征圖上的像素點在原始圖像上映射區域的大小,依據其多樣化、魯棒性更好等特性在圖像識別及目標檢測等領域已經得到了廣泛應用。
隨著特征提取網絡層層數的不斷加深,特征圖會越來越小。因此,越高層的特征圖對應原始圖像的范圍越大,含有人臉信息更高的特征;越低層的特征圖對應原始圖像的范圍越小,包含的特征更趨向于局部信息的細節。根據提取特征方式的差異,人臉檢測器主要分為基于區域的人臉檢測器(regionbased face detector)和基于錨的人臉檢測器(anchorbased face detector)[8-10]。而基于區域的人臉檢測器[11]存在兩個主要問題:候選區域中背景相對人臉區域占比非常大,使得分類器訓練正負樣本的比例不均勻,過度判斷樣本中的每個候選區域,導致檢測速度較慢[12];每個區域特征提取的過程比較粗糙,增加了對小尺度人臉的檢測難度[13]。
文獻[14]將人臉檢測與人臉關鍵點檢測結合,網絡層數淺、檢測速度快但精度較低;HyperFace[15]的研究展示了從不同層進行特征融合可以提高分類和定位的準確率;通過置信度[16]和損失函數[17]進行二次抑制的檢測器則緩解了類別失衡問題,但速度與精度不同步;另一些研究則通過引入3D人臉建模[18]或預處理[19]來提高檢測精度,但同時也提升了模型的復雜度,而且模型訓練需要分階段進行。
DSFD(dual shot face detector)模型[10]可以在精度和速度之間進行權衡:當強調速度時,該模型可以使用單層的特征映射進行快速檢測,從而保持相對高的性能;如果重視精度,該模型可以使用多層次的復雜特征映射,以適中的速度獲得更高精度的檢測器。
針對以上分析,本文提出了二分支神經檢測器匹配的人臉檢測算法。首先,根據五官位置關系構建人臉模板框架;其次,依據構建的模板在DSFD人臉檢測器的特征增強模塊層實現對樣本人臉區域的提取及標記;最后,對提取、標記的人臉區域進行相關匹配。在人臉數據集FDDB、Face Detection Data Set and Benchmark、WIDER FACE上均取得了較好的效果,有效地兼顧了檢測過程中的速度和精度。
2.1.1 模板架構
由于人臉五官的多樣性,為了使構造的人臉模板具備較好的泛化能力,采用傳統的構建模式即利用隨機、多個人臉樣本取平均構成模板。具體步驟詳見文獻[2]。
2.1.2 人臉匹配
傳統模板檢測算法的基本思路是:使用各個模板通過滑動窗口(sliding window)等方式對所有可能尺度和形狀(寬高比,aspect ratio)的圖像區域進行匹配,將滿足一定條件并達到匹配閾值的圖像區域作為候選人臉區域。圖1給出了模板匹配的示意圖。

Fig.1 Template matching圖1 模板匹配
設T(m,n)為模板,Sij是待檢測圖像中被模板覆蓋的區域,i、j為該區域的坐標;搜索范圍1 ≤i≤W-w,1 ≤j≤H-h。
采用誤差法即衡量T和Sij的誤差作為評判匹配效果的準則函數,形式如下:

當E(i,j)取最優解時即為匹配目標。
在匹配階段模板越大,匹配速度越慢;模板越小,匹配速度越快。因此,取誤差閾值E0,當E(i,j)>E0時終止該區域并繼續計算下一區域,以此提升計算速度。
基于傳統模塊的人臉在構建人臉時一般會受到檢測樣本中存在的角度差、光照等因素的影響,致使構建的模板在進行匹配時存在很難對樣本中的人臉位置進行定位等困難。提出的采用DSFD檢測網絡在依據模板進行特征提取時,通過模板與錨在特征提取階段存在的關系,解決模板匹配階段受模板構造波動性影響限制匹配階段速度及因外界干擾導致檢測效果差等問題。
具體解決方案詳見第3章。
DSFD是Li等人[10]提出的解決尺度、模糊、遮擋等姿態各異的人臉樣本的雙分支人臉檢測器。從三方面改進了檢測器的性能:
(1)特征增強模塊(feature enhance module,FEM),改進了原始特征映射將單一神經網絡檢測器擴展到雙分支檢測器。
(2)漸進式錨損失(progressive anchor loss,PAL)則通過兩個不同的錨集合有效地簡化了特征。
(3)改進錨匹配(improved anchor matching,IAM),使錨分配策略與數據增強一體化,給回歸器提供了更好的初始化。
DSFD的網絡框架如圖2所示。圖2中的(1)Original Feature Shot(原始特征分支)在前饋VGG/ResNet體系結構的頂層上使用(2)Feature Enhance Module(特征增強模塊)生成(3)Enhanced Feature Shot(增強特征分支),同時伴隨兩個損失層分別命名為原始特征階段的第一分支PAL(first shot PAL)以及增強特征的第二分支PAL(second shot PAL)。
在漸進式錨損失中上述兩個分支的損失分別為:


Fig.2 Network architecture of DSFD圖2 DSFD網絡結構

其中,Nconf和Nloc分別表示正負錨數量;Lconf是兩類上(人臉vs.背景)的softmax loss;Lloc是介于使用錨ai的預測框ti和真實框gi參數的smoothL1 loss;β是平衡兩項影響的權重因子;sa表示在第一分支層的最小錨;λ是權衡兩個分支的權重因子;
對于DSFD網絡而言,主要通過兩部分網絡結構進行特征提取。在原始特征分支后增加了特征增強模塊,改進網絡的特征提取性能,因此在對傳統方法和DSFD網絡的融合中,主要將構建的模板應用在原始特征分支即第一分支PAL上,保留第二分支PAL的網絡結構。
為了將傳統方法的優勢放大,本文在檢測網絡的特征提取階段進行了改進,步驟如下:
改進算法:特征提取階段

在第一分支中通過錨與構建模板之間對于提取特征過程中存在的相關關系進行一定的改進,即預先設置錨保證了每一個特征映射能夠實現對不同樣本圖像中存在的不同尺度及寬高比的人臉框提取進行規律、適時的調整;構建的模板則通過設置特定閾值根據人臉位置差異等波動自適應地改變模板的大小。因此,在第一分支錨與模板的結合能夠實現改進算法對不同尺度人臉位置的定位及特征的提取。
從人臉數據集上的實驗結果可以看出,傳統方法對于小尺度人臉檢測性能較差,但對大尺度具備很好的魯棒性。在第一分支中加入模板的目的在于細化特征提取網絡對候選區域的選擇,錨匹配則使一系列錨和人臉在回歸器中更好地初始化;構造的模板具備一定的自適應性即閾值介于大尺度和小尺度人臉的較大范圍區間內。
DSFD在特征增強模塊與其他特征提取網絡的不同在于當前特征映射單元層和向上特征映射層的鄰域是交互的。如圖3所示。

Fig.3 Feature enhance module圖3 特征增強模塊
改進特征增強模塊利用包括當前層的非定位神經單元nc(i-?,j-?,l),nc(i-?+1,j-?+1,l),…,nc(i+?,j+?,l)和上層的原始神經單元oc(i,j,l)等不同維度的信息進行特征增強,使原始特征具備更好的魯棒性和判別能力。增強的神經單元ec(i,j,l)表示形式為:

其中,c(i,j,l)表示位于l層(i,j)坐標的特征映射單元;f定義為一組基本的擴展卷積、元素內積、上采樣或級聯操作。
特征增強模塊的提出來源于特征金字塔(feature pyramid network,FPN)[20]及感受野塊(receptive field block,RFB)[21]的實際應用效果。首先,利用1×1的卷積核對特征映射進行正則化;其次,對上層特征映射執行與當前層點對點內積的上采樣;最后,將特征映射通過包含不同級聯卷積層的3個子網進行分割操作。實驗驗證了此階段增強原始特征使特征的判別特性和魯棒性得到提升。
表1給出了DSFD網絡中2分支中含有的6個原始/增強特征步長、特征映射大小、錨尺度、比率和數量等參數的大小及范圍。

Table 1 Size and range of 6 parameters in 2 shots表1 2分支6個參數的大小及范圍
表1中,ef_i、of_i(i=1,2,…,6)表示增強特征和原始特征的對應層數。
相比傳統神經網絡的網絡層數及參數分配的差異,從表1可以看出,基于人臉尺度的統計基礎DSFD設置錨比率為1.5∶1,并且原始特征的錨尺度是增強特征的一半;在參數設置上原始特征和增強特征具有相同的大小尺度,第二分支檢測層依據SSD-style(single shot detector-style)框架構造。特殊之處在于輸入訓練圖像的大小是640,意味著最低層到最高層的特征映射的大小從160遞減到5。利用基于錨的采樣可以隨機在圖像中選擇人臉區域,抓取包含人臉的子圖像,設置尺度比例640/rand(16,32,64,128,256,512)使其介于子圖像和選定人臉之間。為了改善人臉圖像的召回率同時確保錨分類的能力,設置IOU(intersection-over-union)閾值為0.4實現錨到背景人臉的分配比例。
在FDDB[22]數據集和AFW[23]數據集上驗證模型的精度,AFW包含205張圖片,468張人臉。FDDB和WIDER FACE數據集擁有多樣的背景,豐富的人臉尺度、角度、遮擋、表情、光照等情況,滿足訓練的需求。
算法的主體DSFD框架通過Pytorch實現。DSFD網絡設置使用權重衰減為0.000 5,動量為0.9的隨機梯度下降調整模型。批大小設置為16,與SSD網絡參數相似,在前4×104迭代中使用的學習率為10-3,之后分別使用10-4和10-5再各訓練4×104次。
訓練集為WIDER FACE[24]數據集,包含3個類別子集Easy、Medium、Hard。該數據集包含32 203張圖像,393 703個人臉。數據集包含尺度大小各異的樣本集,適合訓練本文構建的檢測模型。
4.3.1 融合模型合理性驗證
在特征增強階段,通過原始特征映射的分類和回歸的性能驗證模型的合理性。以基于FSSD(face single shot detector)VGG16作為基線的特征增強模塊與基于VGG16的感受野塊在相同數據集及實驗環境下進行比較,即均采用VGG16作為基線,利用特征增強模塊(FEM)和感受野塊(RFB)兩者的差異,驗證融合算法的合理性。
從表2可以看出,FEM優于RFB,因此基于改進特征增加模塊的融合模型具備一定的實用性。

Table 2 FEM vs.RFB on WIDER FACE表2 FEM和RFB在WIDER FACE上的比較 %
4.3.2 與其他算法的比較
由于本文算法是基于DSFD檢測器算法的改進方法,為了驗證提出算法的有效性,本文在相同實驗環境和相同數據集上與幾類較為流行的檢測算法進行了比較。對比結果顯示:在檢測的精度和速度方面,本文算法相比其他方法有了一定的提高。
表3提供了基于VGG16網絡的幾種算法在實驗環境近似一致的情況下,在數據集3種類別下的實驗效果。對比實驗Easy類別下的Recall-Precision曲線如圖4所示。

Table 3 MAP experimental results of various methods表3 各類方法的MAP實驗結果 %

Fig.4 Recall-Precision curve in WIDER FACE of Val Easy圖4 WIDER FACE of Val Easy召回率-精度曲線
從表3和圖4可以看出,改進算法相比其他幾類算法具備一定的優勢。即在相近實驗環境下和相同數據集測試下,改進算法優于其他幾類算法在3種類別下的均值平均精度(mean average precise,MAP)。
FDDB數據集包含2 845張圖像,5 171個不同分辨率、角度、模糊度的人臉。本文算法在FDDB數據集上的離散情況下的測試結果如圖5所示,連續情況下的測試結果如表4所示。在離散和連續兩者下的ROC曲線,DSFD檢測器實現了stats-of-the-art性能,即當FP=1 000(false positives,FP)時分別達到的精度為99.1%和86.2%。
綜上,在WIDER FACE和FDDB數據集中,改進算法在相同時間內達到了相比其他幾種算法較好的精度;在精度相差不大的情況下,改進算法在速度上有了較好的提升。

Fig.5 Discontinuous ROC curve in FDDB圖5 FDDB離散ROC曲線

Table 4 Continuous ROC curve in FDDB表4 FDDB連續ROC曲線
尺度、角度等因素下的檢測效果如圖6所示。對存在尺度、角度、遮擋、表情、光照等非理想情況下人臉樣本,改進算法得到了較好的檢測效果。
針對改進算法對不同尺度等因素影響下的檢測魯棒性可以通過圖6的檢測結果看出:算法不再局限于對大尺度、無角度偏差等檢測效果的高效魯棒性;算法對小尺度、遮擋等因外界因素影響較強的人臉區域仍得到了較好的魯棒性。即改進算法在DSFD網絡的基礎上,通過與模板匹配理論知識的結合,對尺度、角度、遮擋等非理想情況下人臉檢測實現了較好的魯棒性。

Fig.6 Detection results under scale,pose and other factors圖6 尺度、角度等因素下的檢測效果
針對傳統匹配方法和基于神經網絡檢測器算法在檢測的速度和精度存在的不足,本文提出融入模板匹配的二分支神經網絡檢測器。與基于神經網絡檢測器的算法相比,在特征提取階段,改進的算法以構建的模板為基線實現了提升速度的同時保證了檢測的精度。
因此,本文算法能夠有效地解決傳統方法對小尺度人臉缺乏魯棒性的不足及利用神經網絡算法不能快速定位人臉區域的缺陷。從實驗階段可以看出,傳統方法在解決某些特定問題時仍然具備很好的理論基礎,接下來的研究目的是在實際應用中增強傳統方法改進檢測算法的貢獻率。