.7 Giao diện nhậndạng

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp nhận dạng mặt người dựa trên PCA LDA và mạng neural luận văn ths truyền dữ liệu và mạng máy tính (chuyên ngành đào tạo thí điểm) (Trang 72)

3.2 Kiểm thử và đỏnh giỏ

Trong quỏ trỡnh xõy dựng hệ thống, chương trỡnh đó được thực hiện nhiều lần thử nghiệm rồi đỏnh giỏ để chọn ra giỏ trị phự hợp nhất của cỏc tham số. Những tham số quan trọng nhất của hệ thống là số lượng cỏc đặc trưng được trớch chọn, tỉ lệ học của mạng nơron và số lượng cỏc nơron ẩn của mạng, những tham số nàyảnh hưởng lớn đến thời gian thực hiện và độ chớnh xỏc của hệ thống.

Đối với mỗi phương phỏp phõn tớch, việc đầu tiờn là trớch chọn cỏc đặc trưng, mỗi đặc trưng cú một giỏ trị ý nghĩa khỏc nhau, cỏc đặc trưng được chọn theo giỏ trị ý nghĩa giảm dần đến một ngưỡng nào đú. Nếu ngưỡng lớn, cỏc đặc trưng cú giỏ trị nhỏ hơn ngưỡng sẽ bị bỏ qua, cú thể đú là những đặc trưng quan trọng.Nếu ngưỡng nhỏ, cú thể lấy được hầu hết cỏc đặc trưng quan trọng, nhưng lại khiến cho thời gian thực hiện của hệ thống tăng lờn, đồng thời cú thể lấy cả những đặc trưng khụng quan trọng.Qua nhiều thử nghiệm, giỏ trị ngưỡng đượcchọn được đối với phương phỏp PCA là 10-3, đối với phương phỏp LDA là 10-5.

Đối với cỏc mạng nơron, tỉ lệ học là một tham số ảnh hưởng lớn đến sự hội tụ của mạng.Nếu tỉ lệ học lớn, mạng cú độ dao động lớn và sẽ trở nờn khụng ổn định.Nếu tỉ lệ học nhỏ, mạng sẽ mất nhiều thời gian để hội tụ.Ở đõy, trong cỏc mạng nơron, phương phỏp huấn luyện mạng được sử dụngvới giỏ trị tỉ lệ học khụng cố định. Trong quỏ trỡnh huấn luyện, nếu lỗi mới của mạng vượt quỏ lỗi cũ với một tỉ lệ định trước (1.04) thỡ cỏc giỏ trị mới của trọng số và bias sẽ được bỏ qua. Ngoài ra, giỏ trị của tỉ lệ học sẽ bị giảm xuống (nhõn với 0.7). Trỏi lại, cỏc trọng số và bias sẽ được tớnh lại giỏ trị mới. Nếu lỗi mới nhỏ hơn lỗi cũ, tỉ lệ học sẽ được tăng lờn (nhõn với 1.05).

Số lượng nơron ẩn đối của mạng nơron cũng ảnh hưởng đến thời gian và độ chớnh xỏc của mạng.Nếu số nơron ẩn ớt, mạng sẽ thực hiện nhanh hơn nhưng với độ chớnh xỏc thấp. Nếu số đơn vị ẩn nhiều, mạng sẽ thực hiện lõu hơn nhưng độ chớnh xỏc cao hơn. Tuy nhiờn, nếu sốđơn vịẩn quỏ nhiều, mạng lại trở nờn thiếu chớnh xỏc.Giỏ trị tối ưu của số lượngnơron ẩn cho cỏc mạng nơron được chọn là 50.

Để đỏnh giỏ hiệu suất nhận dạng của hệ thống, từ cơ sở dữ liệu ORL ta tiến hành chọn ra tập dữ liệu huấn luyện và tập nhận dạng như sau:

Tập 1: Từ 10 ảnh của 1 người ta lấy 3 ảnh đưa vào tập huấn luyện và 7 ảnh vào tập nhận dạng sao cho chỳng khụng trựng nhau.

Tập 2: 4 ảnh đưa vào tập huấn luyện và 6 ảnh đưa vào tập nhận dạng. Tập 3: 5 ảnh đưa vào tập huấn luyện và 6 ảnh đưa vào tập nhận dạng. Tập 4: 6 ảnh đưa vào tập huấn luyện và 4 ảnh đưa vào tập nhận dạng. Tập 5: 7 ảnh đưa vào tập huấn luyện và 3 ảnh đưa vào tập nhận dạng.

