李 欣,張 童,厚佳琪,張子昊
(中國(guó)人民公安大學(xué) 信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院,北京 100038)
與其他生物特征相比,人臉特征信息具有非接觸性、易采集性和易接受性等優(yōu)點(diǎn),所以人臉識(shí)別在模式識(shí)別領(lǐng)域一直備受關(guān)注[1]。近年來(lái),通過(guò)捕捉人臉圖像對(duì)犯罪嫌疑人進(jìn)行檢測(cè)識(shí)別,在公安領(lǐng)域偵破案件過(guò)程中廣泛應(yīng)用。人臉檢測(cè)是人臉識(shí)別的基礎(chǔ),也是其中最重要的一個(gè)環(huán)節(jié),常用于圖像中人臉位置的定位。但是在實(shí)際圖像采集過(guò)程中,由于人臉姿勢(shì)以及光照等環(huán)境因素的不確定性和多變性,往往會(huì)導(dǎo)致人臉系統(tǒng)無(wú)法對(duì)該類人臉進(jìn)行較為精確的定位。因此,基于多角度的人臉檢測(cè)越來(lái)越受到廣大學(xué)者的關(guān)注。
傳統(tǒng)的人臉檢測(cè)方法是采用模板匹配技術(shù),也就是將被檢測(cè)圖像與給定人臉模板圖像各個(gè)位置進(jìn)行對(duì)比,進(jìn)而判斷是否存在人臉,最終對(duì)人臉進(jìn)行定位。后來(lái)隨著深度學(xué)習(xí)的出現(xiàn),通過(guò)卷積網(wǎng)絡(luò)來(lái)對(duì)圖像進(jìn)行特征提取便應(yīng)用到了人臉檢測(cè)領(lǐng)域。其中最具代表性的兩種方法是:基于區(qū)域的人臉檢測(cè)和基于滑動(dòng)窗口的人臉檢測(cè)。前者是通過(guò)搭建物體建議產(chǎn)生器(object proposal generators)或選擇性搜索算法(selective search)來(lái)對(duì)人臉進(jìn)行定位。后者是按照給定比例計(jì)算特征圖上每個(gè)位置的人臉得分值,實(shí)現(xiàn)人臉邊界框的定位和回歸。Zhang等[2]采用多任務(wù)的級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)將人臉檢測(cè)和人臉對(duì)齊兩個(gè)任務(wù)結(jié)合起來(lái),提出了MTCNN模型。Joseph Redmon等[3]在YOLOV1的基礎(chǔ)上提出了YOLOV2檢測(cè)方法,將原本主干網(wǎng)絡(luò)換成Darknet-19網(wǎng)絡(luò)[4],同時(shí)在人臉框定位方面結(jié)合帶有錨點(diǎn)框的卷積層大幅度地提高了定位精度。但是由于二者應(yīng)用的特征提取的卷積網(wǎng)絡(luò)層數(shù)不深,通過(guò)卷積網(wǎng)絡(luò)提取到的特征魯棒性和準(zhǔn)確性并不高。
文中在YOLOV2算法的基礎(chǔ)上提出了一種新的人臉檢測(cè)算法。該算法使用DenseNet作為人臉特征提取器,使提取到的特征具有更高的魯棒性和準(zhǔn)確性。在人臉定位方面采用帶有錨點(diǎn)框的卷積層對(duì)提取到的特征進(jìn)行定位,同時(shí)通過(guò)引入歸一化層,使模型的收斂速度加快。
首先,將輸入圖像劃分為n×n的網(wǎng)格。如果某個(gè)物體中心位置坐標(biāo)落在哪個(gè)網(wǎng)格內(nèi),就由哪個(gè)網(wǎng)格對(duì)該物體進(jìn)行定位檢測(cè)。每個(gè)單元格生成B個(gè)預(yù)測(cè)邊界框以及對(duì)應(yīng)的置信度,通過(guò)閾值限定以及非極大值抑制的方式對(duì)邊界框進(jìn)行篩選,得到最終的人臉框。在網(wǎng)絡(luò)結(jié)構(gòu)方面,YOLOV1[5]用1×1卷積層加3×3卷積層來(lái)代替GoogLeNet中的inception module[6]并行模塊,同時(shí)在網(wǎng)絡(luò)模型的末端使用全連接層來(lái)輸出類別。
YOLOV2是YOLOV1的改進(jìn)版本。對(duì)定位準(zhǔn)確度和召回率進(jìn)行了改進(jìn)。YOLOV1算法存在兩個(gè)缺點(diǎn):(1)對(duì)bounding box[7]的定位不夠準(zhǔn)確,即對(duì)小目標(biāo)檢測(cè)效果不佳;(2)相對(duì)于region proposal方法,YOLOV1的召回率較低。于是,YOLOV2在YOLOV1的基礎(chǔ)上進(jìn)行了改進(jìn)。具體改進(jìn)方法如下:
(1)帶有錨點(diǎn)框的卷積。
YOLOV2中去掉全連接層,使用錨點(diǎn)框來(lái)預(yù)測(cè)邊界框。具體方法如下:
YOLOV2使用卷積層進(jìn)行下采樣,使得最終的特征圖的尺寸為13×13。最終的特征圖的寬和高都為奇數(shù),使得特征圖只有一個(gè)中心點(diǎn)。較大的物體通常占據(jù)圖像的中心位置,通過(guò)這種操作使用一個(gè)中心點(diǎn)來(lái)預(yù)測(cè)圖像位置,而不是使用相鄰的4個(gè)單元格進(jìn)行預(yù)測(cè)。YOLOV1使用每個(gè)單元格預(yù)測(cè)物體類別,使用邊界框預(yù)測(cè)坐標(biāo)值,而YOLOV2中使用錨點(diǎn)同時(shí)預(yù)測(cè)類別和邊界框的坐標(biāo)。使用錨點(diǎn)進(jìn)行預(yù)測(cè)會(huì)使得準(zhǔn)確率稍微下降,但是召回率有明顯的提升。
(2)使用K-means聚類。
YOLOV2使用K-means[8]的方式對(duì)訓(xùn)練數(shù)據(jù)集中的邊界框進(jìn)行聚類分析,從而找到最優(yōu)的錨點(diǎn)框。由于歐氏距離會(huì)因bbox的大小產(chǎn)生不同程度上的誤差,而IOU[9]與bbox尺寸無(wú)關(guān),所以選擇用IOU來(lái)計(jì)算距離,公式如下:
d(box,centroid)=1-IOU(box,centroid)
(1)
IOU表示網(wǎng)絡(luò)預(yù)測(cè)的邊界框和圖片標(biāo)簽中實(shí)際的邊界框的重合率,計(jì)算公式如下:
(2)
分子表示預(yù)測(cè)邊界框和實(shí)際邊界框的交集部分,分母表示預(yù)測(cè)邊界框和實(shí)際邊界框的并集部分。
(3)直接預(yù)測(cè)邊界框位置。
YOLOV2中延續(xù)YOLOV1中直接預(yù)測(cè)的方法對(duì)邊界框進(jìn)行預(yù)測(cè)。網(wǎng)絡(luò)在特征圖中每個(gè)單元格中預(yù)測(cè)5個(gè)邊界框,每個(gè)邊界框預(yù)測(cè)5個(gè)值:tx,ty,tw,th和t,其中tx和ty表示相對(duì)于單個(gè)網(wǎng)絡(luò)的邊界框的中心坐標(biāo)的偏移值,tw和th表示相對(duì)于整幅圖像的邊界框的寬和高,t表示置信度,即表示預(yù)測(cè)的邊界框和真實(shí)邊界框的重合率。
(3)
其中,Pr(Object)表示邊界框是否包含物體。如果邊界框包含物體,即人臉,那么Pr(Object)=1,如果邊界框中不包含物體,則Pr(Object)=0。
假設(shè)此單元格距離圖像左上角頂點(diǎn)的偏移量為cx,cy,先驗(yàn)框的寬和高為pw,ph,那么網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果將如式(4)~式(8)所示,預(yù)測(cè)的邊界框參數(shù)如圖1所示。

