本發(fā)明涉及人臉識(shí)別技術(shù),尤其是涉及一種基于Gabor小波分解子帶相關(guān)結(jié)構(gòu)特征的人臉識(shí)別技術(shù)。
背景技術(shù):
人臉是一種重要的生物特征。與指紋特征一樣,人臉特征在人的身份確認(rèn)中具有重要的地位和作用。目前主流的人臉識(shí)別技術(shù)包括:局部描述子技術(shù)、Gabor特征技術(shù)以及近來(lái)出現(xiàn)的深度學(xué)習(xí)技術(shù)。深度學(xué)習(xí)復(fù)雜度極高,計(jì)算很耗時(shí),在普通場(chǎng)合都不適用。LBP(局部二進(jìn)制模式)是廣泛應(yīng)用的局部描述子。然而LBP及其擴(kuò)展版的描述子容易受到圖像中噪聲的干擾,比如光照變化大的人臉照片和夜間拍攝的含噪聲較強(qiáng)的人臉照片。Gabor特征方法是利用Gabor小波子帶的能量(平均值)當(dāng)作人臉特征,通常Gabor能量特征的表達(dá)能力不如統(tǒng)計(jì)模型如概率統(tǒng)計(jì)模型等能力強(qiáng)。
Gabor濾波器能模擬人的感受野函數(shù),十分適合表達(dá)紋理圖像。二維Gabor濾波器函數(shù)為:
其中σx和σy是在x和y方向的高斯標(biāo)準(zhǔn)差,F(xiàn)是頻域的中心頻率。借助于小波變換的多分辨分析,對(duì)Gabor濾波器進(jìn)行擴(kuò)展便可以得到具有多尺度性能的Gabor小波。Gabor小波表示如下:
pm,n=amaxf-mp(x′,y′),
其中K是整數(shù),amax是常量,表示最大分解尺度,f是尺度因子。m(=0,1,…,S-1)和n(=0,1,…,K-1)是Gabor小波的尺度參數(shù)和方向參數(shù),S和K是自然數(shù)。利用Gabor小波進(jìn)行分解時(shí)能得到S個(gè)尺度和K個(gè)方向的共S×K個(gè)分解子帶。Gabor小波在光照變化和圖像噪聲情況下穩(wěn)定性較好,廣泛應(yīng)用于機(jī)器視覺(jué)領(lǐng)域。
Copula是構(gòu)建多維統(tǒng)計(jì)分布的工具,它能刻畫(huà)變量間的相關(guān)結(jié)構(gòu)。給定一隨機(jī)向量[x1,…,xn],則Copula密度具有如下形式:
其中fi(xi)和Fi(xi)是隨機(jī)變量xi對(duì)應(yīng)的邊緣密度函數(shù)和邊緣分布函數(shù)。c(F1(x1),…,Fn(xn))是copula函數(shù)的密度函數(shù),它代表變量間的相關(guān)結(jié)構(gòu)。本發(fā)明正是利用c(F1(x1),…,Fn(xn))來(lái)提取人臉特征。高斯copula是最常見(jiàn)的copula函數(shù),它能很好地捕獲對(duì)稱變量間具有對(duì)稱形狀的相關(guān)結(jié)構(gòu)。高斯copula的分布函數(shù)為:
G(u1,…,un)=Φ(Φ-1(u1),Φ-1(u2),…,Φ-1(un))
其中Φ是標(biāo)準(zhǔn)正態(tài)分布函數(shù);Φ-1是Φ的逆函數(shù);ui=Fi(x)。高斯copula的密度函數(shù)為:
其中ξ=[ξ1,…,ξn],ξi=Φ-1(ui),i=1,…,n。R是高斯copula的相關(guān)矩陣,它決定隨機(jī)變量之間的相關(guān)特性。在邊緣分布給定情況下,用最大似然估計(jì)可以推出相關(guān)矩陣R為:
其中L是R的行列數(shù),也是邊緣分布函數(shù)的個(gè)數(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明利用Gabor小波子帶的相關(guān)結(jié)構(gòu)實(shí)現(xiàn)人臉識(shí)別。用Gabor小波對(duì)人臉圖片分解后會(huì)得到若干分解子帶。由于Gabor函數(shù)的非正交特性,這些分解子帶之間有較強(qiáng)的相關(guān)性。經(jīng)過(guò)研究發(fā)現(xiàn),這些相關(guān)特性能表征一副人臉圖像。用本發(fā)明用高斯Copula函數(shù)來(lái)刻畫(huà)這些相關(guān)結(jié)構(gòu)。本發(fā)明方法具體實(shí)施步驟如下:
步驟(1)對(duì)人臉圖像預(yù)處理。人臉采集時(shí),由于光照變化和圖像噪聲會(huì)影響識(shí)別準(zhǔn)確率。預(yù)處理主要去除光照影響和圖像噪聲。設(shè)輸入的人臉圖像為I,依次進(jìn)行下面三方面的預(yù)處理:
(1a)首先,用Gamma矯正消除部分光照,Gamma矯正是將像素的指數(shù)值替換本身的值,表示為:I=Iλ,λ是矯正因子,這里取0.2。
(1b)其次,用直方圖規(guī)定化增強(qiáng)圖像。選取一副無(wú)關(guān)照和噪聲影響的正面圖像的直方圖作為參照,根據(jù)該參照人臉圖片將當(dāng)前的人臉圖片進(jìn)行規(guī)定化處理,進(jìn)一步去光照和噪聲影響,增強(qiáng)圖片效果。
(1c)最后,用高斯差分算子(DoG)濾波消除圖像噪聲同時(shí)增強(qiáng)圖像邊緣。DoG表示為:
步驟(2)用Gabor小波對(duì)預(yù)處理后的人臉圖像進(jìn)行為5尺度8方向分解,共產(chǎn)生40個(gè)子帶。每個(gè)子帶是與原圖像一樣大小的矩陣。
步驟(3)用高斯copula刻畫(huà)子帶間的相關(guān)結(jié)構(gòu),具體操作如下:
(3a)對(duì)每一個(gè)子帶進(jìn)行拉直操作,即從上到下、從左到右拼接形成一維向量。共產(chǎn)生40個(gè)一維向量。用分別用V1到V40表示這些向量。若人臉圖像的尺寸為128×128像素,則Vi(1≤i≤40)長(zhǎng)度為16384。
(3b)對(duì)每一個(gè)向量計(jì)算其經(jīng)驗(yàn)分布。這樣做的目的是計(jì)算每一個(gè)子帶的邊緣分布。當(dāng)人臉圖像尺寸一般較小時(shí),會(huì)導(dǎo)致子帶像素不足情況,用一般的分布(如Weibull分布和Gamma分布)函數(shù)難以取得好的效果。對(duì)于大尺寸人臉圖片用Weibull分布進(jìn)行擬合邊緣擬合每個(gè)子帶向量Vi,Weibull分布的密度函數(shù)表示為:α和β是該函數(shù)的兩個(gè)參數(shù);Weibull分布的累積分布函數(shù)為:用最大似然方法估計(jì)尺度參數(shù)和這樣可以得到并將ui帶入高斯copula密度函數(shù)。
對(duì)于尺寸較小的圖片(比如32×32以下的圖片)本發(fā)明用經(jīng)驗(yàn)分布對(duì)每個(gè)子帶進(jìn)行擬合,得到累積分布值。先對(duì)向量Vi進(jìn)行從小到大排序,然后計(jì)算累計(jì)分布。用ecdf表示經(jīng)驗(yàn)分布函數(shù),則累積分布表示為:
[Ei,Vsort]=ecdf(Vi),1≤i≤40
其中Ei為一向量,它是在Vsort點(diǎn)處的累積概率值,Ei長(zhǎng)度與V相同。Vsort是V排序后的值(從小到大)。
(3c)最后用樣條插值方法計(jì)算出每個(gè)樣本點(diǎn)的經(jīng)驗(yàn)分布函數(shù)值。最終經(jīng)驗(yàn)分布表示如下:
Fi=spline(Vsort,Ei,Vi),1≤i≤40
Fi為向量Vi在對(duì)應(yīng)點(diǎn)上的經(jīng)驗(yàn)分布函數(shù)值。
(3d)用高斯copula連接這些經(jīng)驗(yàn)分布函數(shù)的輸出值。將ui=Fi帶入高斯copula密度函數(shù)。
(3e)用最大似然估計(jì)方法計(jì)算出高斯copula密度函數(shù)的相關(guān)矩陣R,表示為:
其中ξ=[ξ1,…,ξn],ξi=Φ-1(Fi);Fi由(9)式計(jì)算;L為ξi向量的長(zhǎng)度,也是Gabor子帶中像素的個(gè)數(shù)。R便是人臉的特征矩陣,它刻畫(huà)Gabor小波子帶之間的相關(guān)結(jié)構(gòu)。
步驟(4)KLD特征匹配。這一步是將特征矩陣R與數(shù)據(jù)庫(kù)里面保存的人臉特征矩陣Rq(q是自然數(shù),小于或等于數(shù)據(jù)庫(kù)人臉記錄數(shù))進(jìn)行比較,找出最相似的人臉。KLD特征匹配是根據(jù)兩個(gè)高斯copula密度函數(shù)之間的KLD距離(Kullback–Leibler distance)進(jìn)行比較。設(shè)兩個(gè)高斯copula函數(shù)分別為g1和g2,它們對(duì)應(yīng)的相關(guān)矩陣為R1和R2,則兩個(gè)高斯copula之間的KLD為:
其中tr(·)表示求矩陣的跡;n是R的行列數(shù),也是Gabor小波子帶個(gè)數(shù),這里等于40。
與目前主流的基于LBP和Gabor小波(或Gabor濾波器)人臉識(shí)別技術(shù)相比,本發(fā)明對(duì)光照和噪聲魯棒性好,識(shí)別率高。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,本發(fā)明對(duì)人臉識(shí)別準(zhǔn)確率高,響應(yīng)速度快。
附圖說(shuō)明
圖1是本發(fā)明的人臉識(shí)別流程圖。
圖2是圖1中步驟(3)的具體實(shí)現(xiàn)。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。圖1所示為本發(fā)明方法流程,具體實(shí)施步驟如下:
步驟(1)對(duì)人臉圖像預(yù)處理。人臉采集時(shí),由于光照變化和圖像噪聲會(huì)影響識(shí)別準(zhǔn)確率。預(yù)處理主要去除光照影響和圖像噪聲。設(shè)輸入的人臉圖像為I,依次進(jìn)行下面三方面的預(yù)處理:
(1a)首先,用Gamma矯正消除部分光照,Gamma矯正是將像素的指數(shù)值替換本身的值,表示為:I=Iλ,λ是矯正因子,這里取0.2。
(1b)其次,用直方圖規(guī)定化增強(qiáng)圖像。選取一副無(wú)關(guān)照和噪聲影響的正面圖像的直方圖作為參照,根據(jù)該參照人臉圖片將當(dāng)前的人臉圖片進(jìn)行規(guī)定化處理,進(jìn)一步去光照和噪聲影響,增強(qiáng)圖片效果。
(1c)最后,用高斯差分算子(DoG)濾波消除圖像噪聲同時(shí)增強(qiáng)圖像邊緣。DoG表示為:
步驟(2)用Gabor小波對(duì)預(yù)處理后的人臉圖像進(jìn)行為5尺度8方向分解,共產(chǎn)生40個(gè)子帶。每個(gè)子帶是與原圖像一樣大小的矩陣。
步驟(3)用高斯copula刻畫(huà)子帶間的相關(guān)結(jié)構(gòu)(如圖2所示),具體操作如下:
(3a)對(duì)每一個(gè)子帶進(jìn)行拉直操作,即從上到下、從左到右拼接形成一維向量。共產(chǎn)生40個(gè)一維向量。用分別用V1到V40表示這些向量。若人臉圖像的尺寸為128×128像素,則Vi(1≤i≤40)長(zhǎng)度為16384。
(3b)對(duì)每一個(gè)向量計(jì)算其經(jīng)驗(yàn)分布。這樣做的目的是計(jì)算每一個(gè)子帶的邊緣分布。當(dāng)人臉圖像尺寸一般較小時(shí),會(huì)導(dǎo)致子帶像素不足情況,用一般的分布(如Weibull分布和Gamma分布)函數(shù)難以取得好的效果。對(duì)于大尺寸人臉圖片用Weibull分布進(jìn)行擬合邊緣擬合每個(gè)子帶向量Vi,Weibull分布的密度函數(shù)表示為:α和β是該函數(shù)的兩個(gè)參數(shù);Weibull分布的累積分布函數(shù)為:用最大似然方法估計(jì)尺度參數(shù)和這樣可以得到并將ui帶入高斯copula密度函數(shù)。
對(duì)于尺寸較小的圖片(比如32×32以下的圖片)本發(fā)明用經(jīng)驗(yàn)分布對(duì)每個(gè)子帶進(jìn)行擬合,得到累積分布值。圖2是以經(jīng)驗(yàn)分布為例進(jìn)行說(shuō)明,先對(duì)向量Vi進(jìn)行從小到大排序,然后計(jì)算累計(jì)分布。用ecdf表示經(jīng)驗(yàn)分布函數(shù),則累積分布表示為:
[Ei,Vsort]=ecdf(Vi),1≤i≤40
其中Ei為一向量,它是在Vsort點(diǎn)處的累積概率值,Ei長(zhǎng)度與V相同。Vsort是V排序后的值(從小到大)。
(3c)最后用樣條插值方法計(jì)算出每個(gè)樣本點(diǎn)的經(jīng)驗(yàn)分布函數(shù)值。最終經(jīng)驗(yàn)分布表示如下:
Fi=spline(Vsort,Ei,Vi),1≤i≤40
Fi為向量Vi在對(duì)應(yīng)點(diǎn)上的經(jīng)驗(yàn)分布函數(shù)值。
(3d)用高斯copula連接這些經(jīng)驗(yàn)分布函數(shù)的輸出值。將ui=Fi帶入高斯copula密度函數(shù)。
(3e)用最大似然估計(jì)方法計(jì)算出高斯copula密度函數(shù)的相關(guān)矩陣R,表示為:
其中ξ=[ξ1,…,ξn],ξi=Φ-1(Fi);Fi由(9)式計(jì)算;L為ξi向量的長(zhǎng)度,也是Gabor子帶中像素的個(gè)數(shù)。R便是人臉的特征矩陣,它刻畫(huà)Gabor小波子帶之間的相關(guān)結(jié)構(gòu)。
步驟(4)KLD特征匹配。這一步是將特征矩陣R與數(shù)據(jù)庫(kù)里面保存的人臉特征矩陣Rq(q是自然數(shù),小于或等于數(shù)據(jù)庫(kù)人臉記錄數(shù))進(jìn)行比較,找出最相似的人臉。KLD特征匹配是根據(jù)兩個(gè)高斯copula密度函數(shù)之間的KLD距離(Kullback–Leibler distance)進(jìn)行比較。設(shè)兩個(gè)高斯copula函數(shù)分別為g1和g2,它們對(duì)應(yīng)的相關(guān)矩陣為R1和R2,則兩個(gè)高斯copula之間的KLD為:
其中tr(·)表示求矩陣的跡;n是R的行列數(shù),也是Gabor小波子帶個(gè)數(shù),這里等于40。