陶 也
(西北工業(yè)大學 計算機學院,陜西 西安 710129)
近幾年來,隨著卷積神經網絡的迅速發(fā)展,通用目標檢測任務之一人臉檢測,取得了重大的進步,其在實施監(jiān)控、目標跟蹤、安全驗證等諸多場景中被廣泛應用[1-4]。人臉檢測可通過物體檢測算法對畫面中存在的人臉位置進行檢測。以往人臉檢測主要在R-CNN[5]、Fast R-CNN[6]、Faster R-CNN[7]、YOLO[8-11]和 SSD[12]等目標檢測算法的基礎上稍作改進便可應用在人臉檢測中,也有一些針對人臉檢測的算法被陸續(xù)提出。但在低光照條件下,攝像頭能見度低和信號細節(jié)損失嚴重對視覺增強和后續(xù)感知任務造成阻礙[13]。因此,在低光照條件下對人臉實現(xiàn)準確定位具有重要的實踐意義。
人臉檢測研究可以追溯到60年代。經過幾十年的曲折發(fā)展,它已變得越來越成熟[14-15]。針對正臉檢測的傳統(tǒng)算法已經逐步得到廣泛應用,例如 ViolaJones[16]在有約束的正臉檢測場景中有著良好的速度與精度表現(xiàn)。但是,在自然場景下,傳統(tǒng)方法采用的人工特征不足以表示復雜的人臉特征,大多數傳統(tǒng)算法迅速退化。因此卷積網絡作為當今流行的計算機視覺處理方式,能夠自動選取最優(yōu)的特征提取[17],被廣泛運用于復雜條件下的人臉檢測中。目標檢測算法目前主要分為兩類:一類是基于兩階段的R-CNN系列網絡;另一類是縮減到一階段的YOLO和SSD等網絡。文獻[18]指出,這兩類算法在面對部分較為復雜情況如面部遮擋等問題有較理想的魯棒性,但對于低光照等條件表現(xiàn)仍舊不佳[13]。在 2019年北京大學發(fā)布的低光照圖像和對應人臉標簽的 DARK FACE數據集上的檢測結果普遍較差[19]。
因此,為提高對低光照條件下對人臉的檢測性能,本文嘗試在目前目標檢測效果優(yōu)秀的Cascade R-CNN網絡[20]的基礎上進行改進,并基于改進算法對低光照下的人臉檢測進行研究。首先,將Cascade R-CNN的錨框尺寸根據對數據中人臉標注框的尺寸聚類結果進行調整;其次,對網絡結構進行修改,增加反卷積層以提升網絡對小目標的檢測效果;之后,在修改后的 Cascade R-CNN網絡的基礎上嘗試各種訓練技巧的組合,幫助提升低光照人臉檢測性能。最后,通過實驗驗證改進后的Cascade R-CNN算法的檢測效果。
本文剩余部分的組織結構如下安排。首先,第1節(jié)回顧了現(xiàn)有算法在低光照條件下的嘗試。第2節(jié)給出了一些預備知識。在第3節(jié)中,介紹了本文改進的Cascade R-CNN模型,并在第4節(jié)中給出了相應的分析。最后,第5節(jié)對本文工作進行總結。
Cascade R-CNN屬于目標檢測兩階段算法。它由Cai和Nuno等人在Faster R-CNN的基礎上增加三級級聯(lián)檢測器,如圖1所示,使其在圖像質量較差的環(huán)境中,依舊保持較高的檢測精度。Faster R-CNN對圖像中的所有候選框進行打分,需要主動挑選IoU閾值,會造成正樣本數量不足、訓練結果過擬合。設置較低的IoU閾值,雖然可以獲得較多的正樣本,但會在檢測時造成較多的偽檢。而在改進后的Cascade R-CNN中,它采用級聯(lián)的方式,前一個檢測模型的輸出作為后一個檢測模型的輸入,而且越往后檢測模型的IoU閾值越大。通過設定不同大小的IoU閾值,多個專用回歸量針對不同階段重采樣進行優(yōu)化,從而提高檢測精度[21]。

