李艷靈,王莎莎,楊志鵬
(信陽師范學(xué)院 a. 計(jì)算機(jī)與信息技術(shù)學(xué)院; b. 圖書館, 河南 信陽 464000)
人臉識(shí)別作為計(jì)算機(jī)視覺領(lǐng)域的關(guān)鍵技術(shù)之一,已經(jīng)被廣泛應(yīng)用于檔案管理系統(tǒng)、安全驗(yàn)證系統(tǒng)、小區(qū)安防等多個(gè)領(lǐng)域。近年來,隨著深度神經(jīng)網(wǎng)絡(luò)在目標(biāo)監(jiān)測領(lǐng)域的興起,學(xué)者們提出了很多基于深度學(xué)習(xí)的人臉檢測方法。例如,LI等[1]提出了Cascade CNN人臉檢測方法,該方法在檢測過程中出現(xiàn)了因增加校正網(wǎng)絡(luò)致使計(jì)算時(shí)長增加的問題。REDMON等[2]提出了占據(jù)速度優(yōu)勢的YOLO算法,但不能很好地滿足小群體檢測準(zhǔn)確率的實(shí)際要求。
采用區(qū)域選取網(wǎng)絡(luò)(Region Proposal Network, RPN)來提取候選區(qū)域的R-CNN[3]是目標(biāo)檢測中經(jīng)典的算法之一,但因提取多個(gè)候選區(qū)域的原因致使運(yùn)算速度變得緩慢。相比于采用RPN網(wǎng)絡(luò)的R-CNN, FAST-RCNN[4]采用卷積神經(jīng)網(wǎng)絡(luò)選取區(qū)域的方式大大提高了檢測速度。
ZHANG等[5]提出的MTCNN算法在一些場景的檢測過程中平衡了檢測速度與準(zhǔn)確率。相關(guān)學(xué)者在此基礎(chǔ)上提出了基于MTCNN改進(jìn)的人臉檢測算法[6-7],但大多都是針對(duì)簡單場景中的人臉檢測任務(wù),而面對(duì)一些復(fù)雜人臉檢測任務(wù)時(shí),該算法的實(shí)時(shí)性與準(zhǔn)確性仍達(dá)不到實(shí)際要求。因此,本文提出一種改進(jìn)的非極大值抑制(non-maximum suppression, NMS)算法來優(yōu)化MTCNN人臉檢測算法。實(shí)驗(yàn)結(jié)果表明:改進(jìn)的算法在不損耗其魯棒性的同時(shí)提高了人臉檢測的準(zhǔn)確率。
MTCNN算法中人臉檢測的實(shí)質(zhì)就是篩選人臉候選框的過程,在這個(gè)過程中使用的篩選算法是NMS算法。該算法在目標(biāo)檢測領(lǐng)域被廣泛應(yīng)用,其主要目的是更好地排除冗余的檢測框,保留精準(zhǔn)度更高的回歸窗口。
在傳統(tǒng)的NMS算法中,交并比(Intersection over Union, IOU)閾值的設(shè)置會(huì)直接影響到候選框的保留或者刪除,若閾值過高則達(dá)不到過濾的作用,而閾值設(shè)置過低則會(huì)刪除掉大量的候選框,難以實(shí)現(xiàn)分類平衡。因此,在實(shí)際應(yīng)用的過程中找到一個(gè)合適的閾值是困難的。
IOU是判斷人臉框擾動(dòng)程度的指標(biāo),判斷的對(duì)象為正樣本、局部樣本和負(fù)樣本,各自對(duì)應(yīng)的閾值分別為IOU>0.65、0.4 圖1 兩個(gè)區(qū)域的交與并Fig. 1 Intersection and union of two regions IOU的計(jì)算公式為: (1) 其中:A表示人臉候選框的面積,B表示訓(xùn)練數(shù)據(jù)集標(biāo)定框的面積,∩表示兩者的交,∪表示兩者的并,最終輸出候選框的精度可根據(jù)這個(gè)比值的大小去判斷。 本文提出一種改進(jìn)的NMS算法,該算法沒有選擇直接刪除IOU大于預(yù)設(shè)閾值的候選框,而是將其保留,同時(shí)降低它的置信度,重新定義規(guī)則,再次比較。該算法的數(shù)學(xué)表達(dá)式如公式(2)所示。改進(jìn)的NMS算法流程如算法1所示。 (2) 其中:Nt為閾值,M表示置信度打分最高的候選框,bi表示人臉候選框,si表示相應(yīng)回歸框。本文采用的是線性加權(quán)的計(jì)算方式,該計(jì)算方式僅包含了1次比較、1次乘法和1次減法,計(jì)算量較小,并且可以緩解分類不平衡問題。 算法1改進(jìn)后的Better-NMS算法 輸入: T={(s1,score1),(s2,score2),…,(sN,scoreN)},其中si表示第i個(gè)窗口,scorei∈[0,1]表示第i個(gè)窗口的置信度打分。 輸出: result[1,2,…,N],result[i]用來表示窗口是否被刪除,為1表示被刪除,為0表示不被刪除。 (1)將輸入的置信度打分按照score從大到小排序,result[1,2,…,N]←0,Nt表示窗口是否被刪除的閾值。 (2) fori←1 toNdo (3) forj←i+1 toNdo (4) if (result[i=1]) then (5) continue (6) end (7) if (result[j=0]) then (8) if (IOU(si,sj)>Nt) then (9)si=si(1-IOU(M,bi)) (10) end (11) result[j=1] (12) end (13) end (14) end MTCNN人臉檢測算法使用改進(jìn)的NMS算法在篩選人臉候選框時(shí),能夠避免一刀切的情況發(fā)生。根據(jù)公式(2)對(duì)圖像候選框的分類置信度進(jìn)行修改,若該候選框的新置信度低于預(yù)設(shè)閾值,則刪除;否則在維持新置信度的情況下保留該框;循環(huán)迭代至所有候選框都被標(biāo)記為保留或刪除時(shí),結(jié)束迭代,最終輸出檢測結(jié)果。改進(jìn)的MTCNN算法能夠更好地排除冗余的圖像候選框,有效緩解了分類不平衡問題,同時(shí)保留了精準(zhǔn)度更高的回歸窗口,進(jìn)而確保輸出的檢測結(jié)果更加準(zhǔn)確。 MTCNN模型訓(xùn)練的實(shí)質(zhì)是一個(gè)為了實(shí)現(xiàn)人臉分類、人臉回歸以及人臉關(guān)鍵點(diǎn)定位等多種任務(wù)的學(xué)習(xí)過程。MTCNN模型在訓(xùn)練之前要先依據(jù)IOU將訓(xùn)練集分為正樣本、負(fù)樣本、局部樣本和關(guān)鍵點(diǎn)樣本4個(gè)部分,4個(gè)部分的比例大約為1∶3∶1∶2。不同任務(wù)的學(xué)習(xí)所利用的訓(xùn)練集樣本不同:可以利用正樣本和負(fù)樣本的數(shù)據(jù)訓(xùn)練和學(xué)習(xí)人臉分類任務(wù);可以利用局部樣本和正樣本的數(shù)據(jù)訓(xùn)練和學(xué)習(xí)人臉回歸任務(wù);可以利用關(guān)鍵點(diǎn)樣本進(jìn)行訓(xùn)練和學(xué)習(xí)人臉關(guān)鍵點(diǎn)定位任務(wù)。 MTCNN模型的3個(gè)子網(wǎng)絡(luò)在訓(xùn)練過程中主要實(shí)現(xiàn)人臉分類、人臉回歸以及人臉關(guān)鍵點(diǎn)定位,所以損失函數(shù)也包含3個(gè)部分。每個(gè)部分損失函數(shù)都使用梯度下降法進(jìn)行系數(shù)調(diào)整。 (1)人臉分類任務(wù) 人臉分類任務(wù)屬于一個(gè)二分類問題,網(wǎng)絡(luò)的輸入結(jié)果為人臉圖像的概率值,因此可以在網(wǎng)絡(luò)的訓(xùn)練過程中采用交叉熵?fù)p失函數(shù)進(jìn)行二分類任務(wù)的學(xué)習(xí),具體的計(jì)算公式如式(3): (3) (2)人臉回歸任務(wù) 人臉回歸反映的是真實(shí)人臉與訓(xùn)練得到的候選框之間的偏移,最終輸出的值是人臉候選框的位置信息,這些信息主要由兩部分組成:一部分為人臉候選框的左上角的二維坐標(biāo),另一部分是候選框窗口的高度和寬度??梢圆捎镁讲顡p失函數(shù)對(duì)邊框進(jìn)行修正學(xué)習(xí),其計(jì)算公式如式(4): (4) (3)人臉關(guān)鍵點(diǎn)定位任務(wù) 人臉關(guān)鍵點(diǎn)定位任務(wù)與人臉回歸任務(wù)都是回歸問題,均可利用均方差損失函數(shù)進(jìn)行關(guān)鍵點(diǎn)的定位,兩者都是將網(wǎng)絡(luò)訓(xùn)練得到的預(yù)測值與數(shù)據(jù)集中的真實(shí)值之間的差值最小化。同樣采用均方差損失函數(shù)去對(duì)邊框進(jìn)行修正學(xué)習(xí),具體損失值的計(jì)算公式如式(5): (5) 最后,針對(duì)一個(gè)樣本集中不同類型訓(xùn)練子樣本與不同損失函數(shù)之間的關(guān)系,以及各個(gè)損失之間的偏重,級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)最終的損失函數(shù)如公式(6)所示。 (6) WIDER Face[8]數(shù)據(jù)集共有32 203張人臉圖像,而帶有人臉標(biāo)注的圖片有393 703張。該數(shù)據(jù)集提供了多種環(huán)境的人臉圖像,并且隨機(jī)按照4∶1∶5的比例劃分為訓(xùn)練集、驗(yàn)證集和測試集。這些人臉圖像不僅規(guī)模較大,而且拍攝的場景也比較復(fù)雜。也正因該數(shù)據(jù)集呈現(xiàn)出極端的復(fù)雜性,所以標(biāo)注和評(píng)價(jià)的信息更為準(zhǔn)確。因此,本算法選用該數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。WIDER Face數(shù)據(jù)集的部分樣本如圖2(a)所示。 圖2 數(shù)據(jù)集樣本示例Fig. 2 Data set sample example FDDB[9]數(shù)據(jù)集是在自然環(huán)境下拍攝的,共計(jì)2845張,包括彩色圖像和灰度圖像,有5171張標(biāo)注了詳細(xì)人臉坐標(biāo)和標(biāo)簽的人臉。數(shù)據(jù)集中包含了不同的姿態(tài)、陰影、低分辨率和失焦等情況下的人臉圖片,是一個(gè)難度較大的人臉測試數(shù)據(jù)集。FDDB數(shù)據(jù)集的部分樣本如圖2(b)所示。 實(shí)驗(yàn)是在配置為i7-6700處理器,8 G內(nèi)存,GTX1060顯卡,Windows操作系統(tǒng)下進(jìn)行的。 為了驗(yàn)證改進(jìn)的MTCNN算法在人臉檢測任務(wù)上的性能,實(shí)驗(yàn)選擇VJ[10]算法、PICO[11]算法、Faster RCNN[12]算法以及傳統(tǒng)的MTCNN算法與改進(jìn)的算法在WIDER Face和FDDB數(shù)據(jù)集上進(jìn)行了訓(xùn)練和評(píng)估測試。 圖3(a)和(b)分別展示了改進(jìn)的MTCNN算法在WIDER Face數(shù)據(jù)集上的部分檢測結(jié)果和在FDDB數(shù)據(jù)集上的部分檢測結(jié)果,識(shí)別結(jié)果中左上角的標(biāo)注為人臉檢測的置信度。從圖中可以看出,改進(jìn)的MTCNN算法具有較好的檢測效果。具體實(shí)驗(yàn)結(jié)果如表1所示。 圖3 數(shù)據(jù)集上的部分人臉檢測結(jié)果Fig. 3 Face detection results on the face data set 表1 數(shù)據(jù)集WIDER Face 上的實(shí)驗(yàn)結(jié)果Tab. 1 Experimental results on the data set WIDER Face 由表1可知,經(jīng)過NMS算法優(yōu)化的MTCNN算法在WIDER Face數(shù)據(jù)集上表現(xiàn)出很好的檢測性能。從實(shí)驗(yàn)結(jié)果可以看出,VJ和PICO檢測算法的召回率極低,而改進(jìn)的MTCNN算法與Faster RCNN均有較高的召回率,但兩者相比,改進(jìn)的MTCNN算法在召回率上高出后者約12%。這表明改進(jìn)的MTCNN算法擁有更好的過濾候選框能力,能夠很好地解決候選框篩選不均衡的問題。同時(shí),實(shí)驗(yàn)結(jié)果顯示改進(jìn)的MTCNN算法的檢測準(zhǔn)確率較改進(jìn)前的MTCNN算法的檢測準(zhǔn)確率高,這表明改進(jìn)的MTCNN算法檢測性能得到了提升。 為了測試所提算法在復(fù)雜度更高的環(huán)境中的檢測能力,在FDDB數(shù)據(jù)集上再次訓(xùn)練評(píng)估了5種算法。根據(jù)各個(gè)算法在FDDB數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,計(jì)算并繪制了受試者工作特征曲線(receiver operating characteristic curve, ROC)。對(duì)比ROC曲線如圖4所示。 圖4 ROC曲線對(duì)比圖Fig. 4 ROC curve comparison chart 由圖4可知,VJ算法與PICO算法較其他3種算法,隨機(jī)性較弱,特征性分布不夠廣。在RCO曲線中,若誤檢率越接近于0,召回率越接近于1,則說明該算法的性能越好;若ROC曲線與坐標(biāo)軸圍成的面積(Area Under Curve, AUC)越接近1,則說明檢測方法真實(shí)性越高。從實(shí)驗(yàn)結(jié)果中可以明顯地看出,改進(jìn)的MTCNN人臉檢測算法在誤檢率為0時(shí),召回率約為0.535,顯然高于包括傳統(tǒng)MTCNN算法在內(nèi)的4種對(duì)比算法,并且它的AUC值也高于這4種對(duì)比算法,所以改進(jìn)的MTCNN算法泛化能力較強(qiáng),能夠很好地區(qū)分出人臉區(qū)域和非人臉區(qū)域,檢測精準(zhǔn)度也比較高。 綜上所述,改進(jìn)的MTCNN人臉檢測算法與傳統(tǒng)的人臉檢測算法相比,在兩個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集上都有著很好的檢測性能。與其他人臉檢測方法相比,改進(jìn)的MTCNN算法具有快速篩除大量非人臉區(qū)域,識(shí)別更精準(zhǔn)等優(yōu)點(diǎn)。 提出了一種改進(jìn)的多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)人臉檢測算法,該改進(jìn)算法對(duì)圖像候選框的分類置信度進(jìn)行了修改,重新定義了判斷人臉框擾動(dòng)程度的規(guī)則,對(duì)于IOU大于預(yù)設(shè)閾值的候選框,沒有選擇直接刪除,而是將其保留的同時(shí)降低其置信度,有效地避免了一刀切的情況發(fā)生。實(shí)驗(yàn)結(jié)果表明:該改進(jìn)方法能夠更好地排除冗余的圖像候選框,在有效緩解分類不平衡問題的同時(shí)保留精準(zhǔn)度更高的回歸窗口,進(jìn)而確保輸出的檢測結(jié)果更加準(zhǔn)確,算法的檢測準(zhǔn)確率更高。2 模型訓(xùn)練
3 實(shí)驗(yàn)結(jié)果與分析
3.1 數(shù)據(jù)集構(gòu)建
3.2 實(shí)驗(yàn)環(huán)境
3.3 檢測性能對(duì)比
4 結(jié)論