《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 业界动态 > 基于小波和余弦变换的神经网络人脸识别法

基于小波和余弦变换的神经网络人脸识别法

2009-03-12
作者:谢志文, 吴玉香, 刘少军

??? 摘? 要: 提出了利用小波變換和余弦變換與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的人臉識(shí)別方法。將人臉圖像歸一化后進(jìn)行小波變換,再用余弦變換對(duì)低頻信號(hào)提取特征向量,達(dá)到降維和去除干擾的目的,并把特征向量送進(jìn)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練。識(shí)別時(shí),對(duì)人臉圖像進(jìn)行相同的變換后,送入神經(jīng)網(wǎng)絡(luò)進(jìn)行辨別。實(shí)驗(yàn)結(jié)果表明,該算法優(yōu)于傳統(tǒng)的人臉識(shí)別法。?

??? 關(guān)鍵詞: 小波變換;離散余弦變換;BP神經(jīng)網(wǎng)絡(luò);人臉識(shí)別

?

??? 近年來,人臉識(shí)別的應(yīng)用需求日益迫切,在刑偵破案、證件核對(duì)、保安監(jiān)視、醫(yī)學(xué)應(yīng)用、人機(jī)交互系統(tǒng)等方面都有巨大的應(yīng)用前景,計(jì)算機(jī)人臉識(shí)別技術(shù)受到了廣泛的重視。目前對(duì)復(fù)雜環(huán)境下的人臉識(shí)別提出了更高的要求。?

??? 人臉識(shí)別研究主要有兩個(gè)方向:一是基于整體的研究方法。該方法考慮了模式的整體性,包括特征臉法、基于SVD分解的方法、人臉等密度線分析匹配法、彈性匹配方法、隱馬爾可夫模型方法以及神經(jīng)網(wǎng)絡(luò)法等;二是基于特征分析的方法,也就是將人臉基準(zhǔn)點(diǎn)的相對(duì)比例和其他描述人的臉部特征的形狀參數(shù)或類別參數(shù)一起構(gòu)成識(shí)別特征向量。該方法通過提取出局部輪廓信息及灰度信息來設(shè)計(jì)具體識(shí)別算法。由于神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)很龐大,因此實(shí)際訓(xùn)練網(wǎng)絡(luò)時(shí)參數(shù)繁多,實(shí)現(xiàn)起來很困難,識(shí)別速度也相對(duì)較慢,但它的優(yōu)點(diǎn)是可以針對(duì)特定的問題進(jìn)行子空間設(shè)計(jì),如神經(jīng)網(wǎng)絡(luò)的方法可以用作性別識(shí)別等問題。本文提出基于小波變換和離散余弦變換與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的人臉識(shí)別方法。實(shí)驗(yàn)表明,這種方法能快速有效地識(shí)別不同人臉,且識(shí)別率很高。?

1 小波變換?

??? 小波變換的概念是由法國(guó)從事石油信號(hào)處理的工程師J.Morlet在1974年首先提出的,1988年S.Mallat提出了小波多分辨率分析后,為圖像模式識(shí)別領(lǐng)域提供了一種有效的工具。它是一種信號(hào)的時(shí)間-頻譜分析方法,具有多分辨率分析的特點(diǎn),而且在時(shí)頻兩域都具有表征局部信號(hào)特征的能力。?

??? 對(duì)尺寸為M×N的圖像f(x,y)的離散小波變換是:?

?????

式中,j0是任意的開始尺度,系數(shù)定義了在尺度j0的f(x,y)的近似。附加了水平、垂直和對(duì)角方向的細(xì)節(jié)。?

??? 本文采用哈爾小波作為小波變換。哈爾基函數(shù)定義為:?

?????

?????

??? 對(duì)離散小波變換(DWT)采用Mallat人字形算法,即快速小波變換(FWT)[1],如圖1所示。?

?

?

