劉天保
摘 要:近年來,隨著深度學(xué)習(xí)的迅猛發(fā)展,人臉檢測算法準(zhǔn)確度已有很大提升。模型越復(fù)雜,檢測速度越慢,設(shè)計一種準(zhǔn)確度與速度兼顧的人臉檢測模型尤為必要?;贔aceBoxes人臉檢測算法框架,提出一種基于深層卷積主干網(wǎng)絡(luò)的改進(jìn)方法,并在人臉檢測基準(zhǔn)數(shù)據(jù)集中進(jìn)行測試實驗。其在FDDB數(shù)據(jù)集上的實驗結(jié)果顯示,檢測正確率達(dá)95%,比傳統(tǒng)方法提高1.67%。該算法在保證實時性的同時提升了檢測準(zhǔn)確率,可應(yīng)用于追求更高準(zhǔn)確率的人臉檢測系統(tǒng)。
關(guān)鍵詞:人臉檢測; 深度學(xué)習(xí); 卷積神經(jīng)網(wǎng)絡(luò)
DOI:10. 11907/rjdk. 201219
中圖分類號:TP312文獻(xiàn)標(biāo)識碼:A 文章編號: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 引言
目前,人臉檢測技術(shù)已廣泛應(yīng)用于人們的日常生活中,如機器人[1]、自動駕駛[2]、逃犯追捕[3]、考勤打卡[4]、門禁系統(tǒng)[5]等都用到了人臉檢測技術(shù)。人臉檢測是計算機視覺和模式識別的應(yīng)用方向之一,是一項解決其它人臉相關(guān)工作(如身份識別、表情識別、性別識別等)的前導(dǎo)工作。將檢測到的人臉圖像切割后作為后續(xù)信息輸入,可大大縮減機器計算量。以卷積神經(jīng)網(wǎng)絡(luò)算法為主的各種人臉檢測算法已在不同的人臉檢測基準(zhǔn)測試數(shù)據(jù)集中表現(xiàn)出令人滿意的準(zhǔn)確率。然而,它仍然面臨一項挑戰(zhàn),即在真實環(huán)境中的圖像變化復(fù)雜,存在姿態(tài)、光照、遮擋、變形等問題。人臉檢測可以看作是目標(biāo)檢測的一個特例問題,可借鑒如Faster-RCNN[6]、SSD[7]等目標(biāo)檢測算法,并在這些經(jīng)典算法基礎(chǔ)上再針對人的面部特征進(jìn)行改進(jìn)。與以往人臉檢測算法目的不同,本文旨在提升人臉檢測精確度,同時保證識別速率在原模型水平范圍內(nèi),使得模型可以在單核CPU中正常工作。
1 相關(guān)工作
近20年來,人臉檢測技術(shù)得到了廣泛研究與應(yīng)用。人臉檢測發(fā)展共分為兩個時期,即早期手工特征提取加機器學(xué)習(xí)方法、近期基于卷積神經(jīng)網(wǎng)絡(luò)的人臉檢測方法。
早期研究包括基于級聯(lián)的方法和基于可變形部件模型(Deformable Part Models,DPM)的方法。Jones等[8]于2003年提出基于Haar類特征的級聯(lián)AdaBoost分類器進(jìn)行人臉檢測; Yang等[9]使用更高級的特性與分類器實現(xiàn)結(jié)果優(yōu)化。除基于級聯(lián)的人臉檢測方法外,還有一種使用DPM的方法[10]。DPM算法依據(jù)改進(jìn)后的HOG特征、SVM分類器和滑動窗口檢測思想,針對目標(biāo)多視角問題,采用多組件策略,針對目標(biāo)自身形變問題,采用基于圖結(jié)構(gòu)的部件模型策略。此外,人臉檢測研究最新進(jìn)展主要集中在基于深度學(xué)習(xí)方法上。Zhang等[11]采用構(gòu)造級聯(lián)CNNs,使用一種由粗粒度到細(xì)粒度的策略學(xué)習(xí)人臉檢測器;Yu等[12]引入IoU(Intersection-over-Union)損失函數(shù)概念,利用其最小化方法擬合預(yù)測結(jié)果框和原始標(biāo)注框(Ground-Truths);Zhang等[13]提出一種基于密度計算的候選框生成設(shè)計,以解決低像素人臉檢測率低的問題。
早期方法的優(yōu)點是檢測速度快,檢測過程可以在CPU中實時進(jìn)行。其缺點也很明顯,由于是手工提取特征,提取的姿態(tài)、光照、遮擋、變形等問題魯棒性不強,因此在復(fù)雜環(huán)境中檢測準(zhǔn)確率不高。基于CNN的人臉檢測在檢測準(zhǔn)確率上與傳統(tǒng)方法相比提升較大,但也存在一些問題:模型參數(shù)規(guī)模龐大、計算量較大,很多算法模型在GPU中的推理速度達(dá)數(shù)十秒,效率不佳。
2 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計與訓(xùn)練分析
2.1 人臉檢測流程
人臉檢測流程和目標(biāo)檢測流程類似,如圖1所示。其原理簡單而言就是輸入一幅圖像、一些候選框和正確的標(biāo)注框,然后模型在眾多候選框中挑選,使得選擇輸出的結(jié)果框盡量與正確的標(biāo)注框重合。上述方法的關(guān)鍵點可分為以下幾部分:
(1)圖像預(yù)處理。對輸入前的圖像數(shù)據(jù)作歸一處理,使得所有圖像輸入尺寸統(tǒng)一。
(2)候選框(Anchor)選取策略設(shè)計。候選框是可作為最終檢測結(jié)果的框的集合,需根據(jù)經(jīng)驗決定選取方案,目的是在保證將原始標(biāo)注框(Ground-Truths Box)包含在內(nèi)的前提下,盡可能降低候選框數(shù)量。因為過多的候選框會提高算法復(fù)雜度,使網(wǎng)絡(luò)變得笨重,訓(xùn)練和推理效率變低。
(3)CNN網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計。設(shè)計CNN網(wǎng)絡(luò)結(jié)構(gòu)后,為方框位置和類別損失選擇兩種損失函數(shù)。
2.2 網(wǎng)絡(luò)設(shè)計
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層實現(xiàn);二是多種尺寸的特征圖,通過將設(shè)計好的不同尺寸候選框與Inception3、Conv4和Conv5層輸出的特征圖相關(guān)聯(lián)而實現(xiàn)。
2.2.2 圖像預(yù)處理階段
預(yù)處理階段所使用的方法均為常用圖像預(yù)處理方法,具體方法如下:
(1)隨機裁剪與填充。隨機裁剪能夠增強小目標(biāo)檢測,然后將隨機裁剪后的圖像進(jìn)行黑邊填充至分辨率為? ? ?1 024?1 024,這樣可以保證經(jīng)過處理后輸入圖像尺寸統(tǒng)一。
(2)顏色失真處理。使用文獻(xiàn)[14]中提出的顏色失真策略,降低光照對識別的影響。
(3)隨機旋轉(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)練階段
本文對原算法中的主干網(wǎng)絡(luò)結(jié)構(gòu)(Rapid Digested Convolutional Layers,RDCL層)進(jìn)行調(diào)整,使用三層卷積層和兩層池化層。目的是使1 024?1 024的圖像快速降維至32?32,縮小網(wǎng)絡(luò)輸入,從而減少計算量,起到提速效果。主干網(wǎng)絡(luò)輸入輸出參數(shù)如表1所示。
表1中的卷積層(Conv)均使用CReLU作為激活函數(shù)。CReLU激活函數(shù)是對輸入數(shù)據(jù)x取相反數(shù)后,分別針對x和-x使用ReLU激活函數(shù),用Concat操作將輸出結(jié)果連接,從而使得輸出維度拓展至原來的兩倍,這樣做可在不增加參數(shù)的情況下充分利用數(shù)據(jù)。CReLU定義式如式(1)所示。
后續(xù)多尺度學(xué)習(xí)層沿用FaceBoxes中MSCL層(Multiple Scale Convolutional Layers)的思想,使用三層Inception和兩個兩層卷積進(jìn)行多任務(wù)學(xué)習(xí),該學(xué)習(xí)策略來源于SSD算法[2]中的MultiBox Loss思想。本實驗使用的Inception結(jié)構(gòu)如圖3所示,其中4個分支操作分別為:①卷積核1?1的卷積,再使用3?3過濾器的平均池化;②卷積核1?1的卷積;③卷積核3?3的卷積層加一個卷積核1?1的卷積層;④兩個卷積核3?3的卷積層(用更少參數(shù)代替5?5卷積核)加一個卷積核1?1的卷積層。使用Inception層將輸入的特征圖用不同尺寸的卷積核和池化組合分別進(jìn)行卷積計算,最后將4種操作生成的特征圖合并,從而達(dá)到豐富感受野種類的作用。3個Inception層最后可以得到7種尺寸不同的感受野,用于檢測32?32、64?64及128?128大小的候選框。再連接一個3?3卷積層和1?1卷積層組成的卷積模塊conv4,得到比上述尺寸更大的感受野,用于檢測256?256大小的候選框,conv5結(jié)構(gòu)及作用都與conv4相同,用于檢測512?512大小的候選框。
候選框的生成沿用Faceboxes中的Anchor Density策略[13],對于1 024?1 024的輸入圖像,分別選取邊長為32、64、128、256和512的候選框。對于像素較低(邊長為32、64像素)的框,進(jìn)行平移擴(kuò)展。匹配框保留策略為:保留匹配框與目標(biāo)框交并比相對較大的匹配框,也即重合率高的留下。設(shè)定一個閾值,規(guī)定保留比值超出閾值的匹配框,如0.45。
損失函數(shù)使用多任務(wù)損失(Multi-task Loss),利用Softmax Loss(分類概率)和Smooth L1 Loss(邊框回歸)對分類概率和邊框回歸(Bounding box regression)進(jìn)行聯(lián)合訓(xùn)練。Softmax Loss歸為是否為人臉二分類問題。令x為分類類別,c為置信度,l為預(yù)測框位置,g為真實框位置,N為匹配框數(shù)量,Lconf是分類問題置信損失,Lloc是邊框定位損失,α為超參數(shù),多任務(wù)損失公式如式(2)所示。
2.3 訓(xùn)練參數(shù)
初始化參數(shù)使用He初始化方法,這是由于CReLU屬于ReLU類的激活函數(shù),ReLU類激活函數(shù)都不是關(guān)于0對稱,He初始化[15]適用于此類激活函數(shù)。
梯度下降方法使用帶有動量的隨機梯度下降(SGD + Momentum),其中動量參數(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個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,每次上述冪運算會產(chǎn)生衰減效果。
2.4 非極大值抑制
測試時使用NMS(非極大值抑制)消除重疊檢測框,保留精度最高的。NMS的思想來源于Fast-RCNN[17],NMS的目的是去除重疊檢測框,將不是重疊區(qū)域中與Ground-Truth的IoU最大的框都去除掉。由于模型得到的候選框是交并比大于閾值的所有框,會出現(xiàn)一張臉被多個候選框覆蓋的情況,這時利用NMS,過濾多余選擇框,保留一個局部最大值作為本次輸出結(jié)果。
3 人臉檢測實驗
3.1 環(huán)境介紹
訓(xùn)練集使用WIDER FACE基準(zhǔn)測試公開數(shù)據(jù)集的訓(xùn)練子集,其中包含12 880張帶有標(biāo)注的數(shù)據(jù),并在AFW、PASCAL和FDDB 3個公開數(shù)據(jù)集上進(jìn)行測試。本文實驗環(huán)境配置如表2所示。
3.2 實驗結(jié)果分析
采用隨機抽樣方法,分別將1 000張、3 000張圖片及所有圖片作為訓(xùn)練集進(jìn)行訓(xùn)練并作對比實驗,可以分析出該算法在少量訓(xùn)練樣本時的表現(xiàn)。實驗結(jié)果如表3所示。
由表3可知,在樣本數(shù)量較少時,改進(jìn)算法平均精度受到的影響沒有Baseline的大,也即在訓(xùn)練集規(guī)模較小時識別效果不會很差,更適用于少量樣本情況。
將改進(jìn)算法與其它算法作對比,按照數(shù)據(jù)集規(guī)模從小到大順序依次介紹在AFW數(shù)據(jù)集、PASCAL數(shù)據(jù)集和FDDB數(shù)據(jù)集的測試結(jié)果。
AFW數(shù)據(jù)集共包含205張圖片,其中含有473張人臉,實驗結(jié)果如表4所示??梢钥闯觯倪M(jìn)算法識別準(zhǔn)確率優(yōu)于其它(Baseline、DPM[10]、Headhunter[18]、Structured Models[19]、TSM[20])算法,測試結(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)。部分測試結(jié)果展示如圖6所示。
FDDB數(shù)據(jù)集來源于Yahoo新聞,包含2 845張圖片和5 171張標(biāo)注人臉,其數(shù)據(jù)特點是低像素人臉較多,環(huán)境等因素較前兩種數(shù)據(jù)集更復(fù)雜。與Baseline和其它幾種算法(Headhunter[18]、DPM[10]、Structured Models[19]、Face++、Viola Jones[3])進(jìn)行對比,結(jié)果如圖7所示。結(jié)果顯示,改進(jìn)方法的ROC曲線整體優(yōu)于其它幾種算法,相比Baseline提高1.67個百分點,精確度達(dá)95%。部分測試結(jié)果如圖8所示。
3.3 運行效率分析
性能提升會伴隨著一定運行效率的損失,以圖片像素較為平均的FDDB(350?450左右)為例,使用CPU處理效率由原來的14fps降至10fps,GPU效率也稍有損失,但仍可以保證在實時(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ù)據(jù)集較大情況下也有小幅提升,在提升正確率的同時仍可保證檢測速度,并在本文實驗環(huán)境中實時運行。在用戶數(shù)據(jù)集規(guī)模較小時,可以優(yōu)先選用優(yōu)化后的算法。
參考文獻(xiàn):
[1] 劉晨. 基于機器人視覺系統(tǒng)的人臉檢測技術(shù)研究[J]. 電子設(shè)計工程, 2019, 27(5):115-118.
[2] 陳寶靖,張旭. 自動駕駛中的疲勞預(yù)測模型[J]. 中國新通信, 2017,19(16):53.
[3] 梁爽. 基于人臉檢測識別技術(shù)的網(wǎng)上追逃系統(tǒng)設(shè)計與實現(xiàn)[D]. 上海:上海交通大學(xué),2016.
[4] 管靈霞. 基于人臉識別的智慧工地考勤系統(tǒng)設(shè)計[D]. 蕪湖:安徽工程大學(xué), 2018.
[5] 惠婷. 智能門禁系統(tǒng)中人臉識別算法的研究[D]. 西安:西安工業(yè)大學(xué), 2016.
[6] 董蘭芳,張軍挺. 基于FasterR-CNN的人臉檢測方法[J]. 計算機系統(tǒng)應(yīng)用, 2017,26(12):262-267.
[7] 方帥,李永毅,劉曉欣,等. 一種改進(jìn)的基于SSD模型的多尺度人臉檢測算法[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é)任編輯:孫 娟)