1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

MÔ PHỎNG NHẬN DẠNG mặt (có code)

24 351 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 494,28 KB

Nội dung

MÔ PHỎNG NHẬN DẠNG mặt (có code) ............................................... MÔ PHỎNG NHẬN DẠNG mặt (có code) ............................................... MÔ PHỎNG NHẬN DẠNG mặt (có code) ............................................... MÔ PHỎNG NHẬN DẠNG mặt (có code) ...............................................

MÔ PHỎNG NHẬN DẠNG MẶT MỤC LỤC DANH MỤC CÁC HÌNH VẼ VII DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 GIỚI THIỆU 1.2 YÊU CẦU ĐỀ TÀI .1 1.3 HƯỚNG THỰC HIỆN CHƯƠNG THUẬT TỐN PCA TRONG NHẬN DẠNG KHN MẶT 2.1 GIỚI THIỆU CHUNG VỀ THUẬT TOÁN PCA .3 2.2 TÍNH TỐN CÁC EIGENFACES 2.2.1 Tạo tập ảnh huấn luyện 2.2.2 Vector khn mặt trung bình .4 2.2.3 Trừ vector khuôn mặt trung bình 2.2.4 Ma trận hiệp phương sai C .4 2.2.5 Trị riêng( Eigenvalues) vector riêng( Eigenvectors) 2.2.6 Biểu diễn khn mặt có sẵn tập huấn luyện vào không gian vector 2.3 NHẬN DẠNG KHUÔN MẶT BẰNG CÁC EIGENFACES 2.3.1 Trích rút đặc trưng PCA 2.3.2 Chuẩn hóa, trừ vector trung bình 2.3.3 Đưa vào không gian đặc trưng 2.3.4 Tương ứng với 2.3.5 Tính khoảng cách Euclide 2.3.6 So sánh khoảng cách rút kết luận 2.4 CÁC HÀM HIỂN THỊ ẢNH TRONG MATLAB 2.5 CÁC HÀM KHÁC ĐƯỢC SỬ DỤNG TRONG ĐỀ TÀI .8 CHƯƠNG GIỚI THIỆU CHƯƠNG TRÌNH 10 CHƯƠNG SƠ ĐỒ KHỐI VÀ CODE CHƯƠNG TRÌNH 14 4.1 SƠ ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH CHÍNH .14 4.2 CODE CHO CHƯƠNG TRÌNH .15 CHƯƠNG KẾT LUẬN 16 5.1 ƯU ĐIỂM, KHUYẾT ĐIỂM 16 5.1.1 Ưu điểm 16 5.1.2 Khuyết điểm 16 5.2 HƯỚNG PHÁT TRIỂN .16 TÀI LIỆU THAM KHẢO 17 PHỤ LỤC A ……………………………………………………………………………18 DANH MỤC CÁC HÌNH VẼ HÌNH 3.1: GIAO DIỆN CHƯƠNG TRÌNH NHẬN DẠNG KHN MĂT LÚC BẮT ĐẦU 10 HÌNH 3.2: ẢNH CẦN KIỂM TRA ĐƯỢC ĐƯA RA GIAO DIỆN CHÍNH .11 HÌNH 3.3: ẢNH NHẬN DẠNG ĐƯỢC ĐƯỢC ĐƯA RA GIAO DIỆN 12 HÌNH 3.4: HÌNH ẢNH NOMATCH XUẤT HIỆN TRÊN GIAO DIỆN KHI ẢNH CẦN TÌM KHƠNG CĨ TẬP HUẤN LUYỆN 13 DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT PCA Principal Components Analysis GUI Graphical User Interface Trang 1/20 CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu Ngày thiết bị điện tử dần phát triển theo xu hướng tự động hóa, thơng minh, hiểu ý người, chúng giao tiếp với người thiết bị cảm biến, đặc biệt thuật toán nhận dạng với ưu điểm đại , xác hơn, an toàn bảo mật Nhận dạng ứng dụng rộng rãi nhiều lĩnh vực đời sống lĩnh vực thương mại, phát tội phạm lĩnh vực an ninh, hay lĩnh vực xử lý video, hình ảnh Đồng thời có nhiều các phương pháp nhận dạng khác xây dựng để nhận dạng người Tuy việc nhận dạng người giới thực vô khó khăn, để nhận dạng ta phải xây dựng tập sở liệu đủ lớn việc xử lý liệu lớn đòi hỏi phải nhanh xác Chúng ta phải nghiên cứu xây dựng chương trình sử dụng phương pháp nhận dạng có độ xác cao mà khối lượng thời gian tính tốn lại Để giải quết vấn đề có phương pháp cho phép phân tích thành phần khn mặt, giúp giảm bớt số thành phần khơng cần thiết tạo hiệu tính tốn nhanh mà đảm bảo độ xác,đó phương pháp Principal Components Analysis (PCA) hay gọi là: “Phân tích thành phần chính” 1.2 Yêu cầu đề tài - Nghiên cứu tiềm hiểu thuật toán nhận dạng PCA - Nghiên cứu lệnh xử lý ảnh màu Matlab - Nghiên cứu giải thuật thực phần mềm nhận dạng Matlab - 1.1 Hướng thực Tìm hiểu lý thuyết thuật tốn PCA Tìm hiểu lệnh Matlab xử lý ảnh ảnh, hàm tính tốn - kĩ thuật PCA Viết code cho chương trình nhận dạng Matlab kiểm tra với file hình - ảnh khn mặt tập huấn kiểm tra có kích thước Tích hợp code chương trình với giao diện GUI Matlab Mô Phỏng Hệ Thống MIMO Trang 2/20 CHƯƠNG THUẬT TỐN PCA TRONG NHẬN DẠNG KHN MẶT 2.1 Giới thiệu chung thuật tốn PCA Phân tích thành phần (Principal Component Analysis ) gọi tắt PCA thuật toán nhận dạng ảnh dựa nét tổng thể khuôn mặt Phương pháp phát minh năm 1901 Karl Pearson sử dụng cơng cụ để phân tích liệu nghiên cứu thực mơ hình dự đốn PCA gồm việc tính tốn phân tích giá trị đặc trưng ma trận tương quan liệu phân tính giá trị đơn ma trận liệu sau tính trung bình liệu thuộc tính PCA phương pháp đơn giản phân tích đa biến dựa vector đặc trưng Thơng thường hoạt động hiểu nhằm khám phá cấu trúc bên liệu Nếu tập liệu đa biến xem xét tập tọa độ không gian liệu nhiều chiều (mỗi trục biểu diễn biến) phương pháp PCA cung cấp cho ảnh chiều, bóng vật thể quan sát từ đặc trưng vật thể Mục tiêu phương pháp PCA “giảm số chiều” tập vector cho đảm bảo “tối đa thông tin quan trọng nhất” Phương pháp PCA giữ lại K thuộc tính “mới” từ M thuộc tính ban đầu (KTr Khơng có ảnh phù hợp Hiển thi hình ảnh “nomatch” Kết thúc Mô Phỏng Hệ Thống MIMO Trang 13/20 4.2 Code cho chương trình (Xem Phụ lục A) Mơ Phỏng Hệ Thống MIMO Trang 14/20 CHƯƠNG KẾT LUẬN 5.1 Ưu điểm, khuyết điểm 5.1.1 Ưu điểm Nhận diện hình ảnh xác nhanh chóng 5.1.2 Khuyết điểm Ảnh nhận dạng bị sai ảnh kiểm tra ảnh tập huấn luyện khác nhiều vị trí khn mặt hình, điều kiện ánh sáng, điệu bộ, cảm xúc,… 5.2 Hướng phát triển Đề tài phát triển thành phần mện nhận dạng mặt người tốt hơn, cách kết hợp với số thuật toán nhận dạng xử lý ảnh đại Cho kết xác Có thể phát triển thành đề tài nhận dạng qua webcam… Mô Phỏng Hệ Thống MIMO Trang 15/20 TÀI LIỆU THAM KHẢO Internet: [1] https://en.wikipedia.org/wiki/Eigenface [2] https://www.mathworks.com/videos/face-recognition-with-matlab-98076.html [3] https://www.slideshare.net/ashwiniawatare/face-recogntion-using-pca- algorithm [4] https://www.slideshare.net/rickwendell/principal-component-analysys? next_slideshow=1 Mô Phỏng Hệ Thống MIMO Trang 16/20 PHỤ LỤC A function varargout = doan3(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @doan3_OpeningFcn, 'gui_OutputFcn', @doan3_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function doan3_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = doan3_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function edit1_Callback(hObject, eventdata, handles) function edit1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function pushbutton1_Callback(hObject, eventdata, handles) global TestImage datapath = uigetdir('C:\Users\Dell\Desktop\testgguid\trainingimage','select path of training images'); testpath = uigetdir('C:\Users\Dell\Desktop\testgguid\testingmage','select path of test images'); prompt = {'Enter test image name (a number between to 10):'}; dlg_title = 'Input of PCA-Based Face Recognition System'; num_lines=1; def = {' '}; TestImage = inputdlg(prompt,dlg_title,num_lines,def); TestImage = strcat(testpath,'\',char(TestImage),'.pgm'); if testpath~= axes(handles.axes1); imshow(TestImage); end Mô Phỏng Hệ Thống MIMO Trang 17/20 function pushbutton2_Callback(hObject, eventdata, handles) global datapath global TestImage recog_img = facerecog(datapath,TestImage); nomatch = strcmp(recog_img,'nomatch.png'); if nomatch==1 selected_img=['C:\Users\Dell\Documents\MATLAB\facerecognition','\',recog_ img]; axes(handles.axes2); imshow(selected_img); else selected_img = strcat(datapath,'\',recog_img); select_img = imread(selected_img); axes(handles.axes2); imshow(select_img); end function pushbutton3_Callback(hObject, eventdata, handles) close function [recognized_img]=facerecog(datapath,testimg) datapath D = dir(datapath imgcount = 0; for i=1 : size(D,1) if not(strcmp(D(i).name,'.')|strcmp(D(i).name,' ')| strcmp(D(i).name,'Thumbs.db')) imgcount = imgcount + 1; end end X = []; for i = : imgcount str = strcat(datapath,'\',int2str(i),'.pgm'); img = imread(str); [r,c,l]=size(img); if l==3 img = rgb2gray(img); end [r c] = size(img); temp = reshape(img',r*c,1); X = [X temp]; end imgcount = size(X,2); A = []; for i=1 : imgcount temp = double(X(:,i)) - m; A = [A temp]; end Mô Phỏng Hệ Thống MIMO Trang 18/20 L= A' * A; [V,D]=eig(L); L_eig_vec = []; for i = : size(V,2) if( D(i,i) > ) L_eig_vec = [L_eig_vec V(:,i)]; end end eigenfaces = A * L_eig_vec; projectimg = [ ]; for i = : size(eigenfaces,2) temp = eigenfaces' * A(:,i); projectimg = [projectimg temp]; end test_image = imread(testimg); test_image = test_image(:,:,1); [r c] = size(test_image); temp = reshape(test_image',r*c,1); temp = double(temp)-m; projtestimg = eigenfaces'*temp; % euclide_dist = [ ]; for i=1 : size(eigenfaces,2) temp = (norm(projtestimg-projectimg(:,i)))^2; euclide_dist = [euclide_dist temp]; end min(euclide_dist) [euclide_dist_min recognized_index] = min(euclide_dist); if min(euclide_dist)>1e+14 recognized_img = 'nomatch.png'; end if min(euclide_dist)

Ngày đăng: 21/01/2018, 16:48

TỪ KHÓA LIÊN QUAN

w