本發(fā)明屬于計(jì)算機(jī)視覺領(lǐng)域,具體為一種基于2dpca(twodimensionprincipalcomponentanalysis,二維主成分分析)結(jié)合svm(supportvectormachine,支持向量機(jī))的人臉識(shí)別方法。
背景技術(shù):
隨著社會(huì)的高速發(fā)展,對(duì)某人身份的確認(rèn)能夠有效又迅速地自動(dòng)進(jìn)行,這是人們所希望的。由于生物特征是人們內(nèi)在的穩(wěn)定屬性,每個(gè)人所擁有的特征信息大不相同,具有差異性,因此可以用來進(jìn)行身份的驗(yàn)證。人臉識(shí)別技術(shù)已成為一個(gè)熱點(diǎn)的研究領(lǐng)域,它的研究和應(yīng)用都很重要,而且隨著研究的逐漸深入,也會(huì)越來越受到更多的關(guān)注。近年來人臉識(shí)別已經(jīng)應(yīng)用到多個(gè)方面,如重要場(chǎng)合的出入安檢、銀行的實(shí)時(shí)監(jiān)控、邊境的檢查、犯罪嫌疑人的照片比較、門禁系統(tǒng)和電子商務(wù)等方面。
基于幾何特征的方法:采用幾何特征進(jìn)行正面人臉識(shí)別一般是通過提取人眼、口、鼻等重要特征點(diǎn)的位置和眼睛等重要器官的幾何形狀作為分類特征,經(jīng)過實(shí)驗(yàn)證明,結(jié)果不容樂觀。
可變形模板法可以視為幾何特征方法的一種改進(jìn),其基本思想是:設(shè)計(jì)一個(gè)參數(shù)可調(diào)的器官模型(即可變形模板),定義一個(gè)能量函數(shù),通過調(diào)整模型參數(shù)使能量函數(shù)最小化,此時(shí)的模型參數(shù)即作為該器官的幾何特征。這種方法思想很好,但是存在兩個(gè)問題,一是能量函數(shù)中各種代價(jià)的加權(quán)系數(shù)只能由經(jīng)驗(yàn)確定,難以推廣,二是能量函數(shù)優(yōu)化過程十分耗時(shí),難以實(shí)際應(yīng)用。
神經(jīng)網(wǎng)絡(luò)方法在人臉識(shí)別上的應(yīng)用有一定的優(yōu)勢(shì),神經(jīng)網(wǎng)絡(luò)方法可以通過學(xué)習(xí)的過程獲得對(duì)人臉圖像的規(guī)律和規(guī)則的隱性表達(dá),適應(yīng)性較強(qiáng),一般也比較容易實(shí)現(xiàn)。因此人工神經(jīng)網(wǎng)絡(luò)識(shí)別速度快,但識(shí)別率低。而神經(jīng)網(wǎng)絡(luò)方法通常需要將人臉作為一個(gè)一維向量輸入,因此輸入節(jié)點(diǎn)龐大,其識(shí)別重要的一個(gè)目標(biāo)就是降維處理。
pca(principalcomponentanalysis,主成分分析)方法不僅可以有效地降低人臉圖像的維數(shù),同時(shí)又能保留主要的識(shí)別信息。但此方法需要將人臉圖像矩陣預(yù)先轉(zhuǎn)換成一維的向量,然后以向量作為原始特征進(jìn)行特征提取。由于轉(zhuǎn)換后的一維向量的維數(shù)一般較高,對(duì)隨后的特征提取造成困難,使得后續(xù)算法具有較高的計(jì)算復(fù)雜度。之后改進(jìn)的2dpca不需要預(yù)先將人臉圖像矩陣展開成一維的向量,有效地提高了特征提取的速度,并取得了較高的識(shí)別率。然而,人臉識(shí)別是典型的小樣本問題,在小樣本情況下,不能保證訓(xùn)練樣本的平均值就是樣本分布的中心,因此,以訓(xùn)練樣本的均值作為樣本中心求出的投影矩陣不能保證是最優(yōu)的。
svm在解決小樣本、非線性及高維模式識(shí)別問題中表現(xiàn)出許多特有的優(yōu)勢(shì),尤其是能夠通過把一個(gè)非線性數(shù)據(jù)輸入映射到高維特征空間,將無法線性分類的數(shù)據(jù)變換到特征空間,實(shí)現(xiàn)線性分類。使用svm進(jìn)行人臉識(shí)別時(shí)雖然識(shí)別率相對(duì)較高,但由于人臉圖像數(shù)據(jù)量一般比較大即維數(shù)比較大,所以直接對(duì)圖像進(jìn)行分類時(shí)會(huì)產(chǎn)生運(yùn)算量大,識(shí)別時(shí)間長(zhǎng)的效果。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明主要針對(duì)識(shí)別效率低且識(shí)別時(shí)間長(zhǎng)的問題,提出一種基于改進(jìn)的2dpca結(jié)合svm的人臉識(shí)別方法。
本發(fā)明的技術(shù)方案為:
一種人臉識(shí)別方法,其步驟為:
1)讀取訓(xùn)練集上的所有圖片,根據(jù)圖片的像素值生成該圖片的二維訓(xùn)練樣本矩陣;其中,該訓(xùn)練集包括多類人的圖片,每類人具有若干訓(xùn)練樣本圖片;
2)利用每類人的若干訓(xùn)練樣本矩陣求出該類人對(duì)應(yīng)的修勻平均矩陣;然后用每一幅圖片所對(duì)應(yīng)的二維訓(xùn)練樣本矩陣減去該圖片所在類的修勻平均矩陣;
3)對(duì)步驟2)的結(jié)果累加和得到該訓(xùn)練集的協(xié)方差矩陣;計(jì)算該協(xié)方差矩陣的特征值和特征向量;
4)選取前若干個(gè)最大特征值對(duì)應(yīng)的特征向量組成新的矩陣,然后將該訓(xùn)練集每一圖片的二維訓(xùn)練樣本矩陣分別投影在該矩陣上,得到該訓(xùn)練集降維后的矩陣;
5)利用步驟4)降維后的矩陣中的特征數(shù)據(jù)進(jìn)行訓(xùn)練得到若干分類器,然后用該分類器對(duì)待測(cè)圖片進(jìn)行人臉識(shí)別。
進(jìn)一步的,利用每類人的若干訓(xùn)練樣本矩陣求出該類人對(duì)應(yīng)的修勻平均矩陣的方法為:把每一二維訓(xùn)練樣本矩陣的第m行第n列的元素組成一個(gè)數(shù)列,計(jì)算該數(shù)列的修勻平均值作為第m行第n列的元素,得到矩陣為該修勻平均矩陣。
進(jìn)一步的,該數(shù)列的修勻平均值
進(jìn)一步的,步驟5)中,利用svm算法對(duì)特征數(shù)據(jù)進(jìn)行訓(xùn)練得到若干分類器。
進(jìn)一步的,采用交叉驗(yàn)證法與網(wǎng)格搜索法進(jìn)行svm參數(shù)選擇,其方法為:
51)依據(jù)網(wǎng)格搜索法初步設(shè)定svm的參數(shù)變化范圍,然后針對(duì)參數(shù)不同組合運(yùn)用交叉驗(yàn)證求得對(duì)應(yīng)的分類正確率;
52)將前兩個(gè)最高的分類正確率分別對(duì)應(yīng)的參數(shù)值作為新的參數(shù)范圍,然后根據(jù)交叉驗(yàn)證平均正確率排序,選擇分類正確率最高的參數(shù)組合作為模型的最優(yōu)參數(shù)。
進(jìn)一步的,所述svm算法為二分類svm算法。
進(jìn)一步的,所述二分類svm算法的核函數(shù)為rbf核函數(shù)。
本發(fā)明首先利用改進(jìn)的2dpca算法對(duì)訓(xùn)練樣本圖像進(jìn)行降維處理,提取其主要特征信息,然后把這些數(shù)據(jù)利用svm進(jìn)行分類,得到若干分類器,再用改進(jìn)的svm分類策略對(duì)測(cè)試樣本進(jìn)行判別,從而實(shí)現(xiàn)人臉識(shí)別。
傳統(tǒng)的2dpca算法原理:
人臉圖像庫共有n個(gè)人的人臉圖像,把每個(gè)人其中的h幅圖像作為訓(xùn)練樣本,則用s(s=n×h)幅圖像來訓(xùn)練,其中每幅圖像大小為m×n。
設(shè)訓(xùn)練樣本集a={x1,x2,…,xn},xij表示訓(xùn)練樣本中第i類的第j個(gè)樣本,這是一個(gè)m×n大小的二維矩陣,每一圖像對(duì)應(yīng)一二維矩陣,則訓(xùn)練樣本均值
訓(xùn)練樣本的協(xié)方差矩陣g為:
其中t表示矩陣的轉(zhuǎn)置,容易知道g為n×n的非負(fù)定矩陣。
在求得g的特征值和特征矩陣之后,將特征值從大到小排序,取g的前k個(gè)最大特征值所對(duì)應(yīng)的標(biāo)準(zhǔn)正交特征向量v1,v2,…,vk組成新的矩陣w作為最優(yōu)投影矩陣,其中w={v1,v2,…,vk},其大小為n×k。
對(duì)某個(gè)樣本圖像x,令yi=x·vi(i=1,2,…,k),則稱yi,y2,…,yk為這個(gè)樣本圖像的主成分。把圖像x投影在矩陣w上所得到的矩陣b稱為這個(gè)樣本的特征矩陣,其中b=x·w={yi,y2,…,yk},其大小為m×k。
因此可以知道,一個(gè)圖像的大小為m×n,通過投影在矩陣w上,從而得到一個(gè)大小為m×k的特征矩陣。因?yàn)閗≤n,所以一個(gè)圖像的樣本數(shù)據(jù)可以通過2dpca降維后來表示,這就是把2dpca用作降維的原因。
把k個(gè)特征值之和占所有特征值之和的比例叫做累積貢獻(xiàn)率η,
在實(shí)際應(yīng)用時(shí),主成分的個(gè)數(shù)即k值,為多少時(shí)才較為合適,這個(gè)沒有統(tǒng)一的規(guī)定。其實(shí)選擇的主成分個(gè)數(shù)最好能夠保留原始樣本信息的70%以上,即當(dāng)已選擇的k個(gè)特征值的累積貢獻(xiàn)率≥70%時(shí)即可。
改進(jìn)的2dpca算法:
對(duì)于有限數(shù)列{x1,x2,…,xn}的修勻平均值定義為:
其中,xmin表示數(shù)列中的最小值,xmax表示數(shù)列中的最大值,即修勻平均是把原數(shù)列中的兩個(gè)極值去除后得到新的數(shù)列再進(jìn)行算術(shù)平均。
例如有數(shù)列e={2,5,8,8,6,10},其最小值為2,最大值為10,所以去除這兩個(gè)值組成新的數(shù)列e1={5,8,8,6},再求算術(shù)平均值,即得到修勻平均值6.75,而e的算術(shù)平均值為6.5。
用同樣的方法可以得到修勻平均矩陣。
對(duì)于第i個(gè)人的第j幅訓(xùn)練圖像xij,其對(duì)應(yīng)的矩陣表示為:
由于用每人h幅圖像用作訓(xùn)練,則可以求出某人的h幅圖像的修勻平均矩陣。例如,修勻平均矩陣的第一行第一列的元素由這樣得到:把h幅圖像相應(yīng)矩陣的第一行第一列的元素組成一個(gè)數(shù)列,按式(4)計(jì)算得到的修勻平均值作為其的第一行第一列的元素。依此類推,計(jì)算得到m行n列的修勻平均矩陣。
由式(2)和式(4)可得改進(jìn)后的2dpca算法的總體散布矩陣的定義如下:
其中,
取與g的k個(gè)最大特征值對(duì)應(yīng)的標(biāo)準(zhǔn)正交的特征向量v構(gòu)成最優(yōu)投影矩陣w={v1,v2,…,vk},則對(duì)已知的圖像樣本x,其特征矩陣b為:
b=x·w(7)
svm分類原理:
svm其實(shí)是用于分類兩類數(shù)據(jù)的一種處理方法。如果兩類的二維數(shù)據(jù)線性可分,理論上是能夠?qū)崿F(xiàn)最優(yōu)分類的。若將從分類二維數(shù)據(jù)推廣應(yīng)用到分類高維數(shù)據(jù),則將最優(yōu)分類線稱為最優(yōu)超平面。svm旨在尋找一個(gè)超平面,使得兩種不同類別的點(diǎn)正好落在超平面的兩側(cè),并且超平面兩側(cè)的空白區(qū)域達(dá)到最大。
若給定的訓(xùn)練集為{(x1,y1),(x2,y2),…,(xi,yi)},xi∈rn,yi∈{-1,+1},其中xi為輸入樣本,yi為兩類的類別值,n為樣本的維數(shù),則該訓(xùn)練集可被一個(gè)超平面線性劃分,該超平面記為w·x+b=0,其中w是超平面的法向量,b為超平面的截距。
最優(yōu)超平面的構(gòu)造問題實(shí)質(zhì)上是約束條件下求解一個(gè)二次規(guī)劃問題,其最優(yōu)分類函數(shù)為:
其中,k(x,y)是核函數(shù),l為訓(xùn)練樣本的個(gè)數(shù),sgn()是符號(hào)函數(shù),當(dāng)表達(dá)式大于0,返回1;等于0,返回0;小于0,返回-1。
而核函數(shù)主要包括三種:
(1)多項(xiàng)式形式的內(nèi)積函數(shù),形式為k(x,y)=(x·y+1)d(其中d=1,2,...);
(2)徑向基函數(shù)(rbf)為內(nèi)積,形式為k(x,y)=exp(-γ||x-y||2),其中γ為核函數(shù)參數(shù);
(3)sigmoid核函數(shù),形式為k(x,y)=tanh(b(x·y)-c),其中b,c為核函數(shù)參數(shù)。
svm將兩類樣本數(shù)據(jù)投影到一個(gè)新的高維空間,用一個(gè)最優(yōu)分類面來進(jìn)行分類,可解決線性不可分的問題。
三種核函數(shù)中,rbf核函數(shù)表現(xiàn)相對(duì)穩(wěn)定,性能比另外兩種好,而多項(xiàng)式核函數(shù)與sigmoid核函數(shù)穩(wěn)定性較差,所以本發(fā)明采用的是rbf核函數(shù)。
本發(fā)明采用交叉驗(yàn)證法與網(wǎng)格搜索法進(jìn)行svm參數(shù)選擇,由于采用rbf核函數(shù),而且在svm分類時(shí)要增加誤差懲罰參數(shù)c,所以此時(shí)需要確定兩個(gè)參數(shù)即懲罰因子c與核函數(shù)參數(shù)γ。
(1)k交叉驗(yàn)證(k-crossvalidation)
將訓(xùn)練數(shù)據(jù)集分成k份相等的子集,每次將其中k-1份數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),而將另外一份數(shù)據(jù)作為測(cè)試數(shù)據(jù)。這樣重復(fù)k次,根據(jù)k次迭代后得到的mse平均值來估計(jì)期望泛化誤差,最后選擇一組最優(yōu)的參數(shù)。留一法是k-交叉驗(yàn)證的特例,即每次用n-1個(gè)數(shù)據(jù)(n為訓(xùn)練數(shù)據(jù)集大小)訓(xùn)練,而用另一個(gè)數(shù)據(jù)測(cè)試。
(2)網(wǎng)格搜索法(gridsearch)
基于網(wǎng)格法將c∈[c1,c2],變化步長(zhǎng)為cs,而γ∈[γ1,γ2],變化步長(zhǎng)為γs,這樣,針對(duì)每對(duì)參數(shù)(c',γ')進(jìn)行訓(xùn)練,取效果最好的一對(duì)參數(shù)作為模型參數(shù)。
從svm的分類思想知道,svm只能對(duì)兩類樣本進(jìn)行分類。但在實(shí)際當(dāng)中,很多時(shí)候要分類多類樣本,而不是分類兩類樣本。本發(fā)明采用一對(duì)一支持向量機(jī)方法將svm分類器進(jìn)行推廣,用于處理多類分類的情況。
一對(duì)一支持向量機(jī)是利用二分類svm算法構(gòu)造一個(gè)最優(yōu)決策面區(qū)分每?jī)深惒煌挠?xùn)練樣本。因此,要用
一對(duì)一支持向量機(jī)分類的改進(jìn)
一對(duì)一支持向量機(jī)存在這樣的情況:在預(yù)測(cè)過程中,每一個(gè)預(yù)測(cè)樣本需要分別進(jìn)入所有n(n-1)/2個(gè)分類器進(jìn)行判定,根據(jù)各個(gè)分類器投票結(jié)果來決定此樣本的類別。但若某一預(yù)測(cè)樣本不屬于兩分類器中的任何一類時(shí),將這一票投給其中任何一類都是不合理的,也是沒有意義的,得到的分類結(jié)果也是不可信的。由于投票結(jié)果具有隨意性,影響分類的準(zhǔn)確率,并且對(duì)這些無效投票的計(jì)算增加了額外的運(yùn)算時(shí)間。因此,本文采用一種改進(jìn)方法,對(duì)傳統(tǒng)一對(duì)一多分類方法的預(yù)測(cè)階段進(jìn)行改進(jìn)。
改進(jìn)方法只是針對(duì)識(shí)別階段,而在訓(xùn)練階段仍要訓(xùn)練出n(n-1)/2個(gè)分類器。
改進(jìn)的方法稱為多輪投票策略。多輪投票策略即當(dāng)候選類別較多時(shí),先將所有候選類別分成若干組,然后在每組內(nèi)使用傳統(tǒng)的一對(duì)一算法。當(dāng)一輪投票結(jié)束時(shí),每個(gè)組中獲得票數(shù)較高的若干候選類別勝出進(jìn)入下一輪投票。若下一輪投票的候選類別數(shù)仍然較多,則繼續(xù)使用多輪投票策略,過程同上;否則,將所有候選類別作為一組,直接決出當(dāng)選者,即是未知樣本的分類結(jié)果。
多輪投票策略過程如下:首先給每個(gè)類別按順序編號(hào),然后每5個(gè)類別作為一個(gè)組,例如1到5編號(hào)為第一組,6到10為第二組……。若最后一個(gè)組不足5個(gè)類別,則把這些類別也作為一個(gè)組。對(duì)每個(gè)組進(jìn)行第一輪投票,即每個(gè)組使用傳統(tǒng)的一對(duì)一svm算法,得票最高的2個(gè)類別稱為“勝者”,剩下的類別稱為“敗者”,若一個(gè)小組只包含1個(gè)或2個(gè)類別,則也把這些類別都作為“勝者”?!皠僬摺眳⑴c下一輪投票,而“敗者”則不參與。然后重復(fù)此過程,即編號(hào)——分組——小組投票——“勝者”進(jìn)入下一輪,直到最后一輪,只會(huì)產(chǎn)生一個(gè)組,然后在這個(gè)組產(chǎn)生唯一的“勝者”,即得票最高的1個(gè)類別,作為測(cè)試樣本所屬的類別。這里,將2個(gè)得票最高的類別作為“勝者”,而不是得票最高的那1個(gè),這是因?yàn)榭梢詼p少誤差,降低識(shí)別的錯(cuò)誤率。如果使用1個(gè),會(huì)顯得比較絕對(duì),因?yàn)榭赡艽嬖谶@樣的情況:第2得票高的類別在下一輪的投票中,即會(huì)與上一輪不同小組間的“勝者”組成新的一組進(jìn)行分類,而這可能會(huì)使這輪的票數(shù)高于上一輪同小組的得票最高者在這輪小組中的得票。但又不會(huì)使用得票最高的3個(gè)或4個(gè)類別作為“勝者”,因?yàn)榈闷睌?shù)第3高,意味著測(cè)試樣本屬于這個(gè)類別的概率已經(jīng)很低了。
例如,假設(shè)對(duì)于一個(gè)類別數(shù)n=25的多類分類問題,采用多輪投票策略,識(shí)別一個(gè)測(cè)試樣本過程的示意圖如圖2所示。
如果按照傳統(tǒng)一對(duì)一svm算法,在25個(gè)類別中識(shí)別一個(gè)測(cè)試樣本,需要在25*(25-1)/2=300個(gè)分類器中進(jìn)行判定。若采用多輪投票策略,從圖2可知,第一輪中,每組只有5個(gè)類別,則每組只需10個(gè)分類器,所以5組共50個(gè)分類器;同理,第二輪中,共需20個(gè)分類器;第三輪中,只需6個(gè)分類器,所以三輪共需76個(gè)分類器,比傳統(tǒng)的方法少得多。
多輪投票過程中,由于每一輪中每個(gè)小組產(chǎn)生的“敗者”是測(cè)試樣本不太可能被判定為屬于該類別的,所以不需要對(duì)小組間的“敗者”進(jìn)行下一輪投票,只需對(duì)“勝者”進(jìn)行下一輪投票,這樣可以避免發(fā)生預(yù)測(cè)樣本不屬于兩分類器中的任何一類時(shí),還要判定的情況。由此可知,采用多輪投票策略可以大大減少不必要的分類判定,從而可以加快識(shí)別的速度。
與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
為測(cè)試本發(fā)明方法(改進(jìn)的2dpca+svm)的識(shí)別效果,進(jìn)行了與其它識(shí)別方法的比較實(shí)驗(yàn),即在訓(xùn)練集與測(cè)試集都相同的條件下,與pca+knn(k-nearestneighbor),pca+lda(lineardiscriminantanalysis),pca+svm以及傳統(tǒng)的2dpca+svm進(jìn)行比較。
表1和表2分別記錄了在兩個(gè)人臉庫使用每人前5幅圖像作為訓(xùn)練集和每人前7幅圖像作為訓(xùn)練集的實(shí)驗(yàn)結(jié)果。
通過觀察表1和表2可知,4種方法使用每人前7幅圖像用來訓(xùn)練得到的識(shí)別率要高于使用每人前5幅用來訓(xùn)練時(shí)的識(shí)別率。這是因?yàn)檫@是因?yàn)橛幂^多的圖像去訓(xùn)練,即用改進(jìn)的2dpca降維時(shí),得到的特征向量更加準(zhǔn)確,更能反映出原始圖像每個(gè)人的差異,更好的提取人臉的特征,有效的保留了原來的高維信息數(shù)據(jù)。同時(shí),在分類時(shí),由于每人用7幅圖像訓(xùn)練,即每個(gè)人的樣本增加了,同類樣本能更集中地分布,兩類分布更分散,使得更容易分類識(shí)別出來。
表1訓(xùn)練每人前5幅圖像的結(jié)果比較
表2訓(xùn)練每人前7幅圖像的結(jié)果比較
注:表1和表2中的識(shí)別率都是表示實(shí)驗(yàn)中得到的最高識(shí)別率,而時(shí)間是表示訓(xùn)練時(shí)間和測(cè)試時(shí)間之和。
另外,從表1和表2中可以看出本發(fā)明的算法所得到的識(shí)別率和時(shí)間都優(yōu)于pca+knn、pca+lda,pca+svm,傳統(tǒng)的2dpca+svm等算法。例如,在表1和表2中,利用本發(fā)明的算法得到的orl庫的識(shí)別率比用pca+svm得到的分別提高了3%和0.8%,時(shí)間分別快了2.3秒和2秒;在yale庫中,用本發(fā)明的算法得到的識(shí)別率比用pca+svm得到的分別提高了1.7%和1.6%,時(shí)間分別快了2.4秒和2.5秒。所以用本發(fā)明的算法得到的識(shí)別率比用pca+svm得到的約高1.775%(將3%,0.8%,1.7%和1.6%相加取平均值);同理,時(shí)間約快2.3秒。從這可知,本發(fā)明的算法在識(shí)別率和時(shí)間方面的性能都得到提升。
附圖說明
圖1為本發(fā)明方法流程圖;
圖2為多輪投票策略示意圖;
圖3為主成分個(gè)數(shù)(k)對(duì)識(shí)別率的影響;
圖4為核函數(shù)對(duì)識(shí)別率的影響。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處描述的具體實(shí)施例僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明的方法流程如圖1,實(shí)施步驟可以概括如下:首先收集多個(gè)人的多張圖片,組成一個(gè)人臉庫,將人臉庫的圖像分為訓(xùn)練集和測(cè)試集兩部分;然后將訓(xùn)練集的圖片用2dpca進(jìn)行降維,得到投影矩陣,接著將這些訓(xùn)練集圖片都投影在這個(gè)矩陣上,得到新的矩陣樣本,再對(duì)這個(gè)矩陣樣本用svm進(jìn)行分類訓(xùn)練得到多個(gè)分類器,這樣就可以用測(cè)試集上的圖片進(jìn)行識(shí)別分類。
改進(jìn)的2dpca降維過程如下:首先讀取訓(xùn)練集上的所有圖片,每一幅圖片的讀取都能得到對(duì)應(yīng)的二維矩陣,矩陣的大小為圖片的長(zhǎng)寬值,而矩陣數(shù)據(jù)則是像素值;然后利用每類人的若干訓(xùn)練樣本矩陣求出對(duì)應(yīng)的修勻平均矩陣;接著每一幅圖片所對(duì)應(yīng)的矩陣按照上文的公式6減去對(duì)應(yīng)自身類內(nèi)的修勻平均矩陣,再求累加和,從而求得協(xié)方差矩陣;最后求出協(xié)方差矩陣的特征值和特征向量,根據(jù)特征值大小選取前若干個(gè)最大特征值所對(duì)應(yīng)的特征向量組成新的矩陣,再將訓(xùn)練集圖片投影在這個(gè)矩陣上就能夠?qū)崿F(xiàn)原圖片矩陣的降維。
附圖中圖3顯示了主成分個(gè)數(shù)(k值的大小)對(duì)識(shí)別率的影響。識(shí)別率是指測(cè)試集合中所能正確分類識(shí)別的圖像幅數(shù)與測(cè)試集圖像總數(shù)的比例,而不是指待識(shí)別圖片與原圖片之間的相似度。從圖3可以看出,隨著主成分個(gè)數(shù)的增加,識(shí)別率并不是隨其單調(diào)地增加,而超過某一值后還會(huì)開始下降。人臉圖像經(jīng)2dpca特征提取后,可以很大程度地降低了特征向量的維數(shù),即保留了那些差異最大的特征,代表不同人的相關(guān)特征,可以作為區(qū)分不同人的依據(jù),而那些每個(gè)人相同的、區(qū)分度較低的特征則被舍棄。如果維數(shù)增加,這同時(shí)會(huì)保留一些冗余的信息,這些信息不是區(qū)分人臉的關(guān)鍵,甚至?xí)绊懛诸惖男Ч?。如果維數(shù)適當(dāng)較少的話,識(shí)別率不一定會(huì)很低,相反還會(huì)達(dá)到最優(yōu)值,這是因?yàn)榈玫降奶卣骺臻g已足夠能用來表達(dá)人臉的特征,得以區(qū)分他們。
如果使用每人5副圖像作為訓(xùn)練集,則意味著利用5幅圖像的數(shù)據(jù)作為1個(gè)人的類別來進(jìn)行訓(xùn)練svm分類器。例如,分類2個(gè)人的時(shí)候,將其中一個(gè)人的5幅圖的數(shù)據(jù)標(biāo)記為+1類,另一個(gè)人的5幅圖的數(shù)據(jù)標(biāo)記為-1類,svm對(duì)這兩類數(shù)據(jù)進(jìn)行訓(xùn)練,就得到判定這兩人的分類器。以orl庫為例說明分類過程,其包含40類人,每人10幅圖片。因?yàn)槭褂靡粚?duì)一svm進(jìn)行分類,所以40類樣本利用svm將構(gòu)造出780個(gè)分類器,而780個(gè)分類器是這樣的來的:將第1個(gè)人與第2個(gè)人分類,得到第1個(gè)分類器;第1個(gè)人與第3個(gè)人分類,得到第2個(gè)分類器……,第39個(gè)人與第40個(gè)人分類,得到第780個(gè)分類器。在識(shí)別時(shí),將測(cè)試樣本也投影到特征子空間之后,依次由這些分類器進(jìn)行分類,然后判定為+1或-1類,最后經(jīng)過多輪投票機(jī)制確定類別。
在svm分類時(shí),所選的核函數(shù)起到關(guān)鍵作用,選擇不同的核函數(shù),產(chǎn)生不同的識(shí)別率。附圖中圖4顯示了利用三種不同的核函數(shù)所產(chǎn)生的識(shí)別率。
從附圖中圖4可得知,使用sigmoid核函數(shù)時(shí)的識(shí)別率是三者中最低的,而多項(xiàng)式核函數(shù)的識(shí)別率在約30維之前都與rbf核函數(shù)相差不大,但之后便相差很大,而且使用rbf時(shí)識(shí)別率下降地也比較平穩(wěn),所以本發(fā)明采用的是rbf核函數(shù)。
對(duì)參數(shù)進(jìn)行尋優(yōu)計(jì)算的步驟為:
1)依據(jù)網(wǎng)格法初步設(shè)定參數(shù)變化范圍,針對(duì)參數(shù)不同組合運(yùn)用交叉驗(yàn)證求得分類正確率。
2)根據(jù)前述參數(shù)范圍進(jìn)一步細(xì)分網(wǎng)格,即將上一步中的最高的那2個(gè)正確率對(duì)應(yīng)的參數(shù)作為新的范圍,然后將變化步長(zhǎng)縮小10倍,從而得到更精確的參數(shù)值;例如第一步的初始范圍為[1,20],變化步長(zhǎng)為1,而得到的最高正確率對(duì)應(yīng)的參數(shù)為10,次高的對(duì)應(yīng)參數(shù)為8,那么將范圍變?yōu)閇8,10],并將步長(zhǎng)變?yōu)?.1。再根據(jù)交叉驗(yàn)證平均正確率排序,選擇分類正確率最高的參數(shù)組合作為模型的最優(yōu)參數(shù)。
3)將數(shù)據(jù)重新分成訓(xùn)練集與測(cè)試集,利用最優(yōu)化參數(shù)模型訓(xùn)練模型,利用測(cè)試數(shù)據(jù)測(cè)試模型性能。因?yàn)橛?jì)算修勻平均過程中涉及最大值和最小值,為了保證參與計(jì)算的數(shù)據(jù)個(gè)數(shù)要大于2(要舍棄最大值和最小值),所以要求每人要用至少3幅以上圖片來訓(xùn)練,因此可以簡(jiǎn)單地選取每人前3幅以上圖片作為訓(xùn)練集,剩下的作為測(cè)試集。
以orl庫為例說明參數(shù)尋優(yōu)過程。首先初步設(shè)定兩個(gè)參數(shù)的變化范圍和步長(zhǎng),然后對(duì)每對(duì)參數(shù)組合利用交叉驗(yàn)證來求得識(shí)別率。其中根據(jù)交叉驗(yàn)證的思想,由于orl每人有10幅人臉圖像,所以可以將第1幅用來測(cè)試,剩下的9幅用來訓(xùn)練;第2幅用來測(cè)試,剩下的9幅用來訓(xùn)練……直到第10幅用來測(cè)試,剩下的9幅用來訓(xùn)練。因此,每組參數(shù)要進(jìn)行10次測(cè)試來進(jìn)行尋優(yōu)。所以每組參數(shù)都可以對(duì)應(yīng)這10次的平均識(shí)別率。然后根據(jù)平均識(shí)別率進(jìn)一步細(xì)分網(wǎng)格,重新確定參數(shù)變化范圍和步長(zhǎng),再次求出不同參數(shù)對(duì)的平均識(shí)別率,最后選擇平均識(shí)別率最高的參數(shù)組合作為模型的最優(yōu)參數(shù)。這樣,就可以將orl重新分成訓(xùn)練集與測(cè)試集(例如可以用前5幅用作訓(xùn)練,后5幅用來測(cè)試),然后使用最優(yōu)化參數(shù)對(duì)來訓(xùn)練模型,最后利用測(cè)試集來計(jì)算識(shí)別率,就將這識(shí)別率作為最后的識(shí)別率。上文提到的不同方法之間的比較,其中本發(fā)明得到的識(shí)別率就是根據(jù)這過程計(jì)算出來的。
本發(fā)明的描述是為了示例和描述起見而給出的,并不是無遺漏的或者將本發(fā)明限于所公開的形式。顯然,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的示例進(jìn)行各種改動(dòng)和變形而不脫離本發(fā)明的精神和原則。選擇和描述實(shí)施例是為了更好說明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本包括發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。