程浩男
摘 要 人臉識別一直是模式識別中的熱門問題,而主成分分析又是其中的主流方法之一。這里我們用隨機(jī)過程的觀點(diǎn)去看待一個灰度圖像,每個像素中有隨機(jī)性的存在,也有人臉之間的類內(nèi)差別,但人臉區(qū)別于其他圖片,有自己專屬于這一類隨機(jī)過程的特點(diǎn)。我們采用基于SVD的主成分分析,將人臉的主成分提取出并用測試集測試其準(zhǔn)確度。之后,并采用特征值分解的方法大大提高效率且不改變實(shí)驗(yàn)結(jié)果。
關(guān)鍵詞 人臉識別;主成分分析;奇異值分解;特征值分解
中圖分類號 TP3 文獻(xiàn)標(biāo)識碼 A 文章編號 1674-6708(2017)179-0040-02
隨著人工智能的飛速發(fā)展,人臉識別吸引了越來越多的關(guān)注及研究。主成分分析因?yàn)槠浞奖愫唵蔚奶攸c(diǎn)成為比較常用的方法之一,而SVD分解又成為主成分分析中的主流實(shí)現(xiàn)方法,但該方法有一定缺陷,比如處理大矩陣效率較低。為了得到更高效率的主成分分析方法,越來越多的工作者開始研究如何提高主成分分析的效率。
經(jīng)過研究,當(dāng)矩陣的兩個維度相差很大時,將矩陣與其轉(zhuǎn)置相乘得到相關(guān)矩陣,即一個維度較小的矩陣,再求其特征值與特征向量能夠得到與直接進(jìn)行SVD分解相同的結(jié)果,而上述相關(guān)矩陣求特征值的替代方法卻能極大地提高效率。
第二節(jié)將詳細(xì)介紹基于SVD的主成分分析和基于特征值分解的替代算法的基本原理。第三節(jié)將詳細(xì)介紹的兩種方法對應(yīng)的實(shí)驗(yàn)步驟。第四節(jié)將詳細(xì)比較這兩種方法的異同,主要是算法耗費(fèi)時間的差異。第五節(jié)總結(jié)根據(jù)我們設(shè)計(jì)的實(shí)驗(yàn)得到的結(jié)論。
1 基本原理
主成分分析的主要思想是提取出訓(xùn)練集中圖片的主成分,使測試集與其主成分做內(nèi)積觀察結(jié)果,進(jìn)而將人臉圖片與其他圖片相區(qū)別。
我們將訓(xùn)練集的圖片讀入,并將每一張圖片都拉成“一條向量”放在一個矩陣的一行中,減去平均值,此時的圖像矩陣示意圖如下:
我們的數(shù)據(jù)集共有35個圖片,圖片拉長之后的向量長為108×75=8 100,故矩陣的行數(shù)為8 100,列數(shù)為35??芍@是一個行列維度相差很多的矩陣。
1.1 基于SVD的主成分分析
奇異值分解是主成分分析的主流方法,其原理在于將原矩陣P分解為3個矩陣相乘:
U×S×V=P
其中U和V是單位正交矩陣,S是對角陣。通過這樣的分解,我們得到U和V代表兩個維度上的主成分,而S的對角元素代表對應(yīng)主成分的重要程度。在本實(shí)驗(yàn)中,V的每一行有著明確的物理意義,代表圖片的主成分。
1.2 基于相關(guān)矩陣特征值分解的快速算法
當(dāng)需要奇異值分解的矩陣在兩個維度上相差較大時,我們可以用相關(guān)矩陣特征值求解的辦法來提高計(jì)算效率,并且得到相同的結(jié)果。首先我們需要得到P的相關(guān)矩陣R:
然后,將奇異值分解的結(jié)果帶入相關(guān)矩陣,由于正交陣的轉(zhuǎn)置即是它自身的逆,故不難發(fā)現(xiàn)經(jīng)過推倒得到了特征值分解的形式,所以我們僅需要做特征值分解的計(jì)算即可得到奇異值分解中的S和U矩 陣。
至此,我們用相關(guān)矩陣求特征值分解的方法已經(jīng)完全求出奇異值分解的結(jié)果。
2 實(shí)驗(yàn)方法
訓(xùn)練集由35張人臉的灰度圖像構(gòu)成,如圖2:
測試集如圖3:
實(shí)驗(yàn)過程由matlab仿真進(jìn)行。首先,我們將訓(xùn)練集的圖片讀入,并將每一張圖片都拉成“一條向量”放在一個矩陣的一行中,減去平均值,待后續(xù)處理。在傳統(tǒng)的方法中,我們對該矩陣進(jìn)行SVD分解,但由于兩個維度相差過大,導(dǎo)致較大的維度上的值相對很小,故而在正規(guī)奇異值分解算法中浪費(fèi)了很多時間,而這也正是SVD分解算法效率較低的關(guān)鍵。實(shí)驗(yàn)中,我們就傳統(tǒng)算法和相關(guān)矩陣的特征值算法進(jìn)行了討論。繼而,我們對SVD的中間的對角陣觀察對角元素,可知最大項(xiàng)約為次大項(xiàng)的一倍,故可知在后續(xù)的分類中,只需考慮最大項(xiàng)對應(yīng)的主成分。在訓(xùn)練集輸入完成以后,我們將待檢測圖片按照同樣的方法拉成“一條向量”,再與最大主成分求相關(guān)系數(shù),即直接做內(nèi)積并與前面圖片作比較即可,可知人臉和馬臉圖片的運(yùn)算結(jié)果相差一個數(shù)量級,故而得以區(qū)分。
3 實(shí)驗(yàn)結(jié)果
在上述實(shí)驗(yàn)過程中,將矩陣分解為U×S×V,左右兩個矩陣為標(biāo)準(zhǔn)正交陣,中間是對角陣。觀察對角陣元素見圖4。
可知第一個項(xiàng)是第二個2倍左右,相差較多,故我們可以重點(diǎn)區(qū)分以是否像第一個主成分作為判別標(biāo)準(zhǔn)。即第一項(xiàng)可以被看作人臉圖像的最主要成分。我們將第一主成分經(jīng)過線性放縮到0到255灰度值區(qū)間并可視化觀察,如圖5左,可以看作是一個近似每張人臉平均的這樣一個結(jié)果。而實(shí)際上排序相對靠后地主成分也有特定地物理含義,例如第4個主成分,如圖5右,主要表征了肩上頭發(fā)的多少的區(qū)別。
我們用主成分去和測試集地人臉圖片和馬臉圖片分別作內(nèi)積,得到圖6??擅黠@觀察到,測試集人臉圖片和上面分析的主成分進(jìn)行內(nèi)積明顯高于測試集馬臉地內(nèi)積結(jié)果。我們根據(jù)圖中觀察可得出將2 000設(shè)為判定是否為人臉地閾值:即當(dāng)內(nèi)積值大于或等于2 000,我們把測試圖片判定為人臉,若內(nèi)積值小于2 000,我們把測試圖片判定為非人臉。
4 算法對比
我們經(jīng)過原理分析和實(shí)驗(yàn)結(jié)果均證明兩種方法得到的結(jié)果完全相同。但是兩者的耗費(fèi)時間卻相差很多,我們在matlab上進(jìn)行試驗(yàn),對比運(yùn)行時間發(fā)現(xiàn),傳統(tǒng)SVD方法耗時約2.7S,而我們的基于特征值分解的快速替代算法耗時約0.0026S,效率提高了大約1 000倍。這在大量級數(shù)據(jù)集上將發(fā)揮著至關(guān)重要的作用。
5 結(jié)論
基于SVD主成分分析人臉識別方法是一種簡單可靠的方法,能夠得到很清晰的分類效果。而其效率較低地問題在待分解矩陣維度相差較大情況下可以通過特征值分解的方式,在保證得到相同結(jié)果的前提下,大大提高算法運(yùn)行效率。
參考文獻(xiàn)
[1]何婧,馮國燦.奇異值分解在人臉識別中的應(yīng)用[J].廣東第二師范學(xué)院學(xué)報(bào),2006,26(3):92-96.
[2]羅小桂.矩陣奇異值分解(SVD)的應(yīng)用[J].井岡山醫(yī)專學(xué)報(bào),2005,12(4):133-135.
[3]梁毅雄,龔衛(wèi)國,潘英俊,等.基于奇異值分解的人臉識別方法[J].光學(xué)精密工程,2004,12(5):543-549.
[4]龐彥偉,劉政凱,俞能海.融合奇異值分解和主分量分析的人臉識別算法[J].信號處理,2005,21(2):202-205.
[5]牟雪嬌.奇異值分解和主成分分析在車型識別中的應(yīng)用[D].上海:上海交通大學(xué),2008.