王文智,羅安飛,廖清靜
(貴州警察學(xué)院,貴州貴陽 550000)
人臉定位是動(dòng)態(tài)人臉識(shí)別過程中的一項(xiàng)關(guān)鍵技術(shù),能夠定位視頻圖像序列中是否存在人臉、人臉位置及其在圖像中人臉的大小。目前,人臉定位的方法比較多,大致可以分為基于知識(shí)的方法、基于學(xué)習(xí)的方法。
基于知識(shí)的方法有:①文獻(xiàn)[1-2]采用YCgCr 色彩空間的人臉膚色模型,對(duì)圖像進(jìn)行膚色分割,利用人臉的幾何特征篩選出人臉區(qū)域;②文獻(xiàn)[3]提出了一種彩色圖像序列中的人臉定位和跟蹤的方法;③文獻(xiàn)[4]從不同視角下統(tǒng)計(jì)若干關(guān)鍵人臉特征點(diǎn)位置;④文獻(xiàn)[5-6]通過Haar 濾波分解面部特征的輪廓,實(shí)時(shí)進(jìn)行人臉關(guān)鍵點(diǎn)定位。
基于學(xué)習(xí)的方法有:①文獻(xiàn)[7-10]通過編碼人臉特征,自適應(yīng)定點(diǎn)優(yōu)化Adaboost 算法特征匹配進(jìn)行有效的定位;②文獻(xiàn)[11-12]通過Adaboost 算法提取人臉和非人臉的特征,利用支持向量機(jī)和CNN 來定位人臉;③文獻(xiàn)[13-17]借助卷積神經(jīng)網(wǎng)絡(luò)(CNN)的強(qiáng)大特征學(xué)習(xí)能力,提出利用級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)實(shí)現(xiàn)快速人臉檢測和人臉對(duì)齊。
這些方法在人臉定位上取得了較好的效果,但是仍然有一些類人臉區(qū)域被定位為人臉區(qū)域,而且在定位人臉過程中每次都是對(duì)整幅圖像的全部像素進(jìn)行搜索和定位,在空間上會(huì)消耗大量的處理時(shí)間,因此,本文提出了Adaboost 與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的人臉定位方法。
CNN 是一種多層感知器,網(wǎng)絡(luò)包括3 層,即輸入層、特征層、輸出層,特征層中含卷積層和采樣層。
卷積層是特征提取層,是用上一層的圖像和一個(gè)參數(shù)模板的加權(quán)和,再經(jīng)過一個(gè)偏置參數(shù)及激活函數(shù)后得到的一張?zhí)卣鲌D,卷積表達(dá)式如下:
采樣層是為了減少網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),采樣層中有采樣函數(shù)down(·)、權(quán)值參數(shù)β及偏置b,采樣層的表達(dá)式如下:
1.2.1 傳統(tǒng)CNN 結(jié)構(gòu)
通常用于人臉檢測的傳統(tǒng)字符CNN 結(jié)構(gòu)如圖1 所示,輸入層為32×32 的圖像,經(jīng)過5×5 卷積核卷積得到C1 層的特征圖像,C1 層的圖像大小為28×28;S2層是采樣層,用2×2 的塊采樣得到14×14 特征圖;C3層是卷積層,由16 個(gè)5×5 的卷積核卷積所得,C3 層的特征圖大小為10×10;S4 是對(duì)C3 層特征圖像進(jìn)行采樣得到,其大小為5×5;C5 層由120 個(gè)5×5 的卷積核卷積S4 層的特征圖,得到1×1 的特征圖120 個(gè),并把C5 層的這120 個(gè)1×1 的特征作為全連接層的輸入;F6 是含有84 個(gè)節(jié)點(diǎn)的隱含層;輸出層為10 個(gè)節(jié)點(diǎn)。

圖1 CNN 結(jié)構(gòu)
1.2.2 人臉與非人臉圖像的存儲(chǔ)形式
CNN 是二維圖像識(shí)別的網(wǎng)絡(luò),其輸入層為二維的圖像數(shù)據(jù),具體數(shù)據(jù)如下:假設(shè)有人臉和非人臉各為n1與n2張灰度圖像,圖像尺寸歸一化為m×n,則人臉與非人臉圖像的存儲(chǔ)形式可以表示為如圖2 所示的形式。