??? 小波變換示意圖如圖2所示。一幅圖像經(jīng)過一次一維小波變換后,可以被劃分為4個(gè)子塊頻帶區(qū)域LL1、HL1、LH1和HH1,分別包含了相應(yīng)頻帶的小波系數(shù)。LL1頻帶保持原圖像的內(nèi)容信息,圖像的能量集中于此頻帶;HL1頻帶保持了原圖像的水平方向上的高頻邊緣信息,人像的眼睛和嘴巴的水平特征比垂直特征明顯,而人的豐富表情主要反映在眼睛和嘴巴上,所以HL1描述了人像的表情特征;LH1頻帶保持了原圖像的垂直方向上的高頻邊緣信息,描述了人像的姿勢(shì);HH1頻帶保持了原圖像在對(duì)角線方向上的高頻信息,這部分對(duì)人臉表情變化的反應(yīng)是最明顯的。若對(duì)低頻子帶圖像LL1再次進(jìn)行二維小波變換,則又可以得到四個(gè)子塊頻帶區(qū)域LL2、LH2、HL2和HH2。?

?

?

??? 圖像的大部分信息集中在低頻部分LL2上,所得到的水平、垂直和對(duì)角方向的高頻信號(hào)則包含了大量的冗余信息和干擾,在人臉識(shí)別中,其作用是非常微小的。如圖2(d)直觀地表明,當(dāng)直接對(duì)低頻分量提取特征時(shí),圖像中的有用信息相對(duì)集中,因此能有效地降低圖像的維數(shù),去掉干擾,從而節(jié)省存儲(chǔ)空間,提高計(jì)算效率。?

2 離散余弦變換?

??? 離散余弦變換(DCT)是一種常用的圖像數(shù)據(jù)壓縮方法,其變換核為實(shí)數(shù)的余弦函數(shù),因而DCT的計(jì)算速度比較快。而且因?yàn)轭l域變化因子u、v較大時(shí),DCT系數(shù)的值g(u,v)比較小,而數(shù)值較大的g(u,v)主要分布在u、v較小的左上角區(qū)域,所以DCT具有很好的能量集中特性,變換后的圖像能量主要集中在變換系數(shù)的低頻分量上,這些低頻分量幅值較大,可以用來重建圖像。當(dāng)用DCT系數(shù)重建圖像時(shí),保留少數(shù)離散余弦變換的低頻分量,而舍去大部分高頻分量,利用逆變換仍可獲得與原始圖像相近的重建圖像,新圖像與原圖像存在一定誤差,但重要信息被保存下來。?

??? 對(duì)一幅M×N的數(shù)字圖像f(x,y),其離散余弦變換的定義為:?

?????

式中,g(u,v)為離散余弦變換后的結(jié)果,即DCT系數(shù)。?

???????

??? 圖3是人臉圖像的DCT變換和利用DCT系數(shù)重建原圖的過程。圖3(a)是128×128的原圖,圖3(b)是離散余弦變換后的結(jié)果,圖3(c)是利用所有DCT系數(shù)進(jìn)行反變換的重構(gòu)圖像,圖3(d)是利用32×32個(gè)DCT系數(shù)反變換的重構(gòu)圖像,圖3(e)是8×8個(gè)DCT系數(shù)反變換的重構(gòu)圖像。從中可以看出,與原圖全部128×128個(gè)灰度值相比,圖3(e)只用了64個(gè)DCT系數(shù),就已經(jīng)保留了原圖的重要臉部特征,很好地表現(xiàn)了原圖,這使得數(shù)據(jù)量龐大的人臉圖像可用它的部分離散余弦變換分量來表示,從而實(shí)現(xiàn)對(duì)高維信息的降維。而且圖3(e)把原圖人臉的表情和不利于識(shí)別的高頻噪聲信息濾除了,可以更有效地減少高頻干擾對(duì)特征的影響,更有利于人臉的識(shí)別。?

?

?

3 神經(jīng)網(wǎng)絡(luò)?