Đối với mỗi tập trờn ta tiến hành đo hiệu suất nhận dạng trờn hệ thống sử dụng nhận dạng bằng PCA kết hợp với mạng nơron (PCA-NN), LDA kết hợp mạng nơron (LDA-NN). Đồng thời với mỗi một tập dữ liệu ta cũng tiến hành so sỏnh với kết quả nhận dạng trờn hệ thống nhận dạng sử dụng PCA, LDA với phương phỏp phõn hoạch bằng khoảng cỏch Euclide.Kết quả như sau.

Số lượng ảnh huấn luyện

Số lượng ảnh nhận dạng

Hiệu suất nhận dạng (%)

PCA PCA-NN LDA LDA-NN

120 280 72 74 75 80

160 240 76 79 82 84

200 200 77 82 86 90

240 160 78 86 90 92

Kết quả thực nghiệm cho thấy hiệu suất nhận dạng của phương phỏp LDA tốt hơn PCA do biến đổi LDA làm tăng sự tỏch biệt giữa cỏc lớp khỏc nhau dẫn đến kết quả phõn loại sẽ tốt hơn. Khi kết hợp với mạng nơron hiệu suất của PCA, LDA tăng đỏng kể ( thấp nhất là 2%) chứng tỏ sự ưu việt của mạng nơron trong bài toỏn nhận dạng với số đối tượng cần nhận dạng là lớn. Kết quả cũng cho thấy hiệu suất nhận dạng tăng lờn khi số lượng ảnh trong tập huấn luyện tăng lờn. Điều này hiển nhiờn do việc tăng kớch thước tập huấn luyện dẫn tới việc số mẫu dựng để miờu tả đối tượng được tăng lờn giỳp làm tăng hiệu suất nhận dạng.

Cõu hỏi đặt ra là liệu phương phỏp LDA cú tốt hơn PCA trong mọi trường hợp?Để trả lời cõu hỏi này ta tiến hành thay đổi số người cần nhận dạng trong tập huấn luyện và nhận dạng. Kết quả thực nghiệm chỉ ra rằng trong trường hợp số người nhỏ hơn 5 với 5 ảnh trong tập huấn luyện và 5 ảnh trong tập nhận dạng, hiệu suất nhận dạng của phương phỏp PCA tỏ ra tốt hơn so với LDA.

60 65 70 75 80 85 90 95 100 120 160 200 240 280 H iệ u s u ấ t n h ậ n d ạ n g

Số lượng ảnh huấn luyện

PCA PCA-NN LDA LDA-NN

Số người trong tập nhận dạng Hiệu suất nhận dạng (%) PCA-NN LDA-NN 1 99.5 99 2 99.3 98.8 5 98 98 10 94 96 15 91 92

Điều này cú thể được giải thớch là do khi số lớp cần phõn loại là nhỏ, việc biến đổi LDA vừa làm tăng thời gian tớnh toỏn, vừa làm giảm số lượng cỏc vectơ đặc trưng đặc tả thụng tin của mặt người do đú làm giảm hiệu suất nhận dạng

Kết quả thực nghiệm cho thấy hiệu suất nhận dạng của hệ thống rất tốt với ảnh mặt người chụp chớnh diện ngay cả trong cỏc trường hợp cú nhiễu, thay đổi hỡnh thỏi cỏc bộ phận trờn khuụn mặt,

KẾT LUẬN Những kết quả luận văn đạt được:

- Tỡm hiểu được một cỏch tổng quan cỏc mụ hỡnh nhận dạng mặt người. Cú một cỏch nhỡn cú hệ thống về cỏc phương phỏp trớch trọn đặc trưng phục vụ cho quỏ trỡnh nhận dạng mặt người.

- Bằng cỏch kết hợp cỏc phương phỏp phõn tớch thống kờ và phương phỏp biến đổi hỡnh thỏi luận văn đó đạt được một phương phỏp khỏ hiệu quả đối với bài toỏn nhận dạng mặt người. Phương phỏp PCA và LDA trớch chọn những đặc trưng mang tớnh thống kờgiỳp hệ thống cú được những thụng tin đặc trưng tương đối đầy đủ của mỗi người.

