數(shù)字圖像報告_基于PCA算法的人臉識別_第1頁
數(shù)字圖像報告_基于PCA算法的人臉識別_第2頁
數(shù)字圖像報告_基于PCA算法的人臉識別_第3頁
數(shù)字圖像報告_基于PCA算法的人臉識別_第4頁
數(shù)字圖像報告_基于PCA算法的人臉識別_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)字圖像處理作業(yè) 姓名: XXXXXXX專業(yè):信息與通信工程學號:201XXXXXXXXXX作業(yè)1:基于PCA算法的人臉識別1. PCA算法原理主成分分析(Principal Component Analysis, 簡稱PCA)是一種常用的基于變量協(xié)方差矩陣對信息進行處理、壓縮和抽提的有效方法。PCA方法由于其在降維和特征提取方面的有效性,在人臉識別領域得到了廣泛的應用。利用K-L變換抽取人臉的主要成分,構成特征臉空間,識別時將測試圖像投影到此空間,得到一組投影系數(shù),通過與各個人臉圖像比較進行識別。利用特征臉法進行人臉識別的過程由訓練階段和識別階段兩個階段組成 其具體步驟如下: 第一步:訓練集

2、有400個樣本,由灰度圖組成,每個樣本大小為M*N寫出訓練樣本矩陣: (1)其中向量xi為由第i個圖像的每一列向量堆疊成一列的MN維列向量,即把矩陣向量化, 如:第i個圖像矩陣為則xi為第二步:計算平均臉計算訓練圖片的平均臉(2) 第三步:計算差值臉計算每一張人臉與平均臉的差值 (3)第四步:構建協(xié)方差矩陣 (4) (5)第五步:求協(xié)方差矩陣的特征值和特征向量,構造特征臉空間協(xié)方差矩陣的維數(shù)為MN*MN,考慮其維數(shù)較大,計算量比較大,所以采用奇異值分解(SingularValue Decomposition ,SVD)定理,通過求解 的特征值和特征向量來獲得 的特征值和特征向量。求出 的特征值

3、 及其正交歸一化特征向量 根據(jù)特征值的貢獻率選取前p個最大特征向量及其對應的特征向量貢獻率是指選取的特征值的和與占所有特征值的和比,即:(6) 一般取 即使訓練樣本在前p個特征向量集上的投影有99%的能量(7)求出原協(xié)方差矩陣的特征向量(8)則“特征臉”空間為: 第六步將每一幅人臉與平均臉的差值臉矢量投影到“特征臉”空間,即(9)識別階段則包括以下幾個步驟:第一步:將待識別的人臉圖像 與平均臉的差值臉投影到特征空間,得到其特征向量表示: (10)第二步:定義閾值 (11)第三步:采用歐式距離來計算 與每個人臉的距離 (12)為了區(qū)分人臉和非人臉,還需要計算原始圖像 與由特征臉空間重建的圖像 之

4、間的距離 (13)其中: (14)根據(jù)以下規(guī)則對人臉進行分類:1)若 ,則輸入圖像不是人臉圖像;2)若 ,且 , 則輸入圖像包含未知人臉;3)若 ,且 , 則輸入圖像為庫中第k個人的人臉。2.實驗結果分析本實驗是在人臉庫ORL上的測試,該庫包含40個不同人物,每人有10張圖片,共400幅。標準人臉庫在采集時考慮了多種因素,人臉圖像比較標準,所以識別率達到100%,由于PCA只是一個算法,可以自建庫進行識別,但效果較標準的ORL人臉庫識別率較低,不過會隨著自建庫中圖片數(shù)目的增多,而有所改善,進行直方圖均衡化比灰度歸一化的識別率高,預處理對識別的效果起著至關重要的作用。而此次實驗的預處理還比較粗糙

5、,PCA也只是起到了簡單的特征臉降維的作用,要有更好的效果,還必須尋找更好的特征表達,使得可以盡量消除光照、表情、遮掩和姿勢的影響。下為測試流程截圖: 圖1 用戶使用界面 圖2 選擇圖片 圖3 選擇圖片后 圖4 檢測到的圖片3.總結以前聽過GUI,也見過但從來沒用過,這次我覺得用GUI用戶界面來實現(xiàn)PCA算法的人臉識別較為直觀,故花了點功夫學學了有關GUI的東西,只是一個算法,只要掌握算法,便可實現(xiàn)其他的像指紋圖像識別,或我們自定義的其他圖片,但人臉庫是最標準最容易實現(xiàn)的,且采用其他的自定義的圖像進行識別要進行其他灰度變換等一系列的處理,我的編程不好,再加上時間問題,故最后還是采用了最簡單的基

6、于人臉庫的人臉識別,采用此人臉庫最終識別率可達。我相信此程序略加改動,只要改動其對應參數(shù)即可便可實現(xiàn)其自定義庫的圖像識別,由于時間問題我會在以后繼續(xù)努力爭取實現(xiàn)其自定義的圖像識別。附錄matlab 源碼1.“讀取圖片”按鈕function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure wit