??? 人工神經(jīng)元網(wǎng)絡(luò)是一門交叉學(xué)科,在許多領(lǐng)域得到了越來越廣泛的應(yīng)用。目前,在人工神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用中,大部分神經(jīng)網(wǎng)絡(luò)模型都是采用BP網(wǎng)絡(luò)及其變化形式,它是前向網(wǎng)絡(luò)的核心部分,也是人工神經(jīng)網(wǎng)絡(luò)最精華的部分。BP網(wǎng)絡(luò)主要用于:函數(shù)逼近、模式識(shí)別、數(shù)據(jù)壓縮等領(lǐng)域。BP網(wǎng)絡(luò)是一種前向網(wǎng)絡(luò),一般包括輸入層、中間層(隱層)和輸出層,如圖4所示。中間層可以有一層甚至更多層以便于分析各因素間的相互作用,每一層由若干個(gè)神經(jīng)元組成,相鄰兩層的每一個(gè)神經(jīng)元之間均有一權(quán)值聯(lián)系,權(quán)值的大小反映了這兩個(gè)神經(jīng)元之間的連接強(qiáng)度,整個(gè)網(wǎng)絡(luò)的計(jì)算過程是由輸入層到中間層再到輸出層單向進(jìn)行,所以稱為前向網(wǎng)絡(luò)。它利用實(shí)際輸出和期望輸出之差對(duì)網(wǎng)絡(luò)的多層連接權(quán)由后向前逐層進(jìn)行校正,其訓(xùn)練方法被稱為誤差反傳播算法。?

?

?

??? BP網(wǎng)絡(luò)能夠進(jìn)行人臉識(shí)別的根源在于它能夠?qū)崿F(xiàn)一種特殊的非線性映射,將輸入空間變換到由輸出所造成的空間,使得在輸出空間的分類問題變得簡(jiǎn)單易行。在實(shí)際應(yīng)用中,如何設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),學(xué)術(shù)界有許多討論。一般來說,多個(gè)模式用一個(gè)網(wǎng)絡(luò)來識(shí)別分類,會(huì)引出隱層節(jié)點(diǎn)數(shù)非常龐大的問題。本方法由于引入小波分解和離散余弦變換,用了一個(gè)三層的BP網(wǎng)絡(luò)來識(shí)別分類,使得神經(jīng)網(wǎng)絡(luò)的輸入向量的維數(shù)大大降低。?

3.1? 輸入/輸出層的設(shè)計(jì)?

????由于本方法采用了小波變換和離散余弦變換進(jìn)行圖像的數(shù)據(jù)壓縮,所以最終采用8×8像素大小的窗口。因此,將輸入層節(jié)點(diǎn)數(shù)設(shè)計(jì)為64個(gè),分別對(duì)應(yīng)于8×8像素圖像窗口中按Zig-Zag掃描方式展開的各個(gè)像素。而輸出層的數(shù)目即由輸入訓(xùn)練樣本的類別數(shù)來決定。在訓(xùn)練階段,如果輸入訓(xùn)練樣本的類別標(biāo)號(hào)是i,則訓(xùn)練時(shí)的期望輸出假設(shè)第i個(gè)節(jié)點(diǎn)為1,而其余輸出節(jié)點(diǎn)均為0。在識(shí)別階段,當(dāng)一個(gè)未知類別樣本作用到輸入端時(shí),考察各輸出節(jié)點(diǎn)的輸出,并將該樣本類別判定為具有最大值的輸出節(jié)點(diǎn)對(duì)應(yīng)的類別,如果具有最大值的輸出節(jié)點(diǎn)與其他輸出節(jié)點(diǎn)之間的距離較?。ㄐ∮谀硞€(gè)閾值),則作出拒絕判斷。?

3.2? 隱層節(jié)點(diǎn)數(shù)的選擇?

??? 隱層節(jié)點(diǎn)數(shù)的選擇是一個(gè)十分復(fù)雜的問題。如果數(shù)目過少,網(wǎng)絡(luò)將不能建立復(fù)雜的判斷界限,使網(wǎng)絡(luò)不能訓(xùn)練出來,不能識(shí)別以前沒有看過的樣本,容錯(cuò)性差;但如果數(shù)目過多,就會(huì)使學(xué)習(xí)時(shí)間過長(zhǎng),網(wǎng)絡(luò)的泛化能力降低,而且誤差也不一定最佳,因此存在一個(gè)最佳的隱層節(jié)點(diǎn)數(shù)??筛鶕?jù)經(jīng)驗(yàn)公式:和n1=log2n(n、m分別為輸入層和輸出層的節(jié)點(diǎn)數(shù),α為1~10之間的常數(shù))計(jì)算出隱含層的節(jié)點(diǎn)數(shù)范圍,再根據(jù)實(shí)驗(yàn)結(jié)果改變節(jié)點(diǎn)數(shù)。?

