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)

86 17 0
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)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỖ ĐÌNH LỰC 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 THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ ĐỖ ĐÌNH LỰC 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 Ngành: Công nghệ thông tin Chuyên ngành: Truyền liệu mạng máy tính Mã số: Chuyên ngành đào tạo thí điểm LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS – TS NGÔ QUỐC TẠO Hà Nội - 2015 LỜI CẢM ƠN Em xin chân thành cảm ơn thầy cô Khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội thầy giáo PGS-TS Ngô Quốc Tạo tạo điều kiện cho em học tập nghiên cứu để hoàn thành luận văn Em xin gửi lời cảm ơn tới thầy cô, đồng nghiệp quan nơi em công tác tạo điều kiện cho em học tập, nghiên cứu hoàn thành luận văn Hà Nội, ngày 15 tháng năm 2014 Học viên Đỗ Đình Lực LỜI CAM ĐOAN Tôi xin cam đoan luận văn ““Nghiên cứu phương pháp nhận dạng mặt người dựa PCA-LDA mạng neural” cơng trình nghiên cứu riêng tôi.Các số liệu sử dụng luận văn trung thực.Các kết nghiên cứu trình bày luận văn chưa công bố cơng trình khác MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ MỞ ĐẦU CHƯƠNG ITỔNG QUAN VỀ NHẬN DẠNG MẶT NGƯỜI 11 1.1 Giới thiệu xử lý ảnh 11 1.1.1 Khái niệm xử lý ảnh số 13 1.1.2 Các ứng dụng xử lý ảnh số 14 1.1.3 Các bước xử lý ảnh số 15 1.2 Giới thiệu chung phân tích ảnh 16 1.2.1 Khái niệm 16 1.2.2 Các ứng dụng phân tích ảnh 18 1.3 Nhận dạng mặt người 20 1.3.1 Khái niệm nhận dạng mặt người qua ảnh 20 1.3.2 Các ứng dụng nhận dạng mặt người 24 1.4 Các hướng tiếp cận nhận dạng mặt người 25 1.4.1 Trích chọn đặc trưng sử dụng Eigenface 25 1.4.2 Trích chọn đặc trưng sử dụng mơ hình Markov ẩn 28 1.4.3 Mẫu nhị phân cục (LBP) 31 1.4.4 Phương pháp phân tích thành phần 36 CHƯƠNG 2NHẬN DẠNG KHUÔN MẶT DỰA TRÊN PCA-LDA VÀ MẠNG NƠRON 37 2.1 Phương pháp phân tích thành phần (PCA) 37 2.1.1 Cơ sở toán học 39 2.1.2 Kỹ thuật trích chọn đặc trưng PCA 48 2.2 Phương pháp LDA 54 2.3 Phương pháp mạng neural 57 2.3.1 Giới thiệu mạng nơron 57 2.3.2 Hàm kích hoạt quy tắc xác định tín hiệu 59 2.3.3 Thuật toán học lan truyền ngược 61 CHƯƠNG 3THỰC NGHIỆM 65 3.1 Thiết kế hệ thống 65 3.1.1 Cơ sở liệu ảnh 65 3.1.2 Sơ đồ hệ thống 66 3.1.3 Môi trường cài đặt 68 3.1.4 Giao diện chương trình 68 3.2 Kiểm thử đánh giá 71 KẾT LUẬN 76 TÀI LIỆU THAM KHẢO 78 PHỤ LỤC 79 DANH MỤC CÁC TỪ VIẾT TẮT LDA (Linear Discriminant Analysis): Phân tích phân lớp tuyến tính ORL (Olivetti Research Laboratory, Surrey University): Cơ sở liệu ảnh dùng luận văn HMM (Hidden Markov Model): Mơ hình Markov ẩn PCA(Principal Components Analysis): Phân tích thành phần DANH MỤC CÁC BẢNG Bảng 1.3 Các ứng dụng tiêu biểu nhận dạng mặt người 21 Bảng 2.1 Ví dụ tính độ lệch chuẩn 40 Bảng 2.2 Tập liệu hai chiều tính tốn hiệp phương sai 42 Bảng 4.1 Các module chương trình 69 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 Tổng quan giai đoạn xử lý ảnh 15 Hình 1.2: Các kỹ thuật phân tích ảnh 17 Hình 1.4 Mơ hình hệ thống nhận dạng mặt người 21 Hình 1.5 Cơ sở liệu ảnh mặt người AT&T (ORL) 23 Hình1.6 Một số hình ảnh sở liệu ảnh mặt người Yale A 24 Hình 1.7 Mơ hình Markov cho định vị khn mặt: 30 (a) Các vector quan sát; (b) Các trạng thái ẩn 30 Hình 1.8 Ví dụ tính toán LBP 31 Hình1.9 Minh họa tốn tử LBP mở rộng vớị P R khác 33 Hình 1.10 Ví dụ LBP8,1 33 Hình 1.11 LBP giống với độ sáng khác 34 Hình 1.12 Ví dụ mẫu đồng mẫu khơng đồng 34 Hình 1.13 58 Mẫu đồng ( , ) 35 Hình 1.14 Trích rút đặc trưng khuôn mặt LBP 36 Hình 2.1 Ví dụ minh họa PCA 38 Hình 2.2: Một số không gian riêng sở liệu ảnh ORL 38 Hình 2.3 Minh hoạ hướng véctơ riêng 47 Hình 2.4 Dữ liệu đồ thị biểu diễn liệu 49 Hình 2.5 Đồ thị biểu diễn liệu chuẩn hóa với vector riêng 51 Hình 2.6 Ảnh gốc sở liệu ORL 53 Hình 2.7 Ảnh sau biến đổi theo PCA 54 Hình 2.8 Ví dụ minh họa LDA 55 Hình 2.9 Ảnh sau biến đổi theo LDA 57 Hình 2.10 Các thành phần mạng nơron nhân tạo 58 Hình 2.11 Một số dạng hàm kích hoạt nơron 59 Hình 2.12 Mạng nơron l lớp 61 Hình 3.1 Ảnh gốc ảnh ORL 65 Hình 3.2 Sơ đồ khối trình huấn luyện 66 Hình 3.3 Ảnh gốc bổ sung ảnh gương 66 Hình 3.4 Sơ đồ khối trình nhận dạng 68 Hình 3.5 Giao diện chương trình 69 Hình 3.6 Giao diện huấn luyện mạng nơron 70 Hình 3.7 Giao diện nhận dạng 70 Hình 3.8 Kết nhận dạng thay đổi hình thái khn mặt 74 Hình 3.9 Kết nhận dạng có nhiễu 75 70 Hình 3.6 Giao diện huấn luyện mạng nơron Hình 3.7 Giao diện nhận dạng 71 3.2 Kiểm thử đánh giá Trong trình xây dựng hệ thống, chương trình thực nhiều lần thử nghiệm đánh giá để chọn giá trị phù hợp tham số Những tham số quan trọng hệ thống số lượng đặc trưng trích chọn, tỉ lệ học mạng nơron số lượng nơron ẩn mạng, tham số nàyảnh hưởng lớn đến thời gian thực độ xác hệ thống Đối với phương pháp phân tích, việc trích chọn đặc trưng, đặc trưng có giá trị ý nghĩa khác nhau, đặc trưng chọn theo giá trị ý nghĩa giảm dần đến ngưỡng Nếu ngưỡng lớn, đặc trưng có giá trị nhỏ ngưỡng bị bỏ qua, đặc trưng quan trọng.Nếu ngưỡng nhỏ, lấy hầu hết đặc trưng quan trọng, lại khiến cho thời gian thực hệ thống tăng lên, đồng thời lấy đặc trưng khơng quan trọng.Qua nhiều thử nghiệm, giá trị ngưỡng đượcchọn phương pháp PCA 10-3, phương pháp LDA 10-5 Đối với mạng nơron, tỉ lệ học tham số ảnh hưởng lớn đến hội tụ mạng.Nếu tỉ lệ học lớn, mạng có độ dao động lớn trở nên không ổn định.Nếu tỉ lệ học nhỏ, mạng nhiều thời gian để hội tụ.Ở đây, mạng nơron, phương pháp huấn luyện mạng sử dụngvới giá trị tỉ lệ học khơng cố định Trong q trình huấn luyện, lỗi mạng vượt lỗi cũ với tỉ lệ định trước (1.04) giá trị trọng số bias bỏ qua Ngoài ra, giá trị tỉ lệ học bị giảm xuống (nhân với 0.7) Trái lại, trọng số bias tính lại giá trị Nếu lỗi nhỏ lỗi cũ, tỉ lệ học tăng lên (nhân với 1.05) Số lượng nơron ẩn đối mạng nơron ảnh hưởng đến thời gian độ xác mạng.Nếu số nơron ẩn ít, mạng thực nhanh với độ xác thấp Nếu số đơn vị ẩn nhiều, mạng thực lâu độ xác cao Tuy nhiên, sốđơn vịẩn nhiều, mạng lại trở nên thiếu xác.Giá trị tối ưu số lượngnơron ẩn cho mạng nơron chọn 50 Để đánh giá hiệu suất nhận dạng hệ thống, từ sở liệu ORL ta tiến hành chọn tập liệu huấn luyện tập nhận dạng sau: Tập 1: Từ 10 ảnh người ta lấy ảnh đưa vào tập huấn luyện ảnh vào tập nhận dạng cho chúng không trùng 72 Tập 2: ảnh đưa vào tập huấn luyện ảnh đưa vào tập nhận dạng Tập 3: ảnh đưa vào tập huấn luyện ảnh đưa vào tập nhận dạng Tập 4: ảnh đưa vào tập huấn luyện ảnh đưa vào tập nhận dạng Tập 5: ảnh đưa vào tập huấn luyện ảnh đưa vào tập nhận dạng Đối với tập ta tiến hành đo hiệu suất nhận dạng hệ thống sử dụng nhận dạ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 tập liệu ta tiến hành so sánh với kết nhận dạng hệ thống nhận dạng sử dụng PCA, LDA với phương pháp phân hoạch khoảng cách Euclide.Kết sau Hiệu suất nhận dạng (%) Số lượng ảnh Số lượng ảnh huấn luyện 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 280 120 80 92 93 95 73 100 Hiệu suất nhận dạng 95 90 PCA 85 PCA-NN 80 LDA 75 LDA-NN 70 65 60 120 160 200 240 280 Số lượng ảnh huấn luyện Kết thực nghiệm cho thấy hiệu suất nhận dạng phương pháp LDA tốt PCA biến đổi LDA làm tăng tách biệt lớp khác dẫn đến kết phân loại tốt Khi kết hợp với mạng nơron hiệu suất PCA, LDA tăng đáng kể ( thấp 2%) chứng tỏ ưu việt mạng nơron toán nhận dạng với số đối tượng cần nhận dạng lớn Kết cho thấy hiệu suất nhận dạng tăng lên số lượng ảnh tập huấn luyện tăng lên Điều hiển nhiên 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 tăng lên giúp làm tăng hiệu suất nhận dạng Câu hỏi đặt liệu phương pháp LDA có tốt PCA trường hợp?Để trả lời câu hỏi ta tiến hành thay đổi số người cần nhận dạng tập huấn luyện nhận dạng Kết thực nghiệm trường hợp số người nhỏ với ảnh tập huấn luyện ảnh tập nhận dạng, hiệu suất nhận dạng phương pháp PCA tỏ tốt so với LDA 74 Số người Hiệu suất nhận dạng (%) tập nhận dạng PCA-NN LDA-NN 99.5 99 99.3 98.8 98 98 10 94 96 15 91 92 Điều giải thích số lớp cần phân loại nhỏ, việc biến đổi LDA vừa làm tăng thời gian tính tốn, vừa làm giảm số lượng vectơ đặc trưng đặc tả thông tin mặt người làm giảm hiệu suất nhận dạng Kết thực nghiệm cho thấy hiệu suất nhận dạng hệ thống tốt với ảnh mặt người chụp diện trường hợp có nhiễu, thay đổi hình thái phận khn mặt, Một số hình ảnh kết nhận dạng: Hình 3.8 Kết nhận dạng thay đổi hình thái khn mặt 75 Hình 3.9 Kết nhận dạng có nhiễu 76 KẾT LUẬN Những kết luận văn đạt được: - Tìm hiểu cách tổng quan mơ hình nhận dạng mặt người Có cách nhìn có hệ thống phương pháp trích trọn đặc trưng phục vụ cho trình nhận dạng mặt người - Bằng cách kết hợp phương pháp phân tích thống kê phương pháp biến đổi hình thái luận văn đạt phương pháp hiệu toán nhận dạng mặt người Phương pháp PCA LDA trích chọn đặc trưng mang tính thống kêgiúp hệ thống có thơng tin đặc trưng tương đối đầy đủ người - Đối với phương pháp phân tích, sau trích chọn, đặc trưng chuyển tới mạng nơron lan truyền ngược để huấn luyện, phương pháp có mạng riêng Các tham số q trình huấn luyện số đặc trưng trích chọn, số nơron ẩn mạng, dạng hàm kích hoạt mạng lựa chọn sau nhiều thử nghiệm để có giá trị phù hợp hệ thống thời gian tính tốn độ xác - Khi thực nhậndạng, ảnh đầu vào trích chọn đặc trưng, đặc trưng đưa vào mạng nơron tương ứng với phương pháp phân tích.Đầu mạng người tương ứng với kết phương pháp Các kết riêng lẻ khác nhau, chúng so sánh với dựa vào khoảng cách Euclide với ảnh đầu vào, kết hệ thống kết có khoảng cách ngắn Bằng việc kết hợp vậy, hệ thống tận dụng tối đa ưu điểm phương pháp phân tích, đồng thờiưu điểm phương pháp bổ khuyết cho nhược điểm phương pháp kia, giúp hệ thốngđạt hiệu tốt Mặc dù hệ thống đạt độ xác cao, nhiên cịn tỉ lệ nhỏ chưa xác hệ thống chưa đánh giá toàn đặc trưng mặt người 77 Hướng phát triển: Trong nghiên cứu nhằm phát triển hoàn thiện hệ thống hơn, việc nhận dạng kết hợp thêm phương pháp phân tích khác nhận dạng mắt, nhận dạng miệng hay nhận dạng mũi đặc trưng quan trọng khn mặt Hệ thống áp dụng cho việc nhận dạng sinh viên phòng thi với danh sách cho trước, giúp phịng tra khảo thí nhanh chóng xác định sinh viên nghi ngờ thi hộ Đầu vào cho hệ thống ảnh mặt người lấy 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á 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 thư viện ảnh cho trước Hệ thống nhanh chóng đưa kết luận ảnh mặt người đầu vào có thuộc danh sách hay khơng 78 TÀI LIỆU THAM KHẢO PhạmViệt Bình, Đỗ Năng Toàn,Xử lý ảnh.Nhà xuất Khoa học Kỹ thuật, Hà Nội, 2008 Lương Mạnh Bá, Nguyễn Thanh Thuỷ, Nhập môn xử lý ảnh số, Nhà xuất Khoa học Kỹ thuật, 2002 Ben Kröse, Patrick van der Smagt (1996), An introduction to Neural Networks, The University ofAmsterdam Kresimir Delac, Mislav Grgic (2007),“PCA and LDA based Neural Networks for Human Face Recognition”, Face Recognition, ISBN 978-3-902613-03-5, ITech, Vienna, Austria Ethan Png (2004), Morphological Shared-Weight Neural Network for Face Recognition, University of Manchester Institute of Science and Technology Lindsay I.Smith (2002), A Tutorial on Principal Components Analysis, Cornell University, USA William K.Pratt (2007), Digital Image Processing, John Wiley & Sons, Inc., Publication W.Zhao, R.Chellappa, P.J.Phillips, A.Rosenfeld (2003),“Face Recognition - A Literature Survey”, ACM Computing Surveys, Vol 35 (No 4) V.M.C.F.S.a.L Chiara Turati (2006), "Newborns face recognition: Role of inner and outer facial features Child Development" 79 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 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; 80 % -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 for ImgId=1:NumImg*2 TmpImg=reshape(Data(PsnId).number(ImgId).image',[MxN 1]); 81 DatMat=horzcat(DatMat,TmpImg); %Xep cac anh 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 82 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 tDat=double(tDat); %Tien xu ly anh 83 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 MapP=mapping(ResultPR); MapL=mapping(ResultLR); 84 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

Ngày đăng: 23/09/2020, 21:19

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan