顧梅花,馮 婧,楊 娜
(西安工程大學 電子信息學院,陜西 西安 710048)
人臉檢測的目的是框定輸入圖像中所有人臉的具體位置,是人臉驗證、人臉識別、表情識別、人機交互和人臉追蹤等重要任務的前置環節[1-3]。然而,在課堂場景下,人臉檢測仍面臨諸多考驗,如人臉遮擋、光照變化、圖像分辨率低和人臉姿態多樣性等問題[4-6]。因此,在課堂場景下如何增強人臉檢測算法的魯棒性和提升人臉檢測算法的精度已成為當下研究熱點。
早期的人臉檢測算法主要以特征變換為主,例如:基于Harr-like的AdaBoost算法[7]、基于HOG特征的DPM算法[8],基于膚色模型的算法[9-11],基于范例的VPE算法[12]。近幾年來,以卷積神經網絡為主的人臉檢測算法井噴而出,主要有CCF算法[13]、CascadeCNN算法[14]、MTCNN算法[15]、TinyFace算法[16]、SSH算法[17]、FaceBoxes算法[18]、PyramidBox算法[19]和SRN算法[20]等。
以上算法均能實現人臉檢測,早期的人臉檢測算法精度偏低,MTCNN算法因其兼顧人臉檢測與人臉對齊任務、網絡結構輕量精簡、檢測速度快且召回率高而得到廣泛應用[21-25]。但另一方面,MTCNN算法對小人臉檢測率較低,在課堂場景下,對教室后排的小人臉檢測魯棒性不高。針對MTCNN人臉檢測算法在課堂場景下教室后排的小人臉檢測率較低的問題,本文提出一種融合上下文信息特征的改進MTCNN算法。
MTCNN算法的卷積網絡由3層網絡構成,分別是P-Net、R-Net和O-Net層網絡。其中,P-Net層網絡主要生成大量人臉候選框;R-Net層網絡的核心任務是對大量人臉候選框進行位置回歸與優化篩選;O-Net層網絡主要用來進一步優化人臉候選框位置以及生成人臉關鍵點位置。訓練時,3層網絡分別進行訓練,互不干擾,當各層網絡分別完成訓練后,獲得3個人臉檢測器,將其輸入至測試網絡中,級聯3個檢測器實現對人臉框由粗到細的層層過濾。測試時,首先通過P-Net層網絡生成大量人臉候選框,然后通過R-Net層網絡對人臉候選框進行位置回歸與優化篩選,最后由O-Net層網絡生成最終的人臉框和人臉關鍵點。
改進的MTCNN人臉檢測算法主要工作包括:①對R-Net層網絡集成上下文信息卷積模塊,通過擴大特征圖的感受野來獲取更多小人臉信息,以提升R-Net層網絡對小人臉目標的檢測魯棒性,并通過引入反卷積層和最大池化層來解決特征融合時的數據維度不一致問題;②對O-Net層網絡集成上下文信息卷積模塊,進一步提升對小人臉的檢測性能,同時添加2個卷積池化層使特征融合時輸入特征維度一致。該算法的原理如圖1所示。
圖1中,上下文信息模塊是一種特定的卷積結構,由于人臉框可利用卷積分類和回歸得出,因此可采用擴大卷積核的方式來增加與相應卷積層步幅成比例的感受野,使網絡捕捉到更多有效的小人臉特征信息。然后,將上下文信息模塊提取的特征與原始網絡所提取的特征進行融合,提升小人臉檢測魯棒性。
上下文信息卷積模塊最初采用5×5卷積核與7×7卷積核并聯構成,為了減少參數數量,使用2個3×3卷積核來替代1個5×5卷積核,使用3個3×3卷積核來替代1個7×7卷積核,具體如圖2所示。