圖2 圖像的存儲(chǔ)形式
圖2中人臉與非人臉數(shù)據(jù)的矩陣大小為(m×n+2)×(n1+n2),上面的數(shù)據(jù)矩陣中的每一列表示一張圖像的數(shù)據(jù)及類別,每一列的前m×n個(gè)數(shù)據(jù)就是用一張圖像的每一行首尾相連接組成的,每一列的后2 個(gè)數(shù)據(jù)代表圖像的類別,比如人臉圖像的后兩個(gè)數(shù)據(jù)是用1 和0來表示,非人臉圖像則用0 和1 表示。
1.2.3 權(quán)重初始化
卷積層是通過對(duì)人臉圖像進(jìn)行卷積后得到的特征圖像,每一個(gè)卷積有一個(gè)卷積核和一個(gè)偏置參數(shù),初始化卷積核公式如下:
式中:kerl,i為第l層網(wǎng)絡(luò)的第i個(gè)特征圖的卷積核矩陣;rand(5)為任意生成大小為5×5 的隨機(jī)矩陣;fan_in為上一層(l-1)特征圖與卷積核kerl,i的連接個(gè)數(shù),即fan_in=inmapsl×25,inmapsl=outmapsl-1;fan_out為這一層l的特征圖與卷積核kerl,i的連接個(gè)數(shù),即fan_out=outmapsl×25,inmapsl、outmapsl分別為第l層的輸入特征圖與輸出特征圖。
對(duì)于第l層網(wǎng)絡(luò)的第i個(gè)特征圖bl,i設(shè)置為0。采樣層中的參數(shù)只有塊采樣權(quán)值參數(shù)βl,i及一個(gè)偏置bl,i,一般情況下,采樣層中選取2×2 的圖像塊進(jìn)行均值采樣、最大值采樣、像素點(diǎn)概率采樣。采樣層的目的是保持圖像中旋轉(zhuǎn)、平穩(wěn)、伸縮等的不變性,如均值采樣的參數(shù),初始化偏置b仍設(shè)置為0。
在全連接層中,第l層的權(quán)值矩陣初始化公式如下:
式中:t_outl為生成大小為inmapsl×outmapsl的(0~1)任意值的隨機(jī)矩陣。
1.2.4 前向傳播計(jì)算誤差
假設(shè)CNN 有L層,網(wǎng)絡(luò)中第l層為卷積層或者采樣層時(shí)設(shè)第l層的特征圖數(shù)目為outmapsl張,在網(wǎng)絡(luò)中若第l層為全連接層的節(jié)點(diǎn)個(gè)數(shù)設(shè)outmapsl,則網(wǎng)絡(luò)進(jìn)行前向傳播時(shí),按如下代碼進(jìn)行操作:

1.2.5 反向傳播修改權(quán)重
由前向傳播可計(jì)算出網(wǎng)絡(luò)的誤差,所以利用傳統(tǒng)BP 算法的反向方法修改各參數(shù),則網(wǎng)絡(luò)進(jìn)行反向傳播按如下代碼進(jìn)行操作:


即,權(quán)重更新如下:

