顧梅花,馮 婧,楊 娜
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048)
人臉檢測(cè)的目的是框定輸入圖像中所有人臉的具體位置,是人臉驗(yàn)證、人臉識(shí)別、表情識(shí)別、人機(jī)交互和人臉追蹤等重要任務(wù)的前置環(huán)節(jié)[1-3]。然而,在課堂場(chǎng)景下,人臉檢測(cè)仍面臨諸多考驗(yàn),如人臉遮擋、光照變化、圖像分辨率低和人臉姿態(tài)多樣性等問(wèn)題[4-6]。因此,在課堂場(chǎng)景下如何增強(qiáng)人臉檢測(cè)算法的魯棒性和提升人臉檢測(cè)算法的精度已成為當(dāng)下研究熱點(diǎn)。
早期的人臉檢測(cè)算法主要以特征變換為主,例如:基于Harr-like的AdaBoost算法[7]、基于HOG特征的DPM算法[8],基于膚色模型的算法[9-11],基于范例的VPE算法[12]。近幾年來(lái),以卷積神經(jīng)網(wǎng)絡(luò)為主的人臉檢測(cè)算法井噴而出,主要有CCF算法[13]、CascadeCNN算法[14]、MTCNN算法[15]、TinyFace算法[16]、SSH算法[17]、FaceBoxes算法[18]、PyramidBox算法[19]和SRN算法[20]等。
以上算法均能實(shí)現(xiàn)人臉檢測(cè),早期的人臉檢測(cè)算法精度偏低,MTCNN算法因其兼顧人臉檢測(cè)與人臉對(duì)齊任務(wù)、網(wǎng)絡(luò)結(jié)構(gòu)輕量精簡(jiǎn)、檢測(cè)速度快且召回率高而得到廣泛應(yīng)用[21-25]。但另一方面,MTCNN算法對(duì)小人臉檢測(cè)率較低,在課堂場(chǎng)景下,對(duì)教室后排的小人臉檢測(cè)魯棒性不高。針對(duì)MTCNN人臉檢測(cè)算法在課堂場(chǎng)景下教室后排的小人臉檢測(cè)率較低的問(wèn)題,本文提出一種融合上下文信息特征的改進(jìn)MTCNN算法。
MTCNN算法的卷積網(wǎng)絡(luò)由3層網(wǎng)絡(luò)構(gòu)成,分別是P-Net、R-Net和O-Net層網(wǎng)絡(luò)。其中,P-Net層網(wǎng)絡(luò)主要生成大量人臉候選框;R-Net層網(wǎng)絡(luò)的核心任務(wù)是對(duì)大量人臉候選框進(jìn)行位置回歸與優(yōu)化篩選;O-Net層網(wǎng)絡(luò)主要用來(lái)進(jìn)一步優(yōu)化人臉候選框位置以及生成人臉關(guān)鍵點(diǎn)位置。訓(xùn)練時(shí),3層網(wǎng)絡(luò)分別進(jìn)行訓(xùn)練,互不干擾,當(dāng)各層網(wǎng)絡(luò)分別完成訓(xùn)練后,獲得3個(gè)人臉檢測(cè)器,將其輸入至測(cè)試網(wǎng)絡(luò)中,級(jí)聯(lián)3個(gè)檢測(cè)器實(shí)現(xiàn)對(duì)人臉框由粗到細(xì)的層層過(guò)濾。測(cè)試時(shí),首先通過(guò)P-Net層網(wǎng)絡(luò)生成大量人臉候選框,然后通過(guò)R-Net層網(wǎng)絡(luò)對(duì)人臉候選框進(jìn)行位置回歸與優(yōu)化篩選,最后由O-Net層網(wǎng)絡(luò)生成最終的人臉框和人臉關(guān)鍵點(diǎn)。
改進(jìn)的MTCNN人臉檢測(cè)算法主要工作包括:①對(duì)R-Net層網(wǎng)絡(luò)集成上下文信息卷積模塊,通過(guò)擴(kuò)大特征圖的感受野來(lái)獲取更多小人臉信息,以提升R-Net層網(wǎng)絡(luò)對(duì)小人臉目標(biāo)的檢測(cè)魯棒性,并通過(guò)引入反卷積層和最大池化層來(lái)解決特征融合時(shí)的數(shù)據(jù)維度不一致問(wèn)題;②對(duì)O-Net層網(wǎng)絡(luò)集成上下文信息卷積模塊,進(jìn)一步提升對(duì)小人臉的檢測(cè)性能,同時(shí)添加2個(gè)卷積池化層使特征融合時(shí)輸入特征維度一致。該算法的原理如圖1所示。
圖1中,上下文信息模塊是一種特定的卷積結(jié)構(gòu),由于人臉框可利用卷積分類和回歸得出,因此可采用擴(kuò)大卷積核的方式來(lái)增加與相應(yīng)卷積層步幅成比例的感受野,使網(wǎng)絡(luò)捕捉到更多有效的小人臉特征信息。然后,將上下文信息模塊提取的特征與原始網(wǎng)絡(luò)所提取的特征進(jìn)行融合,提升小人臉檢測(cè)魯棒性。
上下文信息卷積模塊最初采用5×5卷積核與7×7卷積核并聯(lián)構(gòu)成,為了減少參數(shù)數(shù)量,使用2個(gè)3×3卷積核來(lái)替代1個(gè)5×5卷積核,使用3個(gè)3×3卷積核來(lái)替代1個(gè)7×7卷積核,具體如圖2所示。
圖 2 上下文信息卷積模塊結(jié)構(gòu)
為提升R-Net層網(wǎng)絡(luò)對(duì)小人臉候選框的篩選、回歸質(zhì)量,采用集成上下文信息模塊的方式對(duì)原始R-Net層網(wǎng)絡(luò)進(jìn)行改進(jìn),通過(guò)增加更多的上下文信息,擴(kuò)大特征圖的感受野,提升對(duì)小人臉的檢測(cè)效果[16-17],改進(jìn)后的R-Net層網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖 3 改進(jìn)R-Net層網(wǎng)絡(luò)結(jié)構(gòu)
圖3中,針對(duì)在R-Net層網(wǎng)絡(luò)集成上下文信息卷積模塊時(shí)產(chǎn)生的數(shù)據(jù)維度不一致問(wèn)題,采用增加反卷積層和最大池化層的方式予以解決。其中,計(jì)算反卷積的步驟分為3步。
第1步,對(duì)輸入原始圖像進(jìn)行相鄰像素之間填充0像素變換,可表示為
is=i+(s-1)(i-1)
(1)
式中:i為輸入圖像尺寸;s為卷積核移動(dòng)的步幅;is為相鄰像素之間填充0像素變換的輸出結(jié)果。
第2步,對(duì)式(1)的輸出結(jié)果進(jìn)行卷積計(jì)算,得:
(2)
第3步,利用式(3)求解反卷積輸出尺寸。
(3)
由于在原始R-Net層網(wǎng)絡(luò)中集成上下文信息卷積模塊會(huì)導(dǎo)致輸出的數(shù)據(jù)維度(18×18)大于原始卷積網(wǎng)絡(luò)輸出的數(shù)據(jù)維度(4×4),導(dǎo)致特征無(wú)法融合。因此,在原始卷積分支上增加反卷積核為4×4,移動(dòng)步幅為2的反卷積層,同時(shí),在上下文信息卷積模塊分支上增加一個(gè)池化核為3×3,步幅為2的最大池化層,使輸出數(shù)據(jù)維度統(tǒng)一為8×8,從而解決了特征融合時(shí)數(shù)據(jù)維度不一致問(wèn)題。
為進(jìn)一步提升O-Net層網(wǎng)絡(luò)對(duì)小人臉候選框的回歸、篩選能力,采用集成上下文信息卷積模塊的方式對(duì)O-Net層網(wǎng)絡(luò)進(jìn)行改進(jìn),通過(guò)擴(kuò)大O-Net層網(wǎng)絡(luò)特征圖的感受野,增加O-Net層網(wǎng)絡(luò)提取的小人臉特征信息,并與原始網(wǎng)絡(luò)分支進(jìn)行特征融合,提升O-Net層網(wǎng)絡(luò)對(duì)小人臉的檢測(cè)能力,改進(jìn)后的O-Net網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖 4 改進(jìn)O-Net層網(wǎng)絡(luò)結(jié)構(gòu)
圖4中,為了解決特征融合數(shù)據(jù)維度不一致問(wèn)題,引入卷積層和最大池化層。由于經(jīng)過(guò)上下文信息卷積模塊處理后,數(shù)據(jù)維度為42×42,而原始網(wǎng)絡(luò)分支數(shù)據(jù)維度為8×8,導(dǎo)致特征無(wú)法融合。因此,采用3×3卷積層、3×3最大池化層、3×3卷積層和3×3最大池化層級(jí)聯(lián)的方式,將上下文信息卷積模塊分支網(wǎng)絡(luò)輸出的數(shù)據(jù)維度降低至8×8,從而解決了O-Net層網(wǎng)絡(luò)特征融合時(shí)的數(shù)據(jù)維度不一致問(wèn)題。
為評(píng)估改進(jìn)MTCNN人臉檢測(cè)算法的性能,在FDDB人臉檢測(cè)基準(zhǔn)數(shù)據(jù)集上,將改進(jìn)MTCNN算法與基于范例的VPE算法[12]、基于卷積神經(jīng)網(wǎng)絡(luò)的CCF算法[13]和CascadeCNN算法[14]以及原始MTCNN[15]算法進(jìn)行定量實(shí)驗(yàn)評(píng)估。其中,F(xiàn)DDB數(shù)據(jù)集共有2 845張自然場(chǎng)景下的測(cè)試圖像,包含5 171張人臉,檢測(cè)難點(diǎn)在于存在小人臉、人臉遮擋、光照和表情變化。
采用FDDB數(shù)據(jù)集上的ROC曲線進(jìn)行評(píng)估,該曲線下的面積越大,表示算法性能越好。繪制ROC曲線時(shí),首先根據(jù)具體算法的預(yù)測(cè)結(jié)果對(duì)所有樣本進(jìn)行排序,然后按此順序逐個(gè)作為人臉樣本進(jìn)行預(yù)測(cè),根據(jù)式(4)和式(5)計(jì)算假正例率RFP和真正例率RTP,分別作為ROC曲線的橫、縱坐標(biāo)。
(4)
(5)
式中:TP為檢測(cè)正確的人臉數(shù)目;FN為漏檢的人臉數(shù)目;FP為將背景誤檢為人臉的數(shù)目;TN為正確檢測(cè)背景,值為0。
FDDB數(shù)據(jù)集上5種算法的離散ROC曲線對(duì)比如圖5所示。繪制離散曲線時(shí),要求預(yù)測(cè)人臉框的IOU(intersection over union)值(表示預(yù)測(cè)人臉框與真實(shí)人臉框的重疊程度)大于0.5。
圖 5 FDDB數(shù)據(jù)集上5種算法ROC曲線對(duì)比
從圖5可以看出,當(dāng)誤檢人臉框數(shù)目為2 500時(shí),5種算法的檢測(cè)精度趨于平穩(wěn)。此時(shí),改進(jìn)MTCNN、MTCNN[15]、CascadeCNN[14]、CCF[13]和VPE[12]的檢測(cè)精度分別為91.8%、85.6%、87.2%、85.9%和88.8%,可見(jiàn),融合上下文信息特征能夠有效提升MTCNN算法的檢測(cè)精度。
為評(píng)估改進(jìn)MTCNN算法在課堂場(chǎng)景下實(shí)際檢測(cè)效果,制作相應(yīng)人臉檢測(cè)數(shù)據(jù)集,使用公開(kāi)網(wǎng)絡(luò)上大學(xué)生上課的6段視頻,采用Python語(yǔ)言及OpenCV庫(kù)將其逐幀解析成圖像,共獲得112張圖像(共6 731張人臉),平均每張圖像中可檢測(cè)人臉數(shù)目為50,每張圖像中的教室后排理論上可被檢測(cè)的小人臉數(shù)目至少為5。
改進(jìn)MTCNN算法與其他比較算法在復(fù)雜課堂場(chǎng)景下的檢測(cè)效果如圖6所示。
(a) 文獻(xiàn)[12]
圖6中共60人,其中15人被嚴(yán)重遮擋,不在檢測(cè)范圍內(nèi),理論上可檢測(cè)人數(shù)為43人,其檢測(cè)難點(diǎn)在于:①拍攝視角非正向?qū)е陆^大部分人臉為側(cè)面;②光照不均,由于教室窗簾位置不同,大部分人臉曝光度低,小部分小人臉曝光度高;③學(xué)生密集,學(xué)生人數(shù)多且位置集中導(dǎo)致后排小人臉檢測(cè)難度加大。圖6(a)、(b)、(c)、(d)、(e)分別檢測(cè)出25人、31人、33人、37人和43人,可以看出,5種算法均能正常檢測(cè)位置靠前的人臉,漏檢現(xiàn)象主要發(fā)生在后排小人臉區(qū)域。主要原因是后排小人臉?lè)直媛瘦^低,且存在遮擋、偏轉(zhuǎn)和低頭等問(wèn)題。具體來(lái)說(shuō),CascadeCNN算法[14]基本無(wú)法檢測(cè)出后排曝光度高、遮擋和偏轉(zhuǎn)程度高的小人臉;CCF算法[13]、VPE算法[12]和MTCNN算法[15]檢測(cè)效果相對(duì)較好,能夠檢測(cè)出部分存在一定程度遮擋和偏轉(zhuǎn)的小人臉,但仍有6人因遮擋和偏轉(zhuǎn)程度高被漏檢;而改進(jìn)MTCNN算法對(duì)上述曝光度高、遮擋和偏轉(zhuǎn)程度高的小人臉檢測(cè)率最高,對(duì)后排小人臉檢測(cè)的魯棒性明顯強(qiáng)于其他比較算法。
為進(jìn)一步定性說(shuō)明改進(jìn)MTCNN算法的魯棒性和泛化能力,利用5種課堂場(chǎng)景圖像(見(jiàn)該文首頁(yè)OSID碼的“本文開(kāi)放的科學(xué)數(shù)據(jù)與內(nèi)容”)進(jìn)行相關(guān)實(shí)驗(yàn),得到學(xué)生密集場(chǎng)景、正向視角場(chǎng)景、非正向視角場(chǎng)景、光照適度場(chǎng)景及復(fù)雜課堂場(chǎng)景下人臉檢測(cè)結(jié)果,如表1所示。
表 1 不同課堂場(chǎng)景下人臉檢測(cè)結(jié)果比較
從表1可以看出,針對(duì)不同的拍攝視角、光照條件以及學(xué)生人數(shù),改進(jìn)MTCNN算法正確檢測(cè)的人數(shù)明顯多于其他比較算法,表明改進(jìn)MTCNN算法在不同的課堂場(chǎng)景下泛化能力更強(qiáng),魯棒性更好。
采用人臉檢測(cè)召回率、準(zhǔn)確率和F1分?jǐn)?shù)對(duì)改進(jìn)MTCNN算法在課堂場(chǎng)景數(shù)據(jù)集上進(jìn)行定量評(píng)估。根據(jù)式(5)計(jì)算人臉檢測(cè)召回率RTP,F(xiàn)1分?jǐn)?shù)是基于準(zhǔn)確率P和召回率RTP的調(diào)和平均值,可表征算法的綜合性能,根據(jù)式(6)和式(7)進(jìn)行計(jì)算。
(6)
P=Tp/(Tp+Fp)×100%
(7)
課堂場(chǎng)景數(shù)據(jù)集上算法的召回率、準(zhǔn)確率和F1分?jǐn)?shù)對(duì)比如表2所示。
表 2 課堂場(chǎng)景數(shù)據(jù)集上算法性能比較
從表2可以看出,改進(jìn)MTCNN算法準(zhǔn)確率為97.05%,略低于其他比較算法,其召回率和F1分?jǐn)?shù)分別為77.82%,86.38%,明顯高于其他比較算法。結(jié)果表明:在課堂場(chǎng)景下,改進(jìn)MTCNN算法的檢測(cè)性能最好。
該文提出了一種融合上下文信息特征的改進(jìn)MTCNN人臉檢測(cè)算法,采用集成上下文信息卷積模塊的方法,分別對(duì)MTCNN原始網(wǎng)絡(luò)模型中的R-Net層網(wǎng)絡(luò)和O-Net層網(wǎng)絡(luò)進(jìn)行了改進(jìn),能夠有效提升MTCNN算法在課堂場(chǎng)景下的小人臉檢測(cè)率,有助于后續(xù)人臉識(shí)別和表情識(shí)別等任務(wù)。經(jīng)過(guò)實(shí)驗(yàn)對(duì)比,改進(jìn)MTCNN算法在FDDB數(shù)據(jù)集上的檢測(cè)精度更高,在課堂場(chǎng)景下,也具有明顯的優(yōu)勢(shì)。在未來(lái)的研究中,將致力于提升改進(jìn)MTCNN算法的檢測(cè)速度,從而增加算法的可移植性。