龔格格,吳 珊,郭湘南
(1.武漢郵電科學研究院,湖北 武漢 430000;2.武漢烽視威科技有限公司,湖北 武漢 430000)
人臉檢測是人臉識別的基礎,然而,人臉的巨大視覺變化在現(xiàn)實應用中給這些任務帶來了巨大的挑戰(zhàn)。十多年前,Viola和Jones[1]提出的cascade face detector采用Haar-Like feature和AdaBoost對cascade classifier進行訓練,具有良好的實時效率,然而該人臉檢測算法由于采用人工設計,對光照變化的魯棒性并不是很好,對頭部姿態(tài)比較大的人臉檢出率非常低。相當多的工作表明[2-4],該算法在應對大量視覺影響的人臉圖片檢測時性能急劇下降?;诖耍闹刑岢隽艘环N快速級聯(lián)卷積神經(jīng)網(wǎng)絡模型,以提高算法性能。
候選框是人臉檢測網(wǎng)絡的基礎。檢測任務與分類任務并不相同,檢測任務需首先對單個樣本進行分類并生成候選框,其后對所生成候選框的區(qū)域進行分類,而分類任務是直接對單個樣本進行分類。
考慮到區(qū)域候選框是檢測網(wǎng)絡最大的瓶頸,該系統(tǒng)中Faster RCNN使用RPN(region proposal network)來有效解決計算候選框耗時的問題。
Faster RCNN[5]采用RPN生成候選框,RPN的結構屬于深度卷積神經(jīng)網(wǎng)絡[6-8]。通過將候選框送入Faster RCNN[9]中進行分類,產(chǎn)生檢測結果。Faster RCNN的網(wǎng)絡結構如圖1所示,整個Faster RCNN網(wǎng)絡由兩部分組成,分別為RPN和Faster RCNN系統(tǒng)。其中RPN稱為全卷積網(wǎng)絡[7],將單張圖像作為輸入數(shù)據(jù)。卷積層1至ReLU5是ZF(Zeilerhe和Fergus模型)通用結構[8]中包含的部分。ZF包含了多個不同層,其中激活函數(shù)采用了ReLU,以此來提高網(wǎng)絡檢測的性能。歸一化層采用LRN策略(local response normalization,局部響應歸一化層),對數(shù)據(jù)進行歸一化操作。由圖可知網(wǎng)絡層為RPN的核心層。網(wǎng)絡層包含了推薦層1、候選框回歸層、1×1卷積層、候選框概率層等。
圖1 Faster RCNN網(wǎng)絡框架
圖1(b)是Faster RCNN的詳細網(wǎng)絡結構,利用單張圖像作為輸入數(shù)據(jù),其中候選框位置與輸入的候選框的坐標相同。卷積1至ReLU5同RPN一樣,池化層5到隨機失活6和softmax損失函數(shù)即為ZF結構的完整模型。
通過對每個錨進行二分類(是目標或者不是)來訓練RPN。若錨與真實框有最高的交并比或者錨與任意真實框的交并比大于0.7,則作為正樣本,將交并比小于0.3的錨作為負樣本,其余的均直接丟棄。
在Faster RCNN中,將一個錨i的損失函數(shù)定義為:
SmoothL1(x)=0.5x2(|x|<1)
SmoothL1(x)=|x|-0.5(x<-1或x>1)
選取的四個坐標參數(shù)為:
tx=(x-xa)/wa,ty=(y-ya)/ha,tw=log(w/wa),th=log(h/ha)
其中,x,xa,x*分別代表候選框、錨、真實框。此方法實現(xiàn)bounding box回歸。
RPN由一個全卷積網(wǎng)絡實現(xiàn),使用SGD(stochastic gradient descent)算法[9]進行端到端的訓練。訓練時采用與圖像中心采樣策略[6]一致的方式來訓練網(wǎng)絡。實際中通過對每張圖片隨機采樣512個錨使得正負錨的比例為1∶1,最后對采樣后的錨計算小批的損失函數(shù)。
所有層權重的初始化均采用零均值方差為0.02的高斯分布。將所有被初始化后的層在CelebA人臉檢測[10]上進行初始化預訓練,與練習實驗[11]中的操作相同。采用5 000個CelebA的圖像用0.001的學習率進行訓練。采用0.7的動量和0.003的權重,整個網(wǎng)絡通過Caffe[12]實現(xiàn)。
在訓練RPN網(wǎng)絡時由于對候選框欠缺考慮,所以聯(lián)合優(yōu)化將成為一個重點。該系統(tǒng)中采用四部訓練算法來完成RPN和檢測網(wǎng)絡共享卷積層的優(yōu)化算法。第一步,訓練RPN。RPN用CelebA預訓練模型進行初始化并且端到端地微調候選框任務;第二步,用已經(jīng)生成的候選框訓練Faster RCNN并檢測網(wǎng)絡;第三步,用檢測初始化RPN,固定共享的卷積層,指微調RPN中的其他層;最后,固定共享的卷積層,并微調全連接層。
由于生成的候選框有很大部分重疊,該系統(tǒng)采用NMS(non-maximum suppression)[13]算法來減小冗余。在NMS中固定交并比閾值為0.7,這樣將會篩選出大概3 500個候選框。NMS在大幅度減少候選框數(shù)量的情況下對最后的檢測精度并無影響。NMS之后,將前N個候選框輸入到檢測網(wǎng)絡。
該系統(tǒng)通過對聯(lián)合人臉檢測和對齊的網(wǎng)絡進一步研究,找出人臉檢測性能較高的原因,并將其與Faster RCNN進行相關對比,從不同框架結構出發(fā),結合自身的優(yōu)勢提出有利于人臉檢測的優(yōu)化模型。
聯(lián)合人臉檢測和對齊的網(wǎng)絡框架如圖2所示。
(a)候選框網(wǎng)絡示意
(b)精煉網(wǎng)絡示意
(c)輸出網(wǎng)絡示意
由網(wǎng)絡框架圖可看出,此網(wǎng)絡包括三個階段。第一階段為候選框網(wǎng)絡,即快速產(chǎn)生候選框窗口。第二階段為精煉網(wǎng)絡,即優(yōu)化產(chǎn)生的候選框網(wǎng)絡。第三階段為輸出網(wǎng)絡,優(yōu)化輸出結果,并將面部關鍵點位置輸出。與多任務的學習框架相比,此算法的性能得到了顯著性的提高。
給定一個圖像,依據(jù)圖像的不同尺度,來構建一個圖像金字塔,其中三個級聯(lián)框架的輸入分為如下三個階段:
第一階段:利用全卷積網(wǎng)絡,即P-Net來獲取候選人臉窗口。然后利用估計的邊界框回歸向量對候選對象進行校準。在此之后,使用非最大抑制(NMS)將高度重疊的候選項進行合并。
第二階段:將所有候選對象輸入到精煉網(wǎng)絡(R-Net),通過精準排除大量的錯誤候選對象,利用邊界框回歸進行校準,并進行NMS去除重疊窗體。
第三階段:這一階段類似于第二階段,只是在去除重疊候選窗口的同時,顯示五個人臉關鍵點定位。
由圖2可知,聯(lián)合人臉檢測和對齊的網(wǎng)絡主要包含3個部分:人臉/非人臉分類器、邊界框回歸、人臉關鍵點定位。
在檢測和分類問題上有很多評價指標。其中召回率和準確率則是檢測、分類、識別問題的兩個重要評價指標。召回率:在所有樣本中檢測出相關樣本的概率;準確率:在系統(tǒng)所檢出的樣本中,真正相關的概率。一個好的檢測系統(tǒng)希望準確率和召回率都盡可能高,一般情況下準確率和召回率呈負相關。為了有效地評價系統(tǒng)的檢測能力,這里引入AP(平均精度)來對系統(tǒng)的檢測能力進行衡量。
采用的數(shù)據(jù)集為WIDER FACE[14]數(shù)據(jù)集。根據(jù)人臉檢測的難易程度,WIDER FACE將數(shù)據(jù)集分為簡單、中等、困難三個級別,以此來檢驗測試效果,如表1所示。
表1 不同網(wǎng)絡模型的人臉檢測結果
根據(jù)在WIDER FACE數(shù)據(jù)集上的結果可知,聯(lián)合人臉檢測和對齊的級聯(lián)卷積神經(jīng)網(wǎng)絡檢測效果好于Faster RCNN。
Faster RCNN在具有挑戰(zhàn)性的WIDER FACE數(shù)據(jù)集上測試時,由于圖像包含更多較小、遮擋和不完整的對象,導致性能下降很多?;诂F(xiàn)階段存在的問題,文中提出了一種基于RPN方法的快速級聯(lián)卷積神經(jīng)網(wǎng)絡,來解決如遮擋、光照、大的姿態(tài)變化等問題。首先,該系統(tǒng)的突出之處在于將多尺度區(qū)域候選網(wǎng)絡和上下文多尺度神經(jīng)網(wǎng)絡引入到快速級聯(lián)卷積神經(jīng)網(wǎng)絡,且支持同時觀察多尺度特征,對人臉候選區(qū)域進行推斷。然后,通過計算置信度得分和邊界框回歸,人臉檢測系統(tǒng)能夠在給定的人臉圖像中通過對這些生成的候選框的置信分數(shù)進行閾值化來決定檢測結果。
快速級聯(lián)卷積神經(jīng)網(wǎng)絡框架如圖3所示。卷積層1至卷積層5具有與RPN同樣的結構。系統(tǒng)通過采用RoI池化層來進行下采樣,方便連接組合,沿通道進行L2歸一化來連接組合,然后通過1×1的卷積層進行單層特征值的融合,卷積后的特征圖上的候選框采用與RPN相同的方法。最后將產(chǎn)生的候選框進行bounding box回歸,同時將人臉的候選框映射至卷積層3至卷積層5,卷積層3至5用來產(chǎn)生候選框。從整體網(wǎng)絡看,由于共享卷積層1至5,實現(xiàn)了只需一次計算就可以更新所有參數(shù)的目的,節(jié)約了時間成本,提高了效率。此外,該系統(tǒng)采用多個層的特征圖進行連接組合分別來實現(xiàn)聯(lián)合人臉檢測和對齊神經(jīng)網(wǎng)絡的三個階段。
由于在Faster RCNN中采用的區(qū)域候選框特征均是通過單個深層卷積特征圖產(chǎn)生的,因此存在很難檢測到小面孔的問題。為解決此問題,文中采用多個卷積層特征的組合,有助于獲得微小面部的信息。同時,由于面部檢測需要定位面部以及確認面部信息,該系統(tǒng)將具有定位能力的低級特征和具有語義信息的高級特征融合在一起[15]。
圖3 快速級聯(lián)卷積神經(jīng)網(wǎng)絡框架
對于人臉檢測,由于各種挑戰(zhàn)使得臉部被遮擋,在這種情況下,F(xiàn)aceness[12]考慮通過對面部部分響應的空間結構和排列進行評分來找到面部,但當面部部分由于遮擋而缺失時,人臉檢測將變得難以執(zhí)行。先前的研究表明[14],利用上下文可以達到減少整體誤差的目的[16],同時上下文推理也是物體識別難題的關鍵部分,基于此在該系統(tǒng)設計中參考身體上下文信息。
由于特征來自不同層的特征圖,因此可能會有不同的尺度和數(shù)值范圍,采用L2歸一化保證來自每個層的特征值大致保持在相同的范圍。
為了避免人臉的巨大視覺變化,如遮擋、光照、大的姿態(tài)變化問題,基于人臉檢測的一些瓶頸問題做了相關研究。基于現(xiàn)有深度卷積神經(jīng)網(wǎng)絡模型,并對其進一步的試驗、分析、改進,提出了一種快速級聯(lián)卷積神經(jīng)網(wǎng)絡模型。通過研究Faster RCNN和多級聯(lián)聯(lián)合人臉檢測的卷積神經(jīng)網(wǎng)絡模型分析,抽取出適合于人臉檢測的候選框與檢測網(wǎng)絡模型,采用級聯(lián)卷積神經(jīng)網(wǎng)絡卷積共享策略,簡化神經(jīng)網(wǎng)絡和檢測網(wǎng)絡的訓練和測試,節(jié)約了算法所需要的時間[13]。同時,由于卷積層的共享,實現(xiàn)了級聯(lián)卷積神經(jīng)網(wǎng)絡端到端的優(yōu)化,對于較小的人臉區(qū)域采用候選框網(wǎng)絡和RoI檢測網(wǎng)絡共享卷積層進行處理,激活函數(shù)使用Leaky ReLU,從而提高了神經(jīng)網(wǎng)絡的性能。