PCA檢測人臉的簡單示例 matlab實現

2022-02-04 14:59:37 字數 2288 閱讀 6230

pca檢測人臉的簡單示例,matlab r2009b上實現

訓練:訓練用的20副人臉:

%訓練%lx=x'*x

clear;

clc;

train_path='..\data\trainingset\';

phi=zeros(64*64,20);

for i=1:20

path=strcat(train_path,num2str(i),'.bmp');

image=imread(path);

image=imresize(image,[64,64]);

phi(:,i)=double(reshape(image,1,)');

end;

%mean

mean_phi=mean(phi,2);

mean_face=reshape(mean_phi,64,64);

image_mean=mat2gray(mean_face);

imwrite(image_mean,'meanface.bmp','bmp');

�mean

for i=1:19

x(:,i)=phi(:,i)-mean_phi;

endlx=x'*x;

tic;

[eigenvector,eigenvalue]=eigs(lx,19);

toc;

%normalization

for i=1:19

ul(:,i)=x*eigenvector(:,i)/sqrt(eigenvalue(i,i));

end%display eigenface

for i=1:19

eigenface=reshape(ul(:,i),[64,64]);

figure(i);

imshow(mat2gray(eigenface));

end得到的均值影象mean_face:

前19個最大主元對應的「特徵臉」

測試:測試用樣本:

%使用測試樣本進行測試

clc;

test_path='..\data\testingset\';

error=zeros([1,4]);

for i=1:4

path=strcat(test_path,num2str(i),'.bmp');

image=imread(path);

image=double(imresize(image,[64,64]));

phi_test=zeros(64*64,1);

phi_test(:,1)=double(reshape(image,1,)');

x_test=phi_test-mean_phi;

y_test=ul'*x_test;

x_test_re=ul*y_test;

face_re=x_test_re+mean_phi;

calculate error rate

e=face_re-phi_test;

%%display figure

face_re_2=reshape(face_re(:,1),[64,64]);

figure(i);

imshow(mat2gray(image));

title('original');

figure(10+i);

imshow(mat2gray(face_re_2));

title('reconstruct');

error(1,i)=norm(e);

%dispaly error rate

error_rate=error(1,i);

display(error_rate);

end重建出的測試樣本與原樣本的對比:

四副測試樣本的重建誤差分別為:

1.4195e+003

1.9564e+003

4.7337e+003

7.0103e+003

可見測試樣本為人臉的樣本的重建誤差顯然小於非人臉的重建誤差。

PCA檢測人臉的簡單示例 matlab實現

訓練 lx x x clear clc train path data trainingset phi zeros 64 64,20 for i 1 20 path strcat train path,num2str i bmp image imread path image imresize im...

人臉檢測原理及示例 OpenCV Python

opencv是intel開源計算機視覺庫 computerversion 它由一系列c函式和少量 c 類構成,實現了影象處理和計算機視覺方面的很多通用演算法。opencv 擁有包括 300 多個c函式的跨平台的中 高層 api。它不依賴於其它的外部庫 儘管也可以使用某些外部庫。opencv 對非商業...

python 簡單實現人臉檢測

目錄 一 準備 二 實現 三 結果 四 python 3.7版本 其他版本也可以 matplotlib 畫圖工具,安裝方式 pip install matplotlibpil 影象處理 安裝方式 pip install pillow client id 為官網獲取的ak,client secret ...