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