基于PCA的人臉識別算法.doc_第1頁
基于PCA的人臉識別算法.doc_第2頁
基于PCA的人臉識別算法.doc_第3頁
基于PCA的人臉識別算法.doc_第4頁
基于PCA的人臉識別算法.doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于PCA的人臉識別算法Alen Fielding摘要:文章具體討論了主成分分析( PCA)人臉識別算法的原理及實現。它具有簡單、快速和易行等特點,能從整體上反映人臉圖像的灰度相關性具有一定的實用價值。關鍵詞:人臉識別;PCA;生物特征;識別技術中圖分類號: TP302文獻標識碼: AFace recognition method based on PCA Zhangjinhua(Information engineering college,Southwest university of science and technology,Sichuan,621010,China)Abstract : The paper discussed the principal component analysis (PCA) face recognition algorithm of principle and realization. It is simple, rapid and easy wait for a characteristic, can reflect from whole face image gray correlation has certain practical value.Key words : Face recognition; PCA; Biological characteristics; Recognition technology1引言 PCA,即Principal Component Analysis,主成分分析方法,是一種得到廣泛應用的事實上的標準人臉識別方法。傳統(tǒng)主成分分析方法的基本原理是:利用K-L變換抽取人臉的主要成分,構成特征臉空間,識別時將測試圖像投影到此空間,得到一組投影系數,通過與各個人臉圖像比較進行識別。這種方法使得壓縮前后的均方誤差最小,且變換后的低維空間有很好的分辨能力。2 K-L變換 PCA方法是由Turk和Pentlad提出來的,它的基礎就是Karhunen-Loeve變換(簡稱K-L變換),是一種常用的正交變換。首先對K-L變換作一個簡單介紹:假設X為n維的隨機變量,X可以用n個基向量的加權和來表示: X= ii式中:i是加權系數,i是基向量,此式可以用矩陣的形式表示: X =(1 ,2,3 ,n)( 1, 2 , n)= 系數向量為: =TX綜上所述,K-L展開式的系數可用下列步驟求出:步驟一 求隨機向量X的自相關矩陣R=EXTX,由于沒有類別信息的樣本集的均值向量,常常沒有意義,所以也可以把數據的協(xié)方差矩陣=E(x-)(x-)T作為K-L坐標系的產生矩陣,這里是總體均值向量。步驟二 求出自相關矩陣或者協(xié)方差矩陣R的本征值i和本征向量i,=(1 ,2,3 ,n)步驟三 展開式系數即為=TX K-L變換的實質是建立一個新的坐標系,將一個物體主軸沿特征矢量對齊的轉變換,這個變換解除了原有數據向量的各個分量之間相關性,從而有可能去掉那些帶有較少信息的坐標系以達到降低特征空間維數的目的。3 PCA方法 PCA方法,也被叫做特征臉方法(eigenfaces),是一種基于整幅人臉圖像的識別算法,被廣泛用于降維,在人臉識別領域也表現突出。一個NN的二維臉部圖片可以看成是N的一個一維向量,一張11292的圖片可以看成是一個10,304維的向量,同時也可以看成是一個10,304維空間中一點。圖片映射到這個巨大的空間后,由于人臉的構造相對來說比較接近,因此,可以用一個相應的低維子空間來表示。我們把這個子空間叫做“臉空間”。PCA的主要思想就是找到能夠最好地說明圖片在圖片空間中的分布情況的那些向量。這些向量能夠定義“臉空間”,每個向量的長度為N,描述一張NN的圖片,并且是原始臉部圖片的一個線性組合。對于一副M*N的人臉圖像,將其每列相連構成一個大小為D=M*N維的列向量。D就是人臉圖像的維數,也即是圖像空間的維數。設n是訓練樣本的數目;Xj表示第j幅人臉圖像形成的人臉向量,則所需樣本的協(xié)方差矩陣為: Sr= (1)其中u為訓練樣本的平均圖像向量: u = (2) 令A=x1-u x2-uxn-u,則有Sr=AAT,其維數為D*D。 根據K-L變換原理,需要求得的新坐標系由矩陣AAT的非零特征值所對應得特征向量組成。直接計算的計算量比較大,所以采用奇異值分解(SVD)定理,通過求解ATA的特征值和特征向量來獲得AAT的特征值和特征向量。 依據SVD定理,令li(i=1,2,r)為矩陣ATA的r個非零特征值,vi為ATA對應于li的特征向量,則AAT的正交歸一特征向量ui為: (i=1,2,r) (3)則特征臉空間為:w=(u1 ,u2 ur,)。將訓練樣本投影到“特征臉”空間,得到一組投影向量=wTu,構成人臉識別的數據庫。在識別時,先將每一幅待是識別的人臉圖像投影到“特征臉”空間,再利用最近鄰分類器的比較其與庫中人臉的位置,從而識別出該圖像是否是庫中的人臉,如果是,是哪一個人臉。4利用PCA進行人臉識別 完整的PCA人臉識別的應用包括幾個步驟:人臉圖像預處理;讀入人臉庫,訓練形成特征子空間;把訓練圖像和測試圖像投影到上一步驟中得到的子空間上;選擇一定的距離函數進行識別。本文采用matlab7.5作為工具平臺, 實現了一個人臉自動識別的系統(tǒng)原型。實驗在樣本圖庫英國劍橋大學的ORL( Olivetti Research Laboratory) 人臉庫上進行,它為網上下載的國外標準人臉數據庫。ORL 庫包含40 個人,每個人10副圖像,共計400 幅人臉正面圖像,每幅圖像大小為92112,圖像是在不同時間,光線輕微變化的條件下攝制的,其中包括姿態(tài)、光照和表情的差別。其中部分如圖1 所示:圖1ORL 人臉數據庫中的 5幅圖像該數據庫提供了經過預處理的人臉訓練集和測試集。選取前5 張人臉圖像作為訓練樣本,后5 張人臉圖像作為測試樣本。本實驗運行的環(huán)境是IntelCelero n CPU 2.00GHz 處 理器、512MB 內 存,Window s XP 操作系統(tǒng),對ORL 人臉庫樣本訓練時間為70. 91s,識別率為90% ,訓練樣本數目多增加人臉特征庫的容量,會幾何級增加人臉識別核心算法的時間和空間復雜度。在識別結果的顯示窗口中, 一共顯示了在整個人臉圖像庫中最小的10 個歐氏距離,它們的排列也是從小到大進行排列的,同時, 換句話說,這10 個歐氏距離,也就分別代表了與實驗中選取的待識別的人臉圖像最相近的10 幅人臉圖像。距離最近, 當然也就是我們實驗所需識別的人臉圖像。下面詳細描述整個過程:4.1 讀入人臉庫 歸一化人臉庫后,將庫中的沒人選擇一定數量的圖像構成訓練集,其余的構成測試集。設歸一化后的圖像時n*m維,按列相連就構成N=n*m維矢量,可視為N維空間中的一個點,可以空過K-L變換用一個低維子空間描述這個圖像。4.2 計算通過K-L變換的生成矩陣所有訓練樣本的協(xié)方差矩陣為(以下三個等價);a. C1=( T)/M-mx.mxTb. C1=(A.AT)/M (1)c. C1= /MA=(12,m), i=xi-mx,其中mx是平均人臉,M是訓練人臉數,協(xié)方差矩陣C1是一個N*N的矩陣,N是xi的維數。為了方便計算特征值和特征向量,一般選用第二個公式。根據K-L變換原理,我們所求的新坐標即由矩陣A.AT的非零特征值所對應的特征向量組成。直接求N*N大小矩陣的C1的特征值和正交歸一特征向量是很困難的,根據奇異值分解原理,可以通過求解ATA的特征值和特征向量來獲得AAT的特征值和特征向量。4.3 識別利用公式Y=UT*X,首先把所有圖片進行投影,然后對于測試圖片也進行同樣的投影,采用判別函數對投影系數進行識別。5結論與展望人臉識別是目前較活躍的研究領域, 本文詳細給出了基于主成分分析的人臉特征提取的原理與方法。并使用matlab 作為工具平臺, 實現了一個人臉自動識別的系統(tǒng)原型。實驗結果表明, 該系統(tǒng)識別率為85%, 達到預期的效果。如果想進一步提高人臉識別率, 可以考慮與其他方法結合。僅單獨使用任何一種現有的方法一般都不會取得很好的識別效果, 將其他人臉識別方法組合是今后研究的一種趨勢。也可以考慮改進分類決策的方法。本系統(tǒng)采用的最小距離分類法屬于線性的分類器, 而利用神經網絡這類學習能力更強的非線性分類器對高維人臉識別問題可能會有更好的解決。參考文獻:1 鄧楠, 基于主成份分析的人臉識別. 2006.06.2 龔勛, PCA 與人臉識別及其理論基礎. 2007.04.3 田印中, 董志學, 黃建偉, 基于PCA 的人臉識別算法研究及實現. 2010.03.4 李華勝, 楊樺,袁保宗. 人臉識別系統(tǒng)中的特征提取. 2001,06.5 溫福喜, 劉宏偉. 基于 2D PCA和 2D LDA的人臉識別方法. 2007.08.6 李剛, 高政.人臉識別理論研究進展. 2003, 01.7 張翠平, 蘇光大.人臉識別技術綜述. 2000, 05.8 羅昊, 孟傳良.基于特征臉和LDA的人臉識別.2005,12附錄-Matlab源代碼:function FaceRecognitionclear% calc xmean,sigma and its eigen decompositionallsamples=;%所有訓練圖像for i=1:40 for j=1:5 a=imread(strcat(D:rawdataORLs,num2str(i),num2str(j),.pgm); % imshow(a); b=a(1:112*92); % b是行矢量 1N,其中N10304,提取順序是先列后行,即從上到下,從左到右 b=double(b); allsamples=allsamples; b; % allsamples 是一個M * N 矩陣,allsamples 中每一行數據代表一張圖片,其中M200 endendsamplemean=mean(allsamples); % 平均圖片,1 Nfor i=1:200 xmean(i,:)=allsamples(i,:)-samplemean; % xmean是一個M N矩陣,xmean每一行保存的數據是“每個圖片數據-平均圖片”end;sigma=xmean*xmean; % M * M 階矩陣v d=eig(sigma);d1=diag(d);d2 index=sort(d1); %以升序排序cols=size(v,2);% 特征向量矩陣的列數for i=1:cols vsort(:,i) = v(:, index(cols-i+1) ); % vsort 是一個M*col(注:col一般等于M)階矩陣,保存的是按降序排列的特征向量,每一列構成一個特征向量 dsort(i) = d1( index(cols-i+1) ); % dsort 保存的是按降序排列的特征值,是一維行向量end %完成降序排列%以下選擇90%的能量dsum = sum(dsort); dsum_extract = 0; p = 0; while( dsum_extract/dsum 0.9) p = p + 1; dsum_extract = sum(dsort(1:p); endi=1;% (訓練階段)計算特征臉形成的坐標系while (i0) base(:,i) = dsort(i)(-1/2) * xmean * vsort(:,i); % base是Np階矩陣,除以dsort(i)(1/2)是對人臉圖像的標準化,詳見基于PCA的人臉識別算法研究p31 i = i + 1;end% add by wolfsky 就是下面兩行代碼,將訓練樣本對坐標系上進行投影,得到一個 M*p 階矩陣allcoorallcoor = allsamples * base;accu = 0;% 測試過程for i=1:40 for j=6:10 %讀入40 x 5 副測試圖像 a=imread(strcat(D:rawdataORLs,num2str(i),num2str(j),.pgm); b=a(1:10304); b=double(b); tcoor= b * base; %計算坐標,是1p階矩陣 for k=1:200 mdist(k)=norm(tcoor-allcoor(k,:); end; %三階近鄰 dist,index2=sort(mdist);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論