朱富麗 楊 磊 姬 波
1(河南牧業(yè)經濟學院 河南 鄭州 450044) 2(河南信息統計職業(yè)學院 河南 鄭州 450008) 3(鄭州大學信息工程學院 河南 鄭州 450001)
人臉檢測是人臉信息處理領域的一項關鍵性技術,也是人臉特征點定位[1]、人臉比對[2]、人臉識別[3]、人臉超分辨率重建[4]等任務的前置操作,其檢測效果直接影響后續(xù)操作的準確性,具有重要的研究價值。文獻[5]提出了基于Haar特征和AdaBoost的人臉檢測方法,取得了較好的人臉檢測效果。文獻[6]提出了基于樹的集成學習方法來進行人臉檢測,提高了檢測精度,但仍受限于人工提取特征的表達能力和分類器的分類能力。目前,該類方法已經被基于卷積神經網絡(Convolutional Neural Networks,CNN)[7-8]的深度學習方法取代,并且取得了較大的提高。盡管基于CNN的人臉檢測方法得到了廣泛的關注和研究,人臉檢測準確率也不斷提高,但是在復雜場景下,對小尺度、模糊和遮擋人臉的檢測問題仍然存在困難。
目前基于CNN的人臉檢測方法主要分為兩類。一類是基于Faster R-CNN[9]中的區(qū)域建議網絡(Region Proposal Network,RPN),它采用兩階段檢測方案,在RPN中經過端到端的訓練,生成高質量的區(qū)域建議圖,然后送入Faster R-CNN執(zhí)行進一步檢測。另一類是基于單一網絡(Single Shot MultiBox Detector,SSD)的人臉檢測方法[10],它去除了RPN,直接在不同尺度的卷積層上進行人臉/非人臉判定和人臉邊界框位置回歸。文獻[11]提出了一種利用人臉周邊信息進行輔助的人臉檢測方法,對小尺度人臉檢測效果較好,但計算消耗較大。文獻[12]通過規(guī)模補償錨匹配策略提高了小尺度人臉的召回率,通過max-out背景標簽降低了小尺度人臉的誤報率。文獻[13]提出了一種基于環(huán)境輔助的單一網絡人臉檢測方法,通過引入環(huán)境敏感預測模塊提升了預測網絡的人臉分類能力和最終輸出的準確度。近年來,單一網絡人臉檢測框架因其高效的檢測效率和直觀的網絡結構而備受關注。
本文在SSD人臉檢測模型的基礎上,針對復雜場景下的小尺度、模糊和遮擋人臉檢測問題,進行三方面的改進:(1) 提出一個特征增強網絡。在主網絡SSD的多層特征圖上,通過融合前后層特征圖增強原始特征圖的辨識度,并引入監(jiān)督信息去學習上下文融合特征。(2) 在網絡結構的設計上,集合多個增強特征圖以組成附加增強網絡,主網絡與附加增強網絡采用并行設置方式,加快對小尺度、模糊和遮擋人臉的檢測速度。(3) 在訓練階段,為主網絡和附加增強網絡設置兩種基于錨框尺寸的損失函數,并通過加權求和的方式對這兩種損失函數進行融合。預測階段僅對附加增強網絡的特征圖進行檢測,在保持人臉檢測精度的同時,降低時間損耗。
與Faster R-CNN等生成RPN的算法不同,SSD算法直接預測目標類別和候選框位置,具有很快的檢測速度和精度。由于圖像中的人臉具有多尺度特性,傳統的人臉檢測算法在檢測人臉時,會先建立圖像金字塔,然后在不同尺度的圖像上利用滑動窗口進行人臉檢測。而SSD算法另辟蹊徑,通過在多尺度特征圖上進行3×3大小的滑動卷積,實現了效果更佳的人臉檢測效果。
基于SSD算法的人臉檢測模型如圖1所示,其中:Conv1_1到Conv5_3是VGG16的前5個卷積層;Conv6和Conv7是由2個全連接層改造的卷積層;Conv8_2到Conv11_2是新增的4個卷積層。該模型的輸入是一幅300×300的包含單人臉或多人臉的圖像,輸出是一組離散人臉邊界框和人臉/非人臉得分,對所有輸出的人臉邊界框進行非極大值抑制(Non-Maximum Suppression, NMS)后,得到最終的人臉檢測結果。SSD算法在檢測人臉時,利用了不同尺度特征圖的信息,被檢測的特征圖為conv4_3、conv7、conv8_2、conv9_2、conv10_2和conv11_2,由圖1可知,這些特征圖的尺寸是依次減小的,這樣就實現了多尺度人臉檢測效果。
圖1 基于SSD算法的人臉檢測模型
該模型的損失函數包含了用于人臉/非人臉分類的log損失和用于人臉邊界框回歸的smoothL1損失,并對正負樣本比例進行控制,提高了訓練速度和檢測結果的穩(wěn)定性。
(1)
在訓練時,通過計算默認檢測框和真實標注框的交并比(Intersection over Union, IoU)來確定正負訓練樣本。取IoU>0.5的默認檢測框為候選正樣本集,取IoU≤0.5的默認檢測框為候選負樣本集。此時,候選負樣本集的數量遠大于候選正樣本集,這會造成正負樣本數量不平衡,降低訓練時的收斂速度。因此,對于候選負樣本集,用實際選取要投入訓練的檢測框與候選負樣本集匹配,剔除掉匹配失敗的檢測框,這是因為它們的損失過小,容易被識別為背景,對整體網絡訓練的提升不大。
基于增強并行級聯卷積神經網絡的人臉檢測模型如圖2所示,它由主網絡、特征增強網絡和附加增強網絡三部分組成。
主網絡采用SSD算法在6個連續(xù)的卷積層上提取多尺度特征圖,在不同的特征圖上分別進行人臉/非人臉分類和人臉邊界框回歸。六個連續(xù)的卷積層為Conv3_3、Conv4_3、Conv5_3、Conv6、Conv7和Conv8_2,對應提取的特征圖為f_1、f_2、f_3、f_4、f_5和f_6。由圖2可知,輸入圖像的尺寸為384×384,因此從f_1到f_6的特征圖尺寸分別為:96×96、48×48、24×24、12×12、6×6和3×3。
圖2 基于增強并行級聯卷積神經網絡的人臉檢測模型
特征增強網絡對當前層的特征圖和后一層的特征圖進行歸一化、卷積、池化、融合和激活等操作后,得到當前層的增強特征圖。附加增強網絡的檢測層是經過特征增強網絡處理后得到的,它由ef_1、ef_2、ef_3、ef_4和ef_5這5個增強特征圖組成。當前層增強特征圖ef_k(k=1,2,…,5)的長和寬都只有當前層特征圖f_k(k=1,2,…,5)的一半,這是由于特征增強網絡對當前層特征圖進行了池化操作。另外,主網絡和附加增強網絡設置了并行的運行方式和不同的損失函數,進一步提高了人臉檢測的速度和精度。
設置特征增強網絡的目的是增強原始特征圖的辨識度,以進一步提高對小尺度、模糊和遮擋人臉的檢測精度。為了增強原始特征圖,特征增強網絡融合了第k層特征圖和第k+1層特征圖的特征信息,如圖3所示。
圖3 特征增強網絡結構
由圖3可知,第k層特征圖與第k+1層特征圖的維度不同,為了后續(xù)特征信息的融合,首先利用1×1大小的卷積核對第k層特征圖和第k+1層特征圖進行歸一化處理,歸一化處理后,第k層特征圖和第k+1層特征圖的維度都是512。此時,第k層特征圖的長和寬都是第k+1層特征圖的2倍,因此還要對第k層特征圖進行2×2的最大池化。池化處理后兩層特征圖的尺寸完全一樣,對其進行連接以得到a×a×1 024大小的融合特征圖。最終利用512個3×3大小的卷積核進行邊緣補0的卷積,得到原始特征圖f_k的增強特征圖ef_k。上述操作步驟可被歸納為:
ef_k=fConv3[fconnect(fpool(fConv1(f_k))+
fConv1(f_k+1))]
(2)
式中:fConv1表示歸一化卷積;fpool表示對第k層特征圖進行2×2最大池化;fconnect表示對第k層特征圖和第k+1層特征圖的連接操作;fConv3表示3×3的卷積。
(3)
(4)
(5)
為了驗證本文算法的精確性和穩(wěn)健性,選擇FDDB[14](Face Detection Data Set and Benchmark)和WIDER FACE[15]人臉檢測基準數據集進行實驗,實驗中選擇LDCF+[6]、HR[11]、SFD[12]和PyramidBox[13]算法作為對比算法。本文網絡僅使用WIDER FACE的訓練數據進行訓練,在兩個數據集上分別進行測試。在訓練時,使用反向傳播的隨機梯度下降來優(yōu)化,最大迭代次數設置為105,前7×104次迭代,學習率為10-3,后3×104次迭代,學習率為10-4。批量大小設置為16,權重衰減設置為0.000 5,動量設置為0.9,所有卷積層參數都使用MSRA方法進行初始化。本文算法及其對比算法均采用Python代碼實現,并在配置Nvidia GTX Titan X的電腦上運行。
將在WIDER FACE數據集上訓練好的模型再在FDDB數據集上進行測試。FDDB人臉數據集共包含2 845幅圖片,其中標記了5 171個具有遮擋、模糊、低分辨率和姿態(tài)變化的人臉圖像。由于FDDB數據集用的是橢圓標注,而本文訓練的模型輸出的是矩形框,因此在測試之前需要將橢圓標注轉化矩形框。本文算法與LDCF+、HR、SFD、PyramidBox算法在FDDB數據集上的ROC曲線如圖4所示。
圖4 ROC曲線
可以看出,在誤識別數較低時,本文算法的檢測性能略低于SFD算法,在誤識別數較高時,本文算法的檢測性能優(yōu)于其他4種主流人臉檢測算法。這說明本文算法在主網絡SSD的多層特征圖上,通過融合前后層特征圖增強原始特征圖的辨識度,并引入有監(jiān)督信息去學習上下文融合特征,進而在多尺度增強特征圖上完成人臉/非人臉分類和人臉邊界框位置更新,可以有效提高人臉檢測的精度。
WIDER FACE人臉數據集在32 203幅圖像中,標記了393 703個具有遮擋、模糊、尺度變化、光照變化和姿態(tài)變化等因素的人臉圖像。它包含了61種不同的事件類別,對于每種事件類別,隨機選擇40%、10%、50%的數據作為訓練、驗證、測試子集。此外,每個子集中的數據根據人臉檢測的難易程度被劃分為簡單、適中和困難3個難度級別。
本文算法與LDCF+、HR、SFD和PyramidBox算法進行了對比,在WIDER FACE簡單、適中和困難3個子測試數據集上的mAP及速度對比結果如表1所示。在WIDER FACE簡單、適中和困難3個子測試數據集上的精度和召回率(Precision-Recall, PR)曲線如圖5所示。
表1 mAP對比結果
圖5 精度和召回率曲線
由表1可以看出,本文算法在保持低時間損耗的同時,提高了人臉檢測精度。從圖5的對比結果可以發(fā)現,本文算法的PR曲線均高于其他4種主流人臉檢測算法。如果一種算法的PR曲線能夠包圍住另外一種算法的PR曲線,則前者的檢測性能優(yōu)于后者,這說明本文算法的人臉檢測性能優(yōu)于所對比的4種主流人臉檢測算法。本文算法在WIDER FACE數據集上的部分檢測結果如圖6所示。
圖6 本文算法在WIDER FACE數據集上的部分檢測結果
本文提出一種基于增強并行級聯卷積神經網絡的人臉檢測方法。該方法在主網絡SSD的多層特征圖上,通過融合前后層特征圖增強原始特征圖的辨識度,并引入有監(jiān)督信息去學習上下文融合特征,進而在多尺度增強特征圖上完成人臉/非人臉分類和人臉邊界框位置更新。此外,在訓練階段為主網絡和附加增強網絡設置兩種基于錨框尺寸的損失函數,增強對小尺度人臉的檢測效果。在FDDB數據集和WIDER FACE數據集上的實驗結果表明,本文算法具有比當前主流人臉檢測方法更高的檢測精度。