3.3? 輸入預(yù)處理?

??? 由于本方法采用的激活函數(shù)是S型函數(shù),該函數(shù)對(duì)0附近的數(shù)字變化比較敏感,而本方法的DCT系數(shù)的值域范圍在0~255,由于數(shù)值較大,如果直接輸入數(shù)據(jù)勢(shì)必影響計(jì)算效率和訓(xùn)練效果。所以有必要將輸入數(shù)據(jù)從0~255轉(zhuǎn)換為0~1之間,以便于后續(xù)神經(jīng)網(wǎng)絡(luò)權(quán)值與閾值的調(diào)節(jié)和運(yùn)算。?

3.4? BP學(xué)習(xí)算法步驟?

??? BP學(xué)習(xí)算法步聚如下。??? ?

??? 第一步 設(shè)置變量和參量。k=1,2,…,N為輸入向量,M為輸入特征的個(gè)數(shù),N為訓(xùn)練樣本個(gè)數(shù),由Zig-Zag掃描方式展開的DCT系數(shù)組成。?

??? N為第n次迭代時(shí)網(wǎng)絡(luò)的實(shí)際輸出,P為要識(shí)別的樣品類別個(gè)數(shù)。?

??? N為期望輸出。當(dāng)輸入樣品類別標(biāo)號(hào)是i時(shí),相應(yīng)的dki=1,其他為0。?

??? WMI(n)和WIP(n)分別為第n次迭代時(shí)輸入層與隱含層之間、隱含層與輸出層之間的權(quán)值向量。?

??? 第二步 初始化,賦給WMI(0)、WIP(0)各一個(gè)較小的隨機(jī)非零值。?

??? 第三步 輸入樣本Xk, n=0。?

??? 第四步 對(duì)輸入樣本Xk,前向計(jì)算BP網(wǎng)絡(luò)每層神經(jīng)元的輸入信號(hào)u和輸出信號(hào)v。其中:?

?????

??? 第五步 由期望輸出dk和上一步求得的實(shí)際輸出Yk(n)計(jì)算誤差E(n),判斷其是否滿足要求,若滿足則轉(zhuǎn)至第八步;不滿足則轉(zhuǎn)至第六步。?

??? 第六步 判斷n+1是否大于最大迭代次數(shù),若大于則轉(zhuǎn)至第八步;否則,對(duì)輸入樣本Xk,反向計(jì)算每層神經(jīng)元的局部梯度δ。其中:?

?????

??? 第七步 按下式計(jì)算權(quán)值修正量Δw,并修正權(quán)值;n=n+1,轉(zhuǎn)至第四步。其中:?

?????

式中,η為學(xué)習(xí)速率,n為迭代次數(shù)。?

??? 第八步 判斷是否學(xué)完所有的訓(xùn)練樣本,若是則結(jié)束,否則轉(zhuǎn)至第三步。?

4 實(shí)驗(yàn)步驟和結(jié)果分析?

??? 本文采用ORL人臉庫[2]進(jìn)行訓(xùn)練和測(cè)試。原始的ORL人臉庫包括40個(gè)人,每人10張圖,共400張人臉圖像,具備不同的光照、表情、發(fā)型和有無眼鏡等,并且人臉有一定的側(cè)轉(zhuǎn)角度,每幅圖像均為112×92的灰度圖像。為了方便程序讀入數(shù)據(jù),本文把ORL人臉庫的圖像大小改為128×128的灰度圖像。圖5為修改后的ORL人臉庫的部分人臉。訓(xùn)練集由每個(gè)人的其中5張圖組成,測(cè)試集由另外5張組成。本文采用VC++作為實(shí)驗(yàn)平臺(tái)[3]。?

?

?

??? 實(shí)驗(yàn)步驟與結(jié)果如下:?

??? (1)讀入ORL人臉庫的人臉圖像,使圖像歸一化為128×128的灰度圖像,對(duì)這些圖像進(jìn)行二層二維小波變換,就可得到32×32的人臉低頻圖像。具體算法如圖6所示。?

?

?

