摘要:該文介紹了2種人臉模式識(shí)別領(lǐng)域常用的方法:“PCA(PrincipalComponentAnalysis)主成分分析法”以及“FLD(FisherLinearDiscriminant)fisher線性判別法”,并且在后面給出了2個(gè)具體的實(shí)現(xiàn)方案。一個(gè)基于PCA的人臉識(shí)別,一個(gè)基于PCA+FLD的更加優(yōu)化的識(shí)別方案,最后綜合比較了兩種方案的優(yōu)缺點(diǎn)。
關(guān)鍵詞:模式識(shí)別;人臉識(shí)別;PCA;FLD
中圖分類(lèi)號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)34-8259-04
通常的人臉識(shí)別一般包含幾大步驟:圖片預(yù)處理、特征提取和特征選擇和人臉檢測(cè)。在這其中最為重要,通常也決定了一個(gè)識(shí)別系統(tǒng)的效率的,便是最終的人臉檢測(cè)方法。優(yōu)秀的檢測(cè)方法能夠利用為數(shù)不多的特征得到較低的計(jì)算量和不錯(cuò)的識(shí)別率;相反,如果方法不當(dāng),可能會(huì)使得系統(tǒng)必須在維數(shù)極高的空間中處理數(shù)據(jù),這樣便導(dǎo)致后續(xù)的工作異常復(fù)雜甚至不可完成。在該文的設(shè)計(jì)中,即使是在采用傳統(tǒng)的線性判別方法時(shí),也在方案之中考慮了不必要計(jì)算的剔除。這不僅體現(xiàn)在特征提取后的根據(jù)閾值拋棄無(wú)用特征上,還體現(xiàn)在FLD方法中對(duì)協(xié)方差矩陣的選擇上:在不影響識(shí)別率的條件下盡可能的減小識(shí)別所帶來(lái)的代價(jià)。
1PCA方法簡(jiǎn)介
1.1PCA(PrincipalComponentAnalysis)簡(jiǎn)介
主成分分析(PrincipalComponentAnalysis)是一種統(tǒng)計(jì)分析方法,它關(guān)注事物主要矛盾,并將多元事物中的主影響因子解析出,起到揭示本質(zhì)、簡(jiǎn)化問(wèn)題的目的。計(jì)算主成分的目的是將高維數(shù)據(jù)投影到較低維空間。給定[n]個(gè)變量的[m]個(gè)觀察值,形成一個(gè)[n×m]的數(shù)據(jù)矩陣,[n]通常比較大。人們難以認(rèn)識(shí)這樣的一個(gè)多變量描述的復(fù)雜事物,因此,如何抓住事物主要方面重點(diǎn)分析成為了一個(gè)研究的熱點(diǎn)。
研究人員比較希望事物的主要方面只表現(xiàn)在幾個(gè)主要變量上,從而可以通過(guò)分離這些變量詳細(xì)分析來(lái)抓住事物的特征。但一般情況下,并不容易找到這樣的關(guān)鍵變量。這時(shí),如何將原有變量進(jìn)行一定的線性組合來(lái)代表事物主要方面的特征就成為了一類(lèi)重要的研究方法,而主成分分析(PCA)就是這類(lèi)方法中極具代表性的一種。
主成分分析法具體實(shí)施是尋找[r(r 1.2Eigenface(特征臉)方法簡(jiǎn)介 Eigenface(特征臉)方法是一個(gè)從PCA方法引申出的一種人臉識(shí)別描述技術(shù)的算法。它將整個(gè)樣本圖像看作隨機(jī)向量而進(jìn)行K-L變換。K-L變換后可以獲得一系列基底,其中特征值較大的基底與目標(biāo)人臉形狀相似,故稱特征臉。將這些基底按照一定的算法組合,可以無(wú)限接近待識(shí)別的人臉目標(biāo)圖像,從而達(dá)到識(shí)別的目的。 具體識(shí)別過(guò)程是:首先獲取目標(biāo)特征臉元素,通過(guò)K-L變化得到基底,再由這些基底構(gòu)成子空間,最后將將人臉圖像映射到這些子空間上,比較其與己知人臉在特征空間中的位置,具體步驟如下: 1)樣本采集或者從數(shù)據(jù)庫(kù)提取實(shí)驗(yàn)所需人臉圖像樣本,訓(xùn)練并算出其Eigenface值,將其定義為人臉空間。 2)輸入待識(shí)別的目標(biāo)圖像,采樣并映射到前面所得到的空間中,得出一組關(guān)于目標(biāo)的特征數(shù)據(jù)。 3)檢查目標(biāo)人臉與空間的距離,作為判斷該目標(biāo)是否可能是人臉的判據(jù)。 4)若判斷出是人臉,則利用其權(quán)值進(jìn)一步判斷其是否屬于已有樣本集,并找出樣本集中與其相似度最高的人臉圖像。 該文后面介紹的人臉識(shí)別系統(tǒng)中的方法1便是基于特征臉的識(shí)別方案,在后面可以看到基于特征臉的識(shí)別方案在特定環(huán)境下可以達(dá)到非常高的識(shí)別率,而且算法的代價(jià)并不大。 2FLD簡(jiǎn)介 2.1fisher線性判別原理簡(jiǎn)介 簡(jiǎn)單來(lái)說(shuō),fisher線性判別的基本原理就是:假設(shè)將d維空間上的樣本投影到一條直線上,樣本的特征將混在一起而難以區(qū)分,于是我們希望找到一個(gè)方向,使得在這個(gè)方向的直線上,樣本集合最容易區(qū)分。 換言之,希望找到投影矩陣W,使得在投影之后,屬于不同類(lèi)別的樣本盡可能分的開(kāi)些,各類(lèi)樣本均值離得越遠(yuǎn)越好,即:類(lèi)間散度越大越好,類(lèi)內(nèi)散度越小越好。 2.2Fisher線性判別計(jì)算過(guò)程 首先對(duì)一些基本參量下定義。 2.2.1樣本在d維特征空間的一些描述量。 1)各類(lèi)樣本均值向量[mi] [mi=1Nix∈xixi=1,2] 2)樣本類(lèi)內(nèi)離散度矩陣[Si]與總類(lèi)內(nèi)離散度矩陣[Sw] [Si=i=12xi-mixi-miT] [Sw=S1+S2] 3)樣本類(lèi)間離散度矩陣[Sb] [Sb=m1-m2m1-m2T] 類(lèi)內(nèi)離散矩陣Si在形式上與協(xié)方差矩陣很相似,但協(xié)方差矩陣是一種期望值,而類(lèi)內(nèi)離散矩陣只是表示有限個(gè)樣本在空間分布的離散程度。
2.2.2在一維Y空間
1)各類(lèi)樣本均值[mi]:
[mi=1Niy∈yiy,i=1,2]
2)樣本類(lèi)內(nèi)離散度[Si]和總類(lèi)內(nèi)離散度[Sw]
[S2i=y-mi2,i=1,2]
[Sw=S21+S22]
1)和2)可以用于描述空間樣本點(diǎn)到某一向量投影的離散度,也就是該向量對(duì)[W]的投影在[W]上的分布。[S2i]的定義與隨機(jī)變量方差相類(lèi)似。
下面給出Fisher準(zhǔn)則具體的實(shí)現(xiàn)。Fisher選擇[W]的依據(jù)是:盡量使原樣本向量在該方向上的投影滿足類(lèi)間分布盡可能分開(kāi)、類(lèi)內(nèi)樣本投影盡可能密集的要求,根據(jù)該原則,定義評(píng)價(jià)投影方向[W]的函數(shù)為:
于是問(wèn)題便化簡(jiǎn)為求的一個(gè)合適的
3基于PCA的人臉識(shí)別算法
后面附上的人臉識(shí)別系統(tǒng)中包含2套人臉識(shí)別方法,而第一套便是基于PCA中的特征臉?biāo)惴▽?xiě)成的人臉識(shí)別程序,介紹具體算法之前先說(shuō)明一些算法前的處理,而這個(gè)處理是后面的方法2也共用的,在此一并介紹,具體出現(xiàn)的代碼均為MATLAB7中的語(yǔ)言。
首先,將已有的圖片庫(kù)(代碼中的traindatabase)中的所有圖片讀取到MATLAB中,并用rgb2gray獲得圖片的灰度信息。
其次,通過(guò)reshape函數(shù)將所有圖片從MxN的2D矩陣壓縮為一維列向量,其長(zhǎng)度為M*N。
最后,將代表所有圖片(共計(jì)P張)的一維向量組成一個(gè)2D矩陣T,其大小為M*NxP,每一列均代表了圖片庫(kù)里的一張?jiān)瓐D像。
經(jīng)過(guò)以上處理了以后,下面進(jìn)行基于特征臉(Eigenface)的人臉識(shí)別:
1)獲取總樣本矩陣T的均值m=mean(T,2)
2)計(jì)算代表每張?jiān)瓐D片的向量與樣本均值m的背離程度double(T(:,i))-m
3)將上述P個(gè)背離程度向量組成矩陣A,然后利用A構(gòu)造協(xié)方差矩陣L=
4)求取上述協(xié)方差矩陣L的特征值和特征向量[VD]=eig(L)
5)在上一步求出來(lái)的特征向量中選擇大于既定閾值的向量組成篩選后的特征向量L_eig_vec
6)將背離程度與特征向量結(jié)合求得最終的特征臉向量Eigenfaces=A*L_eig_vec
到這里,我們便獲得了訓(xùn)練圖片庫(kù)里面的所有圖片的特征臉向量,下面再利用歐式距離對(duì)其進(jìn)行甄選,以獲得識(shí)別結(jié)果。
首先,將待測(cè)圖片壓縮成同樣的一維列向量,與樣本均值做差,得到背離程度。
其次,通過(guò)背離程度與特征臉向量相乘得到待測(cè)圖片的投影。
最后,利用原待測(cè)圖像的投影與圖片庫(kù)里每張已有圖片求得歐氏距離,找出距離最小的一幅圖,即為識(shí)別結(jié)果。
4基于FLD的人臉識(shí)別算法
第二套算法的前置處理程序與第一套相同,其實(shí)它可以算作是在第一套算法基礎(chǔ)上的一個(gè)改進(jìn),因?yàn)樗玫搅说谝惶姿惴ㄔ谔卣髂樝蛄壳笕≈暗乃写a,不同的是,第一套算法是直接根據(jù)特征臉向量對(duì)待測(cè)圖片做投影了以后求取歐式距離,而第二套算法在其基礎(chǔ)上,做出了降維,即進(jìn)一步將向量投影到fisher空間中進(jìn)行求取歐式距離。
方法可以簡(jiǎn)述為:
首先,通過(guò)PCA的方法將MxN的圖片投影到一個(gè)(P-C)的空間,稱其為PCA子空間。
其次,再利用fisher法則求取合適的投影向量,將圖片進(jìn)一步投影到一個(gè)(C-1)的子空間,我們稱其為fisher線性空間,以達(dá)到降維以及fisher分類(lèi)的目的。
最后在fisher子空間中,通過(guò)求取歐氏距離來(lái)在已有圖片庫(kù)中找到待測(cè)圖片匹配的目標(biāo)。
具體來(lái)說(shuō),則是:
1)……前面若干步驟,與方法1相同,求得特征向量L_eig_vec,不過(guò)這里沒(méi)用作閾值篩選,而是直接用L_eig_vec與背離程度矩陣A相乘,得到將圖片投影到PCA空間中的傳遞矩陣V_PCA=A*L_eig_vec,大小為M*Nx(P-C)。
2)然后利用V_PCA將圖像投影到PCA子空間
3)進(jìn)一步,構(gòu)造fisher判別中的類(lèi)內(nèi)離散度矩陣
4)將圖片進(jìn)一步投影到fisher子空間中,求取與圖片庫(kù)中的每張圖片的歐氏距離,選取其中的最小值,作為識(shí)別結(jié)果輸出。
5結(jié)論
本實(shí)驗(yàn)最終采用MATLAB7.8編程,并利用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)face94Essexfacedatabase中的人臉庫(kù)進(jìn)行了試驗(yàn),實(shí)驗(yàn)結(jié)果表明,兩套方法均有較好的識(shí)別率,不同在于,方法一得到的是在高維空間里面求取的歐氏距離代表的背離程度,而方法二由于采用了fisher法則降維,得到的歐氏距離大大小于方法一中的結(jié)果,可以在圖1中看出:
背離程度表示了訓(xùn)練庫(kù)(traindatabase)中的20幅圖片與待測(cè)圖片直接的差別大小,試驗(yàn)取差別最小,即在曲線上的值最靠近X軸的一副圖片作為識(shí)別結(jié)果,可以看出,方法一在數(shù)量級(jí)上比方法二高出了太多,在大型人臉識(shí)別系統(tǒng)中,必將帶來(lái)代價(jià)的提高。
而在筆者多次試驗(yàn)中,發(fā)現(xiàn)方法二在降低計(jì)算量的同時(shí),也帶來(lái)了一些問(wèn)題,具體來(lái)說(shuō)就是在庫(kù)中的第三張圖片無(wú)法識(shí)別,當(dāng)然,除此之外,其他圖片均識(shí)別成功,如圖2:
在重新對(duì)FLD從原理上分析了過(guò)后,同時(shí)參閱了一些分析FLD的缺陷的文獻(xiàn),發(fā)現(xiàn)傳統(tǒng)的FLD只是希望通過(guò)投影將不同的類(lèi)放置得比較遠(yuǎn),而將相同的類(lèi)放在一起,而從樣本類(lèi)間散度及其矩陣的定義來(lái)看,這樣做只是使得總體樣本的均值和某個(gè)背離程度較大的類(lèi)的均值相差較大,而不能阻止其他類(lèi)的均值相互靠近。更嚴(yán)重的是,除了那個(gè)背離程度最大的類(lèi)離得較遠(yuǎn)外,其他的類(lèi)甚至還存在重疊的現(xiàn)象,假如把背離程度最大的那個(gè)類(lèi)稱為邊緣類(lèi),而傳統(tǒng)的FLD則是只能將邊緣類(lèi)從總樣本中分離出去,卻不能保證在這個(gè)投影方向上算法能夠很好的分辨其他類(lèi),因?yàn)樵谕队暗倪^(guò)程中,邊緣類(lèi)主導(dǎo)了這個(gè)投影方向,從而導(dǎo)致了后面識(shí)別錯(cuò)誤的產(chǎn)生。
綜上分析,可以得出結(jié)論,傳統(tǒng)的PCA算法跟PCA+FLD的算法在人臉識(shí)別的過(guò)程中均有不俗的表現(xiàn),傳統(tǒng)的PCA算法雖然在高維空間處理問(wèn)題,帶來(lái)了高計(jì)算量的代價(jià),然而不得不說(shuō)其識(shí)別率卻是非常的高。而加入FLD算法了以后,由于投影處理,成功的達(dá)到降維的目的,大大減小了系統(tǒng)成本的損失,但同時(shí)也暴露出了FLD的另外一些問(wèn)題,當(dāng)然,已經(jīng)有不少學(xué)者提出了改進(jìn)的FLD算法,相信在不斷的試驗(yàn)下,F(xiàn)LD的優(yōu)秀性必將隨著問(wèn)題的解決而越發(fā)體現(xiàn)出來(lái)。
參考文獻(xiàn):
[1]王映輝.人臉識(shí)別-原理、方法與技術(shù)[M].北京:科學(xué)出版社,2010:26-28.
[2]范立南.圖像處理與模式識(shí)別[M].北京:科學(xué)出版社.2007:57-62.
[3]程星晶,傅家祥.對(duì)人臉識(shí)別中Fisher線性判別的改進(jìn)方法[J].電腦知識(shí)與技術(shù),2008(27):2054-2055.
[4]RoberstonG,CrawI.Testingfacerecognitionsystems[J].ImageandVisionComputing.1994,12(9):609-614.
[5]李華勝,楊樺,袁保宗.人臉識(shí)別系統(tǒng)中的特征提取[J].北方交通大學(xué)學(xué)報(bào),2001,25(2):18-21.