基于PCA人臉識別算法的實現
主成分分析為一種統計學中特征提取方法,在實際中應用的非常廣泛。PCA是通過提取原始數據的主元來減少數據的冗余,使數據在低維度的空間中被處理,同時它還能很好保持了原始數據的絕大部分信息,有效的解決了由于空間維數過高而導致的一系列問題。如下將詳細介紹如何使用PCA算法進行人臉識別。
圖4.2 基于PCA的人臉識別算法實現原理圖
在本環節中主要分為兩個階段,分別為:
1.讀入系統人臉數據庫,并將圖像變換為相應的灰度圖像。
2.同時將變換后的二維人臉灰度圖像變換為一維人臉向量矩陣。
一個大小為M*N的二維人臉圖像可以看成長度為MN的人臉圖像列向量。為了將二維人臉圖像變為以為列向量,我們采取的措施為:首先計算出人臉圖像的大小,然后將人臉圖像經行轉置,最后按列依次取出取出所有灰度值形成大小為MN的一維向量,其實整個階段的效果相當于將圖像的灰度值按行取出依次連接成一維圖像向量。
本環節完成后將會產生由一維圖像向量組成的矩陣T。
本環節主要包括三個階段,分別為:
1.對圖像矩陣T進行規范化
首先計算出圖像矩陣中一維列向量的平均值m,然后對圖像矩陣的每一列都減去平均值形成規范化的圖像矩陣A。
2. 計算特征臉
人臉訓練圖像的協方差矩陣為 C=AAT ,其中人臉訓練樣本為 A=[Φ1,...,ΦP]
,維度為 M×N×P ,則協方差矩陣C的維度為 ()(MN)2 。這就出現問題,C的維度過高,在實際中直接計算它的特征值和特征向量非常困難。因此,本文使用奇異值分解定理來解決這個問題。
奇異值分解定理:
假設B為 n×m 維秩為p的矩陣,則存在兩個正交矩陣和一個對角矩陣:
正交矩陣為 U=[u1,u2,...,up]∈R(n2×n2) (4.19)
V=[v1,v2,...,vp]∈R(m×m) (4.20)
其中 UTU=I (4.21)
VTV=I (4.22)
對角矩陣為 ∧=diag[λ1,λ2,...,λp]∈R(m×m) λ1≥λ2...≥λp
則可以得到 B=U∧(1/2)VT ,而且 BBT 和 BTB 有共同的非零特征值, ui 和 vi 分別為 BBT 和 BTB 對應特征值的正交特征向量。
由上述定理可以得到 U=BV∧(?1/2) (4.23)
則可以由協方差矩陣 C=AAT ,構造出矩陣 L=ATA∈R(m×m) ,從而容易求出L的特征值和特征向量,再根據上述(4-23)式可以求得協方差C的特征值和特征向量。
實際上我們并不需要協方差所有的特征值和特征向量, m個(m<M,M為特征值的數目)個特征值足夠用于人臉識別。所以,實際操作中,只取L的前m個最大特征值對應的特征向量用于計算特征臉。
在本環節,本文通過直接構造 L=ATA∈R(m×m) ,來計算出L的特征值,再挑選L特征值大于100的作為C的特征值,最后通過C的特征值計算出它的特征向量,從而形成特征臉。
3.人臉識別
人臉識別過程分為訓練和測試兩個階段。在訓練階段,主要是提取數據庫人臉圖像的特征,并形成特征庫。在測試階段,主要是提取待識別圖像的特征和計算提取的特征和特征庫中特征之間的距離測度,并輸出最小距離測度對應的人臉圖像作為結果。
具體步驟如下:
1.訓練階段
將規范化的圖像矩陣A中的每一列向量投影到特征子空間,形成特征庫。
2.測試階段
1假設測試人臉圖像為Y,在人臉識別前,先對其進行標準化,即 Φ=Y?Ψ 。
2把標準化后的人臉圖像向特征子空間進行投影得到向量 Ω=UTΦ 。
3本文使用最近領法分類器歐幾里德距離[14,15]進行判決分類。測試圖像與每個人臉圖像間的距離為 εk=‖R?Rk‖(k=1,2,…,P) ,并將最小距離對應的訓練圖像作為測試圖像的匹配圖像。
最后, 有相關需求歡迎通過公眾號"320科技工作室"聯系我們
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















