余 勝,謝 莉
(韶關(guān)學(xué)院 信息工程學(xué)院,廣東 韶關(guān) 512005)
關(guān)鍵字:人臉檢測(cè);卷積神經(jīng)網(wǎng)絡(luò);多尺度特征學(xué)習(xí)
人臉是每個(gè)人的門戶窗口,日常交流中快速準(zhǔn)確的完成人臉檢測(cè)對(duì)人而言是非常容易的一件事,人能夠在人群擁擠、相互遮擋等各種復(fù)雜情況下精確的確定目標(biāo)人臉?biāo)谖恢?在人工智能高速發(fā)展的時(shí)代,人臉檢測(cè)更是當(dāng)前許多人工智能項(xiàng)目的基礎(chǔ),如刷臉支付、人臉識(shí)別、疲勞駕駛、美顏技術(shù)等,在現(xiàn)實(shí)應(yīng)用中有著非常重要的意義[1].
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的成熟,特別是卷積神經(jīng)網(wǎng)絡(luò)在圖像增強(qiáng)、目標(biāo)分割、目標(biāo)檢測(cè)與識(shí)別等領(lǐng)域都有突破性的發(fā)展[2-3],這也給人臉檢測(cè)帶來(lái)了巨大的成功[4-6].相比于基于人工設(shè)計(jì)特征的人臉檢測(cè)方法,以卷積神經(jīng)網(wǎng)絡(luò)為原型構(gòu)建的人臉檢測(cè)模型模擬人類大腦,以原始的圖像作為輸入,自動(dòng)學(xué)習(xí)獲取人臉相關(guān)特征,完成人臉的檢測(cè).當(dāng)前在限定條件下的人臉檢測(cè)可以達(dá)到商用的程度,但在非限定條件下,涉及到人臉頭像采集的角度、光照、背景等復(fù)雜環(huán)境和因素的影響,導(dǎo)致非限定條件下的人臉檢測(cè)更為復(fù)雜、難度更大.根據(jù)人工設(shè)計(jì)特征的不同,可以將人臉檢測(cè)方法分為基于知識(shí)的方法、基于模板匹配的方法、基于統(tǒng)計(jì)學(xué)習(xí)理論的方法和基于表觀的方法四大類[7].
基于知識(shí)的方法主要根據(jù)每個(gè)人具有不同的五官、膚色等特征,同時(shí)人臉的五官特征之間又有一定的規(guī)則特點(diǎn)去約束人臉檢測(cè)的過(guò)程[8].基于模板匹配的方法主要是根據(jù)事先設(shè)計(jì)的固定模板或可變形模板,首先在目標(biāo)圖像中進(jìn)行滑窗掃描,若模板與對(duì)應(yīng)滑動(dòng)窗口區(qū)域的相關(guān)系數(shù)大于設(shè)定的閾值,則認(rèn)為該區(qū)域?yàn)楹蜻x人臉目標(biāo)[9-10];然后用非極大值抑制等方法刪除候選目標(biāo)區(qū)域間重復(fù)率過(guò)大的候選目標(biāo);最后獲得人臉目標(biāo)區(qū)域,實(shí)現(xiàn)人臉檢測(cè).基于統(tǒng)計(jì)學(xué)習(xí)理論的方法[11].統(tǒng)計(jì)學(xué)習(xí)理論的基本思想是根據(jù)大量給定的正向、反向的例子樣本集,然后根據(jù)輸入的正負(fù)樣本,利用機(jī)器學(xué)習(xí)方法訓(xùn)練分類模型,進(jìn)而實(shí)現(xiàn)人臉檢測(cè).此類方法的優(yōu)點(diǎn)是在大量的樣本中學(xué)習(xí)和測(cè)試,然后學(xué)習(xí)到人臉自身固有的內(nèi)在特征,不需依賴于先驗(yàn)知識(shí),但基于統(tǒng)計(jì)學(xué)習(xí)理論的方法受樣本集數(shù)目的影響比較大.基于表觀的檢測(cè)方法是根據(jù)一系列具有代表性的人臉圖像庫(kù)中學(xué)習(xí)到人臉的公共表觀特征,實(shí)現(xiàn)人臉圖像的檢測(cè).
隨著深度學(xué)習(xí)技術(shù)的發(fā)展以及成功的實(shí)際應(yīng)用,特別是卷積神經(jīng)網(wǎng)絡(luò)在人臉檢測(cè)中取得了突破性成果[12-13].人臉檢測(cè)屬于目標(biāo)檢測(cè)領(lǐng)域中的一個(gè)特殊應(yīng)用方面,因此目標(biāo)檢測(cè)中的R-CNN,F(xiàn)aster R-CNN和YOLO 等方法在人臉檢測(cè)的應(yīng)用中取得了較好的檢測(cè)效果.李祥兵等[1]提出以ResNet-50 為深度學(xué)習(xí)網(wǎng)絡(luò)框架學(xué)習(xí)人臉特征,通過(guò)融合不同卷積層的特征實(shí)現(xiàn)多尺度融合.Le 等提出多尺度Faster-RCNN 網(wǎng)絡(luò)實(shí)現(xiàn)不同尺度的特征有效融合[14].張智等提出基于YOLOv3 的小尺寸人臉檢測(cè)方法,提升了模型對(duì)多尺度人臉的檢測(cè)性能[15].賀懷清等在YOLO 的基礎(chǔ)上,設(shè)計(jì)了一種由密集到稀疏的多尺度并行人臉檢測(cè)模型,提升了檢測(cè)的定位準(zhǔn)確性和召回率[16].在實(shí)際場(chǎng)景中往往存在人臉過(guò)小、相互遮擋等情況,雖然通過(guò)深度網(wǎng)絡(luò)提取的圖像特征包含了豐富的高層語(yǔ)義特征,但仍然難以準(zhǔn)確表征人臉.同時(shí),上述基于目標(biāo)檢測(cè)方法存在有網(wǎng)絡(luò)模型層次過(guò)深,難以訓(xùn)練和耗時(shí)的不足,且容易忽略小尺寸的人臉.
筆者設(shè)計(jì)了一種改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)模型用于非限定場(chǎng)景下人臉檢測(cè).該方法能夠適應(yīng)較復(fù)雜的自然場(chǎng)景,在確保檢測(cè)準(zhǔn)確率的同時(shí)進(jìn)一步提升了檢測(cè)速度.
筆者提出了基于全卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)模型,通過(guò)設(shè)計(jì)多尺度特征融合神經(jīng)網(wǎng)絡(luò),應(yīng)用軟非極大值抑制、多尺度特征學(xué)習(xí)結(jié)構(gòu),實(shí)現(xiàn)人臉的檢測(cè)特別是小尺度人臉目標(biāo)的定位和檢測(cè).
VGG-Net 最初是2014 年由牛津大學(xué)視覺(jué)幾何團(tuán)體設(shè)計(jì)并與用于2014 年ImageNet 圖像分類挑戰(zhàn)賽,并獲得了第2 名的成績(jī),筆者在VGG-16 模型基礎(chǔ)上設(shè)計(jì)了一種全卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)模型[18].
VGG-16 網(wǎng)絡(luò)結(jié)構(gòu)主要由13 個(gè)卷積層和3 個(gè)全連接層組成,模型待優(yōu)化參數(shù)是數(shù)億級(jí)別,其中全連接層的參數(shù)約占整個(gè)網(wǎng)絡(luò)參數(shù)的89%.在VGG-16 網(wǎng)絡(luò)中,卷積層后面接3 個(gè)全連接層和Softmax 層實(shí)現(xiàn)特征維度的降維和圖像的分類預(yù)測(cè).但在VGG-16 網(wǎng)絡(luò)中的全連接層將特征映射到低維特征空間的過(guò)程中,會(huì)把目標(biāo)對(duì)象的空間位置特征信息全部丟失,導(dǎo)致后續(xù)無(wú)法實(shí)現(xiàn)特征目標(biāo)的定位.針對(duì)全連接層丟失目標(biāo)空間位置信息和參數(shù)巨大的問(wèn)題,提出用卷積層代替全連接層的網(wǎng)絡(luò)結(jié)構(gòu).首先將神經(jīng)網(wǎng)絡(luò)的后3 個(gè)全連接層修改為3 個(gè)卷積層,卷積核大小為33,卷積核個(gè)數(shù)為512 個(gè)(見(jiàn)圖1);然后分別將第4、5 和6等3 個(gè)卷積層組的最后一個(gè)卷積層用ROI-Pooling 進(jìn)行處理,使得池化后的特征映射在維度上相同;接著增加一個(gè)卷積核大小為11,卷積核個(gè)數(shù)為1 024 的卷積層用于降低特征維度;最后在卷積層后分別接一個(gè)Softmax 層和Bound box 回歸層.
圖1 基于全卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)框圖
一般的人臉檢測(cè)算法中,是將最后卷積層特征映射輸入到反卷積神經(jīng)網(wǎng)絡(luò),再進(jìn)行上采樣過(guò)程,最后得到跟輸入圖像尺寸一樣的熱圖.根據(jù)熱圖上每個(gè)像素點(diǎn)的概率值判斷輸入圖像中相應(yīng)感受野區(qū)域?yàn)槿四樐繕?biāo)的概率值.如果所得概率值大于設(shè)定的閾值則將該區(qū)域作為人臉候選目標(biāo)區(qū)域.但在深度神經(jīng)網(wǎng)絡(luò)中,深層網(wǎng)絡(luò)層的感受野較大,對(duì)大尺度目標(biāo)敏感,而對(duì)一些小尺度目標(biāo)則不敏感.為了提升對(duì)小尺度人臉目標(biāo)的檢測(cè)性能,提出將多個(gè)低層和高層卷積特征映射圖通過(guò)ROI-Pooling 進(jìn)行融合,獲得更多的人臉細(xì)粒度特征信息.具體是選擇VGG-16 網(wǎng)絡(luò)中分別把第4,5 和6 等3 個(gè)卷積組中最后一個(gè)卷積層進(jìn)行ROI-Pooling 池化,然后將3 個(gè)ROI-Pooling 后的特征映射圖進(jìn)行串接作為反卷積層的輸入,最后得到細(xì)粒度人臉目標(biāo)的候選區(qū)域.
非極大值抑制(Soft Non-Maximum Suppression,SNMS)通過(guò)抑制非極大值的元素,獲取局部極大值[17].在目標(biāo)檢測(cè)中,非極大值抑制方法用于對(duì)候選目標(biāo)框進(jìn)行篩選,保留置信度最高的目標(biāo)候選框,去除重合度較高的目標(biāo)候選框.在人臉檢測(cè)中,可以去除同一張臉附近產(chǎn)生的多個(gè)候選框,保留置信度最高的人臉候選框.但對(duì)重疊人臉的情況,非極大值抑制容易誤刪除部分人臉,容易出現(xiàn)漏檢的情況.非極大值抑制方法中得分重置函數(shù)表示為:
其中,為兩個(gè)檢測(cè)框的重疊率,為設(shè)置的重疊率閾值,M為得分最高的檢測(cè)框,一般設(shè)為0.3. 但將NMS 算法用于人臉檢測(cè)時(shí),當(dāng)不同人臉重疊過(guò)大時(shí),部分人臉檢測(cè)框的得分會(huì)被直接置零,會(huì)導(dǎo)致人臉漏檢.例如一張圖像中兩個(gè)人臉檢測(cè)框的檢測(cè)得分是0.95 和0.91,非極大值抑制中的重疊率設(shè)置為0.3. 當(dāng)兩個(gè)人臉檢測(cè)框的重疊率為0.35 時(shí),根據(jù)非的極大值抑制方法,第二個(gè)人臉檢測(cè)框會(huì)被刪除,這會(huì)導(dǎo)致得分為0.91 的人臉漏檢.
針對(duì)非極大值抑制存在的問(wèn)題,使用改進(jìn)的非極大值抑制算法SNMS[18]去除重疊檢測(cè)框.對(duì)比NMS算法,SNMS 算法將存在重疊的檢測(cè)框在重疊率大于閾值時(shí)不是直接置零,而是設(shè)置一個(gè)衰減函數(shù). SNMS得分衰減函數(shù)見(jiàn)式(2).通過(guò)衰減函數(shù)的設(shè)置,當(dāng)一個(gè)檢測(cè)框與M的重疊部分較大時(shí),對(duì)應(yīng)的得分會(huì)比較低;當(dāng)僅有小部分重疊時(shí),檢測(cè)框的得分影響較小,不會(huì)被丟棄.
實(shí)驗(yàn)在Ubuntu 18.04 系統(tǒng)實(shí)現(xiàn),并選用Tensorflow 和Keras 深度學(xué)習(xí)平臺(tái),GPU 為NVIDIA GTX Titan,內(nèi)存34 G,對(duì)VGG-16 網(wǎng)絡(luò)模型用在ImageNet 上訓(xùn)練好的模型進(jìn)行參數(shù)的初始化.
人臉數(shù)據(jù)集選用公共Wider Face 數(shù)據(jù)集,Wider Face 共包含有32 203 張圖像,其中包含有393 703 個(gè)標(biāo)注好的人臉.這些標(biāo)注的人臉在形狀、尺度、光照情況、遮擋等因素都不一樣,對(duì)人臉目標(biāo)檢測(cè)有很大的挑戰(zhàn)性.實(shí)驗(yàn)選用FDDB 人臉作為測(cè)試數(shù)據(jù)集,其中包括2 845 張圖片,共有5 171 個(gè)人臉.網(wǎng)絡(luò)訓(xùn)練時(shí),初始學(xué)習(xí)率設(shè)置為0.000 1,衰減率設(shè)置為0.005,每經(jīng)過(guò)20 000 次學(xué)習(xí)率衰減一次.為增加訓(xùn)練樣本數(shù)目,采用水平翻轉(zhuǎn)作為數(shù)據(jù)增強(qiáng)策略.測(cè)試時(shí),首先采用軟非極大值抑制方法,濾除重疊候選目標(biāo)區(qū)域,然后再將測(cè)試圖像中候選目標(biāo)區(qū)域的得分超過(guò)0.8 時(shí)將該目標(biāo)區(qū)域視為人臉區(qū)域.
實(shí)驗(yàn)的方法與其他經(jīng)典的人臉檢測(cè)方法進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果見(jiàn)表1.從實(shí)驗(yàn)結(jié)果可知,全卷積神經(jīng)網(wǎng)絡(luò)模型的檢測(cè)準(zhǔn)確率要明顯高于參考文獻(xiàn)中的檢測(cè)準(zhǔn)確率.另外,由于將全連接層替換成為卷積層,大大減少了待優(yōu)化參數(shù)的數(shù)目,從單張檢測(cè)時(shí)間可以看出,全卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)間復(fù)雜度要低于其它檢測(cè)算法.同時(shí),通過(guò)對(duì)人臉檢測(cè)結(jié)果的觀察,對(duì)測(cè)試集中一些小尺度人臉檢測(cè)的效果也要明顯優(yōu)于其它對(duì)比算法.這說(shuō)明設(shè)計(jì)的多尺度特征學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)能夠?qū)W習(xí)到細(xì)粒度特征,更有利于小尺度人臉目標(biāo)的檢測(cè).
表1 人臉檢測(cè)算法性能對(duì)比
圖2 為本算法設(shè)計(jì)網(wǎng)絡(luò)對(duì)不同圖像中人臉檢測(cè)的效果.在人臉密集度不高的場(chǎng)所,該算法都能準(zhǔn)確的完成人臉檢測(cè).在圖2(b)中對(duì)有部分遮擋的人臉也實(shí)現(xiàn)了準(zhǔn)確的檢測(cè);在圖2(c)中人臉密集且小尺度人臉的情況下,該算法同樣有很好的檢測(cè)效果,具有對(duì)小尺度人臉檢測(cè)的魯棒性.
圖2 不同場(chǎng)景下全卷積神經(jīng)網(wǎng)絡(luò)人臉檢測(cè)效果圖
針對(duì)非限定場(chǎng)景中人臉檢測(cè)問(wèn)題,筆者設(shè)計(jì)了一種全卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)結(jié)構(gòu),并設(shè)計(jì)了多尺度特征學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),有利于細(xì)粒度特征的學(xué)習(xí),在小尺度人臉檢測(cè)方面有較大的優(yōu)勢(shì).通過(guò)軟非極大值抑制方法一定程度上解決了人臉重疊時(shí)漏檢的問(wèn)題,提升了檢測(cè)模型的查全率.實(shí)驗(yàn)結(jié)果顯示,全卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)非限定場(chǎng)景下的人臉檢測(cè)有很好的檢測(cè)效果,在FDDB 測(cè)試集中的檢測(cè)準(zhǔn)確率達(dá)到96.6%,平均單張圖像的檢測(cè)時(shí)間0.83 s.
韶關(guān)學(xué)院學(xué)報(bào)2021年9期