林凱瀚,趙慧民,呂巨建,詹 瑾,劉曉勇,陳榮軍
(廣東技術(shù)師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,廣州 510665)
人臉檢測(cè)是計(jì)算機(jī)視覺(jué)和信息安全領(lǐng)域的一個(gè)重要研究方向,也是目標(biāo)檢測(cè)技術(shù)的關(guān)鍵分支,具有重要的研究意義及應(yīng)用價(jià)值。人臉檢測(cè)一般包括人臉的識(shí)別和定位兩個(gè)過(guò)程,通過(guò)利用圖像處理以及機(jī)器學(xué)習(xí)等技術(shù)從圖像或視頻中檢測(cè)定位出人臉,從而獲取人臉信息。近年來(lái),人臉檢測(cè)在模式識(shí)別領(lǐng)域得到了廣泛的研究與發(fā)展,現(xiàn)有的人臉檢測(cè)研究主要包括基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。
在傳統(tǒng)機(jī)器學(xué)習(xí)方法中,主要是通過(guò)手工特征結(jié)合分類(lèi)器實(shí)現(xiàn)檢測(cè)過(guò)程。Viola-Jones[1]算法是最早實(shí)時(shí)有效人臉檢測(cè)的算法,標(biāo)志著人臉檢測(cè)開(kāi)始進(jìn)入實(shí)用階段。但是,該方法存在特征維度較大、對(duì)復(fù)雜的背景情況識(shí)別率較低等問(wèn)題。為解決以上問(wèn)題,研究人員提出了更為復(fù)雜的手工設(shè)計(jì)特征,如HOG[2]、SIFT[3]、SURF[4]、LBP[5]等。其中一個(gè)重要的進(jìn)展是文獻(xiàn)[6]提出的DPM (Deformable Part Model)[6],DPM在HOG和SVM的基礎(chǔ)上進(jìn)行性能擴(kuò)展,充分利用兩者的優(yōu)勢(shì),在人臉識(shí)別、行人檢測(cè)等任務(wù)上取得重要突破。然而傳統(tǒng)的機(jī)器學(xué)習(xí)方法仍然存在兩個(gè)主要缺陷,即基于滑動(dòng)窗口的區(qū)域選擇策略針對(duì)性較弱,設(shè)計(jì)較為復(fù)雜,手工設(shè)計(jì)特征對(duì)復(fù)雜情景檢測(cè)穩(wěn)定性較差。
自從AlexNet[7]在ImageNet中使用深度卷積神經(jīng)網(wǎng)絡(luò),并且在圖像分類(lèi)的準(zhǔn)確率上有了大幅提高以來(lái),人們嘗試將深度學(xué)習(xí)應(yīng)用于人臉檢測(cè)領(lǐng)域,取得了很好的應(yīng)用效果。文獻(xiàn)[8]利用深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,對(duì)沒(méi)有被Adaboost過(guò)濾過(guò)的人臉和非人臉的圖像提取出更有價(jià)值的特征,取得了較好的實(shí)現(xiàn)效果。文獻(xiàn)[9]提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)提取的歸一化特征的形變部件模型。近年來(lái),隨著基于候選區(qū)域(region-based)的R-CNN系列目標(biāo)檢測(cè)算法的快速發(fā)展,R-CNN系列算法在人臉檢測(cè)領(lǐng)域的應(yīng)用研究逐漸興起。文獻(xiàn)[10]在WIDER數(shù)據(jù)集訓(xùn)練了Faster R-CNN模型,在FDDB和IJB-A數(shù)據(jù)集實(shí)現(xiàn)了人臉檢測(cè)。文獻(xiàn)[11]針對(duì)小尺度人臉檢測(cè)精度不高的問(wèn)題,在Faster R-CNN的基礎(chǔ)上提出了DSFD算法。文獻(xiàn)[12]通過(guò)特征拼接、困難樣本挖掘、多尺度訓(xùn)練等策略改進(jìn)了Faster R-CNN模型,提高了模型性能,取得較好的檢測(cè)效果。基于深度學(xué)習(xí)的人臉檢測(cè)方法主要采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,在準(zhǔn)確性和多目標(biāo)檢測(cè)方面具有良好的實(shí)現(xiàn)效果,并能夠以較少的時(shí)間花費(fèi)換取大幅的準(zhǔn)確率提升,因此,基于深度學(xué)習(xí)的人臉檢測(cè)算法已成為人臉檢測(cè)的主流研究方向。
上述的研究工作都取得較好的人臉檢測(cè)效果,但是缺乏對(duì)人臉圖像分割的關(guān)注。如需在人臉圖像上獲取更精準(zhǔn)的人臉信息,則現(xiàn)有的方法存在提取的人臉目標(biāo)特征維度大、空間量化較為粗糙、具有背景噪聲等問(wèn)題,導(dǎo)致一些實(shí)用的圖像處理技術(shù)(如多姿態(tài)人臉矯正[13]、人臉圖像的超分辨率重構(gòu)[14]、遮擋人臉姿態(tài)識(shí)別[15]等)在安防監(jiān)控所抓拍的視頻圖像上難以應(yīng)用。因此,需要一種適用于圖像的人臉檢測(cè)及分割方法。在檢測(cè)分割方面,Mask R-CNN是文獻(xiàn)[16]基于Faster R-CNN提出的一種改進(jìn)算法,它增加了對(duì)實(shí)例分割的關(guān)注。除了分類(lèi)和邊界框回歸之外,Mask R-CNN還為每個(gè)RoI添加并行分支以進(jìn)行實(shí)例分割,并對(duì)上述3種損失進(jìn)行聯(lián)合訓(xùn)練,在目標(biāo)檢測(cè)數(shù)據(jù)集中取得了良好的效果。
在以上研究工作的基礎(chǔ)上,本文提出了一種基于Mask R-CNN的人臉檢測(cè)及分割方法,該方法在現(xiàn)有人臉檢測(cè)僅實(shí)現(xiàn)人臉定位的基礎(chǔ)上增加了分割分支,能夠在人臉檢測(cè)的同時(shí)實(shí)現(xiàn)像素級(jí)的人臉信息分割。同時(shí),為了訓(xùn)練相應(yīng)模型,本文從FDDB[17]和ChokePoint[18]數(shù)據(jù)集中隨機(jī)選擇了5 115張圖像進(jìn)行標(biāo)注,構(gòu)建了一個(gè)具有分割標(biāo)注的新數(shù)據(jù)集。
基于候選區(qū)域的CNN檢測(cè)方法是目標(biāo)檢測(cè)領(lǐng)域的主流研究方向,例如R-CNN[20]、Fast R-CNN[21]、Faster R-CNN[22]以及Mask R-CNN[16]等,這些方法不僅檢測(cè)精度高,且具有較快的檢測(cè)速度。
R-CNN算法由Ross Girshick等人于2014年提出,該算法在VOC 2007數(shù)據(jù)集中取得了66%(mAP)的成績(jī),掀起了基于候選區(qū)域(region-based)CNN的研究熱潮。首先由于R-CNN特征提取環(huán)節(jié)存在重復(fù)計(jì)算的問(wèn)題,導(dǎo)致檢測(cè)速度偏慢,因此Fast R-CNN基于R-CNN,在卷積層對(duì)待檢測(cè)圖像整圖進(jìn)行一次特征提取;其次引入RoI Pooling層進(jìn)行特征尺度的統(tǒng)一化,生成固定長(zhǎng)度的特征向量;然后用softmax(歸一化指數(shù)函數(shù))代替了SVM,并將分類(lèi)和邊框回歸進(jìn)行了合并,在提升準(zhǔn)確率的同時(shí),提高了檢測(cè)速度。Faster R-CNN是在Fast R-CNN基礎(chǔ)上提出的改進(jìn)算法,該算法引入了區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)模型,通過(guò)在特征圖上劃窗,使用不同尺寸、不同長(zhǎng)寬比的9種錨點(diǎn)框映射到原圖上,得到候選區(qū)域。該算法將候選框提取合并到深度網(wǎng)絡(luò)中,大幅提升了檢測(cè)的速度與精度。
為了能夠在目標(biāo)檢測(cè)的同時(shí),實(shí)現(xiàn)像素級(jí)的實(shí)例分割,滿(mǎn)足計(jì)算機(jī)視覺(jué)任務(wù)中更為精準(zhǔn)的檢測(cè)定位需求,文獻(xiàn)[16]提出了Mask R-CNN算法。該算法在Faster R-CNN的基礎(chǔ)上,添加實(shí)例分割分支,通過(guò)RoIAlign獲得更精準(zhǔn)的像素信息,利用全卷積網(wǎng)絡(luò)生成相應(yīng)的二值掩碼,實(shí)現(xiàn)了目標(biāo)檢測(cè)及實(shí)例分割技術(shù)的結(jié)合應(yīng)用,在目標(biāo)檢測(cè)領(lǐng)域的COCO數(shù)據(jù)集和自動(dòng)駕駛領(lǐng)域的Cityscapes數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該算法均取得了較好的效果。
Mask R-CNN算法主要由兩大分支組成,即檢測(cè)分支和分割分支。檢測(cè)分支實(shí)現(xiàn)了對(duì)圖像中目標(biāo)的定位及分類(lèi),分割分支則通過(guò)全卷積網(wǎng)絡(luò)(Fully Convolutional Network,FCN)[23]生成二值掩碼實(shí)現(xiàn)實(shí)例分割,達(dá)到像素級(jí)的區(qū)分效果。
本文模型的整體框架如圖1所示,首先將待檢測(cè)圖像傳入該模型,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)對(duì)整張圖像進(jìn)行特征的提取,得到對(duì)應(yīng)的特征圖,利用區(qū)域建議網(wǎng)絡(luò)(RPN)在特征圖上迅速生成候選區(qū)域,再通過(guò)候選區(qū)域匹配(RoIAlign),得到固定尺寸的特征圖輸出,然后在分類(lèi)分支做出目標(biāo)框的定位及分類(lèi),在分割分支通過(guò)全卷積網(wǎng)絡(luò)對(duì)人臉圖像繪出相應(yīng)的二值掩碼實(shí)現(xiàn)實(shí)例分割,最后輸出系統(tǒng)預(yù)測(cè)的圖像。
圖1 本文算法模型框架
區(qū)域建議網(wǎng)絡(luò)(RPN)通過(guò)倍數(shù)和長(zhǎng)寬比例不同的窗口或錨點(diǎn)(Anchors)在特征圖上進(jìn)行滑窗從而迅速生成候選區(qū)域。RPN算法示意圖如圖2所示,圖中背景圖像表示經(jīng)卷積神經(jīng)網(wǎng)絡(luò)提取特征后的特征圖,虛線表示窗口為基準(zhǔn)窗口,假設(shè)基準(zhǔn)窗口大小為16個(gè)像素點(diǎn),其包含3個(gè)分別表示長(zhǎng)寬比例為1∶1、1∶2、2∶1的窗口,則點(diǎn)劃線及實(shí)線分別表示8像素和32像素點(diǎn)大小的窗口,同理,其各有3個(gè)長(zhǎng)寬比例為1∶1、1∶2、2∶1的窗口。RPN利用上述3種倍數(shù)和3種比例的共9種尺度窗口的方法對(duì)特征圖進(jìn)行滑窗,當(dāng)IoU≥0.5時(shí),認(rèn)為其為正例,并對(duì)其進(jìn)行回歸。
圖2 RPN算法示意圖
交并比 (Intersection over Union,IoU)計(jì)算公式如下:
(1)
其中,A、B分別為RPN網(wǎng)絡(luò)生成的候選框及訓(xùn)練集中正確的目標(biāo)框,SA∩B為A、B的相重疊處面積,SA∪B為A、B并集面積。
RoIAlign層實(shí)現(xiàn)對(duì)產(chǎn)生的候選區(qū)域(Region of Interest,RoI)進(jìn)行池化,從而將不同尺度的特征圖通過(guò)RoIAlign層池化為固定的尺度特征圖的效果,RoIAlign算法流程如圖3所示。在Faster R-CNN模型中候選區(qū)域池化(Region of Interest Pooling,RoI Pooling)存在兩次取整操作,從而產(chǎn)生了量化誤差,導(dǎo)致了圖像的像素點(diǎn)定位精準(zhǔn)度較低。
圖3 RoIAlign算法流程
在面對(duì)小目標(biāo)檢測(cè)及實(shí)例分割的任務(wù)時(shí),RoI Pooling達(dá)不到精準(zhǔn)的特征點(diǎn)定位要求。針對(duì)上述問(wèn)題,RoIAlign在生成的RoI特征圖上取消量化過(guò)程,采用雙線性插值算法,保留浮點(diǎn)型坐標(biāo),避免了量化誤差,可以使原圖像像素與特征圖像素相匹配。雙線性插值算法公式如下:
1)對(duì)x方向進(jìn)行線性插值:
(2)
(3)
2)對(duì)y方向進(jìn)行線性插值:
(4)
如圖4所示,f(x,y)為待求解點(diǎn)P的像素值,f(Q11)、f(Q12)、f(Q21)、f(Q22)分別為已知四點(diǎn)Q11=(x1,y1)、Q12=(x1,y2)、Q21=(x2,y1)及Q22=(x2,y2)的像素值,f(R1)、f(R2)為x方向插值得到的像素值。
圖4 雙線性插值算法流程
對(duì)于傳統(tǒng)的CNN網(wǎng)絡(luò)架構(gòu),為了得到固定維度的特征向量,其卷積層后大多連接若干全連接層,最后輸出為針對(duì)輸入的一個(gè)數(shù)值描述,因而普遍適用于圖像的識(shí)別分類(lèi)、目標(biāo)的檢測(cè)定位等任務(wù)。全卷積網(wǎng)絡(luò)(FCN)與傳統(tǒng)的CNN網(wǎng)絡(luò)相似,網(wǎng)絡(luò)同樣包含了卷積層和池化層,不同之處在于全卷積網(wǎng)絡(luò)對(duì)末端一個(gè)卷積層的特征圖使用了反卷積進(jìn)行上采樣,使輸出圖像尺寸恢復(fù)到原圖像尺寸,然后通過(guò)Softmax分類(lèi)器進(jìn)行逐像素預(yù)測(cè),從而預(yù)測(cè)出每個(gè)像素點(diǎn)的所屬類(lèi)別。
本文的Mask R-CNN模型完成了3個(gè)任務(wù),即人臉框的檢測(cè)定位、人臉與背景的分類(lèi)、人臉與背景的分割。因此,損失函數(shù)的定義包括了定位損失、分類(lèi)損失及分割損失三部分。因此,損失函數(shù)定義如下:
(5)
分類(lèi)損失公式如下:
(6)
(7)
定位損失公式如下:
(8)
(9)
分割損失即二值掩碼的損失,如果候選框檢測(cè)出為某一類(lèi)別,則使用該類(lèi)別的交叉熵作為誤差值進(jìn)行計(jì)算,其他類(lèi)別損失值不計(jì)入,從而避免了類(lèi)間的競(jìng)爭(zhēng),其公式為:
(10)
實(shí)驗(yàn)環(huán)境及數(shù)據(jù)集構(gòu)建主要有以下3個(gè)方面:
1)實(shí)驗(yàn)環(huán)境配置
本文實(shí)驗(yàn)所使用的環(huán)境配置如下:操作系統(tǒng)為Ubuntu 16.04;CPU為Xeon E5-2690 v4 @ 2.20 GHz;GPU為NVIDIA GeForce GTX 1080Ti;深度學(xué)習(xí)框架為T(mén)ensorflow 1.9.0;編程語(yǔ)言為Python 3.6。
2)數(shù)據(jù)集
由于公開(kāi)的人臉數(shù)據(jù)集中大多數(shù)只有目標(biāo)框的定位信息,不具備分割標(biāo)注信息,因此本文從FDDB[17]原始圖像數(shù)據(jù)集和ChokePoint[18]數(shù)據(jù)集中隨機(jī)選擇了5 115張圖片并對(duì)其進(jìn)行分割標(biāo)注作為新數(shù)據(jù)集。FDDB(Face Detection Data Set and Benchmark)數(shù)據(jù)集是馬薩諸塞大學(xué)公開(kāi)的人臉檢測(cè)數(shù)據(jù)集,該數(shù)據(jù)集由原始圖像數(shù)據(jù)集和相應(yīng)的部分標(biāo)簽數(shù)據(jù)組成,標(biāo)簽數(shù)據(jù)包含了2 845張圖像(其中包含了5 171張人臉)。ChokePoint數(shù)據(jù)集是由澳大利亞信息與通信技術(shù)研究中心(NICTA)公開(kāi)的人臉數(shù)據(jù)集,該數(shù)據(jù)集通過(guò)在不同場(chǎng)景出入口處安裝不同角度監(jiān)控?cái)z像頭,從而采集到的人臉數(shù)據(jù)集,該數(shù)據(jù)集包括48個(gè)視頻序列,共計(jì)約64 204張人臉圖像。
3)參數(shù)設(shè)置
本文采用ResNet-101網(wǎng)絡(luò)作為特征提取器,首先使用COCO預(yù)訓(xùn)練模型[24]進(jìn)行參數(shù)的泛化,使模型具有一定特征提取能力,從而減少訓(xùn)練時(shí)間。然后利用已標(biāo)注的數(shù)據(jù)集進(jìn)行模型訓(xùn)練,參考文獻(xiàn)[16]并通過(guò)實(shí)驗(yàn)調(diào)試,設(shè)置迭代次數(shù)為50,迭代步數(shù)為3 000,學(xué)習(xí)率為0.001,權(quán)值衰減率為0.000 1。
3.2.1 實(shí)驗(yàn)效果與性能分析
在訓(xùn)練出的模型上利用現(xiàn)有的公開(kāi)數(shù)據(jù)集進(jìn)行測(cè)試實(shí)驗(yàn),測(cè)試圖像檢測(cè)結(jié)果如圖5所示??梢钥闯?相較于其他人臉檢測(cè)算法,本文算法在完成人臉目標(biāo)框定位的同時(shí),通過(guò)彩色的二值掩碼將人臉信息與背景分割開(kāi)來(lái),實(shí)現(xiàn)了對(duì)人臉圖像檢測(cè)定位和分割的效果。
為有效檢測(cè)模型的性能,對(duì)比實(shí)驗(yàn)采用本文所構(gòu)建數(shù)據(jù)集作為訓(xùn)練集,再進(jìn)行模型性能的評(píng)測(cè)。實(shí)驗(yàn)在FDDB數(shù)據(jù)集上對(duì)比了本文算法與Faster R-CNN[10]、Pico[25]、Viola-Jones[26]、koestinger[27]等算法,性能曲線如圖6所示。
圖6 FDDB數(shù)據(jù)集檢測(cè)性能曲線
從圖6可以看出,本文算法誤檢個(gè)數(shù)明顯減少,且準(zhǔn)確率高于其他算法。
3.2.2 不同數(shù)據(jù)集的有效性分析
為了驗(yàn)證模型在不同數(shù)據(jù)集的有效性,本文在AFW[28]數(shù)據(jù)集上進(jìn)行了模型性能測(cè)試實(shí)驗(yàn),實(shí)驗(yàn)對(duì)比了文獻(xiàn)[29]中部分算法,實(shí)驗(yàn)結(jié)果如圖7所示。雖然受限于訓(xùn)練數(shù)據(jù)集數(shù)據(jù)規(guī)模相對(duì)較小,以及標(biāo)注規(guī)則存在差異,但本文模型仍取得了94.08%AP值(平均精度)的成績(jī),優(yōu)于大部分對(duì)比算法,對(duì)比表現(xiàn)最優(yōu)的SquaresChnFtrs-5AP值僅低了1.16,證明了本文算法的有效性。
圖7 AFW數(shù)據(jù)集檢測(cè)性能曲線
此外,為進(jìn)一步驗(yàn)證不同數(shù)據(jù)集的有效性,針對(duì)本文模型及在FDDB數(shù)據(jù)集性能表現(xiàn)較好的Faster R-CNN模型,本文分別在ChokePoin數(shù)據(jù)集、Caltech 10k Web Faces數(shù)據(jù)集[30]、WIDER[31]數(shù)據(jù)集進(jìn)行了測(cè)試,實(shí)驗(yàn)分別從以上3個(gè)數(shù)據(jù)集隨機(jī)抽取100張圖像進(jìn)行測(cè)試,通過(guò)計(jì)算其mAP(均值平均精度)值進(jìn)行比較,結(jié)果如表1所示,其中加黑字體為最優(yōu)成績(jī)。
表1 不同數(shù)據(jù)集性能對(duì)比
通過(guò)不同數(shù)據(jù)集性能對(duì)比實(shí)驗(yàn)結(jié)果可以看出,本文方法比性能表現(xiàn)較好Faster R-CNN在Caltech 10k Web Faces數(shù)據(jù)集、ChokePoint數(shù)據(jù)集、WIDER數(shù)據(jù)集分別提高了7.82%、8.96%、7.11%,驗(yàn)證了本方法在不同數(shù)據(jù)集上的有效性。
3.2.3 檢測(cè)時(shí)間分析
時(shí)間測(cè)試實(shí)驗(yàn)同樣在ChokePoint數(shù)據(jù)集、Caltech 10k Web Faces數(shù)據(jù)集、WIDER數(shù)據(jù)集進(jìn)行驗(yàn)證,從以上數(shù)據(jù)集分別隨機(jī)抽取100張圖像進(jìn)行測(cè)試,比較其平均耗時(shí),結(jié)果如表2所示,其中加黑字體為最少用時(shí)。
表2 不同數(shù)據(jù)集檢測(cè)時(shí)間對(duì)比
與Faster R-CNN算法對(duì)比,由于本文算法的RoIAlign層計(jì)算復(fù)雜度較高以及模型添加了分割分支,因此在Caltech 10k Web Faces數(shù)據(jù)集、ChokePoint數(shù)據(jù)集、WIDER數(shù)據(jù)集實(shí)驗(yàn)中,檢測(cè)時(shí)間分別多了0.027 s、0.046 s和0.012 s。但本文算法能夠以較少的時(shí)間花費(fèi)換取更高的準(zhǔn)確率,并能實(shí)現(xiàn)在人臉準(zhǔn)確定位的同時(shí)將人臉信息從背景中分割出來(lái),達(dá)到滿(mǎn)意的檢測(cè)與分割效果。
本文提出一種基于Mask R-CNN的人臉檢測(cè)及分割方法,構(gòu)建一個(gè)具有分割標(biāo)注信息的人臉數(shù)據(jù)集,并在建立的數(shù)據(jù)集上訓(xùn)練模型。該模型利用RoIAlign算法使得人臉圖像特征點(diǎn)定位精準(zhǔn)度達(dá)到像素級(jí)的效果,結(jié)合ResNet-101網(wǎng)絡(luò)與RPN網(wǎng)絡(luò),提高了檢測(cè)精度,并通過(guò)全卷積網(wǎng)絡(luò)生成相應(yīng)的人臉二值掩碼,實(shí)現(xiàn)了人臉信息與背景圖像的分割。在公開(kāi)數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)結(jié)果表明,本文方法能夠在不顯著增加計(jì)算和模型復(fù)雜度的情況下,取得較好的檢測(cè)效果。下一步將對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,并在現(xiàn)有研究的基礎(chǔ)上對(duì)模型進(jìn)行優(yōu)化,進(jìn)一步提高模型檢測(cè)性能。