劉天保
摘 要:近年來,隨著深度學(xué)習(xí)的迅猛發(fā)展,人臉檢測(cè)算法準(zhǔn)確度已有很大提升。模型越復(fù)雜,檢測(cè)速度越慢,設(shè)計(jì)一種準(zhǔn)確度與速度兼顧的人臉檢測(cè)模型尤為必要?;贔aceBoxes人臉檢測(cè)算法框架,提出一種基于深層卷積主干網(wǎng)絡(luò)的改進(jìn)方法,并在人臉檢測(cè)基準(zhǔn)數(shù)據(jù)集中進(jìn)行測(cè)試實(shí)驗(yàn)。其在FDDB數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果顯示,檢測(cè)正確率達(dá)95%,比傳統(tǒng)方法提高1.67%。該算法在保證實(shí)時(shí)性的同時(shí)提升了檢測(cè)準(zhǔn)確率,可應(yīng)用于追求更高準(zhǔn)確率的人臉檢測(cè)系統(tǒng)。
關(guān)鍵詞:人臉檢測(cè); 深度學(xué)習(xí); 卷積神經(jīng)網(wǎng)絡(luò)
DOI:10. 11907/rjdk. 201219
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)010-0066-05
Abstract: Thanks to the rapid development of deep learning in recent years, the accuracy of face detection algorithm has been greatly improved compared with the earlier algorithms. However, the more complex the model detection speed will be slower, so the design of a face detection model with both accuracy and speed has become a major topic in this field. Based on FaceBoxes, a face detection algorithm framework, this paper proposes an improved method of deep convolutional backbone network, and conducts test experiments in the face detection benchmark data set. The experimental results on the FDDB data set showed that the detection accuracy reached 95%, which was 1.67% higher than the traditional method. The algorithm in this paper not only guarantees real-time performance but also improves the accuracy of detection, which can be used in more accurate face detection systems.
Key Words: face detection; deep learning; convolutional neural network
0 引言
目前,人臉檢測(cè)技術(shù)已廣泛應(yīng)用于人們的日常生活中,如機(jī)器人[1]、自動(dòng)駕駛[2]、逃犯追捕[3]、考勤打卡[4]、門禁系統(tǒng)[5]等都用到了人臉檢測(cè)技術(shù)。人臉檢測(cè)是計(jì)算機(jī)視覺和模式識(shí)別的應(yīng)用方向之一,是一項(xiàng)解決其它人臉相關(guān)工作(如身份識(shí)別、表情識(shí)別、性別識(shí)別等)的前導(dǎo)工作。將檢測(cè)到的人臉圖像切割后作為后續(xù)信息輸入,可大大縮減機(jī)器計(jì)算量。以卷積神經(jīng)網(wǎng)絡(luò)算法為主的各種人臉檢測(cè)算法已在不同的人臉檢測(cè)基準(zhǔn)測(cè)試數(shù)據(jù)集中表現(xiàn)出令人滿意的準(zhǔn)確率。然而,它仍然面臨一項(xiàng)挑戰(zhàn),即在真實(shí)環(huán)境中的圖像變化復(fù)雜,存在姿態(tài)、光照、遮擋、變形等問題。人臉檢測(cè)可以看作是目標(biāo)檢測(cè)的一個(gè)特例問題,可借鑒如Faster-RCNN[6]、SSD[7]等目標(biāo)檢測(cè)算法,并在這些經(jīng)典算法基礎(chǔ)上再針對(duì)人的面部特征進(jìn)行改進(jìn)。與以往人臉檢測(cè)算法目的不同,本文旨在提升人臉檢測(cè)精確度,同時(shí)保證識(shí)別速率在原模型水平范圍內(nèi),使得模型可以在單核CPU中正常工作。
1 相關(guān)工作
近20年來,人臉檢測(cè)技術(shù)得到了廣泛研究與應(yīng)用。人臉檢測(cè)發(fā)展共分為兩個(gè)時(shí)期,即早期手工特征提取加機(jī)器學(xué)習(xí)方法、近期基于卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法。
早期研究包括基于級(jí)聯(lián)的方法和基于可變形部件模型(Deformable Part Models,DPM)的方法。Jones等[8]于2003年提出基于Haar類特征的級(jí)聯(lián)AdaBoost分類器進(jìn)行人臉檢測(cè); Yang等[9]使用更高級(jí)的特性與分類器實(shí)現(xiàn)結(jié)果優(yōu)化。除基于級(jí)聯(lián)的人臉檢測(cè)方法外,還有一種使用DPM的方法[10]。DPM算法依據(jù)改進(jìn)后的HOG特征、SVM分類器和滑動(dòng)窗口檢測(cè)思想,針對(duì)目標(biāo)多視角問題,采用多組件策略,針對(duì)目標(biāo)自身形變問題,采用基于圖結(jié)構(gòu)的部件模型策略。此外,人臉檢測(cè)研究最新進(jìn)展主要集中在基于深度學(xué)習(xí)方法上。Zhang等[11]采用構(gòu)造級(jí)聯(lián)CNNs,使用一種由粗粒度到細(xì)粒度的策略學(xué)習(xí)人臉檢測(cè)器;Yu等[12]引入IoU(Intersection-over-Union)損失函數(shù)概念,利用其最小化方法擬合預(yù)測(cè)結(jié)果框和原始標(biāo)注框(Ground-Truths);Zhang等[13]提出一種基于密度計(jì)算的候選框生成設(shè)計(jì),以解決低像素人臉檢測(cè)率低的問題。
早期方法的優(yōu)點(diǎn)是檢測(cè)速度快,檢測(cè)過程可以在CPU中實(shí)時(shí)進(jìn)行。其缺點(diǎn)也很明顯,由于是手工提取特征,提取的姿態(tài)、光照、遮擋、變形等問題魯棒性不強(qiáng),因此在復(fù)雜環(huán)境中檢測(cè)準(zhǔn)確率不高?;贑NN的人臉檢測(cè)在檢測(cè)準(zhǔn)確率上與傳統(tǒng)方法相比提升較大,但也存在一些問題:模型參數(shù)規(guī)模龐大、計(jì)算量較大,很多算法模型在GPU中的推理速度達(dá)數(shù)十秒,效率不佳。
2 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)與訓(xùn)練分析
2.1 人臉檢測(cè)流程
人臉檢測(cè)流程和目標(biāo)檢測(cè)流程類似,如圖1所示。其原理簡(jiǎn)單而言就是輸入一幅圖像、一些候選框和正確的標(biāo)注框,然后模型在眾多候選框中挑選,使得選擇輸出的結(jié)果框盡量與正確的標(biāo)注框重合。上述方法的關(guān)鍵點(diǎn)可分為以下幾部分:
(1)圖像預(yù)處理。對(duì)輸入前的圖像數(shù)據(jù)作歸一處理,使得所有圖像輸入尺寸統(tǒng)一。
(2)候選框(Anchor)選取策略設(shè)計(jì)。候選框是可作為最終檢測(cè)結(jié)果的框的集合,需根據(jù)經(jīng)驗(yàn)決定選取方案,目的是在保證將原始標(biāo)注框(Ground-Truths Box)包含在內(nèi)的前提下,盡可能降低候選框數(shù)量。因?yàn)檫^多的候選框會(huì)提高算法復(fù)雜度,使網(wǎng)絡(luò)變得笨重,訓(xùn)練和推理效率變低。
(3)CNN網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)。設(shè)計(jì)CNN網(wǎng)絡(luò)結(jié)構(gòu)后,為方框位置和類別損失選擇兩種損失函數(shù)。
2.2 網(wǎng)絡(luò)設(shè)計(jì)
2.2.1 網(wǎng)絡(luò)整體結(jié)構(gòu)
網(wǎng)絡(luò)結(jié)構(gòu)主要采納FaceBoxes算法(下文也稱Baseline),并進(jìn)行適當(dāng)調(diào)整,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
特征提取層的作用是讓網(wǎng)絡(luò)提取得到的特征圖能盡可能地表達(dá)圖像所有特征,其提取結(jié)果好壞將直接影響最終算法精確度。多尺度學(xué)習(xí)層的名字也是根據(jù)這一層的作用而取,其作用有兩種:一是多種尺寸的感受野,效果可以通過Inception層實(shí)現(xiàn);二是多種尺寸的特征圖,通過將設(shè)計(jì)好的不同尺寸候選框與Inception3、Conv4和Conv5層輸出的特征圖相關(guān)聯(lián)而實(shí)現(xiàn)。
2.2.2 圖像預(yù)處理階段
預(yù)處理階段所使用的方法均為常用圖像預(yù)處理方法,具體方法如下:
(1)隨機(jī)裁剪與填充。隨機(jī)裁剪能夠增強(qiáng)小目標(biāo)檢測(cè),然后將隨機(jī)裁剪后的圖像進(jìn)行黑邊填充至分辨率為? ? ?1 024?1 024,這樣可以保證經(jīng)過處理后輸入圖像尺寸統(tǒng)一。
(2)顏色失真處理。使用文獻(xiàn)[14]中提出的顏色失真策略,降低光照對(duì)識(shí)別的影響。
(3)隨機(jī)旋轉(zhuǎn)。每張圖片有50%的概率進(jìn)行180°垂直翻轉(zhuǎn)。
(4)邊緣目標(biāo)框保留策略。將經(jīng)過上述預(yù)處理的圖像中,中心不在圖像中的目標(biāo)框過濾掉,然后在保留下來的邊緣目標(biāo)框中,再過濾掉像素值小于20的部分目標(biāo)框。
2.2.3 訓(xùn)練階段
本文對(duì)原算法中的主干網(wǎng)絡(luò)結(jié)構(gòu)(Rapid Digested Convolutional Layers,RDCL層)進(jìn)行調(diào)整,使用三層卷積層和兩層池化層。目的是使1 024?1 024的圖像快速降維至32?32,縮小網(wǎng)絡(luò)輸入,從而減少計(jì)算量,起到提速效果。主干網(wǎng)絡(luò)輸入輸出參數(shù)如表1所示。
表1中的卷積層(Conv)均使用CReLU作為激活函數(shù)。CReLU激活函數(shù)是對(duì)輸入數(shù)據(jù)x取相反數(shù)后,分別針對(duì)x和-x使用ReLU激活函數(shù),用Concat操作將輸出結(jié)果連接,從而使得輸出維度拓展至原來的兩倍,這樣做可在不增加參數(shù)的情況下充分利用數(shù)據(jù)。CReLU定義式如式(1)所示。
后續(xù)多尺度學(xué)習(xí)層沿用FaceBoxes中MSCL層(Multiple Scale Convolutional Layers)的思想,使用三層Inception和兩個(gè)兩層卷積進(jìn)行多任務(wù)學(xué)習(xí),該學(xué)習(xí)策略來源于SSD算法[2]中的MultiBox Loss思想。本實(shí)驗(yàn)使用的Inception結(jié)構(gòu)如圖3所示,其中4個(gè)分支操作分別為:①卷積核1?1的卷積,再使用3?3過濾器的平均池化;②卷積核1?1的卷積;③卷積核3?3的卷積層加一個(gè)卷積核1?1的卷積層;④兩個(gè)卷積核3?3的卷積層(用更少參數(shù)代替5?5卷積核)加一個(gè)卷積核1?1的卷積層。使用Inception層將輸入的特征圖用不同尺寸的卷積核和池化組合分別進(jìn)行卷積計(jì)算,最后將4種操作生成的特征圖合并,從而達(dá)到豐富感受野種類的作用。3個(gè)Inception層最后可以得到7種尺寸不同的感受野,用于檢測(cè)32?32、64?64及128?128大小的候選框。再連接一個(gè)3?3卷積層和1?1卷積層組成的卷積模塊conv4,得到比上述尺寸更大的感受野,用于檢測(cè)256?256大小的候選框,conv5結(jié)構(gòu)及作用都與conv4相同,用于檢測(cè)512?512大小的候選框。
候選框的生成沿用Faceboxes中的Anchor Density策略[13],對(duì)于1 024?1 024的輸入圖像,分別選取邊長(zhǎng)為32、64、128、256和512的候選框。對(duì)于像素較低(邊長(zhǎng)為32、64像素)的框,進(jìn)行平移擴(kuò)展。匹配框保留策略為:保留匹配框與目標(biāo)框交并比相對(duì)較大的匹配框,也即重合率高的留下。設(shè)定一個(gè)閾值,規(guī)定保留比值超出閾值的匹配框,如0.45。
損失函數(shù)使用多任務(wù)損失(Multi-task Loss),利用Softmax Loss(分類概率)和Smooth L1 Loss(邊框回歸)對(duì)分類概率和邊框回歸(Bounding box regression)進(jìn)行聯(lián)合訓(xùn)練。Softmax Loss歸為是否為人臉二分類問題。令x為分類類別,c為置信度,l為預(yù)測(cè)框位置,g為真實(shí)框位置,N為匹配框數(shù)量,Lconf是分類問題置信損失,Lloc是邊框定位損失,α為超參數(shù),多任務(wù)損失公式如式(2)所示。
2.3 訓(xùn)練參數(shù)
初始化參數(shù)使用He初始化方法,這是由于CReLU屬于ReLU類的激活函數(shù),ReLU類激活函數(shù)都不是關(guān)于0對(duì)稱,He初始化[15]適用于此類激活函數(shù)。
梯度下降方法使用帶有動(dòng)量的隨機(jī)梯度下降(SGD + Momentum),其中動(dòng)量參數(shù)Momentum設(shè)置為0.9,權(quán)重衰減參數(shù)設(shè)置為0.000 5。
學(xué)習(xí)率調(diào)整函數(shù)使用文獻(xiàn)[16]中提到的Gradual Warmup方法,訓(xùn)練迭代Epoch次數(shù)為400,前100個(gè)Epoch可使用較大的學(xué)習(xí)率加速梯度下降從而加快學(xué)習(xí)速率,設(shè)置初始學(xué)習(xí)率為0.001,Warmup Epoch為100,衰減函數(shù)使用衰減系數(shù)σ=1.000 1的指數(shù)衰減,即每次迭代的學(xué)習(xí)率為上一次學(xué)習(xí)率的1.000 1次方,由于學(xué)習(xí)率小于1,每次上述冪運(yùn)算會(huì)產(chǎn)生衰減效果。
2.4 非極大值抑制
測(cè)試時(shí)使用NMS(非極大值抑制)消除重疊檢測(cè)框,保留精度最高的。NMS的思想來源于Fast-RCNN[17],NMS的目的是去除重疊檢測(cè)框,將不是重疊區(qū)域中與Ground-Truth的IoU最大的框都去除掉。由于模型得到的候選框是交并比大于閾值的所有框,會(huì)出現(xiàn)一張臉被多個(gè)候選框覆蓋的情況,這時(shí)利用NMS,過濾多余選擇框,保留一個(gè)局部最大值作為本次輸出結(jié)果。
3 人臉檢測(cè)實(shí)驗(yàn)
3.1 環(huán)境介紹
訓(xùn)練集使用WIDER FACE基準(zhǔn)測(cè)試公開數(shù)據(jù)集的訓(xùn)練子集,其中包含12 880張帶有標(biāo)注的數(shù)據(jù),并在AFW、PASCAL和FDDB 3個(gè)公開數(shù)據(jù)集上進(jìn)行測(cè)試。本文實(shí)驗(yàn)環(huán)境配置如表2所示。
3.2 實(shí)驗(yàn)結(jié)果分析
采用隨機(jī)抽樣方法,分別將1 000張、3 000張圖片及所有圖片作為訓(xùn)練集進(jìn)行訓(xùn)練并作對(duì)比實(shí)驗(yàn),可以分析出該算法在少量訓(xùn)練樣本時(shí)的表現(xiàn)。實(shí)驗(yàn)結(jié)果如表3所示。
由表3可知,在樣本數(shù)量較少時(shí),改進(jìn)算法平均精度受到的影響沒有Baseline的大,也即在訓(xùn)練集規(guī)模較小時(shí)識(shí)別效果不會(huì)很差,更適用于少量樣本情況。
將改進(jìn)算法與其它算法作對(duì)比,按照數(shù)據(jù)集規(guī)模從小到大順序依次介紹在AFW數(shù)據(jù)集、PASCAL數(shù)據(jù)集和FDDB數(shù)據(jù)集的測(cè)試結(jié)果。
AFW數(shù)據(jù)集共包含205張圖片,其中含有473張人臉,實(shí)驗(yàn)結(jié)果如表4所示??梢钥闯?,改進(jìn)算法識(shí)別準(zhǔn)確率優(yōu)于其它(Baseline、DPM[10]、Headhunter[18]、Structured Models[19]、TSM[20])算法,測(cè)試結(jié)果可視化展示如圖4所示。
PASCAL數(shù)據(jù)集包含851張圖片,共有1 335張人臉。圖5展示了各類算法在PASCAL數(shù)據(jù)集上的PR曲線(Precision-Recall Curves),可以看出改進(jìn)方法的PR曲線優(yōu)于其它方法(Baseline、DPM[10]、Headhunter[18]、 Structred Models[19]、TSM[20]、OpenCV)。部分測(cè)試結(jié)果展示如圖6所示。
FDDB數(shù)據(jù)集來源于Yahoo新聞,包含2 845張圖片和5 171張標(biāo)注人臉,其數(shù)據(jù)特點(diǎn)是低像素人臉較多,環(huán)境等因素較前兩種數(shù)據(jù)集更復(fù)雜。與Baseline和其它幾種算法(Headhunter[18]、DPM[10]、Structured Models[19]、Face++、Viola Jones[3])進(jìn)行對(duì)比,結(jié)果如圖7所示。結(jié)果顯示,改進(jìn)方法的ROC曲線整體優(yōu)于其它幾種算法,相比Baseline提高1.67個(gè)百分點(diǎn),精確度達(dá)95%。部分測(cè)試結(jié)果如圖8所示。
3.3 運(yùn)行效率分析
性能提升會(huì)伴隨著一定運(yùn)行效率的損失,以圖片像素較為平均的FDDB(350?450左右)為例,使用CPU處理效率由原來的14fps降至10fps,GPU效率也稍有損失,但仍可以保證在實(shí)時(shí)(21fps)標(biāo)準(zhǔn)。
4 結(jié)語
本文在FaceBoxes算法基礎(chǔ)上提出更深層的骨干網(wǎng)絡(luò)結(jié)構(gòu),在訓(xùn)練初始化參數(shù)及學(xué)習(xí)率衰減策略等方面也作出相應(yīng)調(diào)整。在訓(xùn)練少量樣本時(shí),檢測(cè)正確率較原算法提升較大,在數(shù)據(jù)集較大情況下也有小幅提升,在提升正確率的同時(shí)仍可保證檢測(cè)速度,并在本文實(shí)驗(yàn)環(huán)境中實(shí)時(shí)運(yùn)行。在用戶數(shù)據(jù)集規(guī)模較小時(shí),可以優(yōu)先選用優(yōu)化后的算法。
參考文獻(xiàn):
[1] 劉晨. 基于機(jī)器人視覺系統(tǒng)的人臉檢測(cè)技術(shù)研究[J]. 電子設(shè)計(jì)工程, 2019, 27(5):115-118.
[2] 陳寶靖,張旭. 自動(dòng)駕駛中的疲勞預(yù)測(cè)模型[J]. 中國(guó)新通信, 2017,19(16):53.
[3] 梁爽. 基于人臉檢測(cè)識(shí)別技術(shù)的網(wǎng)上追逃系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海:上海交通大學(xué),2016.
[4] 管靈霞. 基于人臉識(shí)別的智慧工地考勤系統(tǒng)設(shè)計(jì)[D]. 蕪湖:安徽工程大學(xué), 2018.
[5] 惠婷. 智能門禁系統(tǒng)中人臉識(shí)別算法的研究[D]. 西安:西安工業(yè)大學(xué), 2016.
[6] 董蘭芳,張軍挺. 基于FasterR-CNN的人臉檢測(cè)方法[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2017,26(12):262-267.
[7] 方帥,李永毅,劉曉欣,等. 一種改進(jìn)的基于SSD模型的多尺度人臉檢測(cè)算法[J]. 信息技術(shù)與信息化, 2019,44(2):39-42.
[8] JONES M,VIOLA P. Fast multi-view face detection[C]. Proc. of Computer Vision and Pattern Recognition, 2003, 3(14): 2.
[9] YANG B, YAN J, LEI Z, et al. Aggregate channel features for multi-view face detection[C]. IEEE international joint conference on biometrics, 2014: 1-8.
[10] RANJAN R, PATEL V M, CHELLAPPA R. A deep pyramid deformable part model for face detection[C]. 2015 IEEE 7th international conference on biometrics theory, applications and systems (BTAS).? IEEE, 2015: 1-8.
[11] ZHANG K, ZHANG Z, LI Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks[J].? IEEE Signal Processing Letters, 2016, 23(10): 1499-1503.
[12] YU J,JIANG Y,WANG Z,et al.Unitbox: an advanced object detection network[C]. Proceedings of the 24th ACM International Conference on Multimedia,2016: 516-520.
[13] ZHANG S, ZHU X, LEI Z, et al. Faceboxes: A CPU real-time face detector with high accuracy[C].? 2017 IEEE International Joint Conference on Biometrics (IJCB).? IEEE, 2017: 1-9.
[14] HOWARD A G. Some improvements on deep convolutional neural network based image classification[DB/OL]. http://arsiv.org/abs/1312.5402,2013.
[15] HE K,ZHANG X,REN S,et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[C]. Proceedings of the IEEE international conference on computer vision. 2015: 1026-1034.
[16] GOYAL P, DOLL?R P, GIRSHICK R, et al. Accurate, large minibatch sgd: Training imagenet in 1 hour[DB/OL].? https://arxiv.org/abs/1706.02677, 2017.
[17] GIRSHICK R. Fast R-CNN[C].? Proceedings of the IEEE International Conference on Computer Vision. 2015: 1440-1448.
[18] MATHIAS M, BENENSON R, PEDERSOLI M, et al. Face detection without bells and whistles[C]. European Conference on Computer Vision. Springer, 2014: 720-735.
[19] YAN J, ZHANG X, LEI Z, et al. Face detection by structural models[J].? Image and Vision Computing, 2014, 32(10): 790-799.
[20] ZHU X, RAMANAN D. Face detection, pose estimation, and landmark localization in the wild[C]. 2012 IEEE Conference on Computer Vision and Pattern Recognition, 2012: 2879-2886.
(責(zé)任編輯:孫 娟)