王 丹,趙宏偉,戴 毅,吳 彬
(1.吉林大學(xué) 《仿生工程學(xué)報(bào)》編輯部,長(zhǎng)春 130022; 2.吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,長(zhǎng)春 130012;3.中國(guó)石油撫順石化公司, 遼寧 撫順 113006)
人臉檢測(cè)與識(shí)別技術(shù)在公共安全[1]、環(huán)境監(jiān)控[2]等眾多應(yīng)用領(lǐng)域顯示其實(shí)用價(jià)值。人臉檢測(cè)是人臉圖像識(shí)別與分析的應(yīng)用基礎(chǔ),在圖像中確定人臉框的位置是人臉檢測(cè)的主要工作,如何快速、準(zhǔn)確地確定人臉區(qū)域在圖像中的位置,仍然是這一研究方向具有挑戰(zhàn)性的任務(wù)。
研究人員針對(duì)人臉檢測(cè)的不同指標(biāo)進(jìn)行了多方面的研究,也提出了多種人臉檢測(cè)方法[3-5]。比如,文獻(xiàn)[6]針對(duì)人臉識(shí)別中人臉對(duì)準(zhǔn)問(wèn)題提出了一個(gè)根據(jù)面部歸一化姿態(tài)自適應(yīng)對(duì)準(zhǔn)方法,加速了深度人臉識(shí)別過(guò)程。文獻(xiàn)[7]結(jié)合多尺度金字塔決策和雙流深度網(wǎng)絡(luò)解決異構(gòu)人臉識(shí)別問(wèn)題,獲得較好的分類(lèi)性能。
在人臉快速檢測(cè)方面,文獻(xiàn)[8]結(jié)合級(jí)聯(lián)決策樹(shù)提出一種快速人臉檢測(cè)算法,采用多個(gè)分類(lèi)器進(jìn)行檢測(cè),每個(gè)分類(lèi)器針對(duì)不同角度進(jìn)行學(xué)習(xí),算法計(jì)算復(fù)雜度較低,比較適合嵌入式應(yīng)用。文獻(xiàn)[9]結(jié)合K均值聚類(lèi)提出一種快速人臉識(shí)別SURF(speeded up robust features)改進(jìn)算法,利用窗口模板周?chē)畔?gòu)造描述符,呈現(xiàn)較好的識(shí)別效率。文獻(xiàn)[10]結(jié)合連續(xù)自適應(yīng)MeanShift算法和Kalman濾波器提出一種實(shí)時(shí)人臉跟蹤算法,通過(guò)人臉區(qū)域檢測(cè),利用加速魯棒特征提取關(guān)鍵點(diǎn),計(jì)算人臉邊界框中心和大小,獲得較好的實(shí)時(shí)跟蹤效果。文獻(xiàn)[11]結(jié)合深度學(xué)習(xí)方法提出一種深度金字塔快速無(wú)約束人臉檢測(cè)識(shí)別算法,能夠快速檢測(cè)大尺度變化的人臉。文獻(xiàn)[12]結(jié)合卷積神經(jīng)網(wǎng)絡(luò)提出一種快速人臉檢測(cè)方法,在完整特征圖上檢測(cè)人臉,通過(guò)完整特征進(jìn)行人臉檢測(cè),有效提高人臉檢測(cè)效率。
VJ框架是Viola-Joines針對(duì)人臉檢測(cè)、物體檢測(cè)提出的實(shí)時(shí)處理框架[13],該框架從檢測(cè)特征、分類(lèi)學(xué)習(xí)、級(jí)聯(lián)方式等方面建立了框架結(jié)構(gòu)。VJ檢測(cè)框架設(shè)計(jì)了雙矩形特征、三矩形特征和四矩形特征3類(lèi)Haar特征,通過(guò)Adaboost進(jìn)行特征分類(lèi)。VJ檢測(cè)框架的建立是開(kāi)創(chuàng)性的,為后續(xù)人臉檢測(cè)研究奠定了基礎(chǔ),研究人員針對(duì)VJ框架的不同方面也進(jìn)行了改進(jìn)。文獻(xiàn)[14]從檢測(cè)特征角度,通過(guò)引入通道特征對(duì)VJ框架進(jìn)行改進(jìn),將圖像通道擴(kuò)展到梯度幅度、定向梯度直方圖等多種類(lèi)型,形成一個(gè)聚合通道特征。文獻(xiàn)[15]從分類(lèi)學(xué)習(xí)角度,結(jié)合目標(biāo)檢測(cè)率和目標(biāo)執(zhí)行時(shí)間,確定弱級(jí)聯(lián)最優(yōu)值。文獻(xiàn)[16]從檢測(cè)模式角度,通過(guò)檢測(cè)目標(biāo)圖像特征外推方法,建立了多尺度精細(xì)采樣圖像特征金字塔,實(shí)現(xiàn)了目標(biāo)的快速檢測(cè)。
本文為了提高視頻人臉檢測(cè)的檢測(cè)速度,提出一種快速人臉檢測(cè)算法,算法的創(chuàng)新性在于連續(xù)視頻幀的人臉中心與人臉區(qū)域的預(yù)測(cè)。算法采用回歸分析方法進(jìn)行人臉中心位置坐標(biāo)擬合,并采用粗粒度預(yù)測(cè)方法降低算法的時(shí)間復(fù)雜度,通過(guò)優(yōu)化人臉區(qū)域位置寬度系數(shù)提高了人臉檢測(cè)準(zhǔn)確率。
視頻幀圖像中人臉運(yùn)動(dòng)具有連續(xù)性和相似性,通過(guò)視頻圖像序列可以預(yù)測(cè)人臉在視頻幀圖像中的位置。
針對(duì)單幅圖像進(jìn)行的人臉檢測(cè)由于缺少檢測(cè)歷史數(shù)據(jù)信息,需要遍歷整個(gè)圖像來(lái)確定人臉區(qū)域位置,即便是人臉區(qū)域相對(duì)整個(gè)圖像尺寸占比很小,這種全圖像遍歷的過(guò)程也不能省略,致使大面積的滑動(dòng)檢測(cè)空耗檢測(cè)時(shí)間,降低了目標(biāo)檢測(cè)速度。
對(duì)于連續(xù)視頻圖像的人臉檢測(cè),由于視頻圖像幀之間具有連續(xù)性,幀圖像之間存在相似性,所以,前一次檢測(cè)的人臉相關(guān)數(shù)據(jù)對(duì)后一次檢測(cè)具有重要的參考價(jià)值,可以作為歷史檢測(cè)數(shù)據(jù)予以積累,并作為新一幀圖像人臉位置的預(yù)測(cè)依據(jù)。通過(guò)人臉位置的確定,縮小了人臉遍歷檢測(cè)區(qū)域,進(jìn)而減少人臉遍歷檢測(cè)時(shí)間,提高人臉檢測(cè)速度,同時(shí)保持原有的人臉檢測(cè)準(zhǔn)確性。
在人臉圖像連續(xù)視頻中,通常情況下,人臉是處于運(yùn)動(dòng)中,這種運(yùn)動(dòng)狀態(tài)在不同的視頻圖像幀之間會(huì)保持連續(xù)性,如人臉的運(yùn)動(dòng)方向、運(yùn)動(dòng)距離是連續(xù)的(如圖1所示),這種運(yùn)動(dòng)狀態(tài)的連續(xù)性是人臉位置預(yù)測(cè)的依據(jù)。
實(shí)現(xiàn)人臉中心位置的預(yù)測(cè),首先要建立預(yù)測(cè)數(shù)據(jù)集,本文算法采用人臉中心位置預(yù)測(cè)圖像幀i的前k個(gè)圖像幀作為預(yù)測(cè)數(shù)據(jù)集,其數(shù)據(jù)集合為
(1)
(1)式中:Pi(xi,yi)是第i幀圖像的人臉中心位置坐標(biāo),其數(shù)據(jù)值是(xi,yi);k是用于建立預(yù)測(cè)數(shù)據(jù)集的圖像幀的個(gè)數(shù),這k個(gè)圖像幀是人臉中心位置預(yù)測(cè)圖像幀i的前k個(gè)圖像幀;i是需要進(jìn)行人臉中心位置預(yù)測(cè)的圖像幀的相對(duì)序號(hào),i>k。
圖1 連續(xù)視頻段中的不同幀圖像Fig.1 Different frame images in continuous video segments
ri=P′(x,y)
(2)
為了實(shí)現(xiàn)這個(gè)目標(biāo),建立訓(xùn)練數(shù)據(jù),如(3)式、(4)式,進(jìn)而建立訓(xùn)練數(shù)據(jù)集,如(5)式、(6)式。
(3)
(4)
(5)
(6)
(5)—(6)式中,n為在回歸分析方法中使用的數(shù)據(jù)訓(xùn)練集的樣本個(gè)數(shù)。在數(shù)據(jù)處理中,回歸分析算法使用文獻(xiàn)[17]中的擬合函數(shù)最小二乘法,在實(shí)驗(yàn)中,擬合函數(shù)也用到文獻(xiàn)[18]的梯度下降方法。
通過(guò)擬合函數(shù)實(shí)現(xiàn)對(duì)連續(xù)視頻人臉圖像進(jìn)行人臉位置中心點(diǎn)坐標(biāo)的預(yù)測(cè),預(yù)測(cè)過(guò)程標(biāo)注狀態(tài)如圖2所示。圖2中,用實(shí)心圓、空心圓、空方框表示圖像幀中人臉中心位置的坐標(biāo)數(shù)據(jù)點(diǎn),其中,實(shí)心圓顯示的坐標(biāo)數(shù)據(jù)點(diǎn)表示預(yù)測(cè)圖像幀中人臉中心的坐標(biāo)數(shù)據(jù)位置;空心圓顯示的坐標(biāo)數(shù)據(jù)點(diǎn)表示當(dāng)前圖像幀中人臉中心的坐標(biāo)數(shù)據(jù)位置;空方框顯示的坐標(biāo)數(shù)據(jù)點(diǎn)表示前k-1個(gè)圖像幀中人臉中心的坐標(biāo)數(shù)據(jù)位置。
本文算法采用第i幀圖像的前k幀圖像的人臉中心坐標(biāo)數(shù)據(jù)預(yù)測(cè)第i幀圖像的人臉中心坐標(biāo)位置。實(shí)驗(yàn)對(duì)k=4到k=20分別做了測(cè)試,結(jié)果顯示,k在[4,20]取值對(duì)算法精度的影響不大,但k=4時(shí)可最快實(shí)現(xiàn)預(yù)測(cè),所以,本文實(shí)驗(yàn)采用k=4。
圖2 連續(xù)視頻段中人臉位置預(yù)測(cè)Fig.2 Face location prediction in continuous video segments
本文人臉識(shí)別是在圖像幀中人臉中心位置和人臉區(qū)域位置都確定的條件下進(jìn)行的。圖像幀中人臉中心的位置是通過(guò)一個(gè)坐標(biāo)點(diǎn)來(lái)確定的。圖像幀中人臉區(qū)域位置通常是通過(guò)一個(gè)矩形框來(lái)確定。
人臉區(qū)域矩形框的尺寸不但影響人臉檢測(cè)的準(zhǔn)確度,同時(shí)也影響到人臉檢測(cè)的檢測(cè)速度。從人臉中心位置和人臉區(qū)域位置對(duì)人臉檢測(cè)的準(zhǔn)確度和檢測(cè)速度2個(gè)指標(biāo)的影響來(lái)看,相對(duì)來(lái)說(shuō),人臉中心位置比人臉區(qū)域位置對(duì)人臉檢測(cè)的準(zhǔn)確度和檢測(cè)速度的影響更大一些,從降低算法復(fù)雜度的角度,本文算法采用粗粒度預(yù)測(cè)人臉區(qū)域位置策略,并通過(guò)優(yōu)化人臉區(qū)域位置系數(shù)來(lái)提高人臉檢測(cè)準(zhǔn)確率。
本文算法采用正方形框來(lái)確定人臉區(qū)域位置。如果正方形框的寬度(即正方形的邊長(zhǎng))為w,那么第i個(gè)圖像幀中人臉區(qū)域位置的正方形框的寬度就可以表示為wi,對(duì)應(yīng)地,第i-1個(gè)圖像幀中人臉區(qū)域位置的正方形框的寬度就可以表示為wi-1。如果相鄰圖像幀之間的正方形框尺寸的變化量記為增量wΔ,那么,第i個(gè)圖像幀與第i-1個(gè)圖像幀之間正方形框尺寸的增量就可以表示為如(7)式所示的變化量,這個(gè)增量可能是正數(shù),也可能是負(fù)數(shù)。
wΔi=wi-wi-1
(7)
(7)式中,wΔi表示第i個(gè)圖像幀與第i-1個(gè)圖像幀之間正方形框尺寸的增量。
如前所述,本文算法中的人臉中心位置的預(yù)測(cè),是把第i幀圖像的前k幀圖像的人臉中心位置坐標(biāo)作為預(yù)測(cè)數(shù)據(jù)集。為保持算法數(shù)據(jù)的共享性,提高基礎(chǔ)數(shù)據(jù)的利用率,在進(jìn)行人臉區(qū)域位置預(yù)測(cè)時(shí),也同樣采用這些數(shù)據(jù)。按照(7)式,對(duì)k幀圖像之間依次進(jìn)行正方形框尺寸增量計(jì)算,并按(8)式進(jìn)行累加、求平均值。
(8)
(8)式中,wmeani表示第i個(gè)圖像幀與前k個(gè)圖像幀兩兩相鄰幀之間正方形框尺寸增量的平均值。
(9)
(9)式中,α是人臉區(qū)域位置正方形框?qū)挾鹊恼{(diào)節(jié)系數(shù)。適當(dāng)調(diào)節(jié)寬度系數(shù)α,可保證人臉區(qū)域有效地框于正方形之內(nèi),實(shí)驗(yàn)結(jié)果顯示,在選擇α=(15±5)%的條件下,人臉區(qū)域位置預(yù)測(cè)取得較好的效果。
由于本文算法在進(jìn)行人臉中心位置預(yù)測(cè)和人臉區(qū)域位置預(yù)測(cè)時(shí),都要使用前k幀圖像的相關(guān)數(shù)據(jù),因此在運(yùn)行本文算法之前,需要完成數(shù)據(jù)積累的過(guò)程,比如k設(shè)定為5,n設(shè)定為10,就需要完成前15個(gè)圖像幀的數(shù)據(jù)積累,這15個(gè)圖像幀一般可以使用傳統(tǒng)算法進(jìn)行圖像幀全遍歷檢測(cè)。
本文算法通過(guò)回歸分析方法對(duì)連續(xù)視頻中圖像幀的人臉中心位置坐標(biāo)數(shù)據(jù)進(jìn)行擬合,對(duì)圖1、圖2所示的連續(xù)視頻段進(jìn)行了人臉檢測(cè)實(shí)驗(yàn),圖3所示為圖像幀中人臉中心位置坐標(biāo)數(shù)據(jù)的分布情況。
從圖3中數(shù)據(jù)的分布情況看,x軸數(shù)據(jù)分布和y軸數(shù)據(jù)分布都比較適合二次多項(xiàng)式對(duì)應(yīng)的形式,即便是y軸數(shù)據(jù)局部分布相對(duì)不夠平滑,但多數(shù)情況是滿足形式符合性的。這些人臉中心位置坐標(biāo)數(shù)據(jù)的分布趨勢(shì)呈現(xiàn)4種類(lèi)型:
1)上升分布。人臉中心位置坐標(biāo)數(shù)據(jù)隨著連續(xù)視頻的時(shí)間進(jìn)度呈上升趨勢(shì)。
2)下降分布。人臉中心位置坐標(biāo)數(shù)據(jù)隨著連續(xù)視頻的時(shí)間進(jìn)度呈下降趨勢(shì)。
3)局部極大值分布。連續(xù)視頻中的人臉中心位置坐標(biāo)數(shù)據(jù)呈現(xiàn)局部極大值狀態(tài)。包含極大值點(diǎn)的時(shí)間序列,其數(shù)據(jù)呈先升后降的狀態(tài)。
4)局部極小值分布。連續(xù)視頻中的人臉中心位置坐標(biāo)數(shù)據(jù)呈現(xiàn)局部極小值狀態(tài)。包含極小值點(diǎn)的時(shí)間序列,其數(shù)據(jù)呈先降后升的狀態(tài)。
圖3 人臉中心位置坐標(biāo)數(shù)據(jù)分布Fig.3 Data distribution of face center position coordinates
對(duì)上升分布、下降分布、局部極大值分布和局部極小值分布的數(shù)據(jù)分別采用線性擬合方法、二次多項(xiàng)式擬合方法進(jìn)行數(shù)據(jù)擬合,數(shù)據(jù)擬合的結(jié)果如圖4所示。由圖4可見(jiàn),采用二次多項(xiàng)式擬合方法比采用線性擬合方法能夠得到更好的數(shù)據(jù)擬合結(jié)果。
確定人臉中心位置坐標(biāo)數(shù)據(jù)后,可以進(jìn)行人臉區(qū)域位置預(yù)測(cè)。實(shí)驗(yàn)環(huán)境為Intel Core i5-4200M,2.5 GHz,640×480的圖像,OpenCV的VJ框架。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5a為利用OpenCV的VJ框架進(jìn)行的人臉區(qū)域位置檢測(cè)結(jié)果,圖5b為利用本文算法進(jìn)行的人臉區(qū)域位置檢測(cè)結(jié)果。由圖5可見(jiàn),采用OpenCV算法和采用本文算法都可以很好地檢測(cè)到人臉區(qū)域位置,但2種方法檢測(cè)結(jié)果的FPS(frames per second)顯示出它們的差別。利用OpenCV算法進(jìn)行的人臉區(qū)域位置檢測(cè)結(jié)果顯示為FPS=8,F(xiàn)PS=9,實(shí)際上,多次實(shí)驗(yàn)結(jié)果顯示其FPS值基本是在9幀左右。利用本文算法進(jìn)行的人臉區(qū)域位置檢測(cè)結(jié)果顯示為FPS=32,F(xiàn)PS=29,多次實(shí)驗(yàn)結(jié)果顯示本文算法的FPS值基本是在29幀左右。可見(jiàn),本文算法對(duì)人臉檢測(cè)的速度有較大的提升,具有良好的實(shí)時(shí)性。
圖5 人臉區(qū)域位置檢測(cè)結(jié)果Fig.5 Face Region Location Detection
檢測(cè)速度是視頻人臉檢測(cè)的重要指標(biāo),是視頻人臉識(shí)別實(shí)時(shí)性應(yīng)用的重要前提。本文采用回歸分析方法預(yù)測(cè)連續(xù)視頻中人臉中心位置坐標(biāo),通過(guò)調(diào)整區(qū)域?qū)挾认禂?shù)確定人臉區(qū)域位置,實(shí)驗(yàn)結(jié)果表明,本文算法有效減少了視頻人臉檢測(cè)遍歷區(qū)域,縮短了視頻人臉特征提取區(qū)域的時(shí)間,更加適合視頻人臉檢測(cè)的實(shí)時(shí)性應(yīng)用。