圖1 邊界框預(yù)測(cè)參數(shù)圖
bx=σ(tx)+cx
(4)
by=σ(ty)+cy
(5)
bw=pwetw
(6)
bh=pheth
(7)
Pr(Object) × IOU(b,object)=σ(to)
(8)
(4)網(wǎng)絡(luò)架構(gòu)。
在YOLOV2中,使用448×448分辨率的圖片代替原先的224×224作為預(yù)訓(xùn)練圖像。采用Darknet-19[10]模型來(lái)提取圖像中的特征信息。Darknet-19采用全局平均池化層做預(yù)測(cè),并在3×3卷積之間使用1×1卷積來(lái)實(shí)現(xiàn)特征圖通道數(shù)量的壓縮,進(jìn)而減少模型參數(shù)和計(jì)算量。最后,Darknet-19在每個(gè)卷積層后面使用了BN層,以加快模型收斂速度,降低模型過(guò)擬合。
YOLOV2人臉檢測(cè)算法流程如圖2所示。

圖2 YOLOV2人臉檢測(cè)算法流程
YOLOV2中使用的主干網(wǎng)絡(luò)是DarkNet-19,但是由于網(wǎng)絡(luò)層數(shù)較淺,無(wú)法提取到更加細(xì)粒和有效的人臉特征信息。而DenseNet[11]網(wǎng)絡(luò)在圖像分類任務(wù)中取得了較高的準(zhǔn)確率,所以文中采用DenseNet-201網(wǎng)絡(luò)結(jié)構(gòu)代替DarkNet-19模型用做人臉特征提取模塊。

