Trước khi thực hiện PCA hoặc LDA, cỏc ảnh gốc l thước 112ì92 được chuyển sang biểu diễn d
gồm 10 ảnh cho mỗi người, ở đõy ch mạng và kiểm thử là khỏc nhau
gương của nú để tăng thờm sự đa dạng cho tập ảnh huấn luyện (h Vec tơ đặc trưng
Output PCA
Hỡnh 3.2.Sơ đồ khối của quỏ trỡnh huấn luyện
ớc khi thực hiện PCA hoặc LDA, cỏc ảnh gốc là cỏc ma trận hai chiều kớch ợc chuyển sang biểu diễn dưới dạng cỏc vector 10304 chiều. Bộ ảnh ORL ời, ở đõy chương trỡnh lần lượt sử dụng ảnh cho việc huấn luyện là khỏc nhau. Mỗi ảnh huấn luyện sẽ được bổ sung một ảnh ở dạngảnh
ự đa dạng cho tập ảnh huấn luyện (hỡnh 3.2). Cơ sở dữ liệu
ảnh Tập huấn
luyện
PCA
Vec tơ đặc trưng
Mạng nơron Output PCA-NN LDA Vectơ đặc trưng Mạng nơ ron Output LDA-NN ận hai chiều kớch ới dạng cỏc vector 10304 chiều. Bộ ảnh ORL ảnh cho việc huấn luyện ợc bổ sung một ảnh ở dạngảnh
Trong chương trỡnh này, khi thực hiện phõn tớch thành phần chớnh, cỏc vector riờng được chọn tương ứng với cỏc giỏ trị riờng lớn hơn hoặc bằng 103, kết quả là cú 89 vector riờng được chọn.
Trước khi thực hiện LDA, cỏc ảnh gốc cần phải được thực hiện PCA để giảm số chiều của dữ liệu vỡ số chiều bằng 10304 là quỏ lớn để thực hiện LDA.Ở đõy, cỏc vector riờng được chọn tương ứng với cỏc giỏ trị riờng lớn hơn hoặc bằng 105 (số lượng vector riờng nhiều hơn so với phương phỏp PCA ở trờn).
Chương trỡnh sử dụng hai mạng nơron truyền thẳng 2 lớp riờng biệt tứng với mỗi phương phỏp phõn tớch ở trờn. Phương phỏp huấn luyện mạng sử dụng là thuật toỏn lan truyền ngược tuy nhiờn giỏ trị tỉ lệ học là 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, 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ẽ giảm xuống. 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ẽ tăng lờn, mạng cú cỏc thụng số như sau:
Số nơron lớp ẩn: 50
Hàm truyền: tansig cho lớp thứ nhất. logsig cho lớp thứ hai Tớnh lỗi bằng gradient, giỏ trị mse=1e-10
Hai mạng nơron ứng với hai phương phỏp phõn tớch sẽ được huấn luyện độc lập với nhau. Khi thực hiện nhận dạng, ảnh nhận dạng sẽ được biến đổi và tớnh toỏn theo từng phương phỏp phõn tớch
Hỡnh 3.
3.1.3 Mụi trường cài đặt
MATLAB được sử dụng để c trường tớnh toỏn kỹ thuật ph
một ngụn ngữ lập trỡnh bậc cao gồm nhiều h
dữ liệu một cỏch trực quan; thực hiện tớnh toỏn trong cỏc b cỏc mụ hỡnh tớnh toỏn; lập tr
3.1.4 Giao diện chương trỡnh
Mó nguồn của chương tr bảng 4.1.
Vec tơ đặc trưng
Kết quả nhận dạng
Hỡnh 3.4.Sơ đồ khối của quỏ trỡnh nhận dạng
ợc sử dụng để cài đặt hệ thống vỡ nú được tớch h
ờng tớnh toỏn kỹ thuật phự hợp cho cỏc thuật toỏn được thiết kế ở đõy.MATLAB l ậc cao gồm nhiều hàm phục vụ cho việc phõn tớch v
ữ liệu một cỏch trực quan; thực hiện tớnh toỏn trong cỏc bài toỏn kỹ th ập trỡnh ứng dụng với giao diện đồ họa người dựng.
ỡnh
ương trỡnh bao gồm một số module chớnh nh Cơ sở dữ liệu
ảnh Tập nhận
dạng
PCA
Vec tơ đặc trưng
PCA-NN Kết quả nhận dạng LDA Vectơ đặc trưng LDA-NN Kết quả nhận dạng tớch hợp một mụi ợc thiết kế ở đõy.MATLAB là ục vụ cho việc phõn tớch và hiển thị ỹ thuật; xõy dựng
ựng.
ồm một số module chớnh như mụ tả trong Kết quả nhận dạng
Bảng 4.1. Cỏc module chớnh của chương trỡnh
Module Giải thớch
PCA_based.m Module nhận dạng mặt người theo phương phỏp PCA LDA_based.m Module nhận dạng mặt người theo phương phỏp LDA Globalvar.m Chứa cỏc biến toàn cục
Recognize.m Module nhận dạng mặt người bằng cỏch kết hợp cả ba phương phỏp trờn
GUI.m Cài đặt giao diện người dựng Main.m Đỏnh giỏ hiệu năng của hệ thống
Hỡnh 3.4 là giao diện chớnhcủa chương trỡnh.Chương trỡnh gồm ba chức
năng.Chức năng Training(hỡnh 3.4) thực hiện huấn luyện cỏc mạng nơron. Chức năng Recognize thực hiện việc nhận dạng, khi nhấn nỳt Recognize, người dựng cú thể chọn một ảnh bất kỳ trờn một cửa sổ được mở ra, chương trỡnh sẽ in ảnhđú lờn vựng Input Image. Sau khi nhận dạng được người tương ứng, chương trỡnh sẽ in ảnh người đú lờn vựng Recognize Person(hỡnh 3.5). Chức năng Exit thoỏt chương trỡnh.
Hỡnh 3.6. Giao diện huấn luyện mạng nơron
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ử lý ả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);