董蘭芳,張軍挺
(中國科學技術大學 計算機科學與技術學院,合肥 230027)
基于Faster R-CNN的人臉檢測方法①
董蘭芳,張軍挺
(中國科學技術大學 計算機科學與技術學院,合肥 230027)
近年來,基于候選區(qū)域的快速卷積神經(jīng)網(wǎng)絡(Faster R-CNN)算法,在多個目標檢測數(shù)據(jù)集上有出色的表現(xiàn),吸引了廣泛的研究興趣. Faster R-CNN 框架本來是用做通用目標檢測的,本文將它應用到人臉檢測上,分別使用ZF和VGG16卷積神經(jīng)網(wǎng)絡,在WIDER人臉數(shù)據(jù)集上訓練Faster R-CNN模型,并在FDDB人臉數(shù)據(jù)庫上測試. 實驗結果表明,該方法對復雜光照、部分遮擋、人臉姿態(tài)變化具有魯棒性,在非限制性條件下具有出色的人臉檢測效果. 這兩種網(wǎng)絡結構,在檢測效率和準確性上各有優(yōu)勢,可以根據(jù)實際應用需求,選擇使用合適的網(wǎng)絡模型.
人臉檢測; 候選區(qū)域; 卷積神經(jīng)網(wǎng)絡; 非限制性條件
傳統(tǒng)的人臉檢測方法,主要在Viola和Jone[1]的工作基礎上進行改進,研究者們關注手工設計的圖像特征,以及不同的級聯(lián)結構. 各種復雜的特征,如文獻[2-6]等特征被設計出來,代替Haar-like特征. 這些手工設計的特征在一定程度上可以改進人臉檢測,但是它們大部分維度較高,增加了計算復雜度. 文獻[7]對稀疏表示算法進行改進,使用度量學習方法,有助于挖掘出人臉特征在組間和組內(nèi)之間的關系. 另外一種思路就是學習不同的級聯(lián)結構,檢測多角度人臉,比如平行級聯(lián)結構[8],金字塔框架[9],寬度優(yōu)先搜索樹[10]等. 這些方法對于特定的人臉角度,都需要學習一個級聯(lián)分類器,而準確標記每個人臉的角度比較困難,工作量比較大.
近年來,深度卷積神經(jīng)網(wǎng)絡(CNN)[11]不斷改進與發(fā)展,在計算機視覺領域中占據(jù)著越來越重要的地位.相較于傳統(tǒng)手工設計的特征,CNN特征能夠克服復雜光照、部分遮擋、角度旋轉的影響.
在人臉檢測領域中,也有很多基于深度學習的檢測算法被提出. 文獻[12]使用深度卷積神經(jīng)網(wǎng)絡,對大量的人臉與非人臉圖像進行二進制分類訓練. 訓練好模型之后,將網(wǎng)絡的最后一層全連接層轉換為卷積層,前向網(wǎng)絡,可以得到熱力圖,用于定位人臉. 文獻[13]構建了5個共享權值的CNN網(wǎng)絡,這幾個網(wǎng)絡分別用來提取頭發(fā)、眼睛、鼻子、嘴巴、胡子的特征. 根據(jù)人臉的空間結構,器官的相對位置,來定位人臉. 即使圖像存在嚴重遮擋的情況,該方法仍能檢測出人臉. 文獻[14]提出了基于CNN的級聯(lián)網(wǎng)絡,滑動窗口先通過較小的12-net卷積神經(jīng)網(wǎng)絡,快速排除大部分背景區(qū)域,然后使用矯正網(wǎng)絡微調檢測窗口,接著級聯(lián)24-net卷積神經(jīng)網(wǎng)絡,使檢測結果更加精確. 該方法在單個CPU 上的速度是 14 fps,檢測準確性較高. 文獻[15]提出基于候選區(qū)域的卷積神經(jīng)網(wǎng)絡(R-CNN),R-CNN框架經(jīng)過科研人員近幾年的改進,共發(fā)展了三個版本. 其中 Faster R-CNN[16]是最新的一個版本,通過 RPN 網(wǎng)絡回歸計算出高質量的候選區(qū)域,提高了檢測效率,在目標檢測數(shù)據(jù)集上取得出色的成績.
本文分別使用ZF[17]和VGG16[18]深度卷積神經(jīng)網(wǎng)絡,在 WIDER[19]人臉數(shù)據(jù)集上訓練 Faster R-CNN 模型,并在FDDB[20]人臉數(shù)據(jù)庫上測試. 實驗結果表明,使用Faster R-CNN框架可以快速、準確地檢測非限制性條件下的人臉. 其中使用ZF網(wǎng)絡模型檢測的速度更快,而VGG16網(wǎng)絡模型則更加精確.
基于候選區(qū)域的卷積神經(jīng)網(wǎng)絡目標檢測算法,由Girshick等人[15]首次提出. 圖1展示了使用RCNN進行目標檢測的流程,主要分為三個步驟:
① 預先找出圖像中目標可能出現(xiàn)的位置,即候選區(qū)域. 常用的方法有 selective search[21]和 edge boxes[22].
② 將每個候選區(qū)域縮放到固定尺寸,并輸入到卷積神經(jīng)網(wǎng)絡中,將CNN的全連接層輸出作為特征.
③ 使用SVM進行分類,并對提取到的窗口進行糾正的邊框回歸計算,使檢測得到的窗口跟目標真實窗口更加吻合.
該方法最大的優(yōu)點,是可以解決特征魯棒性問題,使用CNN特征進行分類有較高的準確率. 然而RCNN存在一些不可忽視的問題:
① 訓練過程是多階段的. 首先對卷積神經(jīng)網(wǎng)絡微調訓練; 然后提取全連接層特征輸作為SVM的輸入,訓練得到目標檢測器; 最后訓練邊框回歸器.
② 訓練過程需要耗費較多的空間與時間. 如圖1所示,提取候選區(qū)域使用 selective search 算法,假設一張圖像提取2000個候選區(qū)域,就需要進行2000次卷積神經(jīng)網(wǎng)絡運算,而每次提取的特征都需要寫入磁盤空間,這一過程需要耗費大量計算與存儲資源.
③ 目標檢測速度慢. 在GPU上使用VGG16網(wǎng)絡進行目標檢測,需要花費47秒.
圖1 RCNN 目標檢測流程框圖
2.1中的RCNN方法,每個候選區(qū)域都需要前向卷積神經(jīng)網(wǎng)絡來提取特征,而每個候選區(qū)域都是整個圖像的一部分. 因此完全可以對圖像提取一次卷積特征,然后只需將候選區(qū)域在原圖的位置映射到卷積層特征圖上,這樣對于一張圖像,只需要前向一次網(wǎng)絡.
傳統(tǒng)CNN網(wǎng)絡固定了輸入圖像的尺寸,在實際使用中,需要對圖像進行裁剪或者縮放預處理. 無論裁剪還是縮放,都無法保證圖像不失真. 比如裁剪可能會截斷檢測目標,而縮放會拉伸物體,失去“原形”. SPP-net[23]和Fast R-CNN[24]先后被提出來解決上述問題.
如圖2 所示,SPP-net最后一個卷積層的頂部,連接到空間域金字塔池化層,該池化層產(chǎn)生固定長度的輸出,用來輸入到全連接層. 可以這樣理解,SPP-net將原先固定大小的池化窗口,改成自適應大小,每個候選區(qū)域使用不同大小的金字塔映射. 即使輸入圖像尺寸發(fā)生改變,經(jīng)過池化后的特征長度仍然保持一致. 例如當輸入圖像尺寸是224×224時,conv5輸出尺寸為13×13×256,對于 13×13 的激活圖,將它分別池化成4×4、2×2、1×1 三張子圖,得到 (16+4+1)×256 維的特征向量. 當輸入圖像大小發(fā)生改變時,池化窗口尺寸相應發(fā)生改變,與激活圖尺寸成正比,使得池化后的特征向量長度不變.
圖2 SPP-net示意圖
相對于R-CNN來說,SPP-net可以大大加快目標檢檢測速度,但是仍然存在一些問題:
① 訓練分為多個階段,如微調網(wǎng)絡,訓練 SVM,訓練邊框回歸器,步驟較繁瑣.
② SPP-net微調網(wǎng)絡時,固定住卷積層參數(shù),只對全連接層進行微調訓練. 對于新的分類或檢測任務,有必要對卷積層進行微調.
Fast R-CNN融合了R-CNN和SPP-NET的精髓,該方法目標檢測流程如圖3所示. 首先輸入一張圖像到 CNN 中,得到卷積特征圖; 接著對每個候選區(qū)域,使用感興趣區(qū)域(ROI)池化,從卷積特征圖中提取固定長度的特征向量; 然后將該特征向量輸入到全連接層中,這里有兩個分支網(wǎng)絡: 其中一個網(wǎng)絡使用softmax對目標進行分類,另一網(wǎng)絡對坐標進行回歸計算,矯正邊框位置.
這里ROI是指卷積特征圖中的一個窗口,ROI池化,是將ROI卷積特征圖轉化為固定空間尺寸(H×W),該尺寸參數(shù)跟任何一個ROI都相互獨立. 例如有一個ROI窗口尺寸為h×w,則需要劃分h/H×w/W個子窗口,然后在每個子窗口中使用最大池化方法,得到對應的輸出. ROI池化層,其實是2.2中空間域金字塔池化層的一種特殊情況,只含有一個金字塔層. 在特征圖的每個通道上,池化操作之間都是相互獨立的.
圖3 Fast R-CNN 目標檢測流程框圖
Fast R-CNN 網(wǎng)絡含有 ROI池化層,用來提取固定長度的特征向量,使用了softmax替代SVM分類,同時將邊框回歸計算也加入到了網(wǎng)絡中,主要有以下幾處優(yōu)點:
① 訓練使用多任務損失函數(shù),除了候選區(qū)域的提取,其它訓練過程都是端到端的.
② 在網(wǎng)絡訓練過程中,將卷積層進行了微調,取得更好的檢測結果.
③ 不需要額外磁盤空間來存儲特征向量.
然而Fast R-CNN方法仍然存在一個性能瓶頸,檢測時間大多消耗在候選區(qū)域的提取上,無法滿足實時應用. 比如使用 selective search 算法提取候選區(qū)域,需要花費約2秒時間,而特征分類只需要0.3秒.
Faster R-CNN減少了提取候選區(qū)域的計算壓力,它主要分為兩部分,如圖4所示. 第一部分是全卷積神經(jīng)網(wǎng)絡,也稱作 RPN(Region proposal network),該網(wǎng)絡用來產(chǎn)生候選區(qū)域; 第二部分是Fast R-CNN檢測器,使用第一部分網(wǎng)絡產(chǎn)生的候選區(qū)域進行分類與邊框回歸計算. 整個系統(tǒng)共享卷積特征圖,將這兩部分連接起來,成為單一、統(tǒng)一的網(wǎng)絡.
RPN網(wǎng)絡結構如圖5所示,任意尺寸圖像輸入到RPN中,可以輸出高質量的矩形候選區(qū)域集. 使用RPN網(wǎng)絡在卷積特征圖上滑動,將特征圖上n×n大小的窗口作為輸入 (在文獻[16]中,n=3),后面分別連接兩個1×1的同級卷積層,這兩個全連接卷積層分別用作分類和回歸.
對于每一個滑動窗口,可以同時預測多個區(qū)域是否存在目標. 將滑動窗口的中心點作為錨點,文獻[16]分別使用3種縮放比和3種長寬比,在每一個滑動窗口位置,可以得到k=9個錨矩形框. 對于一個尺寸為W×H的特征圖,總共有W×H×k個錨矩形框. RPN網(wǎng)絡輸出2k個是否存在目標的概率,以及4k個回歸坐標值.
圖4 Faster R-CNN 目標檢測流程框圖
圖5 RPN 網(wǎng)絡結構
Faster R-CNN通過共享卷積層的方法,將候選區(qū)域的提取和CNN分類結合在一起,使用端到端的網(wǎng)絡進行訓練和測試,速度和精度都得到不錯的提高.
本文在WIDER人臉數(shù)據(jù)庫上訓練Faster R-CNN模型,該數(shù)據(jù)庫有 12880 張圖像,共 15 多萬張人臉,均是在自然場景下拍攝. 如圖6所示,隨機選取了4張圖像,圖像中的人臉尺寸、姿態(tài)、光照等存在較大變化,使該數(shù)據(jù)庫更加具有挑戰(zhàn)性.
圖6 WIDER 數(shù)據(jù)庫測試圖像
在FDDB人臉數(shù)據(jù)庫上對訓練好的模型進行評估. FDDB是世界上最權威的人臉檢測評估數(shù)據(jù)庫之一,該數(shù)據(jù)庫包含2845張圖像,共含有5171個人臉,每張圖像均有人臉坐標的詳細標簽.
實驗環(huán)境,在 Inter? CoreTMi7-2600 CPU 和GTX1080 GPU配置下實現(xiàn). 我們分別使用兩種卷積神經(jīng)網(wǎng)絡進行訓練,它們是VGG16和ZF網(wǎng)絡. 本文使用在ImageNet上預訓練得到的模型,對網(wǎng)絡權值進行初始化. 使用SGD算法(隨機梯度下降)更新權值,將初始學習率設置為0.001,經(jīng)過5萬次迭代后,減少學習率為0.0001,繼續(xù)迭代3萬次結束訓練. 圖6中的矩形框,是在WIDER測試集上進行人臉檢測的結果.
我們在FDDB數(shù)據(jù)庫上評估訓練的模型,共有兩種評價指標,分別是離散分數(shù)和連續(xù)分數(shù). 離散分數(shù),是當檢測的人臉區(qū)域與對應的人臉標簽區(qū)域重疊部分超過50%時,得分為1,否則為0; 連續(xù)分數(shù)則是上述重疊的比率. 本文采用離散分數(shù)作為評價指標,實驗結果如圖7所示. 使用VGG16網(wǎng)絡訓練的Faster R-CNN模型,人臉檢測的真陽率較高,誤檢率相對ZF網(wǎng)絡要低. 對于人臉檢測效率,使用ZF模型檢測一張圖像的平均時間為0.094秒,VGG模型則需要0.23秒. 兩種網(wǎng)絡各有優(yōu)勢,可以根據(jù)具體應用選擇合適的網(wǎng)絡模型.
圖7 兩種網(wǎng)絡模型在FDDB上的測試結果比較
將本文實驗結果與其它一些人臉檢測方法進行比較,如圖8所示,記錄了各個人臉檢測方法在FDDB上測試評估的ROC曲線. 除了Viola-Jones的經(jīng)典人臉檢測方法之外,其它幾種方法都是近幾年提出來的,其中 DDFD,Cascade CNN 以及 Joint Cascade 這三種方法,都是使用卷積神經(jīng)網(wǎng)絡提取特征. 從圖中可以看出,當假陽性數(shù)量大于200左右時,使用Faster R-CNN方法做人臉檢測比其他方法表現(xiàn)得更好.
圖8 與其它人臉檢測方法比較
隨機從FDDB數(shù)據(jù)庫中選取幾張圖像,使用Faster R-CNN模型進行人臉檢測,效果如圖9所示.
Faster R-CNN本來是用作通用目標檢測的,本文在WIDER人臉數(shù)據(jù)庫上分別訓練了ZF和VGG16網(wǎng)絡模型,并在 FDDB 數(shù)據(jù)集上測試. 實驗結果表明,該模型可以快速、準確地檢測自然條件下的人臉,對復雜光照、部分遮擋、人臉姿態(tài)變化具有魯棒性. Faster R-CNN最大的優(yōu)點,是共享了RPN和Fast R-CNN網(wǎng)絡的卷積層,大量減少了計算候選區(qū)域消耗的時間.
圖9 隨機選取圖像做人臉檢測
展望未來,發(fā)現(xiàn)有一些應用,需要進行人臉檢測,并識別人臉生物特征,比如性別、年齡、表情等. 可以借鑒Faster R-CNN共享卷積層的思想,使用一個網(wǎng)絡,對大量人臉生物特征進行識別,來提高效率.
1Viola P,Jones M. Rapid object detection using a boosted cascade of simple features. Proc. of IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Kauai,HI,USA. 2001,1. I-511–I-518.
2Lienhart R,Maydt J. An extended set of haar-like features for rapid object detection. Proc. of IEEE International Conference on Image Processing. Rochester,NY,USA. 2002,1. I-900–I-903.
3Li SZ,Zhu L,Zhang ZQ,et al. Statistical learning of multiview face detection. Proc. of the 7th European Conference on Computer Vision. London,UK. 2002. 67–81.
4Jones M,Viola P. Fast multi-view face detection. Mitsubishi Electric Research Lab. TR-20003-96. 2003,3. 14.
5Froba B,Ernst A. Face detection with the modified census transform. Proc. of the Sixth IEEE International Conference on Automatic Face and Gesture Recognition. Seoul,South Korea. 2004. 91–96.
6Jin HL,Liu QS,Lu HQ,et al. Face detection using improved LBP under Bayesian framework. Proc. of the Third International Conference on Image and Graphics (ICIG’04). Hong Kong,China. 2004. 306–309.
7Shao H,Chen S,Zhao JY,et al. Face recognition based on subset selection via metric learning on manifold. Frontiers of Information Technology & Electronic Engineering,2015,16(12): 1046–1058.
8Wu B,Ai HZ,Huang C,et al. Fast rotation invariant multiview face detection based on real adaboost. Proc. of the Sixth IEEE International Conference on Automatic Face and Gesture Recognition. Seoul,Korea. 2004. 79–84.
9Li SZ,Zhang ZQ. Floatboost learning and statistical face detection. IEEE Trans. on Pattern Analysis and Machine Intelligence,2004,26(9): 1112–1123. [doi: 10.1109/TPAMI.2004.68]
10Huang C,Ai HZ,Li YZ,et al. High-performance rotation invariant multiview face detection. IEEE Trans. on Pattern Analysis and Machine Intelligence,2007,29(4): 671–686.[doi: 10.1109/TPAMI.2007.1011]
11Li QF,Zhou XF,Gu AH,et al. Nuclear norm regularized convolutional Max Pos@Top machine. Neural Computing and Applications,2016: 1–10.
12Farfade SS,Saberian MJ,Li LJ. Multi-view face detection using deep convolutional neural networks. Proc. of the 5th ACM on International Conference on Multimedia Retrieval.Shanghai,China. 2015. 643–650.
13Yang S,Luo P,Loy CC,et al. From facial parts responses to face detection: A deep learning approach. Proc. of the IEEE International Conference on Computer Vision. Santiago,Chile. 2015. 3676–3684.
14Li HX,Lin Z,Shen XH,et al. A convolutional neural network cascade for face detection. Proc. of the IEEE Conference on Computer Vision and Pattern Recognition. Boston,MA,USA. 2015. 5325–5334.
15Girshick R,Donahue J,Darrell T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation. Proc. of the IEEE Conference on Computer Vision and Pattern Recognition. Columbus,OH,USA. 2014.580–587.
16Ren SQ,He KM,Girshick R,et al. Faster R-CNN: Towards real-time object detection with region proposal networks.Advances in Neural Information Processing Systems.Montréal,Canada. 2015. 91–99.
17Zeiler MD,Fergus R. Visualizing and understanding convolutional networks. Proc. of the 13th European Conference on Computer Vision. Cham,Germany. 2014.818–833.
18Simonyan K,Zisserman A. Very deep convolutional networks for large-scale image recognition. arXiv: 1409.1556,2014.
19Yang S,Luo P,Loy CC,et al. Wider face: A face detection benchmark. Proc. of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas,NV,USA. 2016.5525–5533.
20Jain V,Learned-Miller EG. FDDB: A benchmark for face detection in unconstrained settings. UMass Amherst Technical Report. Amherst: University of Massachusetts,2010.
21Uijlings JRR,van de Sande KEA,Gevers T,et al. Selective search for object recognition. International Journal of Computer Vision,2013,104(2): 154–171. [doi: 10.1007/s11263-013-0620-5]
22Zitnick CL,Dollar P. Edge boxes: Locating object proposals from edges. Proc. of the 13th European Conference on Computer Vision. Cham,Germany. 2014. 391–405.
23He KM,Zhang XY,Ren SQ,et al. Spatial pyramid pooling in deep convolutional networks for visual recognition. Proc.of the 13th European Conference on Computer Vision.Cham,Germany. 2014. 346–361.
24Girshick R. Fast R-CNN. Proc. of the IEEE International Conference on Computer Vision. Santiago,Chile. 2015.1440–1448.
Face Detection Using the Faster R-CNN Method
DONG Lan-Fang,ZHANG Jun-Ting
(College of Computer Science and Technology,University of Science and Technology of China,Hefei 230027,China)
Recently,the faster R-CNN has demonstrated impressive performance on various object detection benchmarks,and it has attracted extensive research interests. We train a faster R-CNN model on the WIDER face dataset with the ZF and VGG16 convolutional neural network respectively,and then we test the trained model on the FDDB face benchmark.Experimental results demonstrate that the method is robust to complex illumination,partial occlusions and facial pose variations. It achieves excellent performance in detecting unconstrained faces. The two kinds of network have their own advantages in detection accuracy and efficiency,so we can choose to use an appropriate network model according to the actual application requirements.
face detection; candidate region; convolutional neural network; unconstrained condition
董蘭芳,張軍挺.基于 Faster R-CNN 的人臉檢測方法.計算機系統(tǒng)應用,2017,26(12):262–267. http://www.c-s-a.org.cn/1003-3254/6102.html
2017-03-15; 修改時間: 2017-04-05; 采用時間: 2017-04-07