7、h handles and user data (see GUIDATA)% 讀取待查找圖片global im;%由于要在兩個按鈕函數(shù)中使用,故使用全局變量filename, pathname=. uigetfile('*.bmp','選擇圖片');str = pathname, filename;%合成路徑+文件名im = imread(str);%讀取圖片axes( handles.axes1);%使用第一個axesimshow(im);title('待查找')%顯示圖片2.“開始查找”按鈕function pushbutton2_Callb

8、ack(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% PCA人臉識別global im;%使用全局變量imgdata=;%訓練圖像矩陣for i=1:40 for j=1:10 a=imread(strcat('E:MATLABLEORLs&

9、#39;,num2str(i),'',num2str(j),'.bmp'); b=a(1:112*92); % b是行矢量 1×N,其中N10304 b=double(b); imgdata=imgdata; b; % imgdata 是一個M * N 矩陣,imgdata中每一行數(shù)據(jù)一張圖片,M400 end;end;imgdata=imgdata' %每一列為一張圖片imgmean=mean(imgdata,2); % 平均圖片,N維列向量for i=1:400 minus(:,i) = imgdata(:,i)-imgmean; % mi

10、nus是一個N*M矩陣,是訓練圖和平均圖之間的差值end;covx=minus'* minus; % M * M 階協(xié)方差矩陣COEFF, latent,explained = pcacov(covx'); %PCA,用協(xié)方差矩陣的轉置來計算以減小計算量% 選擇構成95%的能量的特征值i=1;proportion=0;while(proportion < 95) proportion=proportion+explained(i); i=i+1;end;p=i-1;% 訓練得到特征臉坐標系i=1;while (i<=p && latent(i)>

11、;0) base(:,i) = latent(i)(-1/2)*minus * COEFF(:,i); % base是N×p階矩陣,用來進行投影,除以latent(i)(1/2)是對人臉圖像的標準化 i = i + 1;end% 將訓練樣本對坐標系上進行投影,得到一個 p*M 階矩陣為參考reference = base'*minus;% 測試過程在測試圖片文件夾中選擇圖片,進行查找測試a=im;b=a(1:10304);b=double(b);b=b'object = base'*(b-imgmean);distance=100000;%最小距離法,尋找和待

12、識別圖片最為接近的訓練圖片for k=1:400 temp= norm(object - reference(:,k); if (distance > temp) which = k; distance = temp; end;end;%找出距離最近的圖片所在的位置num1 = ceil(which/10);%第num1個文件夾num2 = mod(which,10);%第num2個圖片文件if (num2 = 0) num2 = 10;end;I=imread(strcat('E:MATLABLEORLs',num2str(num1),'',num2st

13、r(num2),'.bmp');%讀取該圖片axes( handles.axes2);%使用第2個axes imshow(I);title('檢測到的');3.“退出”按鈕function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles

14、 and user data (see GUIDATA)% 退出close(gcf)作業(yè)2: x,y方向的勻速運動,圖像模糊的退化函數(shù)1. 勻速直線運動模糊圖像的退化模型原理在所有的運動模糊中,由勻速直線運動造成的模糊圖像的復原問題更具有一般性和普遍意義。因為變速的、非直線運動在某些條件下可以被分解為分段勻速直線運動。將退化的點擴散函數(shù)記作h(x,y),在不考慮噪聲干擾的情況下,由目標與攝像機相對運動造成的圖像模糊模型可以用圖5來描述:圖5勻速直線運動模糊圖像的退化模型其中,原始圖像f(x,y)在圖像平面上做勻速直線運動,在x方向和y方向上的運動變化分量分別為和,在快門打開期間T內,底片上的像

15、素(x,y)的總曝光量是圖像在運動過程中照到該點的像點亮度作用的總和,即勻速直線運動模糊圖像的連續(xù)函數(shù)模型為: (15)式中g(x,y)為模糊后的圖像。對其進行傅里葉變換得: (16) 由傅立葉變換的位移性質可知: (17)令 (18)如果模糊圖像是由景物在X方向上作勻速直線運動造成的,則模糊后圖像任意點的值為: (19)式中是景物在X方向上的運動分量,若圖像總的位移量為a,總的時間為T,則運動的速率為=atT,則上式(15)變?yōu)椋?(20)則退化函數(shù)為: (21)2.結果分析(1)第一種下面是elain在x方向的移動距離是0.02,在y方向移動距離是0.01后的模糊圖像 圖6 原圖像 圖7

16、運動模糊后的圖像源代碼:I=imread('E:MATLABLE elain.bmp');figure;imshow(I)title('原圖像')n1,n2=size(I);T=1;a=0.02;b=0.01;I=double(I);g=fft2(I);for k=1:n1 for j=1:n2 g(k,j)=T/(pi*(k*a+j*b)*sin(pi*(k*a+j*b)*exp(-i*pi*(k*a+j*b)*g(k,j); endendf=fft(I);h=g/f;g1=ifft2(g);g2=uint8(real(g1);figure;imshow(g2);title('運動模糊圖像')其中g為運動模糊圖像,f是原圖像,其退化模型為h,因為g=f*h,故h=g/f;其程序中的h即為所求。(2)第二種這個用的是兩個函數(shù)fspecial和imfilter圖8 原圖像 圖9 模糊圖像 I=imread('barbara.bmp');figure(1);imshow(I);LEN=30;THETA=75;PSF=fspecial('motion',LEN,THETA

溫馨提示

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

評論

0/150

提交評論