陶 也
(西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710129)
近幾年來(lái),隨著卷積神經(jīng)網(wǎng)絡(luò)的迅速發(fā)展,通用目標(biāo)檢測(cè)任務(wù)之一人臉檢測(cè),取得了重大的進(jìn)步,其在實(shí)施監(jiān)控、目標(biāo)跟蹤、安全驗(yàn)證等諸多場(chǎng)景中被廣泛應(yīng)用[1-4]。人臉檢測(cè)可通過(guò)物體檢測(cè)算法對(duì)畫面中存在的人臉位置進(jìn)行檢測(cè)。以往人臉檢測(cè)主要在R-CNN[5]、Fast R-CNN[6]、Faster R-CNN[7]、YOLO[8-11]和 SSD[12]等目標(biāo)檢測(cè)算法的基礎(chǔ)上稍作改進(jìn)便可應(yīng)用在人臉檢測(cè)中,也有一些針對(duì)人臉檢測(cè)的算法被陸續(xù)提出。但在低光照條件下,攝像頭能見(jiàn)度低和信號(hào)細(xì)節(jié)損失嚴(yán)重對(duì)視覺(jué)增強(qiáng)和后續(xù)感知任務(wù)造成阻礙[13]。因此,在低光照條件下對(duì)人臉實(shí)現(xiàn)準(zhǔn)確定位具有重要的實(shí)踐意義。
人臉檢測(cè)研究可以追溯到60年代。經(jīng)過(guò)幾十年的曲折發(fā)展,它已變得越來(lái)越成熟[14-15]。針對(duì)正臉檢測(cè)的傳統(tǒng)算法已經(jīng)逐步得到廣泛應(yīng)用,例如 ViolaJones[16]在有約束的正臉檢測(cè)場(chǎng)景中有著良好的速度與精度表現(xiàn)。但是,在自然場(chǎng)景下,傳統(tǒng)方法采用的人工特征不足以表示復(fù)雜的人臉特征,大多數(shù)傳統(tǒng)算法迅速退化。因此卷積網(wǎng)絡(luò)作為當(dāng)今流行的計(jì)算機(jī)視覺(jué)處理方式,能夠自動(dòng)選取最優(yōu)的特征提取[17],被廣泛運(yùn)用于復(fù)雜條件下的人臉檢測(cè)中。目標(biāo)檢測(cè)算法目前主要分為兩類:一類是基于兩階段的R-CNN系列網(wǎng)絡(luò);另一類是縮減到一階段的YOLO和SSD等網(wǎng)絡(luò)。文獻(xiàn)[18]指出,這兩類算法在面對(duì)部分較為復(fù)雜情況如面部遮擋等問(wèn)題有較理想的魯棒性,但對(duì)于低光照等條件表現(xiàn)仍舊不佳[13]。在 2019年北京大學(xué)發(fā)布的低光照?qǐng)D像和對(duì)應(yīng)人臉標(biāo)簽的 DARK FACE數(shù)據(jù)集上的檢測(cè)結(jié)果普遍較差[19]。
因此,為提高對(duì)低光照條件下對(duì)人臉的檢測(cè)性能,本文嘗試在目前目標(biāo)檢測(cè)效果優(yōu)秀的Cascade R-CNN網(wǎng)絡(luò)[20]的基礎(chǔ)上進(jìn)行改進(jìn),并基于改進(jìn)算法對(duì)低光照下的人臉檢測(cè)進(jìn)行研究。首先,將Cascade R-CNN的錨框尺寸根據(jù)對(duì)數(shù)據(jù)中人臉標(biāo)注框的尺寸聚類結(jié)果進(jìn)行調(diào)整;其次,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行修改,增加反卷積層以提升網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)效果;之后,在修改后的 Cascade R-CNN網(wǎng)絡(luò)的基礎(chǔ)上嘗試各種訓(xùn)練技巧的組合,幫助提升低光照人臉檢測(cè)性能。最后,通過(guò)實(shí)驗(yàn)驗(yàn)證改進(jìn)后的Cascade R-CNN算法的檢測(cè)效果。
本文剩余部分的組織結(jié)構(gòu)如下安排。首先,第1節(jié)回顧了現(xiàn)有算法在低光照條件下的嘗試。第2節(jié)給出了一些預(yù)備知識(shí)。在第3節(jié)中,介紹了本文改進(jìn)的Cascade R-CNN模型,并在第4節(jié)中給出了相應(yīng)的分析。最后,第5節(jié)對(duì)本文工作進(jìn)行總結(jié)。
Cascade R-CNN屬于目標(biāo)檢測(cè)兩階段算法。它由Cai和Nuno等人在Faster R-CNN的基礎(chǔ)上增加三級(jí)級(jí)聯(lián)檢測(cè)器,如圖1所示,使其在圖像質(zhì)量較差的環(huán)境中,依舊保持較高的檢測(cè)精度。Faster R-CNN對(duì)圖像中的所有候選框進(jìn)行打分,需要主動(dòng)挑選IoU閾值,會(huì)造成正樣本數(shù)量不足、訓(xùn)練結(jié)果過(guò)擬合。設(shè)置較低的IoU閾值,雖然可以獲得較多的正樣本,但會(huì)在檢測(cè)時(shí)造成較多的偽檢。而在改進(jìn)后的Cascade R-CNN中,它采用級(jí)聯(lián)的方式,前一個(gè)檢測(cè)模型的輸出作為后一個(gè)檢測(cè)模型的輸入,而且越往后檢測(cè)模型的IoU閾值越大。通過(guò)設(shè)定不同大小的IoU閾值,多個(gè)專用回歸量針對(duì)不同階段重采樣進(jìn)行優(yōu)化,從而提高檢測(cè)精度[21]。
圖1 Cascade R-CNN級(jí)聯(lián)檢測(cè)器Fig.1 Cascade R-CNN cascade detector
Cascade R-CNN中,每個(gè)RPN網(wǎng)絡(luò)所使用的錨框的大小和尺寸一般都是預(yù)設(shè)的[8, 16, 32]和[1.5, 1.0, 2.0]。如文獻(xiàn)[20]中所言,原作者之所以使用這3種大小和3種尺寸是由經(jīng)驗(yàn)所得,而原算法是應(yīng)用于通用目標(biāo)檢測(cè)的,對(duì)于人臉而言,它的范圍顯然大得多。為了解決上述問(wèn)題,本文用K-Means算法對(duì)DARK FACE訓(xùn)練集中6 000張圖象的真實(shí)標(biāo)注框進(jìn)行聚類[22]以確定錨框最佳尺寸。算法的運(yùn)行結(jié)果如圖2所示。
圖2 聚類結(jié)果可視化Fig.2 visualization of clustering results
聚類中心為[13.42, 15.03],說(shuō)明圖片中的目標(biāo)人臉較小,并且本文根據(jù)聚類結(jié)果可以看出標(biāo)注框都趨近于正方形,因此本文適當(dāng)減小了錨框的大小并將比例從原來(lái)的[0.5, 1.0, 2.0]調(diào)整為[0.8,1.0, 1.2],用更加合適的錨框來(lái)對(duì)人臉進(jìn)行檢測(cè)。
近年來(lái),研究人員發(fā)現(xiàn)反卷積神經(jīng)網(wǎng)絡(luò)(Deconvolution Neural Network),又稱轉(zhuǎn)置神經(jīng)網(wǎng)絡(luò),在圖像恢復(fù)等處理中相比卷積神經(jīng)網(wǎng)絡(luò)具有很大的優(yōu)勢(shì)。與卷積神經(jīng)網(wǎng)絡(luò)不同,反卷積網(wǎng)絡(luò)的反卷積操作可以逐層實(shí)現(xiàn)數(shù)據(jù)擴(kuò)張,反卷積網(wǎng)絡(luò)可以通過(guò)少數(shù)幾層反卷積層在逐步實(shí)現(xiàn)同尺寸放大的同時(shí)實(shí)現(xiàn)圖像恢復(fù),在較少的網(wǎng)絡(luò)參數(shù)下達(dá)到更好的重構(gòu)性能。那么,受此啟發(fā),在目標(biāo)檢測(cè)中,經(jīng)過(guò)幾層卷積網(wǎng)絡(luò)后,一些小目標(biāo)的特征也受到損壞,我們此時(shí)可以借用反卷積層,將小目標(biāo)特征進(jìn)行及時(shí)放大,從而幫助其傳播到后續(xù)的網(wǎng)絡(luò)中。
本次實(shí)驗(yàn)使用的主干網(wǎng)為ResNet 50,在最后一層卷積層后和每個(gè)池化層后添加反卷積層,并將每層的反卷積結(jié)果進(jìn)行融合,主干網(wǎng)結(jié)構(gòu)如圖3所示。
圖3 添加反卷積層后的ResNet 50Fig.3 ResNet 50 after adding the deconvolution layer
多尺度訓(xùn)練作為一種提升性能的有效技巧被應(yīng)用在各種目標(biāo)檢測(cè)比賽中。在基礎(chǔ)網(wǎng)絡(luò)部分,通常會(huì)生成比原圖小數(shù)十倍的特征圖,這使得檢測(cè)網(wǎng)絡(luò)很難捕獲小物體的特征描述。通過(guò)輸入更大、更多尺寸的圖片進(jìn)行訓(xùn)練,能夠在一定程度上提高檢測(cè)模型對(duì)物體大小的魯棒性。數(shù)據(jù)增強(qiáng)是在不實(shí)質(zhì)性的增加數(shù)據(jù)的情況下,從原始數(shù)據(jù)加工出更多的表示,提高原數(shù)據(jù)的數(shù)量和質(zhì)量,以接近于更多數(shù)據(jù)量產(chǎn)生的價(jià)值。在這個(gè)過(guò)程中還可以加強(qiáng)本體特征的學(xué)習(xí),避免模型訓(xùn)練出現(xiàn)過(guò)擬合,提升模型的泛化能力。
在本文中,我們將訓(xùn)練尺度修改為原圖大小的3倍,同時(shí)對(duì)圖像數(shù)據(jù)進(jìn)行隨機(jī)裁剪、水平翻轉(zhuǎn)、隨即色相飽和度、隨機(jī)亮度飽和度和隨機(jī)模糊等變換方法。
我們首先以Cascade R-CNN + FPN為基準(zhǔn)框架,其中 Cascade R-CNN所使用的主干網(wǎng)為ResNet 50。在此基礎(chǔ)上,我們對(duì)DARK FACE數(shù)據(jù)集中的人臉進(jìn)行聚類統(tǒng)計(jì),根據(jù)聚類結(jié)果對(duì)Cascade R-CNN模型中的錨框尺寸進(jìn)行調(diào)整。接著根據(jù)前文所述方案在Cascade R-CNN網(wǎng)絡(luò)中加入反卷積層。最后在使用COCO數(shù)據(jù)集對(duì)模型進(jìn)行預(yù)訓(xùn)練的基礎(chǔ)上,使用多尺度訓(xùn)練和圖像數(shù)據(jù)增強(qiáng)兩個(gè)訓(xùn)練技巧在改進(jìn)后的Cascade R-CNN網(wǎng)絡(luò)上進(jìn)行微調(diào)。將得到的模型在DARK FACE數(shù)據(jù)集中進(jìn)行測(cè)試,評(píng)測(cè)改進(jìn)后模型的效果。
實(shí)驗(yàn)基于ResNet 50神經(jīng)網(wǎng)絡(luò)框架實(shí)現(xiàn)。實(shí)驗(yàn)平臺(tái)配置為:操作系統(tǒng)為 Windows 10;CPU為Intel Cascade 6266 @ 3.0G Hz十六核處理器;64 G內(nèi)存;GPU為NVIDIA T4 16 G顯存;深度學(xué)習(xí)框架為 MMDetection,Pytorch;編程語(yǔ)言為Python。
實(shí)驗(yàn)使用DARK FACE低光照條件下的人臉檢測(cè)數(shù)據(jù)集對(duì)Cascade R-CNN改進(jìn)算法的精度進(jìn)行評(píng)估。DARK FACE低光照條件下的人臉檢測(cè)數(shù)據(jù)集提供了6 000幅真實(shí)世界的低光圖像,在夜間捕獲,在教學(xué)樓、街道、橋梁、立交橋、公園等,所有標(biāo)記的邊界框的人臉,作為主要的訓(xùn)練和/或驗(yàn)證集。數(shù)據(jù)集還提供了9 000張同樣環(huán)境下采集的未標(biāo)記弱光圖像。此外,數(shù)據(jù)集提供了一組獨(dú)特的789對(duì)在可控的真實(shí)光照條件下捕獲的弱光/正常光圖像(但不必要地包含人臉),可以作為參與者離散化時(shí)訓(xùn)練數(shù)據(jù)的一部分。屆時(shí)將會(huì)有一組4 000張弱光圖像的測(cè)試,帶有人臉邊框標(biāo)注。
圖4 DARK FACE數(shù)據(jù)集圖Fig.4 DARK FACE data set diagram
3.3.1 評(píng)價(jià)指標(biāo)
在目標(biāo)檢測(cè)中,算法不可能百分百和人工標(biāo)注的數(shù)據(jù)完全匹配,因此我們通常使用IoU的值衡量目標(biāo)真實(shí)邊界框和預(yù)測(cè)邊界框的重合程度,以此來(lái)評(píng)估定位精度。IoU的計(jì)算公式如式(1)所示。一般情況下,當(dāng)IoU的值大于0.5時(shí),認(rèn)為成功預(yù)測(cè)到目標(biāo)。
在目標(biāo)檢測(cè)中,正確預(yù)測(cè)分類的候選框我們稱之為真(True, T),錯(cuò)誤預(yù)測(cè)分類的候選框我們稱之為假(False, F)。將與真實(shí)邊界框的IoU大于預(yù)設(shè)閾值的候選框稱之為正(Positive, P),將與真實(shí)邊界框的 IoU小于預(yù)設(shè)閾值的候選框稱為負(fù)(Negative, N),由此我們可以得到圖5。
圖5 樣本中的分類Fig.5 classification in the sample
根據(jù)圖5可知,精確率和召回率的計(jì)算公式如下:
通常我們希望精確率和召回率越高越好,然而精確率和召回率在某些情況下是矛盾的,二者此消彼長(zhǎng),因此最終平均精度(Average Precision,AP)通過(guò)精確度和召回率計(jì)算,并以平均精度AP(mAP)值作為反映算法檢測(cè)精度的綜合評(píng)價(jià)指標(biāo)。通常情況下,mAP值越高說(shuō)明模型檢測(cè)精度越高,檢測(cè)效果越好。
mAP的計(jì)算公式如下:
3.3.2 實(shí)驗(yàn)結(jié)果與分析
為驗(yàn)證Cascade R-CNN改進(jìn)算法的性能,首先將 Cascade R-CNN改進(jìn)算法同原始 Cascade R-CNN算法在DARK FACE數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)對(duì)比。其次將不同的改進(jìn)組合分別在 DARK FACE數(shù)據(jù)集上進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如表1所示。
表1 模型改進(jìn)前后對(duì)比Tab.1 comparison before and after model improvement
實(shí)驗(yàn)結(jié)果表明,相比于Cascade R-CNN算法,Cascade R-CNN改進(jìn)算法在低光照條件下的人臉檢測(cè)精度上有明顯提升,其在所選數(shù)據(jù)集上,相較于直接使用 Cascade R-CNN,mAP提升了36.8%。
表2展示了實(shí)驗(yàn)中不同改進(jìn)對(duì)模型性能的提升效果。調(diào)整錨框尺寸使得RPN網(wǎng)絡(luò)通過(guò)錨框所取得的候選區(qū)域與人臉區(qū)域更加吻合,從而提升RPN網(wǎng)絡(luò)選取的候選區(qū)域質(zhì)量;加入反卷積層可以將其之前的卷積網(wǎng)絡(luò)提取出的特征進(jìn)行放大,從而使小目標(biāo)特征得以傳播到后續(xù)網(wǎng)絡(luò)中,從而提升網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)效果;多尺度訓(xùn)練和圖像數(shù)據(jù)增強(qiáng)通過(guò)對(duì)訓(xùn)練的數(shù)據(jù)進(jìn)行各種變換,增加模型訓(xùn)練的數(shù)據(jù)量,從而使模型具有更強(qiáng)的泛化能力。
表2 不同改進(jìn)性能對(duì)比Tab.2 different improved performance comparison
最終該模型在測(cè)試集上的mAP達(dá)到60.09%,取得了相當(dāng)大程度的改善,相較DARK FACE數(shù)據(jù)集發(fā)布的檢測(cè)精度本文的模型也明顯更佳。
表3 DARK FACE數(shù)據(jù)集發(fā)布的檢測(cè)精度Tab.3 DARK FACE data set release detection accuracy
本文結(jié)合各種神經(jīng)網(wǎng)絡(luò)訓(xùn)練技巧對(duì) Cascade R-CNN算法進(jìn)行改進(jìn),在一定程度上能改善低光照下人臉識(shí)別精確度低、定位差的問(wèn)題。通過(guò)對(duì)Cascade R-CNN中錨框大小和尺寸的調(diào)整,提升對(duì)人臉小目標(biāo)的捕獲;其次,加入反卷積層,將前幾層卷積網(wǎng)絡(luò)捕獲到的小目標(biāo)特征放大使之可以傳播到之后的網(wǎng)絡(luò)中。改進(jìn)后的 Cascade R-CNN算法與多尺度訓(xùn)練的技巧相結(jié)合,使低光照條件下人臉檢測(cè)精度依舊有不同程度提升。但是,本文算法仍存在一定缺陷,仍有很大的提升空間。在之后工作中,會(huì)針對(duì)發(fā)現(xiàn)的問(wèn)題研究改進(jìn)本算法,進(jìn)一步提高人臉檢測(cè)性能。