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