TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code)

36 1.9K 31
TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code)

Đ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

TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) ..................................

ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU PCA NHẬN DẠNG MẶT NGƯỜI MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU BẢNG 4-1: SỐ LIỆU THỐNG KÊ 25 DANH MỤC CÁC TỪ VIẾT TẮT GUI Graphical User Interface ICA Independent Component Analysis MATLAB PCA Matrix Laboratory Principal Component Analysis Trang 5/37 CHƯƠNG - TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu Với tiến khoa học công nghệ, thuật toán computer vision cho phép người dùng máy móc thay cho việc tưởng chừng khó khăn thành đơn giản với , việc đòi hỏi khơng xử lý nhanh - mà hiệu mang lại cao gấp nhiều lần so với người làm Nhận dạng mặt người ứng dụng tuyệt vời với giá trị mà mang lại Để tra thơng tin người, hàng tiếng đồng hồ để tìm phạm vi tìm kiếm nhỏ, tìm người phạm vi quốc gia sao, điều bất khả thi Nhưng với thuật toán để nhận dạng mặt người, vài phút lâu sở liệu - lớn tính hiệu tốt Ứng dụng nhận dạng mặt người xuất smartphone để mở khóa hình, dùng điểm danh trường học, công ty - 1.1.1 Yêu cầu đề tài Phát khuôn mặt, tách khuôn mặt riêng Sử dụng thuật toán PCA để trainning tạo sở liệu nhận dạng khuôn mặt - 1.1.2 Hướng giải Viết sơ đồ giải thuật, viết code, tạo giao diện người dùng (GUI) qua phần mềm MATLAB - 1.2 Nguyên lý chung Đầu tiên phải phát khn mặt có ảnh hay khơng tiếp tục - thực việc nhận dạng Việc tìm khn mặt tốn Biểu diễn ảnh thành ma trận hai chiều, việc xác định ảnh chứa khn mặt cần kiểm tra có sở liệu không thực việc thực phép trừ với tập mẫu Khó khăn kích thước ma trận lớn, sở liệu rộng, việc gây nhiều thời gian, lãng phí tài ngun khơng có tính khả thi cho việc áp dụng nhận dạng khuôn mặt với số lượng người đơng Tìm hiểu PCA nhận dạng mặt người Trang 6/37 - Giải pháp tìm thuật tốn giải vấn đề thực nhanh việc tính toán thuật toán PCA dùng việc nhận dạng mặt người, chiều vector giảm nhiều so với ảnh đầu vào, trích xuất đặc trưng khn mặt người, tính tốn ma trận hiệp phương sai bước đệm để tìm trị riêng vector riêng ảnh Các vector riêng chìa khóa giúp tìm thơng tin khn mặt người CHƯƠNG - NỘI DUNG CỦA ĐỀ TÀI 2.1 Sơ đồ hoạt động Từ yêu cầu trên, sơ đồ hoạt động chương trình nhận dạng mặt người sau: Ảnh đầu vào Dò tìm khn mặt Tách khn Tìm hiểu PCA nhận dạng mặt người mặt Trang 7/37 Sử dụng thuật toán PCA So sánh với sở liệu Hiển thị kết GUI Hình 2-1: Sơ đồ khối - - Ảnh đầu vào: • Sử dụng ảnh có chứa khn mặttìm khn mặt: • Áp dụng thuật tốn Haar Like để xác định vị trí khn mặt Tách khn mặt: • Sau dò tìm vị trí khn mặt, xác định diện tích tiến hành cắt Sử dụng thuật tốn PCA: • Thuật tốn giúp tìm đặc trưng khuôn mặt giữ chúng lại So sánh với sở liệu: • Tạo liệu cho sở liệu • Kích thước tập cần nhận dạng phải với tập mẫu • Càng nhiều tập mẫu hạn chế sai sót Hiển thị kết GUI: • Thiết kế giao diện người dùng với chức cần thiết cho trình nhận dạng - 2.2 Phương pháp dò tìm khn mặt Một ảnh đưa vào hệ thống, người phân biệt đâu ảnh quang cảnh, đâu ảnh có chứa khn mặt máy tính khơng thể nhận biết chưa huấn luyện Đi từ toán đơn giản ảnh chứa khuôn mặt, vừa có người vừa có khung cảnh, hay góc xoay khuôn mặt Phát khuôn mặt ứng dụng cho nhiều mục đích sử dụng nhận dạng khuôn mặt qua ảnh chứa khuôn mặt Tìm hiểu PCA nhận dạng mặt người Trang 8/37 - Việc phát khuôn mặt kĩ thuật cần thiết việc tiền nhận dạng khuôn mặt Cơ sở xác định khuôn mặt đề tài dùng hướng tiếp cận dựa vào diện mạo, cách dùng phân loại mạnh Adaboost tập hợp phân loại yếu đặc trưng Haar Like để tìm khn mặt - 2.2.1 Đặc trưng Haar Like Đặc trưng hai người Jones Viola công bố, để tìm khn mặt cần phải có đặc trưng Hình 2-2: Bốn đặc trưng Haar Like - Ba đặc trưng mở rộng từ đặc trưng bao gồm: đặc trưng cạnh, đường xung quanh tâm Hình 2-3: Ba đặc trưng Haar Like mở rộng - Giá trị đặc trưng Haar Like hiệu tổng pixel vùng đen vùng trắng Giá trị dùng để so sánh với giá trị vung pixel thơ trước Nhằm giúp việc phân loại diễn đơn giản Tìm hiểu PCA nhận dạng mặt người Trang 9/37 - Tuy nhiên, việc tính tổng pixel ảnh diễn lâu không khả thi Do mà Jones Viola đưa khái niệm Integral Image, có kích thước với ảnh gốc Mỗi phần tử tính tổng pixel phía bên trái nó, pixel phía trên, bên trái xuống vị trí phía dưới, bên phải Hình 2-4: Tìm Integral Image Hình 2-5: Tính vùng xám - - Giá trị mức xám S tính sau : • S =A- B- C+ D 2.2.2 Bộ phân loại Adaboost Adaboost hoạt động dựa tập hợp tuyến tính weak classifiers để hình thành strong classifiers Sử dụng việc đánh trọng số, với weak classifiers xây dựng cập nhật lại trọng số để hình thành weak classifiers việc tăng nhận dạng sai giảm nhận dạng - Mơ hình phân tầng kết hợp phân loại Adaboost với đặc trưng Haar Like Tìm hiểu PCA nhận dạng mặt người Trang 10/37 Hình 2-6: Mơ hình phân tầng Cascade Hình 2-7: Tập hợp weak classifiers - 2.2.3 Xác định vị trí khn mặt Từ hình gốc ban đầu, tính toán thành Integral Image để bước sau thực thi nhanh Sau đó, ước lượng đặc trưng thơng qua đặc trưng Haar Like dùng Adaboost để giảm số đặc trưng khơng có khả chứa khuôn mặt Cuối phân loại yếu khn mặt hệ thống cho kết khn mặt - Trong việc tìm khn mặt, ảnh kiểm tra với đặc trưng Haar Like, đặc trưng chứa khn mặt cần xét tới đặc trưng Thứ tự đặc trưng dựa vào việc đánh trọng số thơng qua Adaboost Tìm hiểu PCA nhận dạng mặt người Trang 22/37 • Đưa chuẩn kích thước để thực phép tốn ma trận sở liệu ảnh cần nhận dạng - Trừ trung bình ảnh: • Giảm giá trị vector xuống, để việc tính tốn khơng phải số lớn - Tạo ma trận hiệp phương sai: • Làm sở để tính trị riêng, vector riêng -Trị riêng vector riêng: • Hai thành phần giữ vai trò quan trọng việc đánh giá mực độ quan trọng liệu - Sắp xếp trị riêng theo giá trị giảm dần: • - Chỉ giữ lại trị riêng có lượng thơng tin quan trọng Hình thành tập liệu: • Tập liệu tổng hợp ảnh mẫu K chiều sau bước 3.3 Nhận dạng khuôn mặt Tìm hiểu PCA nhận dạng mặt người Trang 23/37 Hình 3-16: Nhận dạng khn mặt - Các bước phần nhận dạng giống với tạo tập liệu, khác phần so sánh ảnh cần nhận dạng với ảnh mẫu Xét ngưỡng tương đối tính tốn Tìm hiểu PCA nhận dạng mặt người Trang 24/37 khoảng cách từ ảnh đầu vào đến tập liệu Nếu khoảng cách gần bé ngưỡng ảnh có tập liệu ngược lại CHƯƠNG - KẾT QUẢ VÀ NHẬN XÉT 1.1 Kết Kết thu phép thử 80 ảnh sở liệu sau: • Thử với khn mặt bình thường tỷ lệ sai xảy chấp nhận Đây phép thử dễ tỷ lệ nhận dạng phải cao tốt Tìm hiểu PCA nhận dạng mặt người Trang 25/37 • Thử với khn mặt bị che phần trang, tỷ lệ nhận dạng thấp Phép thử tương đối khó khn mặt bị che phần đặc trưng trích xuất khơng đủ, dẫn đến việc nhận dạng bị sai • Thử với trường hợp khn mặt quay góc 900̊, có ảnh sở liệu việc nhận dạng xảy khơng có 100% khơng nhận dạng Đây phép thử khó tương tự Bảng 4-1: Số liệu thống kê Điều kiện Đặc trưng Thời gian Số lượng Số lượng ảnh Tỷ lệ nhận ánh sáng Tốt Tốt Tốt khuôn mặt xử lý Bình thường 0.116s Che phần 0.164s Quay >90 0.206s người sở dạng 24 24 24 liệu 80 80 80 Hình 4-17: Tìm thấy ảnh sơ liệu Tìm hiểu PCA nhận dạng mặt người 95.83% 8.33% 0% Trang 26/37 Hình 4-18: Chương trình nhận dạng sai - 4.1 Nhận xét Chương trinh thực theo yêu cầu tỷ lệ nhận dạng mức cao: phát khuôn mặt, tạo sở liệu, nhận dạng khuôn mặt Tuy nhiên nhận - dạng chưa xác số trường hợp sau: • Góc quay khn mặt • Khoảng cách chụp • Điều kiện ánh sáng • Những thay đổi khuôn mặt đeo trang, đeo kính Thời gian thực nhanh nhất: 0.116 giây với sở liệu 80 ảnh Ưu điểm: • Tính tốn nhanh phương pháp template matching giảm chiều chiều vector • Nhận biết nhanh, mức độ xác cao • Khơng quan tâm đến số lượng ảnh làm sở liệu cốt lõi thuật tốn PCA giảm chiều vector, trích xuất đặc trưng Cho nên nhiều ảnh - sở liệu việc nhận dạng cao Nhược điểm: • Vẫn sai sót sở liệu nhỏ, khơng có chứa trường hợp khn mặt • Cần làm sở liệu lớn muốn nhận dạng xác cao góc độ khn mặt người Tìm hiểu PCA nhận dạng mặt người Trang 27/37 CHƯƠNG KẾT LUẬN - 5.1 Kết luận Chương trình hoạt động ổn định, xác cao, yêu cầu đề ra: dùng - thuật toán PCA để giảm chiều liệu, phát khuôn mặt, tạo cở sở liệu Cần sở liệu lớn để việc nhận dạng xác góc độ khn mặt Chương trình tối ưu thuật toán, chưa kết hợp với giải thuật khác để trở nên thông minh - 5.2 Hướng phát triển Thuật tốn Fast PCA giúp trích xuất đặc trưng khuôn mặt mắt, mũi, miệng, tai Việc làm cho nhận dạng khn mặt mức tin tưởng cao hơn, xác cao - Sử dụng giải thuật xác mạng Neural, kết hợp thuật toán ICA chất lượng nhận dạng tốt - Sử dụng vi điều khiển tự động hóa phần camera chụp ảnh nhận dạngngười - Thiết kế mơ hình điểm danh nhận dạng khn mặt Tìm hiểu PCA nhận dạng mặt người Trang 28/37 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] https://sites.google.com/site/dangtrieu/xulyanh [2] http://www.ngohaibac.net/matlab001-ki-thuat-lap-trinh-matlab-can-ban/ [3] https://machinelearningcoban.com/2017/06/15/pca/ Tiếng Anh: [4] http://www.mathwork.com [5] http://www.ieev.org/2013/04/khoang-cach-distance.html [6] Oge Marques, Practical Image And Video Processing Using MATLAB, John Wiley & Sons, Ltd., ISBN:9781118093481 [7] Chris Solomon (2011),Fundamentals Of Digital Image Processing, First Edition, John Wiley & Sons, Ltd., ISBN:978-0-470-84472-4 Tìm hiểu PCA nhận dạng mặt người Trang 29/37 PHỤ LỤC A function varargout = mophong(varargin) % MOPHONG MATLAB code for mophong.fig % MOPHONG, by itself, creates a new MOPHONG or raises the existing % singleton* % % H = MOPHONG returns the handle to a new MOPHONG or the handle to % the existing singleton* % % MOPHONG('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in MOPHONG.M with the given input arguments % % MOPHONG('Property','Value', ) creates a new MOPHONG or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before mophong_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to mophong_OpeningFcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help mophong % Last Modified by GUIDE v2.5 03-Dec-2017 21:33:02 % Begin initialization code - DO NOT EDIT / Bat dau ma khoi tao gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @mophong_OpeningFcn, 'gui_OutputFcn', @mophong_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 % End initialization code - DO NOT EDIT Tìm hiểu PCA nhận dạng mặt người Trang 30/37 % - Executes just before mophong is made visible function mophong_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to mophong (see VARARGIN) % Choose default command line output for mophong handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes mophong wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = mophong_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % - Executes on button press in select_image function select_image_Callback(hObject, eventdata, handles) % hObject handle to select_image (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global A; %chon anh va tai anh len axes1 cla(handles.axes1,'reset'); [filename, pathname] = uigetfile('*','LOAD AN IMAGE'); %chon va lay ten va duong dan tep tin A=imread(fullfile(pathname, filename));%A = doc ma tran anh tu xay dung mot dac ta tap tin day du tu thu muc ten va tap tin duoc chi dinh axes(handles.axes1); imshow(A); %Hien thi hinh anh A handles.fullname= A; guidata(hObject, handles); % - Executes on button press in scan function scan_Callback(hObject, eventdata, handles) % hObject handle to scan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global A; %Lay khung khuon mat nguoi tu anh va hien thi axes2 cla(handles.axes2,'reset'); Tìm hiểu PCA nhận dạng mặt người Trang 31/37 A=handles.fullname; axes(handles.axes2); imshow(A); %Hien thi hinh anh A FaceDetect = vision.CascadeObjectDetector; %Thuat toan cau hinh de phat hien va tao khung khuon mat BB = step(FaceDetect,A); y=size(BB,1); hold on for i=1:y a=rectangle('Position', [BB(i,1),BB(i,2),BB(i,3),BB(i,4)+15],'LineWidth',3,'LineStyle','-','EdgeC olor','r'); end % - Executes on button press in seperate function seperate_Callback(hObject, eventdata, handles) % hObject handle to seperate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global A; %Hien thi cac khung anh khuon mat da phat hien cla(handles.axes4,'reset'); %Hien thi anh tai axes4 cla(handles.axes5,'reset'); %Hien thi anh tai axes5 A=handles.fullname; FaceDetect = vision.CascadeObjectDetector; BB = step(FaceDetect,A); y=size(BB,1); hold on for i=1:y if i==1 J= imcrop(A,[BB(i,1),BB(i,2),BB(i,3),BB(i,4)]); %J= Cat anh A theo kich co da duoc dinh vi khung khuon mat axes(handles.axes4) %Gan cho axes4 imshow(J); %Hien thi anh J handles.J= J; elseif i==2 K= imcrop(A,[BB(i,1),BB(i,2),BB(i,3),BB(i,4)]); axes(handles.axes5); imshow(K); handles.K= K; end end guidata(hObject, handles); % - Executes on button press in Select1 function Select1_Callback(hObject, eventdata, handles) % hObject handle to Select1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global J; cla(handles.axes1,'reset'); J=handles.J; axes(handles.axes1); %Gan cho axes1 Tìm hiểu PCA nhận dạng mặt người Trang 32/37 imshow(J); %Hien thi anh J cho axes1 imwrite(J,'J.jpg'); %Ghi du lieu hinh anh J.jpg vao tep J handles.nhandang=J; guidata(hObject, handles); % - Executes on button press in Select2 function Select2_Callback(hObject, eventdata, handles) % hObject handle to Select2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global J; cla(handles.axes1,'reset'); J=handles.K; axes(handles.axes1); imshow(J); imwrite(J,'K.jpg'); handles.nhandang=J; guidata(hObject, handles); % - Executes on button press in pushbutton9 function pushbutton9_Callback(hObject, eventdata, handles) % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %Dong cua so close % - Executes on button press in detect function detect_Callback(hObject, eventdata, handles) % hObject handle to detect (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %I=handles.rgb1; %A = handles.fullname; global J; global A; global m; global Eigenfaces; global Train_Number; global ProjectedImages; tic InputImage = A; temp=rgb2gray(InputImage); temp = imresize(temp, [200 180]); %%%%%%%% %bw = im2bw(InputImage); %[cc,cr] = size(bw) %%%%%% %temp = InputImage(:,:,1); [irow icol] = size(temp); InImage = reshape(temp',irow*icol,1); Tìm hiểu PCA nhận dạng mặt người Trang 33/37 Difference = double(InImage)- m; % Centered test image % L =Difference\; % [V D] = eig(L); % Eigenfaces1=Difference*V; ProjectedTestImage = Eigenfaces'*Difference; % Test image feature vector dac diem cua anh test Euc_dist = []; for i = : Train_Number q =round( ProjectedImages(:,i)); temp = ( norm( round(ProjectedTestImage) - q ) )^2; Euc_dist = [Euc_dist temp]; end [Euc_dist_min , Recognized_index] = min(Euc_dist) OutputName = strcat(int2str(Recognized_index),'.jpg'); SelectedImage = strcat('C:\Users\gunner\Desktop\DATN\datn\TestDB','\',OutputName); SelectedImage = imread(SelectedImage); %%%%%%%Find the same image bw = im2bw(InputImage); bw = imresize(bw, [200 180]); [cc,cr] = size(bw) bw1 = im2bw(SelectedImage); bw1 = imresize(bw1, [200 180]); [cc1,cl2] = size(bw1) tem1 = abs(bw - bw1); tem2= sum(sum(tem1)) if tem2 < 7000 axes(handles.axes3); imshow(SelectedImage); %%% Show information filename = 'myExample.xlsx'; switch Recognized_index case sheet = Recognized_index; xlRange = strcat('A',int2str(Recognized_index)); [num,txt] = xlsread(filename,sheet,xlRange); set(handles.textTen,'String',txt); Recognized_index = Recognized_index + 1; xlRange = strcat('A',int2str(Recognized_index)); [num1,txt1] = xlsread(filename,sheet,xlRange); set(handles.textMSSV,'String',num2str(num1)); case sheet = Recognized_index; xlRange = strcat('A',int2str(Recognized_index)); [num,txt] = xlsread(filename,sheet,xlRange); set(handles.textTen,'String',txt); Tìm hiểu PCA nhận dạng mặt người Trang 34/37 Recognized_index = Recognized_index + 1; xlRange = strcat('A',int2str(Recognized_index)); [num1,txt1] = xlsread(filename,sheet,xlRange); set(handles.textMSSV,'String',num2str(num1)); end %%%%%% else axes(handles.axes3); imshow('cancel.jpg'); end toc % - Executes on button press in pushbutton10 function pushbutton10_Callback(hObject, eventdata, handles) % hObject handle to pushbutton10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close mophong1 % - If Enable == 'on', executes on mouse press in pixel border % - Otherwise, executes on mouse press in pixel border or over text4 function text4_ButtonDownFcn(hObject, eventdata, handles) % hObject handle to text4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % - Executes on button press in database function database_Callback(hObject, eventdata, handles) % hObject handle to database (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global m; global Eigenfaces; global Train_Number; global ProjectedImages; TrainDatabasePath = uigetdir('C:\Users\gunner\Desktop\DATN\datn\TestDB', 'Select training database path' ); T = CreateDatabase(TrainDatabasePath); %[m, A, Eigenfaces] = EigenfaceCore(T); m = mean(T,2); Tìm hiểu PCA nhận dạng mặt người Trang 35/37 Train_Number = size(T,2) Q= []; for i = : Train_Number temp = double(T(:,i)) - m; % Computing the difference image for each image in the training set Ai = Ti - m Q = [Q temp]; end L = Q'*Q; [V D] = eig(L,'nobalance'); L_eig_vec = []; for i = : size(V,2) if( D(i,i)>1 ) L_eig_vec = [L_eig_vec V(:,i)]; end end Eigenfaces = Q * L_eig_vec; % A: centered image vectors U %OutputName = Recognition(TestImage, m, A, Eigenfaces); %function OutputName = Recognition(TestImage, m, A, Eigenfaces) ProjectedImages = []; Train_Number = size(Eigenfaces,2); for i = : Train_Number temp = Eigenfaces'*Q(:,i); % Projection of centered images into facespace ProjectedImages = [ProjectedImages temp]; %Tinh hinh chieu moi anh tren khong gian anh end function T = CreateDatabase(TrainDatabasePath) TrainFiles = dir(TrainDatabasePath); Train_Number = 0; for i = 1:size(TrainFiles,1) if not(strcmp(TrainFiles(i).name,'.')| strcmp(TrainFiles(i).name,' ')|strcmp(TrainFiles(i).name,'Thumbs.db')) Train_Number = Train_Number + 1; % Number of all images in the training database end end %%%%%%%%%%%%%%%%%%%%%%%% Construction of 2D matrix from 1D image vectors T = []; for i = : Train_Number str = int2str(i); str = strcat('\',str,'.jpg'); str = strcat(TrainDatabasePath,str); Tìm hiểu PCA nhận dạng mặt người Trang 36/37 img = img = img = [irow imread(str); rgb2gray(img); imresize(img, [200 180]); icol] = size(img) temp = reshape(img',irow*icol,1); T = [T temp]; end Tìm hiểu PCA nhận dạng mặt người ... đầu vào, nhận dạng ảnh Hình 2-12: Giao diện thiết kế Tìm hiểu PCA nhận dạng mặt người Trang 19/37 Hình 2-13: Giao diện cho người dùng CHƯƠNG 3.1 Dò tìm khn mặt Tìm hiểu PCA nhận dạng mặt người GIẢI... nhận dạng khuôn mặt với số lượng người đơng Tìm hiểu PCA nhận dạng mặt người Trang 6/37 - Giải pháp tìm thuật tốn giải vấn đề thực nhanh việc tính tốn thuật toán PCA dùng việc nhận dạng mặt người, ... bước 3.3 Nhận dạng khuôn mặt Tìm hiểu PCA nhận dạng mặt người Trang 23/37 Hình 3-16: Nhận dạng khn mặt - Các bước phần nhận dạng giống với tạo tập liệu, khác phần so sánh ảnh cần nhận dạng với

