黃華盛,楊阿慶
(廣東科技學院計算機系,廣東東莞 523000)
人臉識別包括了圖像預處理、特征提取與選擇、分類識別這幾個階段。其中,特征的提取和選擇是關鍵的一步。如何提取出區(qū)分度高的特征,決定了最終識別的準確率。特征提取是人臉識別的關鍵。
基于代數(shù)的特征提取方法是當前人臉識別的主流,且取得了較好的實驗效果[1]。在此類的特征抽取方法中,基于主成份分析(PCA)是應用較廣的人臉識別方法。PCA算法從圖像的整體代數(shù)特征出發(fā),使用K-L變換,提取出圖像最主要的特征空間,去除數(shù)據(jù)冗余和噪聲。
Simvich和Kirby首先將PCA變換用于人臉圖像的最優(yōu)表示[2],Pentland使用PCA算法進行人臉識別,在200個人的3 000幅圖像中得到95%的正確識別率[3]。本文使用PCA算法進行人臉識別,并在 ORL人臉庫[4]和 YALE人臉庫[5]進行了實驗。其結(jié)果表明,該方法對簡單狀況下的人臉圖像有較高的識別率。
主成分分析(PCA)方法是應用最廣泛的特征提取方法之一,其是一種統(tǒng)計學方法,在信號處理、模式識別、數(shù)字圖像處理等領域己得到了廣泛的應用[6]。PCA是構造圖像子空間的數(shù)學基礎。其從圖像整體代數(shù)特征出發(fā),基于圖像的總體信息進行分類識別[7]。主成份分析法能提取出圖像數(shù)據(jù)的主要特征(主元),使數(shù)據(jù)能在更易于分類的子空間中被表示,同時降低數(shù)據(jù)維數(shù),防止數(shù)據(jù)冗余,因此在人臉識別的研究中得到廣泛應用。
1.2.1 訓練過程
PCA算法訓練過程的目標就是尋找一個變換矩陣,將高維的原始樣本空間壓縮到一個低維的特征子空間,使得樣本數(shù)據(jù)在特征子空間中的分布更加緊湊,且更利于分類[8]。
(1)讀入人臉庫。讀入建庫的圖像,將每張二維圖像轉(zhuǎn)化為一維向量。假設每張圖像的寬度為w,高度為h,則圖片為w×h的矩陣。將圖像轉(zhuǎn)化為一維矩陣,令m=w×h,則轉(zhuǎn)化后的圖像x是m×1的矩陣。若假設建庫的圖像個數(shù)是n,則訓練集X構成m×n的矩陣。第i幅人臉可表示為x,整個訓練集X可表示為X=
(2)對訓練集X,求圖像每個維度的平均值mean,則mean為m×1的矩陣,且
(3)將訓練集X中每個圖像的數(shù)據(jù)減去平均值mean,得到矩陣X1
(4)使用式(3),求得訓練樣本的協(xié)方差矩陣∑。對協(xié)方差進行特征分解,求取特征根λ和對應的特征向量P0。根據(jù)特征根λ的數(shù)值,取前t個特征根,則其對應的特征向量Pt就是訓練過程所求的轉(zhuǎn)換矩陣
(5)利用式(4),將訓練樣本投影到子空間,得到的投影系數(shù)Y為表征訓練樣本的特征數(shù)據(jù)。Y為t×n的矩陣,其中的第i列Y(i)就是第i張圖像在子空間的特征數(shù)據(jù)
1.2.2 測試過程
圖1 ORL人臉庫中某個人的10幅圖像
(1)讀入一張人臉圖像,將二維圖像轉(zhuǎn)化為一維向量X1,同時減去平均值mean,同訓練過程。
(2)令Y1=PtX1,將測試圖像投影到子空間中,得到測試圖像在人臉子空間中的特征數(shù)據(jù)Y1。
(3)將Y1和訓練樣本的特征數(shù)據(jù)Y進行匹配,使用分類器便可得到人臉圖像的所屬類別。
1.2.3 分類器
本文使用最近鄰分類器進行分類。假設訓練圖像在子空間中的特征數(shù)據(jù)是Y1,Y2,…,Yn(n是訓練圖像的總數(shù)),且每張圖像所屬的類別分別為W1,W2,…,Wn。當給定一個測試圖像Z的特征數(shù)據(jù)Yk,定義Y與Yk之間的距離為
則最近鄰分類器的分類決策是
為了測試PCA算法的識別性能,本文采用ORL人臉數(shù)據(jù)庫[4]和 YALE人臉數(shù)據(jù)庫[5]進行了識別對比實驗。
ORL人臉庫是英國劍橋大學實驗室研究制作的人臉數(shù)據(jù)庫。該數(shù)據(jù)庫中包括40個人,每人10幅不同的圖像,共400幅。每幅原始圖像為256個灰度級,分辨率為112×92。ORL人臉圖像是在不同時間、不同光照、不同表情和不同臉部細節(jié)的條件下拍攝的。人臉庫中某個人的10幅圖像,如圖1所示。
在ORL數(shù)據(jù)庫中,每個人有10幅圖像。實驗中,隨機抽取其中的幾幅圖像作為訓練集,另外的圖像作為測試集。表1給出了不同數(shù)量訓練樣本下,PCA算法在ORL人臉庫中識別率的比較。從表1中可看出,隨著訓練樣本數(shù)量的增加,識別率也會呈現(xiàn)出上升的趨勢。
表1 不同數(shù)量訓練樣本下在ORL人臉數(shù)據(jù)庫中的識別率比較
表2給出了在不同特征維度下,PCA算法在ORL人臉庫中識別率的比較。從表2中可看出,當特征維度較小時,隨著特征維度的增加,識別率迅速提高。但特征維度提高到31維后,隨著特征維度的增加,識別率并未發(fā)生變化。因此,前面的31個維度對于人臉識別是重要的特征,而后面的特征對人臉識別并無影響。
表2 不同特征維數(shù)在ORL人臉數(shù)據(jù)庫中的識別率比較
為檢驗在不同條件下本文算法的識別率,在YALE人臉數(shù)據(jù)庫上進行了識別效果的對比實驗。YALE人臉庫有15個人,每個人11幅圖像,共有165幅人臉圖像。這些照片在不同的光照條件和臉部表情下拍攝。相比ORL人臉庫,YALE人臉庫的識別難度更高,因其中還包括了大部分的背景區(qū)域。圖3是YALE人臉庫中某人的11幅圖像。
表3是采用不同數(shù)量訓練樣本下PCA算法的識別率比較。其中PCA的特征維數(shù)為90。
表3 不同數(shù)量訓練樣本下PCA算法的識別率比較
表4是采用不同特征維數(shù)下PCA算法的識別率比較。其中,對每個人的11幅人臉圖像,隨機取6幅作為訓練集,另外5個作為測試集。
表4 不同特征維數(shù)下PCA算法的識別率比較
通過對兩個人臉數(shù)據(jù)庫進行的對比實驗可看出,本文采用的PCA算法對簡單狀態(tài)下的人臉圖像能進行有效地識別。表1和表3則表示了在相同特征維數(shù)的情況下,隨著訓練樣本數(shù)量的增加,識別率也隨之提高。表2和表4則表示了在相同訓練樣本的情況下,隨著特征維數(shù)的增加,識別率由迅速提高轉(zhuǎn)向逐漸緩和。因此,在進行人臉識別的過程中,只需取前面的部分特征便可進行有效地識別,即能保證識別精度,又能降低特征維數(shù),從而提高了識別速度。
本文采用PCA算法進行人臉圖像的識別。該方法提取出原始數(shù)據(jù)中的主要特征,減少數(shù)據(jù)冗余,使得數(shù)據(jù)在一個低維的特征空間被處理,同時保持原始數(shù)據(jù)的大部分信息,從而解決了數(shù)據(jù)空間維數(shù)過高的問題[6]。實驗結(jié)果表明,本文采用的方法對簡單狀態(tài)下的人臉圖像能有效識別,但對于背景較為復雜的人臉區(qū)域,識別精度還有待提高。
[1] 林宇生.一種對角LDA算法及其在人臉識別上的應用[J].中國圖像圖形學報,2008(4):686 -690.
[2] Kirby M,Sirovich L.Applicafion of the KL procedure for the characterization of human faces[J].IEEE Transactions on Pattern Anal.Machine Intell,1990,12(1):103 -108.
[3] Turk M,Pentland A.Eigenfaces for recognition[J].Journal Cognitive Neuroscicnce,1991,3(1):71 -86.
[4] ORL.ORL face database[EB/OL].(2001 -01 -31)[2014-11 - 29]http://www.uk.research.a(chǎn)tt.com/face database.html.
[5] YALE.YALE face database[EB/OL].(2002 - 02 - 12)[2014 - 11 -29]http://cvc.yale.edu/projects/yalefaces/yalefaces.html
[6] 程永.基于結(jié)構主元分析的人臉識別方法[D].中山:中山大學,2005.
[7] 周濤.基于PCA的人臉識別研究[D].南京:南京理工大學,2004.
[8] 崔法毅.改進的 Fisher鑒別分析兩步算法研究及其在人臉識別中的應用[D].秦皇島:燕山大學,2012.