混合高斯模型是一種圖像背景建模方法,其利用時(shí)間序列對(duì)每一點(diǎn)像素建立背景,故在t時(shí)刻圖像中某點(diǎn)i的像素值I(i,t)的混合高斯模型定義如下:
式中:I(i,t)為i點(diǎn)t時(shí)刻的像素值;K為高斯個(gè)數(shù),一般為3~5,本文取4;ω(i,t,k)為i位置t時(shí)刻的第k個(gè)高斯分布的權(quán)重,且有為第k個(gè)高斯分布的均值;δ(i,t,k)為第k個(gè)高斯分布的方差。
建立好背景后就可以進(jìn)行運(yùn)動(dòng)目標(biāo)檢測了,假設(shè)t時(shí)刻i點(diǎn)的像素值為I(i,t),則二值化的運(yùn)動(dòng)目標(biāo)區(qū)域D(i,t)表示為:
式中:T1為根據(jù)場景設(shè)置的一個(gè)經(jīng)驗(yàn)值(本文T1=30)。
Adaboost 是一種將多個(gè)弱分類器級(jí)聯(lián)在一起形成強(qiáng)分類器來定位特定目標(biāo)的算法,表達(dá)式如下:
式中:T為弱分類器的個(gè)數(shù);αt為第t個(gè)弱分類器在強(qiáng)分類器中所占權(quán)重的數(shù)值;ht(x)為樣本x的第t個(gè)弱分類器。
當(dāng)使用級(jí)聯(lián)分類器進(jìn)行人臉定位時(shí),由于運(yùn)動(dòng)目標(biāo)區(qū)域的背景與目標(biāo)本身都可能存在類似人臉的情況,所以用Adaboost 算法定位人臉時(shí),可能定位到虛假的人臉,因此,還需要再次判別人臉區(qū)域。再次定位人臉區(qū)域就是將Adaboost 算法定位到的人臉再一次輸入到1.2.1 節(jié)訓(xùn)練好的CNN 網(wǎng)絡(luò)中,判別是否為人臉,若CNN 網(wǎng)絡(luò)判別的圖像為人臉時(shí),則一定為人臉,否則所定位到的圖像就不是人臉。
為了驗(yàn)證本文所提的方法,對(duì)視頻序列圖像進(jìn)行分類實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖3 所示。

圖3 本文人臉定位過程
圖3是在不同場景下所進(jìn)行的人臉定位結(jié)果圖,第一、第二行為幼兒園小女孩的人臉定位過程,第三、第四行為幼兒園小男孩的人臉定位過程,第五、第六行為中年男子的人臉定位過程,第七、第八行為中年女性的人臉定位過程。
圖3中第一列為人臉定位系統(tǒng)中用來定位人臉的當(dāng)前幀圖像,第二列為運(yùn)用混合高斯模型所建立的背景與當(dāng)前幀圖像做差后得到的二值化運(yùn)動(dòng)目標(biāo)區(qū)域,第三列為在運(yùn)動(dòng)目標(biāo)區(qū)域使用Adaboost 算法進(jìn)行人臉粗定位,第四列為利用粗定位的人臉區(qū)域圖像再次進(jìn)行精確判斷得出的精定位人臉區(qū)。
由圖3 可以看出,雖然第二列二值化目標(biāo)出現(xiàn)了空洞現(xiàn)象,但是也不影響Adaboost 算法與CNN 算法在目標(biāo)圖像區(qū)域中對(duì)人臉定位的準(zhǔn)確度。從第三列Adaboost 算法定位的人臉可以知道,Adaboost 算法定位的人臉不夠準(zhǔn)確,容易產(chǎn)生多框和虛框的現(xiàn)象。然而再次經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)的細(xì)定位人臉第四列中,則可以消除Adaboost 算法所產(chǎn)生的不足,藍(lán)色框表示CNN 判別為非人臉區(qū)域,紅色框?yàn)槿四槄^(qū)域。從圖3的結(jié)果可以看出,Adaboost 算法不能解決虛假人臉時(shí),使用本文的方法則可以排除虛假人臉檢測。
本文首先利用高斯背景提取運(yùn)動(dòng)目標(biāo)區(qū)域,然后再通過Adaboost 算法粗定位人臉,最后再使用訓(xùn)練好的CNN 網(wǎng)絡(luò)對(duì)粗定位人臉區(qū)域進(jìn)一步精定位;方法中通過高斯背景提取目標(biāo)區(qū)域,大大減小了Adaboost 算法對(duì)全圖搜索粗定位人臉的時(shí)間。此外,再利用CNN網(wǎng)絡(luò)進(jìn)一步定位人臉區(qū)域,克服了Adaboost 算法在定位時(shí)多框及虛框等不足的現(xiàn)象。實(shí)驗(yàn)結(jié)果表明,本文的方法可以定位到準(zhǔn)確的人臉區(qū)域,對(duì)后續(xù)的人臉識(shí)別等工作具有一定的指導(dǎo)意義。