- Đối với mỗi phương phỏp phõn tớch, sau khi được trớch chọn, cỏc đặc trưng sẽ được chuyển tới một mạng nơron lan truyền ngược để huấn luyện, mỗi phương phỏp cú một mạng riờng. Cỏc tham số trong quỏ trỡnh huấn luyện như số đặc trưng được trớch chọn, số nơron ẩn của mỗi mạng, dạng hàm kớch hoạt của mạng đó được lựa chọn sau rất nhiều thử nghiệm để cú được những giỏ trị phự hợp nhất đối với hệ thống về thời gian tớnh toỏn cũng như độ chớnh xỏc.

- Khi thực hiện nhậndạng, ảnh đầu vào sẽ được trớch chọn đặc trưng, cỏc đặc trưng này sẽ được đưa vào từng mạng nơron tương ứng với mỗi phương phỏp phõn tớch.Đầu ra của từng mạng sẽ là người tương ứng với kết quả của mỗi phương phỏp. Cỏc kết quả riờng lẻ này cú thể khỏc nhau, chỳng sẽ được so sỏnh với nhau dựa vào khoảng cỏch Euclide với ảnh đầu vào, kết quả của hệ thống sẽ là kết quả nào cú khoảng cỏch ngắn nhất. Bằng việc kết hợp như vậy, hệ thống đó tận dụng được tối đa những ưu điểm của từng phương phỏp phõn tớch, đồng thờiưu điểm của phương phỏp này đó bổ khuyết cho nhược điểm của phương phỏp kia, giỳp hệ thốngđạt được hiệu quả tốt nhất.

Mặc dự hệ thống đó đạt được độ chớnh xỏc khỏ cao, tuy nhiờn vẫn cũn một tỉ lệ nhỏ chưa chớnh xỏc do hệ thống chưa đỏnh giỏ được toàn bộ những đặc trưng của mặt người.

Hướng phỏt triển:

Trong những nghiờn cứu tiếp theo nhằm phỏt triển hoàn thiện hệ thống hơn, việc nhận dạng cú thể kết hợp thờm cỏc phương phỏp phõn tớch khỏc như nhận dạng mắt, nhận dạng miệng hay nhận dạng mũi là những đặc trưng quan trọng của khuụn mặt.

Hệ thống cú thể ỏp dụng cho việc nhận dạng sinh viờn trong phũng thi với danh sỏch cho trước, giỳp phũng thanh tra khảo thớ nhanh chúng xỏc định những sinh viờn nghi ngờ thi hộ. Đầu vào cho hệ thống là ảnh mặt người được lấy ra từ modul nhận dạng vựng mặt người (sử dụng thư viện Open CV kết hợp matlab), chuẩn hoỏ và tiền xử lý ảnh mặt người cần nhận dạng để đưa vào hệ thống với mạng nơron đó luyện theo danh sỏch và thư viện ảnh cho trước. Hệ thống sẽ nhanh chúng đưa ra kết luận ảnh mặt người đầu vào cú thuộc trong danh sỏch hay khụng.

TÀI LIỆU THAM KHẢO

1. PhạmViệt Bỡnh, Đỗ Năng Toàn,Xử ảnh.Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội, 2008.

2. Lương Mạnh Bỏ, Nguyễn Thanh Thuỷ, Nhập mụn xử lý ảnh số, Nhà xuất bản Khoa học và Kỹ thuật, 2002

3. Ben Krửse, Patrick van der Smagt (1996), An introduction to Neural Networks, The University ofAmsterdam.

4. Kresimir Delac, Mislav Grgic (2007),“PCA and LDA based Neural Networks

for Human Face Recognition”, Face Recognition, ISBN 978-3-902613-03-5, I-

Tech, Vienna, Austria.

5. Ethan Png (2004), Morphological Shared-Weight Neural Network for Face Recognition, University of Manchester Institute of Science and Technology.

6. Lindsay I.Smith (2002), A Tutorial on Principal Components Analysis, Cornell

University, USA.

7. William K.Pratt (2007), Digital Image Processing, John Wiley & Sons, Inc.,

Publication.

8. W.Zhao, R.Chellappa, P.J.Phillips, A.Rosenfeld (2003),“Face Recognition - A