密集連接的操作需要特征圖的大小統(tǒng)一,這就需要引入池化層來(lái)進(jìn)行限定,同時(shí)為了引入池化層,需要添加過(guò)渡層來(lái)將Dense Block連接起來(lái),這樣就把網(wǎng)絡(luò)劃分成了若干個(gè)不同的Dense Bloc。其中每一個(gè)Dense Bloc為瓶頸結(jié)構(gòu),包含3×3和1×1兩種類型的卷積。可以通過(guò)設(shè)置參數(shù)k來(lái)限定每一個(gè)Dense Bloc輸出的特征圖的數(shù)量,卷積表示為3×3×k。同時(shí)由于過(guò)渡層包括BN層,1×1的卷積層以及2×2的平均池化,過(guò)渡層中的BN層會(huì)進(jìn)一步對(duì)特征進(jìn)行歸一化,從而加快模型的收斂速度。
相比于DarkNet-19,DenseNet-201模型網(wǎng)絡(luò)的層數(shù)明顯得到增加。DenseNet-201中的密集連接的方式不僅使得網(wǎng)絡(luò)每一層提取到的人臉特征信息盡可能得到利用,并且在訓(xùn)練過(guò)程中可以學(xué)習(xí)到新的人臉特征信息。因此,文中使用DenseNet-201作為人臉檢測(cè)器的特征提取部分,其他部分與YOLOV2算法相同。改進(jìn)的YOLOV2人臉檢測(cè)算法流程如圖3所示。