圖 2 上下文信息卷積模塊結構
為提升R-Net層網絡對小人臉候選框的篩選、回歸質量,采用集成上下文信息模塊的方式對原始R-Net層網絡進行改進,通過增加更多的上下文信息,擴大特征圖的感受野,提升對小人臉的檢測效果[16-17],改進后的R-Net層網絡結構如圖3所示。

圖 3 改進R-Net層網絡結構
圖3中,針對在R-Net層網絡集成上下文信息卷積模塊時產生的數據維度不一致問題,采用增加反卷積層和最大池化層的方式予以解決。其中,計算反卷積的步驟分為3步。
第1步,對輸入原始圖像進行相鄰像素之間填充0像素變換,可表示為
is=i+(s-1)(i-1)
(1)
式中:i為輸入圖像尺寸;s為卷積核移動的步幅;is為相鄰像素之間填充0像素變換的輸出結果。
第2步,對式(1)的輸出結果進行卷積計算,得:

(2)

第3步,利用式(3)求解反卷積輸出尺寸。

(3)
由于在原始R-Net層網絡中集成上下文信息卷積模塊會導致輸出的數據維度(18×18)大于原始卷積網絡輸出的數據維度(4×4),導致特征無法融合。因此,在原始卷積分支上增加反卷積核為4×4,移動步幅為2的反卷積層,同時,在上下文信息卷積模塊分支上增加一個池化核為3×3,步幅為2的最大池化層,使輸出數據維度統一為8×8,從而解決了特征融合時數據維度不一致問題。
為進一步提升O-Net層網絡對小人臉候選框的回歸、篩選能力,采用集成上下文信息卷積模塊的方式對O-Net層網絡進行改進,通過擴大O-Net層網絡特征圖的感受野,增加O-Net層網絡提取的小人臉特征信息,并與原始網絡分支進行特征融合,提升O-Net層網絡對小人臉的檢測能力,改進后的O-Net網絡結構如圖4所示。

圖 4 改進O-Net層網絡結構
圖4中,為了解決特征融合數據維度不一致問題,引入卷積層和最大池化層。由于經過上下文信息卷積模塊處理后,數據維度為42×42,而原始網絡分支數據維度為8×8,導致特征無法融合。因此,采用3×3卷積層、3×3最大池化層、3×3卷積層和3×3最大池化層級聯的方式,將上下文信息卷積模塊分支網絡輸出的數據維度降低至8×8,從而解決了O-Net層網絡特征融合時的數據維度不一致問題。
為評估改進MTCNN人臉檢測算法的性能,在FDDB人臉檢測基準數據集上,將改進MTCNN算法與基于范例的VPE算法[12]、基于卷積神經網絡的CCF算法[13]和CascadeCNN算法[14]以及原始MTCNN[15]算法進行定量實驗評估。其中,FDDB數據集共有2 845張自然場景下的測試圖像,包含5 171張人臉,檢測難點在于存在小人臉、人臉遮擋、光照和表情變化。
采用FDDB數據集上的ROC曲線進行評估,該曲線下的面積越大,表示算法性能越好。繪制ROC曲線時,首先根據具體算法的預測結果對所有樣本進行排序,然后按此順序逐個作為人臉樣本進行預測,根據式(4)和式(5)計算假正例率RFP和真正例率RTP,分別作為ROC曲線的橫、縱坐標。
(4)
(5)
式中:TP為檢測正確的人臉數目;FN為漏檢的人臉數目;FP為將背景誤檢為人臉的數目;TN為正確檢測背景,值為0。
FDDB數據集上5種算法的離散ROC曲線對比如圖5所示。繪制離散曲線時,要求預測人臉框的IOU(intersection over union)值(表示預測人臉框與真實人臉框的重疊程度)大于0.5。