Literature Survey”, ACM Computing Surveys, Vol. 35 (No. 4).

9. V.M.C.F.S.a.L. Chiara Turati (2006), "Newborns face recognition: Role of inner and outer facial features. Child Development".

PHỤ LỤC

Mó nguồn file PCA-based.m %===PCA-based approach

Data=struct('number',struct('image',[])); %Tap anh goc %---Lay du lieu anh

for PsnId=1:NumPsn for ImgId=1:NumImg

TmpImg=imread(['train_images\s' num2str(PsnId) '\' num2str(ImgId) '.pgm']); %Lay du lieu goc

Data(PsnId).number(2*ImgId-1).image=TmpImg;

Data(PsnId).number(2*ImgId).image=imrotate(TmpImg',270); end

end

%---Thuc hien PCA

DatMat=[]; %Ma tran du lieu anh huan luyen for PsnId=1:NumPsn

for ImgId=1:NumImg*2

TmpImg=reshape(Data(PsnId).number(ImgId).image',[MxN 1]); DatMat=horzcat(DatMat,TmpImg); %Xep cac anh thanh tung cot end

end

DatMat=double(DatMat);

min_frac=1e-5; %Chi lay cac eigenvector co eigenvalue co y nghia lon hon min_frac so voi variance cua tap du lieu

[DatNorm,MeanDat_P,StdDat_P]=prestd(DatMat); [DatTrans,TransMat_P]=prepca(DatNorm,min_frac); save MeanDat_P;

save StdDat_P; save TransMat_P;

%---Xay dung mang noron %Khoi tao va huan luyen mang

Net=newff(minmax(DatTrans),[NumHid NumOut],{'tansig' 'logsig'},'traingda'); Net.trainParam.min_grad=min_grad;

Net.trainParam.epochs=epochs; Net.trainParam.show=10000; Net=train(Net,DatTrans,TarVec); %Luu cac tham so cua mang IW_P=Net.IW{1}; save IW_P; LW_P=Net.LW{2}; save LW_P; b_P1=Net.b{1}; save b_P1; b_P2=Net.b{2}; save b_P2;

Mó nguồn file LDA-based.m %===LDA-based approach

Data=struct('number',struct('image',[])); %Tap anh goc %---Lay du lieu anh

for PsnId=1:NumPsn for ImgId=1:NumImg

TmpImg=imread(['train_images\s' num2str(PsnId) '\' num2str(ImgId) '.pgm']); %Lay du lieu goc

Data(PsnId).number(2*ImgId-1).image=TmpImg;

Data(PsnId).number(2*ImgId).image=imrotate(TmpImg',270); end

end

%---Thuc hien PCA

DatMat=[]; %Ma tran du lieu anh huan luyen for PsnId=1:NumPsn

DatMat=horzcat(DatMat,TmpImg); %Xep cac anh thanh tung cot end

end

DatMat=double(DatMat);

min_frac=1e-5; %Chi lay cac eigenvector co eigenvalue co y nghia lon hon min_frac so voi variance cua tap du lieu

[DatNorm,MeanDat_L,StdDat_L]=prestd(DatMat); [DatTrans,TransMat_L]=prepca(DatNorm,min_frac); save MeanDat_L;

save StdDat_L; save TransMat_L; %---Thuc hien LDA dim=size(DatTrans,1); meanD=mean(DatTrans,2); Sw=zeros(dim,dim); Sb=zeros(dim,dim); for i=1:NumPsn meanC=mean(DatTrans(:,(i-1)*NumImg*2+1:i*NumImg*2),2); for j=1:NumImg*2 tmp=DatTrans(:,(i-1)*NumImg*2+j)-meanC; Sw=Sw+tmp*tmp'; end tmp=meanC-meanD; Sb=Sb+tmp*tmp'; end Sw=Sw/(NumPsn*NumImg*2); Sb=Sb/NumPsn; [tmpEigVec,tmpEigVal]=eig(pinv(Sw)*Sb); EigVec_L=[]; for i=1:size(tmpEigVal,1) if tmpEigVal(i,i)>1e-10

EigVec_L=horzcat(EigVec_L,tmpEigVec(:,i)); end end EigVec_L=EigVec_L'; DatTrans=EigVec_L*DatTrans; save EigVec_L;

%---Xay dung mang noron %Khoi tao va huan luyen mang

Net=newff(minmax(DatTrans),[NumHid1NumOut],{'tansig''logsig'}, 'traingda'); Net.trainParam.min_grad=min_grad;

Net.trainParam.epochs=epochs; Net.trainParam.show=10000; Net=train(Net,DatTrans,TarVec); %Luu cac tham so cua mang IW_L=Net.IW{1}; save IW_L; LW_L=Net.LW{2}; save LW_L; b_L1=Net.b{1}; save b_L1; b_L2=Net.b{2}; save b_L2;

Mó nguồn file Recognize.m

%===Su dung mang noron de nhan dang anh function [Result]=Recognize(FileName,handles) globalvar;

tDat=[]; %Cac anh can nhan dang for PsnId=1:2

TmpImg=imread(['test_images\s' num2str(PsnId) '\' num2str(1) '.pgm']); TmpImg=reshape(TmpImg',[MxN 1]);

tDat=horzcat(tDat,TmpImg); end

tDatStd=trastd(tDat,MeanDat_P,StdDat_P); tDatTrans=trapca(tDatStd,TransMat_P); %Su dung mang noron PCA_based

Net=newff(minmax(tDatTrans),[NumHid NumOut],{'tansig' 'logsig'}); Net.IW{1}=IW_P; Net.LW{2}=LW_P; Net.b{1}=b_P1; Net.b{2}=b_P2; ImgI=imread(FileName); NewDat=double(reshape(ImgI',[MxN 1])); %Tien xu ly anh NewDatStd=trastd(NewDat,MeanDat_P,StdDat_P); NewDatTrans=trapca(NewDatStd,TransMat_P); ResultP=sim(Net,NewDatTrans); ResultPR=round(ResultP);

%Su dung mang noron LDA_based

tDatStd=trastd(tDat,MeanDat_L,StdDat_L); tDatTrans=trapca(tDatStd,TransMat_L); tDatTrans=EigVec_L*tDatTrans; NewDatStd=trastd(NewDat,MeanDat_L,StdDat_L); NewDatTrans=trapca(NewDatStd,TransMat_L); NewDatTrans=EigVec_L*NewDatTrans;

Net=newff(minmax(tDatTrans),[NumHid1 NumOut],{'tansig' 'logsig'}); Net.IW{1}=IW_L;

Net.LW{2}=LW_L;

Net.b{1}=b_L1;Net.b{2}=b_L2; ResultL=sim(Net,NewDatTrans); ResultLR=round(ResultL);

%---Tong hop ket qua

TmpI=reshape(ImgI',[MxN 1]); TmpI=double(TmpI);

TmpI=trastd(TmpI,MeanDat_P,StdDat_P); TmpI=trapca(TmpI,TransMat_P);

if MapP==0 MapP=1; end

if MapP>NumPsn MapP=NumPsn; end

ImgO=imread(['train_images\s' num2str(MapP) '\1.pgm']); TmpO=reshape(ImgO',[MxN 1]); TmpO=double(TmpO); TmpO=trastd(TmpO,MeanDat_P,StdDat_P); TmpO=trapca(TmpO,TransMat_P); distP=sum((TmpI-TmpO).^2).^0.5; TmpI=reshape(ImgI',[MxN 1]); TmpI=double(TmpI); TmpI=trastd(TmpI,MeanDat_L,StdDat_L); TmpI=trapca(TmpI,TransMat_L); TmpI=EigVec_L*TmpI; if MapL==0 MapL=1; end

if MapL>NumPsn MapL=NumPsn; end

ImgO=imread(['train_images\s' num2str(MapL) '\1.pgm']); TmpO=reshape(ImgO',[MxN 1]); TmpO=double(TmpO); TmpO=trastd(TmpO,MeanDat_L,StdDat_L); TmpO=trapca(TmpO,TransMat_L); TmpO=EigVec_L*TmpO; distL=sum((TmpI-TmpO).^2).^0.5; if MapP==MapL %|| MapP==MapM Result=MapP; else Result=MapL; end

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp nhận dạng mặt người dựa trên PCA LDA và mạng neural luận văn ths truyền dữ liệu và mạng máy tính (chuyên ngành đào tạo thí điểm) (Trang 72)

Tải bản đầy đủ (PDF)

(86 trang)