??? (2)將得到的32×32圖像進(jìn)行離散余弦變換,其具體算法與FFT相同,都是采用蝶形算法實(shí)現(xiàn)。從圖像的左上角開始取8×8個(gè)(即64個(gè))系數(shù)作為神經(jīng)網(wǎng)絡(luò)的輸入,這樣既可以達(dá)到壓縮特征維數(shù)的目的,又去除了表情和光照造成的干擾。?

??? (3)采用BP網(wǎng)絡(luò)對(duì)人臉進(jìn)行識(shí)別。本文設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點(diǎn)數(shù)為64個(gè);隱含層分別取20、25、30、35、40、45個(gè)節(jié)點(diǎn)進(jìn)行試驗(yàn)。結(jié)果發(fā)現(xiàn)隱含層取35個(gè)時(shí)效果最好;輸出層節(jié)點(diǎn)數(shù)則取40個(gè)。分別處理200張人臉圖,給每個(gè)人標(biāo)上記號(hào)i,然后隨機(jī)輸入到神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后得到所要求的BP網(wǎng)絡(luò)。采用VC實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)算法如圖7所示。?

?

?

??? 識(shí)別時(shí)把需要辨別的人臉圖像經(jīng)過二層二維小波變換和離散余弦變換后,取64個(gè)DCT系數(shù)輸入訓(xùn)練完的神經(jīng)網(wǎng)絡(luò),通過一次前向計(jì)算,看輸出向量的哪位最接近1,即可判斷是哪個(gè)人臉。本文對(duì)ORL人臉庫的200張圖像隨機(jī)輸入進(jìn)行測(cè)試,其識(shí)別率達(dá)到97.5%,參考文獻(xiàn)[4]和參考文獻(xiàn)[5]同樣對(duì)ORL人臉庫進(jìn)行實(shí)驗(yàn),結(jié)果其識(shí)別率分別為89.5%和95%,低于本文的識(shí)別率。本文采取了減少特征維數(shù)的方法,使訓(xùn)練時(shí)間大大減少,而參考文獻(xiàn)[5]的輸入向量維數(shù)最少為986。所以隨著數(shù)據(jù)量的增多,本文的神經(jīng)網(wǎng)絡(luò)算法體現(xiàn)出它對(duì)大樣品分類的優(yōu)勢(shì)。本文實(shí)驗(yàn)中對(duì)每張圖片的訓(xùn)練時(shí)間為1.3秒。不同算法的人臉識(shí)別率如表1所示。?

?

?

??? 本文提出了一種結(jié)合小波變換和離散余弦變換的人臉識(shí)別方法。該方法利用小波變換提取圖像低頻信息的優(yōu)點(diǎn),降低了人臉表情和側(cè)轉(zhuǎn)角度對(duì)識(shí)別效果的影響,并利用離散余弦變換進(jìn)一步降低圖像的特征維數(shù),克服了神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間過長(zhǎng)的缺點(diǎn),提高了人臉識(shí)別的準(zhǔn)確率。對(duì)ORL人臉庫的識(shí)別實(shí)驗(yàn)表明,經(jīng)過小波變換和余弦變換的神經(jīng)網(wǎng)絡(luò)識(shí)別方法明顯優(yōu)于傳統(tǒng)的方法。?

參考文獻(xiàn)?

[1] RAFAEL C, GONZALE Z, RICHARD E W. Digital?image processing[M]. Second Edition. Publishing House of Electronics Industry,2003.?

[2] 甘俊英,張有為. 基于BP神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別[J].系統(tǒng)工程與電子技術(shù),2003,25(1):113-115.?

[3] 蘇彥華. 求是科技.Visual C++ 數(shù)字圖像識(shí)別技術(shù)典型案例[M]. 北京:人民郵電出版社,2004.?

[4]?陳榮元,蔣加伏,蔣衛(wèi)祥. 基于神經(jīng)網(wǎng)絡(luò)和層次SVM的多姿態(tài)人臉識(shí)別[J].計(jì)算機(jī)工程,2006,32(24):209-215.?

[5] 王洪波,武妍. 基于小波變換和BP神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別方法[J]. 計(jì)算機(jī)工程與應(yīng)用,2004,40(24):51-53.?

[6]?梁淑芬,甘俊英. 基于局部小波變換與DCT的人臉識(shí)別算法[J]. 微計(jì)算機(jī)信息,2006,22(1):213-216.?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容