付 波 徐 超 趙熙臨 鄭 璇
(湖北工業(yè)大學(xué)太陽能高校利用及儲(chǔ)能運(yùn)行控制湖北省重點(diǎn)實(shí)驗(yàn)室 湖北 武漢 430068)
隨著技術(shù)發(fā)展,人臉識(shí)別已成為當(dāng)前計(jì)算機(jī)技術(shù)領(lǐng)域的一個(gè)研究熱點(diǎn)[1],并逐漸融入社會(huì)生活,目前已經(jīng)廣泛應(yīng)用到安全監(jiān)測、目標(biāo)跟蹤等方面。該技術(shù)通過提取人的臉部特征點(diǎn),利用統(tǒng)計(jì)學(xué)原理獲得特征表達(dá),建立人臉特征模板與被測者的人臉進(jìn)行特征匹配,從而確定被測者的身份信息。
對(duì)于人臉部特征的提取,當(dāng)前較成熟的技術(shù)是LBP算法。LBP算法最早由 Ojala等[2-3]在1994年提出,通過比較3×3模板中心像素與其鄰域像素的大小,得到鄰域像素的二進(jìn)制代碼,從而得到LBP特征,該算法原理簡單、計(jì)算量小,但容易缺失局部紋理細(xì)節(jié)。趙建民等[4]在局部二值模式的紋理提取基礎(chǔ)上,引進(jìn)一種新型局部三值模式(LTP)紋理特征提取方法,此方法對(duì)光照變化和噪聲更加魯棒,但其編碼存在不確定性,在其灰度范圍內(nèi)不具有嚴(yán)格的單調(diào)不變性。王憲等[5]提出了基于分塊的完備局部二值模式 (CLBP)人臉識(shí)別算法,該算法對(duì)原始人臉圖像進(jìn)行分塊處理,對(duì)每一分塊的圖像進(jìn)行局部差異值和中心像素灰度值分析,加強(qiáng)了中心像素與鄰域像素的聯(lián)系,但計(jì)算復(fù)雜、耗時(shí)長。
本文提出的最值平均LBP算法,取3×3模板九個(gè)像素值的方差,若方差在限定范圍內(nèi),將中心像素周圍八個(gè)像素的最大值與最小值的平均值作為閾值進(jìn)行比較,否則取九個(gè)像素的中值作為閾值進(jìn)行比較,避免了LBP出現(xiàn)部分因中心像素值偏大或偏小以致湮沒細(xì)節(jié)的現(xiàn)象,保留更多局部細(xì)節(jié)。然后運(yùn)用PCA對(duì)特征矩陣維數(shù)進(jìn)行降維,提取有效信息,利用K近鄰分類算法對(duì)不同人臉進(jìn)行識(shí)別分類,實(shí)驗(yàn)結(jié)果證明了該算法的有效性。
如圖1所示,局部二值模式將圖像中某像素點(diǎn)灰度值與其鄰域像素點(diǎn)灰度值逐一比較。
圖1中灰色區(qū)域?yàn)殚撝担?Δ為起始點(diǎn),→為方向。圖1(a)是某像素點(diǎn)3×3移動(dòng)模板,將中心像素灰度值設(shè)定為閾值,若鄰域8個(gè)像素值大于等于閾值,將該鄰域像素值設(shè)置為1,反之為0。設(shè)置起始點(diǎn)后,可得一個(gè)8位二進(jìn)制數(shù),如圖1(b)所示。從起始點(diǎn)按(順時(shí)針方向)設(shè)置后各像素權(quán)重,如圖1(c)所示,將中心像素點(diǎn)周圍的11110001二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù),即是該中心像素點(diǎn)的LBP值(LBP=1+16+32+64+128=241),如圖1(d)所示。其公式為:
(1)
式中:s是標(biāo)記中心像素周圍八個(gè)近鄰像素點(diǎn),Ps代表其像素值,Pj代表中心像素點(diǎn)的像素值,LBPpj表示LBP碼,t(r)是符號(hào)函數(shù)。提取人臉的LBP特征圖像如圖2所示,其中圖2(a)為原始人臉灰度圖像,圖2(b)為LBP特征圖像。
(a) 原始灰度圖 (b) LBP特征圖圖2 特征提取
為了提取更多有效的特征信息,將人臉圖像進(jìn)行均等分塊,并將每個(gè)分塊的LBP特征進(jìn)行直方圖統(tǒng)計(jì)[6],然后串連成特征向量,得到直方圖矢量,本文使用3×3分塊模式,如圖3所示。
LBP算法原理簡單,計(jì)算量較小,并且在各像素相對(duì)位置不發(fā)生變化的情況下,LBP值對(duì)于像素值單調(diào)變化具有不變性,有利于特征紋理描述。
為了了解細(xì)節(jié)特征,利用方差[7]測試了3×3模板像素值的波動(dòng)范圍。當(dāng)波動(dòng)較小時(shí),特征較平緩,容易出現(xiàn)中心像素偏大或偏??;當(dāng)波動(dòng)較大時(shí),特征變化加大,容易形成噪聲。為此提出了最值平均法。最值平均法取3×3模板九個(gè)像素的方差,若方差在限定范圍內(nèi),將中心像素周圍八個(gè)像素的最大值與最小值的平均值作為閾值進(jìn)行比較,避免因中心像素值偏大或偏小以致湮沒細(xì)節(jié)的現(xiàn)象,否則取九個(gè)像素的中值[8]作為閾值,與周圍八個(gè)像素值進(jìn)行比較,減少噪聲的影響,重新計(jì)算LBP碼,以更新中心像素值。
該算法流程如下:
1) 針對(duì)某像素構(gòu)造3×3模板,計(jì)算模板中九個(gè)像素的方差V,其公式為:
(2)
式中:M為九個(gè)像素的平均值,Pj為模板九個(gè)像素值;
2) 設(shè)定閾值a,判斷V是否小于閾值a;
3) 若步驟2返回為真,取中心像素鄰域8像素的最大值Ymax,最小值Ymin,將Ma=(Ymax+Ymin)/2設(shè)為3×3模板的閾值;
4) 若步驟2返回為假,將九個(gè)像素的中值作為閾值Ma;
5) 將模板中的8鄰域像素值與Ma比較得到二進(jìn)制圖像;
6) 將該二進(jìn)制圖像轉(zhuǎn)化為LBP碼,得到新的LBP特征圖。(步驟5、步驟6)的計(jì)算與式(1)的計(jì)算相同)
對(duì)圖2(a)采用最值平均法計(jì)算LBP特征如圖4所示。
圖4 最值平均法特征圖
與圖2(b)對(duì)比可見,圖4的紋理特征較圖2(b)更清晰,保留了更多的圖像局部的細(xì)節(jié)特征,提高了紋理特征的提取效果,有利于實(shí)現(xiàn)對(duì)微小紋理特征的識(shí)別。
基于將PCA與K近鄰相結(jié)合,本文提出了基于最值平均的人臉識(shí)別LBP算法,其算法流程如圖5所示。
圖5 流程圖
本文的特征提取算法是將LBP進(jìn)行改進(jìn)的最值平均算法,其算法編程如下所示:
for i=2:m-1
//排列3×3模板像素
for j=2:n-1
k=1;
p=i-1;
for q=j-1:j+1
y(k)=img(p,q);
k=k+1;
end
p=i;
y(k)=img(p,j+1);
k=k+1;
p=i+1;
for q=j-1:j+1
y(k)=img(p,q);
k=k+1;
end
d=y(k-1);
y(k-1)=y(k-3);
y(k-3)=d;
p=i;
for q=j-1:j
y(k)=img(p,q);
k=k+1;
end
y1=y(1:8);
W=var(y);
//計(jì)算方差