模式識(shí)別方法大作業(yè)實(shí)驗(yàn)報(bào)告_第1頁(yè)
模式識(shí)別方法大作業(yè)實(shí)驗(yàn)報(bào)告_第2頁(yè)
模式識(shí)別方法大作業(yè)實(shí)驗(yàn)報(bào)告_第3頁(yè)
模式識(shí)別方法大作業(yè)實(shí)驗(yàn)報(bào)告_第4頁(yè)
模式識(shí)別方法大作業(yè)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《模式識(shí)別導(dǎo)論》期末大作業(yè)2010-2011-2學(xué)期第3組學(xué)號(hào)姓名工作量(%)08007204李雙1008007205陳書(shū)瑜3508007218王健勇1008007236梁文卓3508007243仲紅月10《模式識(shí)別》大作業(yè)人臉識(shí)別方法一----基于PCA和歐幾里得距離判據(jù)的模板匹配分類(lèi)器理論知識(shí)1、主成分分析 主成分分析是把多個(gè)特征映射為少數(shù)幾個(gè)綜合特征的一種統(tǒng)計(jì)分析方法。在多特征的研究中,往往由于特征個(gè)數(shù)太多,且彼此之間存在著一定的相關(guān)性,因而使得所觀(guān)測(cè)的數(shù)據(jù)在一定程度上有信息的重疊。當(dāng)特征較多時(shí),在高維空間中研究樣本的分布規(guī)律就更麻煩。主成分分析采取一種降維的方法,找出幾個(gè)綜合因子來(lái)代表原來(lái)眾多的特征,使這些綜合因子盡可能地反映原來(lái)變量的信息,而且彼此之間互不相關(guān),從而到達(dá)簡(jiǎn)化的目的。主成分的表示相當(dāng)于把原來(lái)的特征進(jìn)行坐標(biāo)變換〔乘以一個(gè)變換矩陣〕,得到相關(guān)性較小〔嚴(yán)格來(lái)說(shuō)是零〕的綜合因子。1.1問(wèn)題的提出 一般來(lái)說(shuō),如果N個(gè)樣品中的每個(gè)樣品有n個(gè)特征,經(jīng)過(guò)主成分分析,將它們綜合成n綜合變量,即由以下原那么決定:1、和〔,i,j=1,2,...n〕相互獨(dú)立;2、y的排序原那么是方差從大到小。這樣的綜合指標(biāo)因子分別是原變量的第1、第2、……、第n個(gè)主分量,它們的方差依次遞減。1.2 主成分的導(dǎo)出 我們觀(guān)察上述方程組,用我們熟知的矩陣表示,設(shè)是一個(gè)n維隨機(jī)向量,是滿(mǎn)足上式的新變量所構(gòu)成的向量。于是我們可以寫(xiě)成Y=CX,C是一個(gè)正交矩陣,滿(mǎn)足CC’=I。 坐標(biāo)旋轉(zhuǎn)是指新坐標(biāo)軸相互正交,仍構(gòu)成一個(gè)直角坐標(biāo)系。變換后的N個(gè)點(diǎn)在軸上有最大方差,而在軸上有最小方差。同時(shí),注意上面第一條原那么,由此我們要求軸和軸的協(xié)方差為零,那么要求 令,那么 經(jīng)過(guò)上面式子的變換,我們得到以下n個(gè)方程1.3 主成分分析的結(jié)果 我們要求解出C,即解出上述齊次方程的非零解,要求的系數(shù)行列式為0。最后得出結(jié)論是的根,的方差為。然后選取前面p個(gè)奉獻(xiàn)率大的分量,這樣就實(shí)現(xiàn)了降維。也就是主成分分析的目標(biāo)。實(shí)現(xiàn)方法獲取數(shù)據(jù)。在編程時(shí)具體是把一幅二維的圖像轉(zhuǎn)換成一維的;減去均值。要使PCA正常工作,必須減去數(shù)據(jù)的均值。減去的均值為每一維的平均,所有的x值都要減去,同樣所有的y值都要減去,這樣處理后的數(shù)據(jù)都具有0均值;計(jì)算協(xié)方差矩陣;計(jì)算協(xié)方差矩陣的特征矢量和特征值。因?yàn)閰f(xié)方差矩陣為方陣,我們可以計(jì)算它的特征矢量和特征值,它可以告訴我們數(shù)據(jù)的有用信息;5、選擇成分組成模式矢量現(xiàn)在可以進(jìn)行數(shù)據(jù)壓縮降低維數(shù)了。如果你觀(guān)察上一節(jié)中的特征矢量和特征值,會(huì)注意到那些特征值是十分不同的。事實(shí)上,可以證明對(duì)應(yīng)最大特征值的特征矢量就是數(shù)據(jù)的主成分。對(duì)應(yīng)大特征值的特征矢量就是那條穿過(guò)數(shù)據(jù)中間的矢量,它是數(shù)據(jù)維數(shù)之間最大的關(guān)聯(lián)。一般地,從協(xié)方差矩陣找到特征矢量以后,下一步就是按照特征值由大到小進(jìn)行排列,這將給出成分的重要性級(jí)別?,F(xiàn)在,如果你喜歡,可以忽略那些重要性很小的成分,當(dāng)然這會(huì)喪失一些信息,但是如果對(duì)應(yīng)的特征值很小,你不會(huì)喪失很多信息。如果你已經(jīng)忽略了一些成分,那么最后的數(shù)據(jù)集將有更少的維數(shù),精確地說(shuō),如果你的原始數(shù)據(jù)是n維的,你選擇了前p個(gè)主要成分,那么你現(xiàn)在的數(shù)據(jù)將僅有p維?,F(xiàn)在要做的是你需要組成一個(gè)模式矢量,這只是幾個(gè)矢量組成的矩陣的一個(gè)有意思的名字而已,它由你保持的所有特征矢量構(gòu)成,每一個(gè)特征矢量是這個(gè)矩陣的一列。6、獲得新數(shù)據(jù)這是PCA最后一步,也是最容易的一步。一旦你選擇了須要保存的成分〔特征矢量〕并組成了模式矢量,我們簡(jiǎn)單地對(duì)其進(jìn)行轉(zhuǎn)置,并將其左乘原始數(shù)據(jù)的轉(zhuǎn)置:其中rowFeatureVector是由特征矢量作為列組成的矩陣的轉(zhuǎn)置,因此它的行就是原來(lái)的特征矢量,而且對(duì)應(yīng)最大特征值的特征矢量在該矩陣的最上一行。rowdataAdjust是減去均值后的數(shù)據(jù),即數(shù)據(jù)工程在每一列中,每一行就是一維。FinalData是最后得到的數(shù)據(jù),數(shù)據(jù)工程在它的列中,維數(shù)沿著行。FinalData=rowFeatureVector*rowdataAdjust這將僅僅給出我們選擇的數(shù)據(jù)。我們的原始數(shù)據(jù)有兩個(gè)軸〔x和y〕,所以我們的原始數(shù)據(jù)按這兩個(gè)軸分布。我們可以按任何兩個(gè)我們喜歡的軸表示我們的數(shù)據(jù)。如果這些軸是正交的,這種表達(dá)將是最有效的,這就是特征矢量總是正交的重要性。我們已經(jīng)將我們的數(shù)據(jù)從原來(lái)的xy軸表達(dá)變換為現(xiàn)在的單個(gè)特征矢量表達(dá)。如果我們已經(jīng)忽略了一些特征矢量,那么新數(shù)據(jù)將會(huì)用我們保存的矢量表達(dá)。matlab編程 matlab程序分為三局部。程序框圖如以下圖所示。這個(gè)函數(shù)將源圖像提取成特征臉,然后比擬它們之間的歐幾里得距離這個(gè)函數(shù)首先得到二維數(shù)組,包括所有的訓(xùn)練樣本向量并且從訓(xùn)練樣本中返回3個(gè)輸出量這個(gè)函數(shù)將所有訓(xùn)練樣本的二維圖像轉(zhuǎn)換成一維列向量。接著,它把這些一維列向量組合到一行里面構(gòu)造出二維向量T,即每個(gè)單元的信息量是一幅圖片mainEigenfaceCoreRecognitionCreatDataBase這個(gè)函數(shù)將源圖像提取成特征臉,然后比擬它們之間的歐幾里得距離這個(gè)函數(shù)首先得到二維數(shù)組,包括所有的訓(xùn)練樣本向量并且從訓(xùn)練樣本中返回3個(gè)輸出量這個(gè)函數(shù)將所有訓(xùn)練樣本的二維圖像轉(zhuǎn)換成一維列向量。接著,它把這些一維列向量組合到一行里面構(gòu)造出二維向量T,即每個(gè)單元的信息量是一幅圖片mainEigenfaceCoreRecognitionCreatDataBase總結(jié) 從書(shū)里看我覺(jué)得最讓人明白模板匹配分類(lèi)器的一段話(huà),就是“譬如A類(lèi)有10個(gè)訓(xùn)練樣品,就有10個(gè)模板,B類(lèi)有8個(gè)訓(xùn)練樣品,就有8個(gè)模板。任何一個(gè)待測(cè)樣品在分類(lèi)時(shí)與這18個(gè)模板都算一算相似度,找出最相似的模板,如果該模板是B類(lèi)中的一個(gè),就確定待測(cè)樣品為B類(lèi),否那么為A類(lèi)?!币馑己芎?jiǎn)單吧,算相似度就是算距離。就是說(shuō),模板匹配就要用你想識(shí)別的樣品與各類(lèi)中每個(gè)樣品的各個(gè)模板用距離公式計(jì)算距離,距離最短的那個(gè)就是最相似的。實(shí)驗(yàn)結(jié)果說(shuō)明識(shí)別率達(dá)90%。 這樣的匹配方法明顯的缺點(diǎn)就是在計(jì)算量大,存儲(chǔ)量大,每個(gè)測(cè)試樣品要對(duì)每個(gè)模板計(jì)算一次相似度,如果模板量大的時(shí)候,計(jì)算量就十分的大。參考文獻(xiàn)邊肇其,張學(xué)工.模式識(shí)別【M】.第2版.北京.:清華大學(xué)出版社,2000周杰,盧春雨,張長(zhǎng)水,李衍達(dá),人臉自動(dòng)識(shí)別方法綜述【J】.電子學(xué)報(bào),2000,5〔4〕:102-106附錄〔matlab程序代碼〕第一局部:CreatDatabase.mfunctionT=CreatDatabase(TrainDatabasePath)%一系列人臉〔訓(xùn)練樣本T1,T2,……,TM〕%函數(shù)描述:這個(gè)函數(shù)將所有訓(xùn)練樣本的二維圖像轉(zhuǎn)換成一維列向量。接著,它把這些一維列向量組合到一行里面構(gòu)造出二維向量T,即每個(gè)單元的信息量是一幅圖片%參數(shù):TrainDatabasePath---訓(xùn)練數(shù)據(jù)庫(kù)的路徑%返回值:T---%一個(gè)二維矩陣,包含了所有一維向量。假設(shè)所有在訓(xùn)練樣本的P幅圖像擁有相同的大小〔M*N〕。因此,這些一維向量的長(zhǎng)度是M*N而且T將是一個(gè)MN*P的二維%矩陣%%%%%%%%%%%%%%文件處理%%%%%%%%%%%%%%%%%TrainFiles=dir(TrainDatabasePath);Train_Number=0;fori=1:size(TrainFiles,1)t=size(TrainFiles,1);ifnot(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumbs.db'))Train_Number=Train_Number+1;endend%%%%%%%%%從一維數(shù)組構(gòu)造成二維數(shù)組%%%%%%%%%%%%T=[];fori=1:Train_Numberstr=int2str(i);str=strcat('\',str,'.pgm');str=strcat(TrainDatabasePath,str);img=imread(str);[irowicol]=size(img);temp=reshape(img',irow*icol,1);%將二維數(shù)組變成一維數(shù)組T=[Ttemp];end第二局部:EigenfaceCore.mfunction[m,A,Eigenfaces]=EigenfaceCore(T)%利用主成分分析〔PCA〕的方法在各張人臉中決定最明顯的特征%描述:這個(gè)方程首先得到二維數(shù)組,包括所有的訓(xùn)練樣本向量并且從訓(xùn)練樣本中返回3個(gè)輸出量%參數(shù):T---一個(gè)二維矩陣,包含了所有一維向量。假設(shè)所有在訓(xùn)練樣本的P幅圖像擁有相同的大小〔M*N〕。因此,這些一維向量的長(zhǎng)度是M*N而且T將是一個(gè)MN*P的二維%矩陣%返回值:m---〔M*Nx1〕訓(xùn)練樣本的均值%Eigenfaces---(M*Nx(P-1))訓(xùn)練樣本協(xié)方差矩陣的特征向量%A---〔M*NxP〕中心向量的矩陣%%%%%%%%%計(jì)算均值%%%%%%%%%%%m=mean(T,2);%計(jì)算樣本平均值m=(1/P)*sum(Tj's)Train_Number=size(T,2);%%%%%%%%%計(jì)算每個(gè)圖像與均值的差%%%%%%%%%%%%要使PCA正常工作,必須減去數(shù)據(jù)的均值。減去的均值為每一維的平均,所有的x值都要減去,同樣所有的y值都要減去%%%%%%這樣處理后的數(shù)據(jù)都具有0均值%%%A=[];fori=1:Train_Numbertemp=double(T(:,i))-m;A=[Atemp];%再次合并矩陣end%%%%%%%計(jì)算協(xié)方差矩陣%%%%%%%%%%%%%%%%%計(jì)算協(xié)方差矩陣的特征矢量和特征值%%%%%%%%L=A'*A;%L代表協(xié)方差矩陣C=A*A'.[VD]=eig(L);%計(jì)算矩陣A的特征值D(eigenvalues)和特征矩陣V(eigenvectors)%%%%%%選擇成分組成模式矢量%%%%%%%%%%%L_eig_vec=[];fori=1:size(V,2)if(D(i,i)>1)L_eig_vec=[L_eig_vecV(:,1)];endend%%%%%%計(jì)算協(xié)方差矩陣的特征向量%%%%%%%%%%Eigenfaces=A*L_eig_vec;第三局部:Recognition.mfunctionOutputName=Recognition(TestImage,m,A,Eigenfaces)%函數(shù)描述:這個(gè)函數(shù)將源圖像提取成特征臉,然后比擬它們之間的歐幾里得距離%輸入量:TestImage---測(cè)試樣本的路徑%m---〔M*Nx1〕訓(xùn)練樣本的均值%Eigenfaces---(M*Nx(P-1))訓(xùn)練樣本協(xié)方差矩陣的特征向量%A---〔M*NxP〕中心向量的矩陣%返回值:OutputName---在訓(xùn)練樣本中的被識(shí)別的圖像的名字%%%%%%%%%%從中心向量中提取特征臉%%%%%%%%%%%%%%ProjectedImages=[];Train_Number=size(Eigenfaces,2);fori=1:Train_Numbertemp=Eigenfaces'*A(:,i)ProjectedImages=[ProjectedImagestemp];end%%%%%%%%%%%%%%%%從測(cè)試樣本中提取PCA特征%%%%%%%%%%%%%%%InputImage=imread(TestImage);temp=InputImage(:,:,1);[irowicol]=size(temp);InImage=reshape(temp',irow*icol,1);Difference=double(InImage)-m;ProjectedTestImage=Eigenfaces'*Difference;%%%%%%%%%%%%%計(jì)算歐幾里得幾何距離%%%%%%%%%%%%%%%%%%%%%%Euc_dist=[];fori=1:Train_Number,q=ProjectedImages(:,i);temp=(norm(ProjectedTestImage-q))^2;Euc_dist=[Euc_disttemp];end%找出A中最小元素及其索引,把最小值返回給C,最小值索引返回給I。%如果有幾個(gè)相同的最小值,那么返回第一個(gè)被發(fā)現(xiàn)的索引。[Euc_dist_min,Recognized_index]=min(Euc_dist);OutputName=strcat(int2str(Recognized_index),'.pgm');主程序clearallclccloseallTrainDatabasePath=uigetdir('C:\MATLAB7\work\PCA','Selecttrainingdatabasepath');TestDatabasePath=uigetdir('C:\MATLAB7\work\PCA','Selecttestdatabasepath');prompt={'Entertestimagename(anumberbetween1to10):'};dlg_title='InputofPCA_BasedFaceRecognitionSystem';num_lines=1;def={'1'};TestImage=inputdlg(prompt,dlg_title,num_lines,def);TestImage=strcat(TestDatabasePath,'\',char(TestImage),'.pgm');im=imread(TestImage);T=CreatDatabase(TrainDatabasePath);[m,A,Eigenfaces]=EigenfaceCore(T);OutputName=Recognition(TestImage,m,A,Eigenfaces);SelectedImage=strcat(TrainDatabasePath,'\',OutputName);SelectedImage=imread(SelectedImage);imshow(im)title('TestImage');figure,imshow(SelectedImage);title('EquivalentImage');str=strcat('Matchedimageis:',OutputName);disp(str)《模式識(shí)別》大作業(yè)人臉識(shí)別方法二----基于PCA和FLD的人臉識(shí)別的線(xiàn)性分類(lèi)器一、理論知識(shí)fisher概念引出在應(yīng)用統(tǒng)計(jì)方法解決模式識(shí)別問(wèn)題時(shí),為了解決“維數(shù)災(zāi)難”的問(wèn)題,壓縮特征空間的維數(shù)非常必要。fisher方法實(shí)際上涉及到維數(shù)壓縮的問(wèn)題。fisher分類(lèi)器是一種幾何分類(lèi)器,包括線(xiàn)性分類(lèi)器和非線(xiàn)性分類(lèi)器。線(xiàn)性分類(lèi)器有:感知器算法、增量校正算法、LMSE分類(lèi)算法、Fisher分類(lèi)。假設(shè)把多維特征空間的點(diǎn)投影到一條直線(xiàn)上,就能把特征空間壓縮成一維。那么關(guān)鍵就是找到這條直線(xiàn)的方向,找得好,分得好,找不好,就混在一起。因此fisher方法目標(biāo)就是找到這個(gè)最好的直線(xiàn)方向以及如何實(shí)現(xiàn)向最好方向投影的變換。這個(gè)投影變換恰是我們所尋求的解向量,這是fisher算法的根本問(wèn)題。樣品訓(xùn)練集以及待測(cè)樣品的特征數(shù)目為n。為了找到最正確投影方向,需要計(jì)算出各類(lèi)均值、樣品類(lèi)內(nèi)離散度矩陣和總類(lèi)間離散度矩陣、樣品類(lèi)間離散度矩陣,根據(jù)Fisher準(zhǔn)那么,找到最正確投影準(zhǔn)那么,將訓(xùn)練集內(nèi)所有樣品進(jìn)行投影,投影到一維Y空間,由于Y空間是一維的,那么需要求出Y空間的劃分邊界點(diǎn),找到邊界點(diǎn)后,就可以對(duì)待測(cè)樣品進(jìn)行進(jìn)行一維Y空間的投影,判斷它的投影點(diǎn)與分界點(diǎn)的關(guān)系,將其歸類(lèi)。Fisher法的核心為二字:投影。實(shí)現(xiàn)方法計(jì)算給類(lèi)樣品均值向量,是各個(gè)類(lèi)的均值,是類(lèi)的樣品個(gè)數(shù)。計(jì)算樣品類(lèi)內(nèi)離散度矩陣和總類(lèi)間離散度矩陣(3)計(jì)算樣品類(lèi)間離散度矩陣(4)求向量我們希望投影后,在一維Y空間各類(lèi)樣品盡可能地分開(kāi),也就是說(shuō)我們希望兩類(lèi)樣品均值之差〔〕越大越好,同時(shí)希望各類(lèi)樣品內(nèi)部盡量密集,即希望類(lèi)內(nèi)離散度越小越好,因此,我們可以定義Fisher準(zhǔn)那么函數(shù):使得取得最大值的為(5)將訓(xùn)練集內(nèi)所有樣品進(jìn)行投影如果是非奇異的,那么要獲得類(lèi)間離散度與類(lèi)內(nèi)離散度的比值最大的投影方向的滿(mǎn)足下式:其中是滿(mǎn)足下式的和對(duì)應(yīng)的m個(gè)最大特征值所對(duì)應(yīng)的特征向量。注意到該矩陣最多只有C-1個(gè)非零特征值,C是類(lèi)別數(shù)。2、程序中算法的應(yīng)用Fisher線(xiàn)性判別方法〔FLD〕是在Fisher鑒別準(zhǔn)那么函數(shù)取極值的情況下,求得一個(gè)最正確判別方向,然后從高位特征向量投影到該最正確鑒別方向,構(gòu)成一個(gè)一維的判別特征空間。將Fisher線(xiàn)性判別推廣到C-1個(gè)判決函數(shù)下,即從N維空間向C-1維空間作相應(yīng)的投影。利用這個(gè)m維的投影矩陣M將訓(xùn)練樣本n維向量空間轉(zhuǎn)化為m維的MEF空間并且獲得在MEF空間上的最正確描述特征,即由這N個(gè)MEF空間上的最正確描述特征可以求出的樣品類(lèi)內(nèi)離散度矩陣和總類(lèi)間離散度矩陣,取的K個(gè)最大的特征可以構(gòu)成FLD投影矩陣W。將MEF空間上的最正確描述特征在FLD投影矩陣W上進(jìn)行投影,將MEF空間降維到MDF空間,并獲得對(duì)應(yīng)的MDF空間上的最正確分類(lèi)特征,即通過(guò)計(jì)算的歐氏距離,可以將訓(xùn)練樣本分為C〔C等于的秩〕,完成對(duì)訓(xùn)練樣本集的分類(lèi)matlab編程1、fisher判別法人臉檢測(cè)與識(shí)別流程圖2、matlab程序分為三局部。程序框圖如以下圖所示。mainFisherfaceCoreRecognitionCreatDataBasemainFisherfaceCoreRecognitionCreatDataBase這個(gè)函數(shù)將所有訓(xùn)練樣本的二維圖像轉(zhuǎn)換成一維列向量。接著,它把這些一維列向量組合到一行里面構(gòu)造出二維向量T,即每個(gè)單元的信息量是一幅圖片這個(gè)函數(shù)將所有訓(xùn)練樣本的二維圖像轉(zhuǎn)換成一維列向量。接著,它把這些一維列向量組合到一行里面構(gòu)造出二維向量T,即每個(gè)單元的信息量是一幅圖片這個(gè)函數(shù)將源圖像提取成特征臉,然后比擬它們之間的歐幾里得距離PCA提取特征值這個(gè)函數(shù)將源圖像提取成特征臉,然后比擬它們之間的歐幾里得距離PCA提取特征值Fisher分類(lèi)器設(shè)計(jì)。從fisher線(xiàn)性空間中提取圖像總結(jié) 從計(jì)算本錢(qián)來(lái)看,PCA+LDA方法的好處在于對(duì)高維空間的降維,防止了類(lèi)內(nèi)離散度矩陣不可逆的情況。然而,從識(shí)別性能來(lái)看,由于主成分只是代表圖像的灰度特征,是從能量的角度衡量主成分大小的,應(yīng)用PCA之后,舍棄的對(duì)應(yīng)較小特征值的次要成分有可能對(duì)LDA來(lái)說(shuō)重要的分類(lèi)信息,有可能降低分類(lèi)識(shí)別性能。 而且,在實(shí)際應(yīng)用中,特別是在人臉圖像識(shí)別中,由于“維數(shù)災(zāi)難”的存在,F(xiàn)LD通常會(huì)遇到兩個(gè)方面的困難:類(lèi)內(nèi)離散度矩陣總是奇異的。這是由于的秩最多為N-C,〔N是用于訓(xùn)練樣本的圖像數(shù)目,C是人臉的類(lèi)別數(shù)〕。而一般情況下,用于訓(xùn)練的圖像數(shù)目N是遠(yuǎn)小于每幅圖像的像素?cái)?shù)目,即“小樣本問(wèn)題“經(jīng)常出現(xiàn)。計(jì)算的復(fù)雜度。在高維空間中,要得出一個(gè)分類(lèi)向量的復(fù)雜度遠(yuǎn)遠(yuǎn)高于計(jì)算一個(gè)低維空間中的分類(lèi)向量。參考文獻(xiàn)【1】邊肇其,張學(xué)工.模式識(shí)別【M】.第2版.北京.:清華大學(xué)出版社,2000【2】周杰,盧春雨,張長(zhǎng)水,李衍達(dá),人臉自動(dòng)識(shí)別方法綜述【J】.電子學(xué)報(bào),2000,5〔4〕:102-106附錄〔matlab程序代碼〕1、第一局部:CreatDatabase.mfunctionT=CreatDatabase(TrainDatabasePath)TrainFiles=dir(TrainDatabasePath);Train_Number=0;%%%%%%%%統(tǒng)計(jì)文件數(shù)%%%%%%%%%%%%%fori=1:size(TrainFiles,1)ifnot(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumbs.db'))Train_Number=Train_Number+1;endend%%%%%%%%二維轉(zhuǎn)一維%%%%%%%%%%%%T=[];fori=1:Train_Numberstr=int2str(i);%把文件索引轉(zhuǎn)換為字符串格式str=strcat('\',str,'.pgm');str=strcat(TrainDatabasePath,str);img=imread(str);[irowicol]=size(img);temp=reshape(img',irow*icol,1);T=[Ttemp];endT=double(T);2、第二局部:FisherfaceCorefunction[m_databaseV_PCAV_FisherProjectedImages_FisherClass_numberClass_population]=FisherfaceCore(T)%%%%%%%%返回值注釋%%%%%%%%%%%%m_database---(M*Nx1)維的訓(xùn)練樣本均值%V_PCA---(M*Nx(P-C)訓(xùn)練樣本協(xié)方差的特征向量%V_Fisher---((P-C)x(C-1))最大的〔C-1〕維J=inv(Sw)*Sb的特征矩陣%ProjectedImages_Fisher---((C-1)xP)維訓(xùn)練樣本,這些樣本從fisher線(xiàn)性空間中提取%%%%%根本量賦值%%%%%%%%%Class_number=(size(T,2))/9;類(lèi)的數(shù)目,除以8取決于樣本中有多少類(lèi)人Class_population=9;%每一類(lèi)的圖像數(shù)目P=Class_population*Class_number;%總訓(xùn)練樣本的數(shù)目%%%%%計(jì)算均值%%%%%m_database=mean(T,2);%°包含T每一行均值的列向量%%%%計(jì)算方差%%%%%A=T-repmat(m_database,1,P);%%%%%計(jì)算特征臉的算法%%%%%%L=A'*A;[VD]=eig(L);V=fliplr(V);%%%%篩選小的特征值%%%%%L_eig_vec=[];dig=fliplr(max(D));fori=1:Class_numberL_eig_vec=[L_eig_vecV(:,i)/sqrt(dig(i))];end%%%%計(jì)算特征矩陣的協(xié)方差矩陣C%%%%%V_PCA=A*L_eig_vec;%V_PCA就是降維后的協(xié)方差矩陣ProjectedImages_PCA=[];fori=1:Ptemp=V_PCA'*A(:,i);ProjectedImages_PCA=[ProjectedImages_PCAtemp];end%%%%%fisher分類(lèi)器的設(shè)計(jì)方法%%%%%%%%%計(jì)算在特征空間里面每一個(gè)類(lèi)的均值%%%%%m_PCA=mean(ProjectedImages_PCA,2)%特征空間總的均值m=zeros(Class_number,Class_number);Sw=zeros(Class_number,Class_number);Sb=zeros(Class_number,Class_number);fori=1:Class_numberm(:,i)=mean((ProjectedImages_PCA(:,((i-1)*Class_population+1):i*Class_population)),2)';%每一類(lèi)的樣本分別求均值S=zeros(Class_number,Class_number);forj=((i-1)*Class_population+1):(i*Class_population)S=S+(ProjectedImages_PCA(:,j)-m(:,i))*(ProjectedImages_PCA(:,j)-m(:,i))';endSw=Sw+S;Sb=Sb+(m(:,i)-m_PCA)*(m(:,i)-m_PCA)'end%%%%%%?計(jì)算fisher判別準(zhǔn)那么,目標(biāo)是獲取最大類(lèi)間離散度和最小類(lèi)內(nèi)離散度%%%%%%%%%%%%?ò??μ???±êê?£o??è?×?′óàà??à?é¢?èoí×?D?μ?àà?úà?é¢?è?£[J_eig_vec,J_eig_val]=eig(Sb,Sw);J_eig_val=max(J_eig_val);J_eig_vec=fliplr(J_eig_vec);%%%%%%去除0特征根和排序fori=1:Class_number-1V_Fisher(:,i)=J_eig_vec(:,i);%fisher判別法將N維映射到C-1維end%%%%%從fisher線(xiàn)性空間中提取圖像%Yi=V_Fisher'*V_PCA'*(Ti-m_database)fori=1:Class_number*Class_populationProjectedImages_Fisher(:,i)=V_Fisher'*ProjectedImages_PCA(:,i);end%由PCA過(guò)渡到FLD%img_fisher=w_fisher'*pca_img;%ProjectedImages_Fisher=V_Fisher'*ProjectedImages_PCA;3、第三局部:Recognition.mfunctionOutputName=Recognition(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論