圖1 Cascade R-CNN級聯(lián)檢測器Fig.1 Cascade R-CNN cascade detector
Cascade R-CNN中,每個RPN網絡所使用的錨框的大小和尺寸一般都是預設的[8, 16, 32]和[1.5, 1.0, 2.0]。如文獻[20]中所言,原作者之所以使用這3種大小和3種尺寸是由經驗所得,而原算法是應用于通用目標檢測的,對于人臉而言,它的范圍顯然大得多。為了解決上述問題,本文用K-Means算法對DARK FACE訓練集中6 000張圖象的真實標注框進行聚類[22]以確定錨框最佳尺寸。算法的運行結果如圖2所示。

圖2 聚類結果可視化Fig.2 visualization of clustering results
聚類中心為[13.42, 15.03],說明圖片中的目標人臉較小,并且本文根據聚類結果可以看出標注框都趨近于正方形,因此本文適當減小了錨框的大小并將比例從原來的[0.5, 1.0, 2.0]調整為[0.8,1.0, 1.2],用更加合適的錨框來對人臉進行檢測。
近年來,研究人員發(fā)現(xiàn)反卷積神經網絡(Deconvolution Neural Network),又稱轉置神經網絡,在圖像恢復等處理中相比卷積神經網絡具有很大的優(yōu)勢。與卷積神經網絡不同,反卷積網絡的反卷積操作可以逐層實現(xiàn)數據擴張,反卷積網絡可以通過少數幾層反卷積層在逐步實現(xiàn)同尺寸放大的同時實現(xiàn)圖像恢復,在較少的網絡參數下達到更好的重構性能。那么,受此啟發(fā),在目標檢測中,經過幾層卷積網絡后,一些小目標的特征也受到損壞,我們此時可以借用反卷積層,將小目標特征進行及時放大,從而幫助其傳播到后續(xù)的網絡中。
本次實驗使用的主干網為ResNet 50,在最后一層卷積層后和每個池化層后添加反卷積層,并將每層的反卷積結果進行融合,主干網結構如圖3所示。

圖3 添加反卷積層后的ResNet 50Fig.3 ResNet 50 after adding the deconvolution layer
多尺度訓練作為一種提升性能的有效技巧被應用在各種目標檢測比賽中。在基礎網絡部分,通常會生成比原圖小數十倍的特征圖,這使得檢測網絡很難捕獲小物體的特征描述。通過輸入更大、更多尺寸的圖片進行訓練,能夠在一定程度上提高檢測模型對物體大小的魯棒性。數據增強是在不實質性的增加數據的情況下,從原始數據加工出更多的表示,提高原數據的數量和質量,以接近于更多數據量產生的價值。在這個過程中還可以加強本體特征的學習,避免模型訓練出現(xiàn)過擬合,提升模型的泛化能力。
在本文中,我們將訓練尺度修改為原圖大小的3倍,同時對圖像數據進行隨機裁剪、水平翻轉、隨即色相飽和度、隨機亮度飽和度和隨機模糊等變換方法。
我們首先以Cascade R-CNN + FPN為基準框架,其中 Cascade R-CNN所使用的主干網為ResNet 50。在此基礎上,我們對DARK FACE數據集中的人臉進行聚類統(tǒng)計,根據聚類結果對Cascade R-CNN模型中的錨框尺寸進行調整。接著根據前文所述方案在Cascade R-CNN網絡中加入反卷積層。最后在使用COCO數據集對模型進行預訓練的基礎上,使用多尺度訓練和圖像數據增強兩個訓練技巧在改進后的Cascade R-CNN網絡上進行微調。將得到的模型在DARK FACE數據集中進行測試,評測改進后模型的效果。
實驗基于ResNet 50神經網絡框架實現(xiàn)。實驗平臺配置為:操作系統(tǒng)為 Windows 10;CPU為Intel Cascade 6266 @ 3.0G Hz十六核處理器;64 G內存;GPU為NVIDIA T4 16 G顯存;深度學習框架為 MMDetection,Pytorch;編程語言為Python。
實驗使用DARK FACE低光照條件下的人臉檢測數據集對Cascade R-CNN改進算法的精度進行評估。DARK FACE低光照條件下的人臉檢測數據集提供了6 000幅真實世界的低光圖像,在夜間捕獲,在教學樓、街道、橋梁、立交橋、公園等,所有標記的邊界框的人臉,作為主要的訓練和/或驗證集。數據集還提供了9 000張同樣環(huán)境下采集的未標記弱光圖像。此外,數據集提供了一組獨特的789對在可控的真實光照條件下捕獲的弱光/正常光圖像(但不必要地包含人臉),可以作為參與者離散化時訓練數據的一部分。屆時將會有一組4 000張弱光圖像的測試,帶有人臉邊框標注。

