鄭成浩,楊夢龍
(1.四川大學計算機學院,成都 610065;2.四川大學空天科學與工程學院,成都 610065)
人臉檢測是自動人臉識別系統(tǒng)中的關鍵環(huán)節(jié),它利用一定的策略對圖片或者視頻進行處理,判斷圖片或視頻中是否存在人臉,如果存在則返回人臉框的位置、大小甚至姿態(tài)。早期的人臉檢測研究只適用于嚴格的約束環(huán)境下應用[1-2]。自Paul Viola等人創(chuàng)造性地提出Viola-Jones檢測器[3]后,人臉檢測開始展現(xiàn)出商業(yè)化潛力。傳統(tǒng)的人臉檢測算法主要是提取Haar特征[4]或HOG[5]特征,并將這些特征輸入到支持向量機(SVM)分類器中進行分類識別后實現(xiàn)人臉檢測,特征的優(yōu)劣決定人臉檢測的準確性。Haar等特征本質(zhì)上是手工設計的特征,研究人員設計一種好的特征提取方法耗時耗力,而且一種特征只能對有限場景下的人臉有較好的效果,因而傳統(tǒng)的方法具有很大的局限性。
自Geoffery Hinton等人首次提出基于深度信念網(wǎng)絡使用非監(jiān)督的逐層貪心訓練算法可訓練深度神經(jīng)網(wǎng)絡[6]后,深度學習的應用逐漸發(fā)展起來。2012年,采用深度學習的AlexNet[7]贏得ImageNet目標檢測比賽冠軍,準確率比之前有了極大的提升。作為目標檢測的一種,深度學習在人臉識別和人臉檢測中也得到了普遍的應用。
采用深度學習的人臉檢測算法,主要的結(jié)構(gòu)或框架有以下四種,分別是卷積網(wǎng)絡級聯(lián)結(jié)構(gòu)、多分類網(wǎng)絡結(jié)構(gòu)、人臉結(jié)構(gòu)化網(wǎng)絡結(jié)構(gòu)和Faster R-CNN框架。下面將對這四種結(jié)構(gòu)結(jié)構(gòu)進行介紹。
級聯(lián)結(jié)構(gòu)可以看作是一個退化決策樹。在檢測過程中,候選窗口會通過一系列的弱分類器,每一個弱分類器都會判別候選窗口是否包含人臉,只有當所有弱分類器都判定是人臉時,整個檢測器才會判定它是人臉。
自Viola-Jones檢測器被提出以來,簡單特征的級聯(lián)結(jié)構(gòu)成為人臉檢測最有效和最流行的設計。簡單特征能夠快速評估和及早排除非人臉候選框,同時級聯(lián)結(jié)構(gòu)又能提高檢測精度。Viola-Jones檢測器使用Haar特征,速度快,對正面人臉有比較好的檢測效果。過去的十多年,研究人員對Viola-Jones檢測器進行了很多改進,他們大多采用更高級的特征,但仍然是級聯(lián)結(jié)構(gòu)。高級的特征能夠構(gòu)造一個更精確地二分類器,在達到相同精度的條件下,所需的級聯(lián)結(jié)構(gòu)更簡單,整體計算代價保持不變甚至更少。
Cha Zhang和Zhengyou Zhang提出了一個采用級聯(lián)結(jié)構(gòu)的深度卷積網(wǎng)絡[8]用于人臉檢測,結(jié)構(gòu)如圖1[8]所示。此方法使用基于級聯(lián)的多角度檢測器排除掉大量的非人臉檢測框,再經(jīng)過預處理將圖片調(diào)整到32×32像素,然后輸入到一個更復雜的深度卷積網(wǎng)絡中得到最后的結(jié)果。在預處理階段需要進行三個步驟:直方圖均衡化、線性變換和歸一化處理。圖像預處理的主要作用是增強對比度及移除陰影。此方法在FDDB庫上測試的成績優(yōu)于VJGPR、XZJY和PEP-Adapt,在18個誤檢時檢測率為77.32%。
圖1 Cha Zhang等人提出的人臉檢測框架結(jié)構(gòu)圖
李皓翔等人提出了一種卷積網(wǎng)絡級聯(lián)結(jié)構(gòu)的人臉檢測算法(CascadeCNN)[9]。卷積網(wǎng)絡級聯(lián)結(jié)構(gòu)是指將多個卷積網(wǎng)絡組合,構(gòu)成一個完整的人臉檢測器。每個級聯(lián)的卷積網(wǎng)絡的結(jié)構(gòu)不同,具有不同的功能。人臉檢測流程如圖2[9]所示,整個算法有六個級聯(lián)的卷積網(wǎng)絡,包括3個用以判別人臉和非人臉的二分類分類器和3個用以調(diào)整人臉框邊界的卷積網(wǎng)絡(校準網(wǎng)絡)。在訓練數(shù)據(jù)有限的情況下,校準網(wǎng)絡更容易訓練。在FDDB庫上,CascadeCNN的測試成績超過ACF、PEP-Adapt、Boosted Exemplar、HeadHunted 等方法,最大檢測率為85.6%。CascadeCNN不僅正檢很高,而且速度很快。在CPU上可以以14fps的速度處理VGA畫質(zhì)的圖片,在GPU上,相同條件下可以達到100fps。這種方法有兩個特點,一是多分辨率的網(wǎng)絡級聯(lián),加強了時間效率;二是邊界校準網(wǎng)絡,降低了對大量訓練數(shù)據(jù)的依賴而且增加了召回率。此方法的缺點是,雖然在一定程度上比傳統(tǒng)的方法有所提高,但是性能仍然不是非常突出。85.6%的檢測率在今天看來成績并不突出。
圖2 檢測器測試過程
很多級聯(lián)結(jié)構(gòu)的人臉檢測器對正面人臉有較好的檢測效果,但對不同角度的人臉比如側(cè)臉或者部分遮擋的人臉,檢測率較低。這源于級聯(lián)檢測器的一個固有劣勢,組成強分類器的每個弱分類器都是一個二分類器。二分類器只能區(qū)分人臉和非人臉,在實際使用中,每個角度的人臉不盡相同。為了解決這個問題,有些學者采用多通道的級聯(lián)結(jié)構(gòu)。然而,這種方法需要面向?qū)ο蟮臉擞?,而且,訓練和測試的復雜性隨模型數(shù)量呈線性增長。時至今日,卷積網(wǎng)絡級聯(lián)結(jié)構(gòu)的人臉檢測器仍然在不斷發(fā)展,速度快和檢測率也在逐漸提升,但是在FDDB庫測試的成績排在前10名之后。
為了解決計算復雜的問題,Viola和Jones提出首先使用樹分類器估算臉部姿態(tài),然后使用相應角度的級聯(lián)檢測器[10]。雖然提高了檢測速度,但初始樹分類器的錯誤是不可逆的,綜合的準確性有所降低。
如把人臉檢測看作一個二分類問題,采用深度學習的人臉檢測算法的網(wǎng)絡結(jié)構(gòu),最后一層通常是Sig?moid層。目前,大多數(shù)研究者為了克服多角度人臉問題,通常將人臉檢測看作一個多分類問題,把Softmax層作為最后一層。S.S.Farfade等人放棄了使用二分類器,提出了基于多分類網(wǎng)絡的DDFD(Deep Dense Face Detector)[11]算法用以解決多角度人臉檢測問題。DDFD的網(wǎng)絡結(jié)構(gòu)類似AlexNet,前五層依然是卷積層;不同的是,DDFD算法中,將最后三個全連接層改變?yōu)榫矸e層,然后接一個Softmax層得到分數(shù)。DDFD的另一個特點是非極大值抑制過程,S.S.Farfade等人提出了兩種方法,NMS-max和NMS-avg。NMS-max的流程是首先找到分數(shù)最高的框,然后移除所有與這個框的交并比(IoU)大于某個閾值的框。重復這個過程,直到處理完所有的框。NMS-avg的流程是先去除得分小于0.2的框,對剩下的框根據(jù)某一個閾值使用OpenCV中的聚類方法得到最后結(jié)果。對每一個聚簇,去除得分小于分數(shù)最高的框90%的所有的框,然后對余下的框做位置平均得到最后的人臉檢測框,分數(shù)取聚簇中的最高分。圖3[11]是不同非極大值抑制策略和閾值對結(jié)果的影響,可以看出,非極大值抑制的策略對結(jié)果有較大的影響。此算法在FDDB庫上的測試結(jié)果是:2000個誤檢時檢測率為84.8%,低于CascadeCNN。
DDFD算法的優(yōu)點是:(1)使用SoftMax層對人臉進行多角度的劃分以提高精度。(2)對非極大值抑制策略進行首次探究。缺點是:(1)網(wǎng)絡結(jié)構(gòu)類似AlexNet,較簡單。(2)人臉模板大。文章中能檢到的最小人臉是45x45,對于更小的人臉,圖片需要調(diào)整到很大的尺寸,增加了計算代價。
圖3 不同NMS策略和閾值的影響
Felzenszwalb提出的可變形部件模型(DPM,De?formable Parts Model)[12]使用了人臉結(jié)構(gòu)化的思想。部件模型假設每一個物體都是由幾個組件和它們之間的空間位置關系組成的,檢測大物體就可以轉(zhuǎn)換成檢測每一個小組件及其空間位置問題??勺冃尾考P褪且环N基于組件的檢測算法,包括一個粗糙的包含整個目標的全局模板,以及若干個高分辨率的部件模板。模板就是梯度方向直方圖HOG特征向量,每個部件模型包括一個空間模型和一個部件濾波器,空間模型定義了一系列此部件相對于檢測窗口的空間位置,以及每個相對位置的變形花費。
人臉同樣也可以認為由幾個部件組成,例如鼻子、眼睛、嘴巴等。在局部環(huán)境中,人臉局部結(jié)構(gòu)的檢測是解決人臉檢測的關鍵。只要在一個檢測框準確地檢測到人臉的幾個組件并且各個組件之間的空間關系是正常的,那么就可以認為這個檢測框里存在人臉。正如上文提到的,手工設計的Haar或HOG等特征不能在無約束的環(huán)境中精確地捕捉不同姿態(tài)和照明條件下的面部信息。隨著深度學習技術和GPU并行計算加速的進步,使用深層卷積神經(jīng)網(wǎng)絡進行特征提取成為可能。Krizhevsky等人提出使用在大型通用數(shù)據(jù)集預訓練的深度卷積網(wǎng)絡可以作為有使用價值的特征提取器[7]。
在可變形部件模型的基礎上,利用深層卷積網(wǎng)絡的表征學習能力,Shuo Yang等人首次提出用以解決嚴重遮擋和大姿態(tài)下難以檢測問題的Faceness-Net算法[13]。Faceness-Net的檢測過程包含三個階段:生成局部信息圖、根據(jù)得分對候選窗口排序、矯正檢測結(jié)果。第一個階段,生成局部信息圖,如圖4[13]所示。圖片X作為5個卷積網(wǎng)絡的輸入,每個網(wǎng)絡檢測人臉一個特定部分在圖中的位置。通過人臉標簽特征圖,能夠清楚地指定人臉位置。為了節(jié)省計算代價,五個卷積網(wǎng)絡會共享卷積層。在第二階段,根據(jù)現(xiàn)有的方法比如選擇性搜索(selective search),在局部特征圖上生成候選框。通過平均一個人臉所有部分的得分獲得這個人臉的分數(shù)。最后,所有的窗口通過一個多任務卷積網(wǎng)絡進行完善。
圖4 Faceness-Net生成特征信息圖
Faceness-Net中的5個屬性感知的卷積網(wǎng)絡結(jié)構(gòu)相似,受到了AlexNet的啟發(fā)。卷積網(wǎng)絡結(jié)構(gòu)包括7個卷積層和2個池化層。很多研究表明,增加卷積層數(shù)比如AlexNet可以粗略捕獲目標位置。在第二個階段中,算法用先驗知識對候選框打分,比如頭發(fā)在臉的上方,眼睛在臉的中央等。以頭發(fā)為例,它貢獻的得分的計算方法如下:
圖5是在局部特征圖上得到的一個候選框ABCD??紤]頭發(fā)的空間位置,在人臉的上方,頭發(fā)在候選窗口的位置是ABEF。頭發(fā)提供的得分是ABEF/EFCD,如下式(1)所示。
圖5 特征圖
部件的得分越高說明與人臉相交的比例越大。通過不同的λ,使得各個部件的空間分配更加合理。模型中的λ可以通過學習的方法得到。給定一個訓練集,是指第i個人臉和標簽,是第i個候選框比如圖5中ABCD。通過最大后驗來獲得λ。Shuo Yang等人通過使用AFLW和PASCAL VOC2007的數(shù)據(jù)來微調(diào)這個網(wǎng)絡。
Facsness-Net的優(yōu)勢在于人臉進行結(jié)構(gòu)化的分割,增加了對遮擋的魯棒性和對多角度人臉的檢測能力。在FDDB庫上測試,在2000個誤檢時達到了90.9882%的檢測率,優(yōu)于卷積網(wǎng)絡級聯(lián)結(jié)構(gòu)和多分類網(wǎng)絡結(jié)構(gòu)的某些算法,比如Cascade CNN和DDFD。
Faster R-CNN的前身可追溯到R.Girshick等人提出了R-CNN框架[14]。該方法由提取候選框、特征提取和分類器(SVM)三部分構(gòu)成。R-CNN有兩個缺點:(1)在特征提取階段,輸入圖片尺寸必須是固定的;(2)對每一個候選框都要進行卷積網(wǎng)絡的前向傳播,耗時多。為了解決這兩個問題,何愷明等人提出了SPPNet框架[15],通過添加空間金字塔池化(Spatial Pyramid Pooling)層速度提高了24-102倍,準確率也有所提高。為了進一步減少時間與空間代價,在SPP-Net基礎上,R.Girshick等人提出了 Fast R-CNN框架[16]。Fast R-CNN框架過程是利用selective search產(chǎn)生候選框,縮放圖片得到金字塔,將圖片輸入到卷積網(wǎng)絡,用Softmax和回歸得到得分和檢測框。Fast R-CNN的缺點是候選框提取方法不能與卷積網(wǎng)絡一起進行端到端的訓練,消耗時間仍然較多。端到端是指輸入原始數(shù)據(jù),輸出最后的結(jié)果。在人臉檢測領域,非端到端的方法的主要不同是輸入端不是原始數(shù)據(jù),而是在原始數(shù)據(jù)中提取的特征。端到端的方法的優(yōu)勢是,研究者只需要關心輸入端與輸出端,中間過程不需要人工干預。R.Girshick等人通過改進Fast R-CNN提出了Faster R-CNN框架[17]。
Huaizu Jiang和Erik Learned-Miller將Faster RCNN應用于人臉檢測問題[18],處理過程如圖6[18]所示。Faster-RCNN包括兩個模塊,第一部分是RPN(Region Proposal Networks),一個產(chǎn)生候選區(qū)域的深度卷積網(wǎng)絡,第二部分是Fast-RCNN檢測器。RPN的核心思想是通過卷積網(wǎng)絡直接產(chǎn)生候選區(qū)域。RPN網(wǎng)絡可以接收任意尺寸的照片,對最后一層卷積層產(chǎn)生的特征圖使用3×3的滑動窗口,每個中心點生成9個候選區(qū)域,最后輸出一系列的建議區(qū)域和分數(shù)。在第二個模塊中,候選框被輸入到Fast RCNN網(wǎng)絡獲得最后的得分與人臉框。在FDDB庫上測試,在747個誤檢時達到了96.1129%的檢測率。Faster R-CNN創(chuàng)造性地采用卷積網(wǎng)絡自行產(chǎn)生建議框,并且兩個模塊共享卷積網(wǎng)絡。
圖6 Faster R-CNN網(wǎng)絡結(jié)構(gòu)
Shaohua Wan和Zhijun Chen等人在Faster R-CNN基礎上使用負樣本挖掘技術進行訓練[19],解決正負樣本的分布不均衡的問題。孫旭東等人在Faster R-CNN框架基礎上提出了DeepIR方法[20],常見的Faster RCNN只在最后一層特征層進行感興趣區(qū)域(Region of Interest,RoI)池化產(chǎn)生區(qū)域特征,孫旭東等人認為,這種方式會漏掉一些重要信息。為了捕獲更細粒度的RoI細節(jié),Deep IR通過混合不同特征層進行特征池化。在FDDB上測試,DeepIR在956個誤檢時達到了97.0605%的檢測率,遠超 CascadeCNN、DDFD、Face?ness-Net等方法。
我們對四種典型的深度學習人臉檢測算法框架進行了研究。以Faster R-CNN為代表的端到端網(wǎng)絡在檢測率方面顯示出了極大的競爭力,而且檢測速度也在不斷提升,具有較好的應用前景。在完全無約束的環(huán)境,特別是姿態(tài)和光照變化極大時的面部檢測仍然是極具挑戰(zhàn)性的問題。對于有監(jiān)督的深度學習來說,收集大量的真實數(shù)據(jù)仍然是一項困難的工作。在改進訓練數(shù)據(jù)方面,也需要更多的研究,無監(jiān)督或半監(jiān)督的學習方法將非常有利于減少數(shù)據(jù)收集所需要的工作量。改善人臉檢測性能的另一個可能的辦法是考慮上下文信息,如身體其他部位可以提供人臉所在部位的提示。
[1]FISCHLER M A,ELSCHLAGER R A.The Representation and Matching of Pictorial Structures[J].IEEE Transactions on Computers,1973,100(1):67-92.
[2]BLEDSOE W W,CHAN H.A Man-Machine Facial Recognition System—Some Preliminary Results[J].Panoramic Research,Inc,Palo Alto,California,Technical Report PRI A,1965,19(1):1965.
[3]VIOLA P,JONES M.Rapid Object Detection Using a Boosted Cascade of Simple Features;Proceedings of the Computer Vision and Pattern Recognition,2001 CVPR 2001 Proceedings of the 2001 IEEE Computer Society Conference on,F,2001[C].IEEE.
[4]PAPAGEORGIOU C P,OREN M,POGGIO T.A General Framework for Object Detection;Proceedings of the Computer Vision,1998 Sixth International Conference on,F,1998[C].IEEE.
[5]DALAL N,TRIGGS B.Histograms of Oriented Gradients for Human Detection;Proceedings of the Computer Vision and Pattern Recognition,2005 CVPR 2005 IEEE Computer Society Conference on,F,2005[C].IEEE.
[6]HINTON G E,SALAKHUTDINOV R R.Reducing the Dimensionality of Data with Neural Networks[J].Science,2006,313(5786):504-507.
[7]KRIZHEVSKY A,SUTSKEVER I,HINTON G E.Imagenet Classification with Deep Convolutional Neural Networks;Proceedings of the Advances in Neural Information Processing Systems,F,2012[C].
[8]ZHANG C,ZHANG Z.Improving Multiview Face Detection with Multi-Task Deep Convolutional Neural Networks;Proceedings of the Applications of Computer Vision(WACV),2014 IEEE Winter Conference on,F,2014[C].IEEE.
[9]LI H,LIN Z,SHEN X,et al.A Convolutional Neural Network Cascade for Face Detection;Proceedings of the Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,F,2015[C].
[10]JONES M,VIOLA P.Fast multi-View Face Detection[J].Mitsubishi Electric Research Lab TR-20003-96,2003,3(14).
[11]FARFADE S S,SABERIAN M J,LI L-J.Multi-View Face Detection Using Deep Convolutional Neural Networks.Proceedings of the Proceedings of the 5th ACM on International Conference on Multimedia Retrieval,F,2015[C].ACM.
[12]FELZENSZWALB P,MCALLESTER D,RAMANAN D.A Discriminatively Trained,Multiscale,Deformable Part Model.Proceedings of the Computer Vision and Pattern Recognition,2008 CVPR 2008 IEEE Conference on,F,2008[C].IEEE.
[13]YANG S,LUO P,LOY C-C,et al.From Facial Parts Responses to Face Detection:A Deep Learning Approach.Proceedings of the Proceedings of the IEEE International Conference on Computer Vision,F,2015[C].
[14]GIRSHICK R,DONAHUE J,DARRELL T,et al.Region-Based Convolutional Networks for Accurate Object Detection and Segmentation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2016,38(1):142-158.
[15]HE K,ZHANG X,REN S,et al.Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition.Proceedings of the European Conference on Computer Vision,F,2014[C].Springer.
[16]GIRSHICK R.Fast r-cnn;proceedings of the Proceedings of the IEEE International Conference on Computer Vision,F,2015[C].
[17]REN S,HE K,GIRSHICK R,et al.Faster r-cnn:Towards Real-Time Object Detection with Region Proposal Networks.Proceedings of the Advances in neural information processing systems,F,2015[C].
[18]JIANG H,LEARNED-MILLER E.Face Detection with the Faster R-CNN[J].arXiv Preprint arXiv:160603473,2016.
[19]WAN S,CHEN Z,ZHANG T,et al.Bootstrapping Face Detection with Hard Negative Examples[J].arXiv preprint arXiv:160802236,2016.
[20]SUN X,WU P,HOI S C.Face Detection Using Deep Learning:An Improved Faster Rcnn Approach[J].arXiv Preprint arXiv:170108289,2017.