圖3 基于DenseNet-201的YOLOV2人臉檢測(cè)算法流程
由于DenseNet-201采用的是密集連接的方式,會(huì)使特征圖的數(shù)量大大增加,同時(shí)參數(shù)的數(shù)量也會(huì)大大增加。于是文中在DenseNet-201[12]的部分提出了三點(diǎn)來(lái)控制網(wǎng)絡(luò)參數(shù)和特征圖的數(shù)量。具體參數(shù)設(shè)置過(guò)程如下:
第一,引入超參數(shù)k作為網(wǎng)絡(luò)的增長(zhǎng)率。網(wǎng)絡(luò)的增長(zhǎng)率表示每一個(gè)Dense Block輸出的特征圖的個(gè)數(shù)為k個(gè),為了防止網(wǎng)絡(luò)變得太寬,并且提升網(wǎng)絡(luò)的計(jì)算效率,將k值限制成一個(gè)較小的整數(shù)。在DenseNet中,將每一個(gè)Dense Block輸出的特征圖的個(gè)數(shù)設(shè)置為32,即k=32。實(shí)驗(yàn)證明,當(dāng)k值是一個(gè)較小的正整數(shù)時(shí),網(wǎng)絡(luò)的表現(xiàn)性能也更好。
第二,引入瓶頸層。DenseNet采取密集連接的方式,雖然每一層產(chǎn)生k個(gè)特征圖,但是整個(gè)網(wǎng)絡(luò)產(chǎn)生的特征圖的數(shù)量是巨大的。為了控制DenseNet網(wǎng)絡(luò)中特征圖的數(shù)量,在網(wǎng)絡(luò)的構(gòu)建中引入了瓶頸層。
第三,對(duì)網(wǎng)絡(luò)進(jìn)行壓縮。通過(guò)壓縮過(guò)渡層中的特征圖,增強(qiáng)模型的緊湊性。在DenseNet中,當(dāng)Dense Block包含m個(gè)特征圖時(shí),網(wǎng)絡(luò)中隨后的過(guò)渡層產(chǎn)生的特征圖的個(gè)數(shù)為θm,其中0<θ<1。于是,將θ的值設(shè)置為0.5,即過(guò)渡層將前一個(gè)Dense Block產(chǎn)生的特征圖的數(shù)量減半。DenseNet-201網(wǎng)絡(luò)模型的具體設(shè)置細(xì)節(jié)如表1所示。

表1 DenseNet-201網(wǎng)絡(luò)模型
從以上表格可以看出,將每一個(gè)Dense Block的輸出特征圖的數(shù)量以及大小設(shè)置為3×3×32,同時(shí)每經(jīng)過(guò)一個(gè)過(guò)渡層輸出的特征圖尺寸以及數(shù)量均減小一半,大大壓縮了特征網(wǎng)絡(luò),使網(wǎng)絡(luò)的運(yùn)行速度加快。
文中使用CelebA和FDDB人臉數(shù)據(jù)集作為人臉檢測(cè)的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集。CelebA人臉數(shù)據(jù)集包括202 599張人臉圖像[13]。每一張圖像的標(biāo)簽包括人臉邊界框,5個(gè)人臉關(guān)鍵點(diǎn)以及40個(gè)人臉屬性。FDDB人臉數(shù)據(jù)集包括2 845張人臉圖像和5 171個(gè)人臉區(qū)域,數(shù)據(jù)集包括不同人臉姿態(tài)、不同分辨率以及旋轉(zhuǎn)和遮擋的人臉圖像。
文中選取CelebA人臉數(shù)據(jù)集中的190 000張圖像作為訓(xùn)練集。將12 599張CelebA[14]數(shù)據(jù)中的人臉圖像和FDDB[15]人臉數(shù)據(jù)集作為測(cè)試集,測(cè)試算法性能。
實(shí)驗(yàn)一:在不同角度人臉圖像上進(jìn)行算法性能測(cè)試。
實(shí)驗(yàn)一中選擇三種不同角度的人臉圖像作為測(cè)試圖像,分別為正面人臉圖像,60度人臉偏轉(zhuǎn)圖像和90度人臉偏轉(zhuǎn)圖像,衡量改進(jìn)前和改進(jìn)后不同人臉檢測(cè)模型的性能,如圖4所示。

圖4 基于YOLOV2人臉檢測(cè)算法和基于DenseNet-201的YOLOV2人臉檢測(cè)算法效果示例(1)
由圖4可以看出,兩種人臉檢測(cè)模型都可以檢測(cè)出三種不同角度圖像中的人臉。在人臉角度一致的前提下,基于DenseNet-201的YOLOV2算法檢測(cè)效果最佳,其次是YOLOV2算法;在人臉角度不同的前提下,基于DenseNet-201的YOLOV2算法魯棒性最強(qiáng),其次是YOLOV2算法。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOV2人臉檢測(cè)算法相較于原始算法,檢測(cè)性能有明顯的提升。
實(shí)驗(yàn)二:在不同光照人臉圖像上進(jìn)行算法性能測(cè)試。
實(shí)驗(yàn)二中選擇三種不同光照環(huán)境下的人臉圖像作為測(cè)試圖像,衡量改進(jìn)前和改進(jìn)后人臉檢測(cè)模型的性能,如圖5所示。