圖4 DARK FACE數據集圖Fig.4 DARK FACE data set diagram
3.3.1 評價指標
在目標檢測中,算法不可能百分百和人工標注的數據完全匹配,因此我們通常使用IoU的值衡量目標真實邊界框和預測邊界框的重合程度,以此來評估定位精度。IoU的計算公式如式(1)所示。一般情況下,當IoU的值大于0.5時,認為成功預測到目標。

在目標檢測中,正確預測分類的候選框我們稱之為真(True, T),錯誤預測分類的候選框我們稱之為假(False, F)。將與真實邊界框的IoU大于預設閾值的候選框稱之為正(Positive, P),將與真實邊界框的 IoU小于預設閾值的候選框稱為負(Negative, N),由此我們可以得到圖5。

圖5 樣本中的分類Fig.5 classification in the sample
根據圖5可知,精確率和召回率的計算公式如下:

通常我們希望精確率和召回率越高越好,然而精確率和召回率在某些情況下是矛盾的,二者此消彼長,因此最終平均精度(Average Precision,AP)通過精確度和召回率計算,并以平均精度AP(mAP)值作為反映算法檢測精度的綜合評價指標。通常情況下,mAP值越高說明模型檢測精度越高,檢測效果越好。
mAP的計算公式如下:
3.3.2 實驗結果與分析
為驗證Cascade R-CNN改進算法的性能,首先將 Cascade R-CNN改進算法同原始 Cascade R-CNN算法在DARK FACE數據集上進行了實驗對比。其次將不同的改進組合分別在 DARK FACE數據集上進行對比。實驗結果如表1所示。

表1 模型改進前后對比Tab.1 comparison before and after model improvement
實驗結果表明,相比于Cascade R-CNN算法,Cascade R-CNN改進算法在低光照條件下的人臉檢測精度上有明顯提升,其在所選數據集上,相較于直接使用 Cascade R-CNN,mAP提升了36.8%。
表2展示了實驗中不同改進對模型性能的提升效果。調整錨框尺寸使得RPN網絡通過錨框所取得的候選區(qū)域與人臉區(qū)域更加吻合,從而提升RPN網絡選取的候選區(qū)域質量;加入反卷積層可以將其之前的卷積網絡提取出的特征進行放大,從而使小目標特征得以傳播到后續(xù)網絡中,從而提升網絡對小目標的檢測效果;多尺度訓練和圖像數據增強通過對訓練的數據進行各種變換,增加模型訓練的數據量,從而使模型具有更強的泛化能力。

表2 不同改進性能對比Tab.2 different improved performance comparison
最終該模型在測試集上的mAP達到60.09%,取得了相當大程度的改善,相較DARK FACE數據集發(fā)布的檢測精度本文的模型也明顯更佳。

表3 DARK FACE數據集發(fā)布的檢測精度Tab.3 DARK FACE data set release detection accuracy
本文結合各種神經網絡訓練技巧對 Cascade R-CNN算法進行改進,在一定程度上能改善低光照下人臉識別精確度低、定位差的問題。通過對Cascade R-CNN中錨框大小和尺寸的調整,提升對人臉小目標的捕獲;其次,加入反卷積層,將前幾層卷積網絡捕獲到的小目標特征放大使之可以傳播到之后的網絡中。改進后的 Cascade R-CNN算法與多尺度訓練的技巧相結合,使低光照條件下人臉檢測精度依舊有不同程度提升。但是,本文算法仍存在一定缺陷,仍有很大的提升空間。在之后工作中,會針對發(fā)現(xiàn)的問題研究改進本算法,進一步提高人臉檢測性能。