圖 5 FDDB數據集上5種算法ROC曲線對比
從圖5可以看出,當誤檢人臉框數目為2 500時,5種算法的檢測精度趨于平穩。此時,改進MTCNN、MTCNN[15]、CascadeCNN[14]、CCF[13]和VPE[12]的檢測精度分別為91.8%、85.6%、87.2%、85.9%和88.8%,可見,融合上下文信息特征能夠有效提升MTCNN算法的檢測精度。
為評估改進MTCNN算法在課堂場景下實際檢測效果,制作相應人臉檢測數據集,使用公開網絡上大學生上課的6段視頻,采用Python語言及OpenCV庫將其逐幀解析成圖像,共獲得112張圖像(共6 731張人臉),平均每張圖像中可檢測人臉數目為50,每張圖像中的教室后排理論上可被檢測的小人臉數目至少為5。
改進MTCNN算法與其他比較算法在復雜課堂場景下的檢測效果如圖6所示。

(a) 文獻[12]
圖6中共60人,其中15人被嚴重遮擋,不在檢測范圍內,理論上可檢測人數為43人,其檢測難點在于:①拍攝視角非正向導致絕大部分人臉為側面;②光照不均,由于教室窗簾位置不同,大部分人臉曝光度低,小部分小人臉曝光度高;③學生密集,學生人數多且位置集中導致后排小人臉檢測難度加大。圖6(a)、(b)、(c)、(d)、(e)分別檢測出25人、31人、33人、37人和43人,可以看出,5種算法均能正常檢測位置靠前的人臉,漏檢現象主要發生在后排小人臉區域。主要原因是后排小人臉分辨率較低,且存在遮擋、偏轉和低頭等問題。具體來說,CascadeCNN算法[14]基本無法檢測出后排曝光度高、遮擋和偏轉程度高的小人臉;CCF算法[13]、VPE算法[12]和MTCNN算法[15]檢測效果相對較好,能夠檢測出部分存在一定程度遮擋和偏轉的小人臉,但仍有6人因遮擋和偏轉程度高被漏檢;而改進MTCNN算法對上述曝光度高、遮擋和偏轉程度高的小人臉檢測率最高,對后排小人臉檢測的魯棒性明顯強于其他比較算法。
為進一步定性說明改進MTCNN算法的魯棒性和泛化能力,利用5種課堂場景圖像(見該文首頁OSID碼的“本文開放的科學數據與內容”)進行相關實驗,得到學生密集場景、正向視角場景、非正向視角場景、光照適度場景及復雜課堂場景下人臉檢測結果,如表1所示。

表 1 不同課堂場景下人臉檢測結果比較
從表1可以看出,針對不同的拍攝視角、光照條件以及學生人數,改進MTCNN算法正確檢測的人數明顯多于其他比較算法,表明改進MTCNN算法在不同的課堂場景下泛化能力更強,魯棒性更好。
采用人臉檢測召回率、準確率和F1分數對改進MTCNN算法在課堂場景數據集上進行定量評估。根據式(5)計算人臉檢測召回率RTP,F1分數是基于準確率P和召回率RTP的調和平均值,可表征算法的綜合性能,根據式(6)和式(7)進行計算。
(6)
P=Tp/(Tp+Fp)×100%
(7)
課堂場景數據集上算法的召回率、準確率和F1分數對比如表2所示。

表 2 課堂場景數據集上算法性能比較
從表2可以看出,改進MTCNN算法準確率為97.05%,略低于其他比較算法,其召回率和F1分數分別為77.82%,86.38%,明顯高于其他比較算法。結果表明:在課堂場景下,改進MTCNN算法的檢測性能最好。
該文提出了一種融合上下文信息特征的改進MTCNN人臉檢測算法,采用集成上下文信息卷積模塊的方法,分別對MTCNN原始網絡模型中的R-Net層網絡和O-Net層網絡進行了改進,能夠有效提升MTCNN算法在課堂場景下的小人臉檢測率,有助于后續人臉識別和表情識別等任務。經過實驗對比,改進MTCNN算法在FDDB數據集上的檢測精度更高,在課堂場景下,也具有明顯的優勢。在未來的研究中,將致力于提升改進MTCNN算法的檢測速度,從而增加算法的可移植性。