圖5 基于YOLOV2人臉檢測(cè)算法和基于DenseNet-201的YOLOV2人臉檢測(cè)算法效果示例(2)
由圖5得出兩種人臉檢測(cè)模型在不同光照條件下均可以檢測(cè)出人臉圖像,原來(lái)的YOLOV2人臉檢測(cè)算法和DenseNet-201人臉檢測(cè)算法在不同光照條件下檢測(cè)出的人臉框的大小幾乎是一致的,表明改進(jìn)算法的魯棒性較好。并且基于DenseNet-201的YOLOV2人臉檢測(cè)算法在檢測(cè)的精確度最高。
實(shí)驗(yàn)三:在CelebA人臉數(shù)據(jù)集上進(jìn)行算法性能測(cè)試。
實(shí)驗(yàn)三中選取CelebA的測(cè)試數(shù)據(jù)集對(duì)不同人臉檢測(cè)模型進(jìn)行測(cè)試,算法測(cè)試指標(biāo)如表2所示。
由表2可知,DenseNet-201的YOLOV2人臉檢測(cè)算法的各項(xiàng)性能指標(biāo)相較于原模型,性能更優(yōu)。

表2 不同人臉檢測(cè)模型在CelebA的性能指標(biāo)
實(shí)驗(yàn)四:在FDDB人臉數(shù)據(jù)集上進(jìn)行算法性能測(cè)試。
實(shí)驗(yàn)四中選擇FDDB人臉數(shù)據(jù)集作為算法測(cè)試數(shù)據(jù)集,對(duì)人臉檢測(cè)模型進(jìn)行性能評(píng)測(cè),得出ROC曲線圖,如圖6、圖7所示。

圖6 YOLOV2人臉檢測(cè)模型和改進(jìn)的模型ROC曲線

圖7 基于DenseNet-201的YOLOV2模型與其他模型對(duì)比
由上圖可得,在YOLOV2系列的人臉檢測(cè)算法中,DenseNet-201模型在FDDB數(shù)據(jù)集上的效果最好,并且與其他人臉?biāo)惴ㄟM(jìn)行比較時(shí),基于DenseNet-201的YOLOV2人臉檢測(cè)算法的表現(xiàn)性能最好。
實(shí)驗(yàn)一到實(shí)驗(yàn)四的結(jié)果均顯示,改進(jìn)的DenseNet-201的YOLOV2人臉檢測(cè)模型相較于YOLOV2模型,性能得到較大的提升,并且在多角度、不同光照條件下,以及不同數(shù)據(jù)集的評(píng)測(cè)中,基于DenseNet-201的YOLOV2人臉檢測(cè)模型的魯棒性以及準(zhǔn)確性等性能表現(xiàn)最優(yōu)。結(jié)果表明,DenseNet的密集連接的網(wǎng)絡(luò)結(jié)構(gòu)相比于Darknet-19網(wǎng)絡(luò),不僅能夠提取到更為細(xì)粒度、更為抽象的人臉特征,而且使得網(wǎng)絡(luò)提取到的人臉特征在整個(gè)任務(wù)中最大化地被網(wǎng)絡(luò)利用,并學(xué)習(xí)到新的人臉特征,提升人臉檢測(cè)算法的性能。
基于DenseNet-201對(duì)YOLOV2算法進(jìn)行了改進(jìn),提出了一種新的多角度人臉檢測(cè)算法。該算法相較于之前YOLOV2中的DarkNet網(wǎng)絡(luò),可以提取更為豐富的人臉特征,并且使提取到的特征更具準(zhǔn)確性和魯棒性。在CelebA和FDDB兩個(gè)人臉數(shù)據(jù)集上對(duì)YOLOV2和改進(jìn)后的YOLOV2方法進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的YOLOV2算法對(duì)多角度人臉檢測(cè)的準(zhǔn)確性更高,且具有更強(qiáng)的魯棒性。經(jīng)過(guò)對(duì)YOLOV2算法的改進(jìn),雖然在多角度人臉檢測(cè)的性能上有所提升,但是在算法的準(zhǔn)確性上還存在一定的差距,尚需進(jìn)一步完善。