Ngày đăng: 23/02/2018, 19:46

Mục lục

  • DANH MỤC CÁC HÌNH VẼ

  • DANH MỤC CÁC BẢNG BIỂU

  • DANH MỤC CÁC TỪ VIẾT TẮT

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI

    • 1.1 Giới thiệu

      • 1.1.1 Yêu cầu của đề tài

      • CHƯƠNG 2. NỘI DUNG CỦA ĐỀ TÀI

        • 2.1 Sơ đồ hoạt động

        • 2.2 Phương pháp dò tìm khuôn mặt

          • 2.2.1 Đặc trưng Haar Like

          • 2.2.2 Bộ phân loại Adaboost

          • 2.2.3 Xác định vị trí khuôn mặt

          • 2.3 Phân tích thành phần chính PCA

            • 2.3.1 Các khái niệm liên quan tới thuật toán PCA

              • 2.3.1.1 Kỳ vọng Phương sai

              • 2.3.1.3 Ma trận hiệp biến

              • 2.3.1.4 Trị riêng và vector riêng

              • 2.3.2 Các bước thực hiện trong PCA

                • 2.3.2.1 Chuẩn hóa về kích thước

                • 2.3.2.2 Thực hiện phép trừ trung bình

                • 2.3.2.3 Tạo ma trận hiệp phương sai

                • 2.3.2.4 Tìm các trị riêng và vector riêng tương ứng

                • 2.3.2.5 Xác định các thành phần và vector đặc trưng

                • 2.3.2.6 Biểu diễn trên không gian mới

                • 2.4 Nhận dạng khuôn mặt

                • 2.5 Phân tích thành phần độc lập ICA

                • 2.6 Thiết kế giao diện

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

Tài liệu liên quan