Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,44 MB
Nội dung
TRƢỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: THIẾT KẾ MÔ PHỎNG HỆ THỐNG NHẬN DẠNG TRÊN CƠ SỞ THUẬT TOÁN PCA Giảng viên hướng dẫn: ThS Tạ Hùng Cƣờng inh viên th c hi n : Đặng Thế Hƣởng ớp : 52K - ĐTTT Mã số sinh viên : 1151080438 NGHỆ AN - 2016 LỜI CẢM ƠN Từ kiến thức kỹ em học tập rèn luyện, em hoàn thành đồ án tốt nghiệp đại học Để hồn thiện đƣợc đồ án này, em xin gửi lời cảm ơn chân thành tới thầy ThS Tạ Hùng Cƣờng hƣớng dẫn, động viên em trình làm đồ án vừa qua Em xin gửi lời cảm ơn tới quý thầy/cô giúp em để hồn thành đồ án Trong q trình làm đồ án chắn không tránh khỏi thiếu sót, mong nhận đƣợc đóng góp ý kiến từ phía đơn vị Nghệ An, tháng 05 năm 2016 Sinh viên thực Đặng Thế Hƣởng MỤC LỤC LỜI CẢM ƠN .1 MỤC LỤC DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN .6 CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN Chƣơng MATLAB VÀ XỬ LÝ ẢNH 1.1 MATLAB 1.2 Giới thiệu khái quát ảnh số 11 1.3 Xử lý ảnh với Matlab .12 1.4 Toolbox bắt ảnh xử lý ảnh 15 1.5 Tạo giao diện ngƣời dùng nhờ công cụ GUIDE .21 Kết luận chƣơng .25 Chƣơng PHƢƠNG PHÁP XỬ LÝ VÀ NHẬN DẠNG KHUÔN MẶT 26 2.1 Sơ lƣợc phân tích thành phần PCA 26 2.2 Thuật toán PCA 27 2.3 Định nghĩa tốn xác định khn mặt ngƣời 27 2.4 Ứng dụng phƣơng pháp xác định khuôn mặt 27 2.5 Phƣơng pháp xác định khuôn mặt 29 2.6 Khó khăn thử thách tốn xác định khn mặt ngƣời 35 2.7 Bài toán nhận dạng khuôn mặt PCA 36 Chƣơng THUẬT TỐN PCA VÀ CHƢƠNG TRÌNH MƠ PHỎNG 47 3.1 Ƣu điểm phƣơng pháp PCA .47 3.2 Nhƣợc điểm phƣơng pháp PCA .47 3.3 Lƣu đồ giải thuật .48 3.4 Kết mô 53 3.5 Tốc độ thực .54 Kết luận chƣơng .56 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 59 TÓM TẮT ĐỒ ÁN Đồ án giới thiệu khái quát nhận dạng, xử lý ảnh, thuật tốn PCA Nghiên cứu nhằm mục đích thiết kế xây dựng chƣơng trình mơ việc nhận dạng sở thuật toán PCA giao diện GUI MATLAB ABSTRACT The graduation project generally presents of indentity, image processing, PCA algorithm The study aims to desig and built a simulation program which indentify on the basis of the PCA algorithm and GUI on MATLAB LỜI NÓI ĐẦU Vấn đề an ninh bảo mật đƣợc yêu cầu khắt khe quốc gia giới Các hệ thống nhận dạng ngƣời đƣợc đời với độ tin cậy ngày cao Một toán nhận dạng đƣợc quan tâm nhận dạng khn mặt Bên cạnh đó, việc thu thập, xử lý thông tin qua ảnh để nhận biết đối tƣợng đƣợc quan tâm ứng dụng rộng rãi Với phƣơng pháp này, thu nhận đƣợc nhiều thông tin từ đối tƣợng mà không cần tác động nhiều đến đối tƣợng nghiên cứu Sự phát triển khoa học máy tính tạo mơi trƣờng thuận lợi cho toán nhận dạng từ ảnh số Các hệ thống nhận dạng offline đời có độ tin cậy cao, nhiên hệ thống nhận dạng online lại chƣa đáp ứng đƣợc Bài tốn nhận dạng tốn hấp dẫn, khơng giới hạn giải pháp sử dụng, vận dụng linh hoạt kiến thức nhiều lĩnh vực, thách thức nhiều ngƣời nghiên cứu tính ứng dụng to lớn thực tế Đây vấn đề cần đƣợc nghiên cứu để ứng dụng vào việc chế tạo nhƣ: robot, thiết bị camera, hệ thống bảo mật, nhận dạng,… Do em chọn đề tài “Thiết kế mơ hệ thống nhận dạng sở thuật toán PCA” Đề tài đƣợc trình bày bao gồm có chƣơng: Chƣơng 1: Matlab xử lý ảnh Chƣơng 2: Phƣơng pháp xử lý nhận dạng khuôn mặt Chƣơng 3: Thiết kế chƣơng trình mơ nhận dạng dung thuật toán PCA Nội dung đề tài bao gồm: - Tìm hiểu phƣơng pháp nhận diện ảnh - Nghiên cứu PCA - Dị tìm ảnh mặt ngƣời có khơng gian - Cắt ảnh mặt lƣu vào file - Xử lý ảnh động qua webcam Trong luận em xin đề cập tới vấn đề dị tìm nhận dạng mặt ngƣời qua ảnh tĩnh cho trƣớc, đồng thời mở rộng xử lý ảnh thu đƣợc qua thiết bị thu ảnh, ví dụ nhƣ: camera, webcam, … DANH MỤC HÌNH SỬ DỤNG TRONG ĐỒ ÁN Hình 1.1 Cửa sổ khởi động Matlab 10 Hình 1.2 Biểu diễn ảnh index 19 Hình 1.3 Cửa số GUIDE 22 Hình 1.4 Cửa số biên soạn GUIDE 22 Hình 1.5 Cửa sổ thuộc tính 24 Hình 2.1 Một mẫu khn mặt, có 16 vùng 23 quan hệ (các mũi tên) 34 Hình 2.2 Eigenfaces 38 Hình 2.3 Bức ảnh kiểm tra hình chiếu .38 Hình 2.4 Ảnh ban đầu 39 Hình 2.5 Face map ảnh ban đầu 39 Hình 2.6 Face map ảnh ban đầu với không gian khuôn mặt .40 Hình 2.7 a) Những gƣơng mặt dùng để huấn luyện b) Ảnh trung bình ψ .41 Hình 3.1 Lƣu đồ thuật tốn chƣơng trình 48 Hình 3.2 Lƣu đồ thuật toán chọn ảnh .49 Hình 3.3 Lƣu đồ thuật tốn dị tìm mặt 50 Hình 3.4 Lƣu đồ giải thuật chƣơng trình nhận dạng 51 Hình 3.5 Lƣu đồ giải thuật PCA 52 Hình 3.6 Giao diện 53 Hình 3.7 Giao diện chƣơng trình nhận dạng ảnh tĩnh 53 Hình 3.8 Giao diện chƣơng trình dị tìm ảnh động 54 CÁC TỪ VIẾT TẮT SỬ DỤNG TRONG ĐỒ ÁN PCA Principal Component Analysis Phân tích thành phần COM Component Object Model Phần kết hợp RGB Red Green Blue Đỏ Lục Lam MATLAB Matrix Laboratory Thƣ viện ma trận CGA Color Graphic Adaptor Độ phân giải hình SVM Support Vector Machine Vector hỗ trợ ICA Independent Component Analysis Phân tích thành phần độc lập Chƣơng MATLAB VÀ XỬ LÝ ẢNH 1.1 MATLAB 1.1.1 Khái niệm MATLAB Matlab công cụ mơ phỏng, lập trình bậc cao đƣợc sử dụng để giải toán khoa học kỹ thuật MATLAB tích hợp đƣợc việc tính tốn, thể kết quả, cho phép lập trình, giao diện làm việc dễ dàng cho ngƣời sử dụng Dữ liệu với thƣ viện đƣợc lập trình sẵn cho phép ngƣời sử dụng có đƣợc ứng dụng sau Sử dụng hàm có sẵn thƣ viện MATLAB, phép tính tốn học thơng thƣờng Cho phép lập trình tạo ứng dụng Cho phép mơ mơ hình thực tế Phân tích, khảo sát hiển thị liệu Với phần mềm đồ hoạ cực mạnh Cho phép phát triển, giao tiếp với số phần mềm khác nhƣ C++, Fortran 1.1.2 Tổng quan cấu trúc liệu MATLAB, ứng dụng Matlab hệ thống tƣơng giao, phần tử liệu mảng (mảng khơng địi hỏi kích thƣớc) Chúng cho phép giải vấn đề liên quan đến lập trình máy tính, đặc biệt sử dụng phép tính ma trận hay vectơ sử dụng ngơn ngữ C học Fortran lập trình thực ứng dụng lập trình câu lệnh gọi từ MATLAB MATLAB đƣợc viết tắt từ chữ “MATrix LABoratory” tức thƣ viện ma trận, từ phần mềm Matlab đƣợc viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận cách dễ dàng, phần mềm ma trận đƣợc phát triển cơng trình Linpack Eispack Ngày Matlab đƣợc phát triển Lapack Artpack tạo nên nghệ thuật phần mềm cho ma trận a) Dữ li u Dữ liệu MATLAB thể dƣới dạng ma trận (hoặc mảng - tổng quát), có kiểu liệu đƣợc liệt kê sau đây: Kiểu đơn single, kiểu có lợi nhớ liệu địi hỏi byte nhớ hơn, kiểu liệu không đƣợc sử dụng phép tính tốn học, độ xác Kiểu double kiểu kiểu thông dụng biến Matlab Kiểu Sparse Kiểu uint8, uint8, uint16, uint64 Kiểu char ví dụ “Hello” Kiểu cell Kiểu Structure Trong Matlab kiểu liệu double kiểu mặc định sử dụng phép tính số học b) Ứng dụng Matlab tạo điều kiện thuận lợi cho: Các khoá học toán học Các kỹ sƣ, nhà nghiên cứu khoa học Dùng Matlab để tính tốn, nghiên cứu tạo sản phẩm tốt sản xuất c) Toolbox công cụ quan trọng MAT AB Công cụ đƣợc MATLAB cung cấp cho phép bạn ứng dụng kỹ thuật để phân tích, thiết kế, mơ mơ hình Ta tìm thấy toolbox mô trƣờng làm việc Mạng nơron Logic mờ Simulink 1.1.3 Hệ thống MATLAB Hệ thống giao diện MATLAB đƣợc chia thành phần: Môi trƣờng phát triển Đây nơi đặt công cụ, phƣơng tiện giúp sử dụng lệnh file, ta liệt kê số nhƣ sau + Desktop + Command Window + Command History + Browsers for viewing help Thƣ viện, hàm toán học bao gồm cấu trúc nhƣ tính tổng, sin cosin atan, atan2 etc , phép tính đơn giản đến phép tính phức tạp nhƣ tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library Ngơn ngữ Matlab Đó ngôn ngữ cao ma trận mảng, với dòng lệnh, hàm, cấu trúc liệu vào, lập trình hƣớng đối tƣợng Đồ hoạ Matlab Bao gồm câu lệnh thể đồ họa môi trƣờng 2D 3D, tạo hình ảnh chuyển động, cung cấp giao diện tƣơng tác ngƣời sử dụng máy tính Giao tiếp với ngôn ngữ khác Matlab cho phép tƣơng tác với ngôn ngữ khác nhƣ C, Fortran… 1.1.4 Làm việc với MATLAB Hình 1.1 Cửa sổ khởi động MATLAB Trƣớc tiên để khởi động MATLAB ta kích click vào biểu tƣợng file MATLAB hình xuất cửa sổ nhƣ hình vẽ Cửa sổ chứa công cụ (Giao diện ngƣời máy) cần thiết cho việc quản lý files, biến, cửa sổ lệnh, coi desktop panel gồm ô, vùng, quản lý tác dụng cửa sổ nhỏ đƣợc quản lý desktop Trên hình vẽ ta thấy cửa sổ desktop (cửa sổ lớn nhất), cửa sổ phụ 10 3.4.3 Giao diện chƣơng trình dị tìm ảnh động Hình 3.8 Giao diện chương trình dị tìm ảnh động 3.5 Tốc độ thực Tốc độ thực chƣơng trình thể thời gian mà chƣơng trình tính tốn q trình xử lý, tùy theo giá trị kích thƣớc ảnh đƣa vào lớn hay nhỏ mà tốc độ thực nhanh hay chậm Nếu ảnh đầu vào có kích thƣớc nhỏ, trình xử lý chƣơng trình thực nhanh chóng, ảnh đầu vào có kích thƣớc lớn, trình xử lý chƣơng trình thực chậm, mặc khác tốc độ thực tùy thuộc vào tốc độ xử lý máy tính, vậy, u cầu cần có cấu hình thích hợp để thực chƣơng trình cách nhanh chóng, tạo điều kiện thuận lợi cho việc dị tìm nhận dạng khn mặt Tốc độ thực q trình đo đạc thời gian xử lý chƣơng trình, chƣơng trình dị tìm ảnh mặt ngƣời chƣơng trình nhận dạng ảnh mặt ngƣời 3.6 Nhận xét trình thực Qua q trình tìm hiểu nghiên cứu, tơi xây dựng đƣợc nhìn khái quát toán nhận dạng, đặc biệt nhận dạng mặt ngƣời Đồng thời, nắm bắt đƣợc số vấn đề xử lý ảnh: dạng ảnh, tính chất ảnh, không gian, tọa độ ảnh, ma trận ảnh,… vận dụng kết hợp với cơng cụ xử lý ảnh Matlab (Image Processing Toolbox) Từ kết thu đƣợc, ta nhận thấy: ta dị tìm đƣợc 1khuôn mặt, khuôn 54 mặt, khuôn mặt tối đa khuôn mặt ảnh, nguyên nhân hạn chế kích thƣớc khuôn mặt ảnh, khuôn mặt có khơng có tập ảnh huấn luyện, ƣu điểm tốn Tuy chƣa có chuẩn xác q trình dị tìm nhận dạng mặt ngƣời, nhƣng toán phần đƣợc giải Trong q trình thao tác, có ƣu khuyết điểm, nhƣng luận văn chúng em hoàn thành tƣơng đối chấp nhận đƣợc, sau số ƣu điểm khuyết điểm toán nhƣ trình thực luận văn ➢ Ƣu điểm - Ta nhận dạng đƣợc ảnh với 1khuôn mặt, khuôn mặt, khuôn mặt khn mặt - Khn mặt ngƣời đƣợc dị tìm cắt rõ nét, nhận dạng đƣợc - Đối với thuật toán PCA, thuật toán đƣợc sử dụng nhiều lĩnh vực, lĩnh vực chuyên ngành điện tử, thuật tốn đƣợc vận dụng Matlab với nhiều cơng cụ xử lý, tạo điều kiện thuận lợi cho việc thực đề tài Khuyết điểm - Nội dung tốn dị tìm nhận dạng mặt ngƣời, nên sử dụng nhiều khuôn mặt nhiều đối tƣợng với trạng thái khác nhau, nên khuyết điểm toán cần số lƣợng lớn nguồn tài nguyên khuôn mặt nhiều đối tƣợng, từ tạo đƣợc khối lƣợng sở liệu phong phú Cho nên có trƣờng hợp khơng dị tìm đƣợc vài khn mặt ảnh, khơng tìm đƣợc nét đặc trƣng khuôn mặt - Chƣơng trình đƣợc thực nhờ vào hoạt động máy tính, nên cần có cấu hình cần thiết để xử lý tính tốn, từ áp dụng cơng nghệ đại, điều ảnh hƣởng đến tốc độ thực chƣơng trình Ví dụ nhƣ nhận dạng khn mặt ngƣời qua thiết bị quan sát, tốc độ xử lý nhanh ta có kết mỹ mãn hài lòng - Về nội dung toán, việc chọn lọc đƣa ảnh vào để xử lý, có hai cách: sử dụng ảnh tĩnh có sẵn sử dụng nguồn liệu đƣa vào từ webcam Đối với webcam, hay thiết bị thu hình nào, điều cần phải có độ phân giải tốt để ảnh đƣa vào rõ nét, nhƣ khả xử lý cao xác 55 - Đồng thời khó khăn cách xác định khoảng cách tọa độ khuôn mặt ngƣời trình đƣa ảnh vào xử lý, cụ thể kích thƣớc ảnh mặt ngƣời so với kích thƣớc ảnh huấn luyện (quá lớn bé) Vì phƣơng pháp nhận dạng PCA phƣơng pháp dò quét ảnh nhận dạng theo khối vấn đề khoảng cách kích thƣớc khn mặt ảnh đƣa vào so với kích thƣớc tập ảnh huấn luyện (tập ảnh face) quan trọng Cho nên thuật toán thƣờng gặp khó khăn nhiều vấn đề - Khó khăn việc xử lý dị tìm nhận dạng, điều kiện ảnh đƣa vào xử lý phải phù hợp: độ sáng, góc lệch, cảm xúc, biến dạng,… Chính điều này, đơi có khn mặt mà không đủ điều kiện ánh sáng (ảnh bị tối) khuôn mặt bị sai khác nhiều so với ảnh liệu (méo dạng, khn mặt nhăn nhó, nhiều cảm xúc,…) Kết luận chƣơng Ở chƣơng em xây dựng đƣợc thuật tốn chƣơng trình, lên ý tƣởng xây dựng đƣợc giao diện nên GUIDE MATLAB Nêu đƣợc trình nhận dạng ảnh động ảnh tĩnh, đánh giá kết nhận đƣợc sau chƣơng trình mơ 56 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Kết luận Sau trình nghiên cứu thực đề tài: Đề tài đã nghiên cứu làm rõ đƣợc giải thuật PCA ứng dụng việc nhận dạng xử lý ảnh Đề tài xây dựng thành cơng chƣơng trình mô xử lý ảnh hai chế độ online offline Hƣớng phát triển Nhận diện mặt ngƣời qua tập liệu có sẵn từ camera Nhận diện danh tính ngƣời phạm tội qua ảnh chụp Có thể kết hợp với nhiều thuật toán khác nhƣ: ICA, Neural,… để xử lý cách xác Dị tìm nhận dạng đối tƣợng vi phạm kỷ luật từ xa qua thiết bị quan sát Bảo mật hệ thống cách nhận dạng khuôn mặt hay nhiều đối tƣợng muốn vào cơng ty, xí nghiệp, hay quan Quản lý thời gian làm việc nhân viên xí nghiệp mà cần camera quan sát 57 TÀI LIỆU THAM KHẢO Tài liệu tiếng việt [1] Ngơ Hồng Khắc Tiến, Trần Xn Bách, Đồ án tốt nghiệp Dị tìm ảnh mặt ngƣời dùng PCA, Khoa Công nghệ điện tử, trƣờng Đại học Công Nghiệp TP HCM, 2009 [2] Lƣơng Mạnh Bá, Nguyễn Thanh Thủy, Nhập Môn Xử lý ảnh số, Nxb Khoa học Kỹ thuật, 2002 [3] Võ Đức Khánh, Hồng Văn Kiếm Giáo trình xử lý ảnh số, Nhà xuất Đại học Quốc gia Thành phố Hồ Chi Minh, 2003 [4] Phạm Thế Bảo, Tổng quan phƣơng pháp xác định khn mặt ngƣời, Tạp chí bƣu viễn thơng [5] Ngơ Quốc Tạo, Ngơ Phƣơng Đơng, Nguyễn Thanh Hịa, Phạm Việt Bình (2003), Báo cáo “Nhận dạng mặt ngƣời môi trƣờng độ sáng không đồng nhất”, Hội thảo Công nghệ thông tin quốc gia lần thứ VIII, Thái Nguyên, 2931/8/2003 [6] Nguyễn Hoài Sơn, Giáo trình Matlab bản, Khoa Xây dựng Cơ học ứng dụng, trƣờng ĐHSPKT Tài liệu tiếng anh [7] Burce A Draper, Kyungim Baek, Marian Stewart Bartlett, J Ross Beveridge, “Recognizing Faces with PCA and ICA” [8] Stan Z Li , Anil K Jain, “Handbook of Face Recognition”, 2006 [9] IEEE Computer Society, “Automatic face and gesture recognition”, 2004 [10] Các Wedsite: Tài liệu Website http://www.mathworks.com/ Truy cập lần cuối ngày 10/05/2016 http://www.picvietnam.com/forum/ Truy cập lần cuối ngày 01/05/2016 58 PHỤ LỤC - Giao diện chƣơng trình function varargout = giaodien(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @giaodien_OpeningFcn, 'gui_OutputFcn', @giaodien_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 giaodien_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = giaodien_OutputFcn(hObject, eventdata, handles) function Untitled_1_Callback(hObject, eventdata, handles) close chuongtrinh; % Gọi ðến chýõng trinh.m function Untitled_2_Callback(hObject, eventdata, handles) close % Ðóng chýõng trình chuongtringCAM % Gọi chýõng trình CAM 59 function axes1_CreateFcn(hObject, eventdata, handles) axis off imshow('logo.jpg'); % Ðọc ảnh từ thý mục - Chƣơng trình dị tìm nhận dạng ảnh tĩnh function varargout = chuongtrinh(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @chuongtrinh_OpeningFcn, 'gui_OutputFcn', @chuongtrinh_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 chuongtrinh_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); xoaanh function varargout = chuongtrinh_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function chonanh_Callback(hObject, eventdata, handles) xoaanh; chonanh; function timmat_Callback(hObject, eventdata, handles) 60 dotimcatanh; % goi hàm dotimcatanh axes(handles.axes2); imshow('anhluu/anh_kq.jpg'); %hiện kết function pushbutton3_Callback(hObject, eventdata, handles) thoat; function pushbutton4_Callback(hObject, eventdata, handles) xoaanh; giaodien; delete(handles.figure1); function Tachmat_Callback(hObject, eventdata, handles) axes(handles.axes4); imshow('anhluu/anh1.jpg'); axes(handles.axes5); imshow('anhluu/anh2.jpg'); axes(handles.axes6); imshow('anhluu/anh3.jpg'); axes(handles.axes7); imshow('anhluu/anh4.jpg'); function save1_Callback(hObject, eventdata, handles) s=imread('anhluu/anh1.jpg'); save1; function save2_Callback(hObject, eventdata, handles) s=imread('anhluu/anh2.jpg'); save1; function save3_Callback(hObject, eventdata, handles) s=imread('anhluu/anh3.jpg'); save1; function save4_Callback(hObject, eventdata, handles) s=imread('anhluu/anh4.jpg'); save1; function pushbutton11_Callback(hObject, eventdata, handles) 61 xoaanh function pushbutton12_Callback(hObject, eventdata, handles) nhandang; % Gọi ðến chýõng trình nhandang.m function chon1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon2_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh2.jpg'); a = strcat('anhluu/anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon3_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh3.jpg'); a = strcat('anhluu/anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); 62 set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon4_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh4.jpg'); a = strcat('anhluu/anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function chon1_CreateFcn(hObject, eventdata, handles) function chon2_CreateFcn(hObject, eventdata, handles) function axes9_CreateFcn(hObject, eventdata, handles) imshow('vinh.jpg'); axis off function axes10_CreateFcn(hObject, eventdata, handles) imshow('dtvt.jpg'); axis off function axes12_CreateFcn(hObject, eventdata, handles) imshow('vinh.jpg'); function axes13_CreateFcn(hObject, eventdata, handles) imshow('dtvt.jpg'); - Chýõng trình dị tìm cắt mặt với Webcam function varargout = chuongtringCAM(varargin) gui_Singleton = 1; 63 gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @chuongtringCAM_OpeningFcn, 'gui_OutputFcn', @chuongtringCAM_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 chuongtringCAM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = chuongtringCAM_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) global vid vid = videoinput('winvideo', 3, 'YUY2_640x480'); vid.FramesPerTrigger = 1; vid.ReturnedColorspace = 'rgb'; triggerconfig(vid, 'manual'); vidRes = get(vid, 'VideoResolution'); imWidth = vidRes(1); imHeight = vidRes(2); nBands = get(vid, 'NumberOfBands'); hImage = image(zeros(imHeight, imWidth, nBands), 'parent', handles.axes1); 64 preview(vid, hImage); function pushbutton2_Callback(hObject, eventdata, handles) global vid photo a photo = getsnapshot(vid); selection = questdlg(['Ban muon chup anh gan hay xa?'], ['Chuong trinh chup anh!'], 'Gan','Xa','Yes'); if strcmp(selection,'Gan') axes(handles.axes1); photo=imresize(photo,0.5); imshow(photo); a = strcat('anhluu/anh_goc.jpg'); imwrite(photo,a); elseif strcmp(selection,'Xa') axes(handles.axes1); imshow(photo); a = strcat('anhluu/anh_goc.jpg'); imwrite(photo,a); end function pushbutton3_Callback(hObject, eventdata, handles) axes(handles.axes2); imshow('anhluu/anh_kq.jpg'); %hi?n ?nh k?t qu? function pushbutton5_Callback(hObject, eventdata, handles) nhandang; function pushbutton6_Callback(hObject, eventdata, handles) axes(handles.axes4); imshow('anhluu/anh1.jpg'); axes(handles.axes5); imshow('anhluu/anh2.jpg'); axes(handles.axes6); 65 imshow('anhluu/anh3.jpg'); axes(handles.axes7); imshow('anhluu/anh4.jpg'); function radiobutton1_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton7_Callback(hObject, eventdata, handles) s=imread('anhluu/anh1.jpg'); save1; function radiobutton2_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton8_Callback(hObject, eventdata, handles) s=imread('anhluu/anh2.jpg'); save1; 66 function radiobutton3_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton9_Callback(hObject, eventdata, handles) s=imread('anhluu/anh3.jpg'); save1; function radiobutton4_Callback(hObject, eventdata, handles) if (get(hObject,'Value') == get(hObject,'Max')) photo=imread('anhluu\anh1.jpg'); a = strcat('anhluu\anhtest.jpg'); imwrite(photo,a); set(handles.ten,'string',' '); set(handles.ns,'string',' '); set(handles.mssv,'string',' '); set(handles.lop,'string',' '); set(handles.quequan,'string',' '); end function pushbutton10_Callback(hObject, eventdata, handles) s=imread('anhluu/anh4.jpg'); save1; function pushbutton12_Callback(hObject, eventdata, handles) xoaanh; function back_Callback(hObject, eventdata, handles) 67 xoaanh; giaodien; delete(handles.figure1); function THOAT_Callback(hObject, eventdata, handles) thoat; function axes15_CreateFcn(hObject, eventdata, handles) imshow('dtvt.jpg'); axis off function axes14_CreateFcn(hObject, eventdata, handles) imshow('vinh.jpg'); axis off 68 ... 0,2782 Kết luận chƣơng Trình bày sơ lƣợc thuật tốn PCA, toán nhận dạng dựa thuật toán PCA Khó khăn tốn xác định khn mặt, tốn nhận dạng khn mặt thuật tốn PCA cách chi tiết 46 Chƣơng THUẬT TOÁN PCA. .. để ứng dụng vào việc chế tạo nhƣ: robot, thiết bị camera, hệ thống bảo mật, nhận dạng, … Do em chọn đề tài ? ?Thiết kế mô hệ thống nhận dạng sở thuật tốn PCA? ?? Đề tài đƣợc trình bày bao gồm có chƣơng:... với thuật tốn trên, PCA nhận dạng dựa nét tổng thể khn mặt Cịn thuật toán, PCA cung cấp sở rõ ràng cho việc mô tả đặc trƣng khn mặt, để từ phát triển thuật tốn 47 nhận dạng khác Vì PCA khơng thuật