基于PCA算法的人臉識(shí)別研究與實(shí)現(xiàn)
主成分分析(Principal Component Analysis,簡稱PCA)方法是目前應(yīng)用很廣泛的一種代數(shù)特征提取方法,可以說是常用的一種基于變量協(xié)方差矩陣對(duì)樣本中的信息進(jìn)行處理、壓縮和抽提的有效方法,主要通過K-L(Karhunen-Loeve)變換展開式從人臉數(shù)據(jù)庫中提取人臉的主要特征[i],構(gòu)成特征臉空間,在識(shí)別時(shí)將待測試的人臉圖像投影到特征臉空間,得到一組投影系數(shù),與數(shù)據(jù)庫中各個(gè)人臉圖像進(jìn)行比對(duì)識(shí)別。
這種方法保留了原向量在與其協(xié)方差矩陣最大特征值相對(duì)應(yīng)的特征向量方向上的投影,即主分量(Principal Components),因此被稱為主成分分析。由于PCA方法在進(jìn)行降維處理和人臉特征提取方面的有效性,在人臉識(shí)別領(lǐng)域得到了廣泛的應(yīng)用。它的核心思想是:利用較少數(shù)據(jù)的特征對(duì)樣本進(jìn)行描述以達(dá)到降低特征空間維數(shù)的目的,根據(jù)樣本點(diǎn)在多維空間的位置分布,以樣本點(diǎn)在空間中變化最大方向,即方差最大方向,作為差別矢量來實(shí)現(xiàn)數(shù)據(jù)的特征提取。利用K-L變換抽取人臉的主要成分,利用特征臉法進(jìn)行人臉識(shí)別的過程由訓(xùn)練階段和識(shí)別階段兩個(gè)階段組成。
基于PCA算法的人臉識(shí)別研究
1 人臉識(shí)別的發(fā)展及現(xiàn)狀人臉識(shí)別的研究已經(jīng)有很長的歷史,在19世紀(jì),法國人Galton就曾對(duì)此問題進(jìn)行了研究,他用一組數(shù)字代表不同的人臉側(cè)面特征來實(shí)現(xiàn)對(duì)人臉側(cè)面圖像的識(shí)別。國內(nèi)外對(duì)于人臉識(shí)別的研究發(fā)展,分別經(jīng)歷了三個(gè)階段:傳統(tǒng)的人機(jī)交互式階段、機(jī)器自動(dòng)識(shí)別初級(jí)階段、機(jī)器自動(dòng)識(shí)別高級(jí)階段。
1.1 傳統(tǒng)的人機(jī)交互式階段
第一階段是以BerTIlion為代表,主要研究人臉識(shí)別所需要的面部特征,該階段的識(shí)別依賴于人的操作。這些人臉識(shí)別方法都需要利用操作員的某些先驗(yàn)知識(shí),仍然擺脫不了人的干預(yù)。
1.2 自動(dòng)識(shí)別初級(jí)階段
第二階段主要是采用機(jī)器自動(dòng)識(shí)別的手段進(jìn)行識(shí)別,20世紀(jì)90年代以來,隨著高速度高性能計(jì)算機(jī)的出現(xiàn),人臉識(shí)別方法有了重大突破,進(jìn)入了真正的機(jī)器自動(dòng)識(shí)別階段,人臉識(shí)別研究也得到了前所未有的重視。
1.3 機(jī)器自動(dòng)識(shí)別高級(jí)階段
第三階段是真正利用機(jī)器進(jìn)行對(duì)人臉的自動(dòng)識(shí)別,隨著計(jì)算機(jī)的大型化、高速化和人臉識(shí)別的方法的發(fā)展,提出了許多人臉自動(dòng)識(shí)別的系統(tǒng)。
2 PCA算法的原理PCA(主成分分析)算法是人臉識(shí)別中比較新的一種算法,該算法的優(yōu)點(diǎn)是識(shí)別率高,識(shí)別速度快。
2.1 PCA算法介紹
2.1.1 PCA原理
令x為表示環(huán)境的m維隨機(jī)向量。假設(shè)x均值為零,即:
E[x]=O.
令w表示為m維單位向量,x在其上投影。這個(gè)投影被定義為向量x和w的內(nèi)積,表示為:
而主成分分析的目的就是尋找一個(gè)權(quán)值向量w使得表達(dá)式E[y2]的值最大化:
根據(jù)線性代數(shù)的理論,可以知道滿足式子值最大化的訓(xùn)應(yīng)該滿足下式:
即使得上述式子最大化的w是矩陣Cx的最大特征值所對(duì)應(yīng)的特征向量。
2.1.2 主成分的求解步驟
在PCA中主要的是要求出使得方差最大的轉(zhuǎn)化方向,其具體的求解步驟如下:
?。?)構(gòu)建關(guān)聯(lián)矩陣:Cx=E[x*xT],Cx∈Pn*n.
在實(shí)際應(yīng)用中,由于原始數(shù)據(jù)的數(shù)學(xué)期望不容易求解,我們可以利用下式來近似構(gòu)造關(guān)聯(lián)矩陣:
(其中x1,x2,…,xN,是各個(gè)原始灰度圖像所有象素點(diǎn)對(duì)應(yīng)的向量,N是原始圖像的個(gè)數(shù))
(2)先計(jì)算出Cx的各個(gè)特征值
?。?)把特征值按大小排序
?。?)計(jì)算出前m個(gè)特征值對(duì)應(yīng)正交的特征向量構(gòu)成w。
?。?)將原始數(shù)據(jù)在特征向量w上進(jìn)行投影,即可獲得原始圖像的主特征數(shù)據(jù)。
2.1.3 主成分的求解方法
通過上面的分析我們可以知道,對(duì)于主成分分析的問題最后轉(zhuǎn)化為求解協(xié)方差矩陣的特征值和特征向量的問題,主成分的正交化分解的算法或求XXT特征值問題的算法常用的有雅可比方法和NIPALS方法。
2.2 Eigenface算法
在利用PCA進(jìn)行特征提取的算法中,特征臉方法(Eigenface)是其中的一個(gè)經(jīng)典算法。特征臉方法是從主成分分析導(dǎo)出的一種人臉識(shí)別和描述技術(shù)。特征臉方法就是將包含人臉的圖像區(qū)域看作是一種隨機(jī)向量,因此可以采用K-L變換獲得其正交K-L基底。對(duì)應(yīng)其中較大特征值的基底具有與人臉相似的形狀,因此又稱為特征臉。利用這些基底的線性組合可以描述、表達(dá)和逼近人臉圖像,因此可以進(jìn)行人臉識(shí)別與合成。識(shí)別過程就是將人臉圖像映射到由特征臉構(gòu)成的子空間上,比較其與己知人臉在特征空間中的位置,具體步驟如下:
?。?)初始化,獲得人臉圖像的訓(xùn)練集并計(jì)算特征臉,定義為人臉空間,存儲(chǔ)在模板庫中,以便系統(tǒng)進(jìn)行識(shí)別;
?。?)輸入新的人臉圖像,將其映射到特征臉空間,得到一組關(guān)于該人臉的特征數(shù)據(jù);
?。?)通過檢查圖像與人臉空間的距離判斷它是否是人臉;
?。?)若為人臉,根據(jù)權(quán)值模式判斷它是否為數(shù)據(jù)庫中的某個(gè)人,并做出具體的操作。
2.2.1 計(jì)算特征臉
設(shè)人臉圖像I(x,y)為二維N*N灰度圖像,用N維向量R表示。人臉圖像訓(xùn)練集為{Ri|i=1,…,M},其中M為訓(xùn)練集中圖像總數(shù),這M幅圖像的平均向量為:
每個(gè)人臉Ri與平均人臉ψ的差值向量是:
訓(xùn)練圖像的協(xié)方差矩陣可表示為:
C=AAT.
其中,A=[φ1,…φM]。
特征臉有協(xié)方差矩陣C的正交特征向量組成。對(duì)于N*N人臉圖像,協(xié)方差矩陣C的大小為N2*N2,對(duì)它求解特征值和特征向量是很困難的。一種取而代之的方法是令L=ATA.
即協(xié)方差矩陣的轉(zhuǎn)置陣,則可以知道此矩陣是M*M(M是訓(xùn)練人臉的數(shù)量)的一個(gè)較小的矩陣。首先計(jì)算M*M矩陣L的特征向量vi(l=l,…,M),則矩陣C的特征向量ui(l=1,…,M)由差值圖像φi(i=1,…,M)與vi(l=l,…,M)線性組合得到:U=[u1,…,uM]=[[ψ1,…,ψM]T][v1.…,vM]。實(shí)際上,m(m《M)個(gè)特征值足夠用于人臉識(shí)別。因此,僅取L的前m個(gè)最大特征值的特征向量計(jì)算特征臉。
3 PCA算法在人臉識(shí)別中的應(yīng)用基于特征臉的人臉識(shí)別過程由訓(xùn)練階段和識(shí)別階段兩個(gè)階段組成。在訓(xùn)練階段,每個(gè)已知人臉Ri映射到由特征臉構(gòu)成的子空間上,得到m維向量
在識(shí)別階段,首先把待識(shí)別的圖像R映射到特征臉空間。得到向量:
為了區(qū)分人臉和非人臉,還需計(jì)算原始圖像R與其由特征空間重建的圖像Rf之間的距離ε:
采用最小距離法對(duì)人臉進(jìn)行分類,分類規(guī)則如下:
?。?)若ε≥θc,則輸入圖像不是人臉圖像;
4 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)在兩個(gè)圖庫上測試,首先是一個(gè)ORL人臉庫,該庫包含40個(gè)不同人物,每人有l(wèi)O張圖片,共400幅。用訓(xùn)練樣本進(jìn)行測試,識(shí)別率為95%。一個(gè)是自建人臉庫,該庫包含20個(gè)不同人物,每人有5張不同表情和姿態(tài)下的圖片,總共100幅。隨著訓(xùn)練樣本的增加,識(shí)別率會(huì)有所提升,但是并不是越多越好,當(dāng)超過一定的訓(xùn)練樣本數(shù)目時(shí),識(shí)別率反而有所下降。
5 人臉識(shí)別未來的發(fā)展人臉識(shí)別是一個(gè)跨學(xué)科富挑戰(zhàn)性的前沿課題,人臉圖像中姿態(tài)、光照、表情、飾物、背景、時(shí)間跨度等因素的變化對(duì)人臉識(shí)別算法的魯棒性都有著負(fù)面的影響,單一的PCA方法識(shí)別率不高,今后的發(fā)展方向可以與其他方法(如:支持向量機(jī)、小波變化等)相結(jié)合來彌補(bǔ)單一方法的不足,讓身份識(shí)別更準(zhǔn)確。