1. Trang chủ
  2. » Tất cả

Nhận diện khuôn mặt trên matlab

102 1 0

Đ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 102
Dung lượng 3,38 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NHẬN DIỆN KHUÔN MẶT TRÊN MATLAB NGÀNH: KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG GIẢNG VIÊN HƯỚNG DẪN: ThS BÙI HỮU HIÊN Sinh viên thực MSSV Lớp Đỗ Đình Lương 1811011931 18DDTA1 Phùng Bá Hùng 1811030029 18DDTA1 TP Hồ Chí Minh, tháng năm 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TP HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NHẬN DIỆN KHUÔN MẶT TRÊN MATLAB NGÀNH: KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG GIẢNG VIÊN HƯỚNG DẪN: ThS BÙI HỮU HIÊN Sinh viên thực MSSV Lớp Đỗ Đình Lương 1811011931 18DDTA1 Phùng Bá Hùng 1811030029 18DDTA1 TP Hồ Chí Minh, tháng năm 2022 BM01/QT05/ĐT-KT VIỆN KỸ THUẬT HUTECH PHIẾU ĐĂNG KÝ ĐỀ TÀI ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP Hệ: CQ (CQ, LT, B2, VLVH) Họ tên sinh viên/ nhóm sinh viên đăng ký đề tài (sĩ số nhóm: ) (1) Đỗ Đình Lương MSSV: 1811011931 Lớp: 18DDTA1 (2) Phùng Bá Hùng MSSV: 1811030029 Lớp: 18DDTA1 Ngành: Kỹ Thuật Điện Tử - Viễn Thông Chuyên ngành : Viễn Thông Tên đề tài đăng ký : Nhận diện khuôn mặt Matlab Sinh viên hiểu rõ yêu cầu đề tài cam kết thực đề tài theo tiến độ hoàn thành thời hạn TP HCM, ngày 19 tháng 03 năm 2022 Giảng viên hướng dẫn Sinh viên đăng ký (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) MÃ ĐỀ TÀI: 01 VIỆN KỸ THUẬT HUTECH PHIẾU GIAO NHIỆM VỤ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Mỗi sinh viên phiếu, GVHD ghi rõ tên đề tài nhiệm vụ sinh viên GVHD chuyển cho SV để nộp VP Viện.) Sinh viên thực đề tài Họ tên : Đỗ Đình Lương MSSV : 1811011931 Lớp : 18DDTA1 Điện thoại : 0372720111 Email : dodinhluong99.vungtau@gmail.com Ngành : Kỹ thuật Điện tử - Viễn thông Tên đề tài: Nhận diện khuôn mặt Matlab Nhiệm vụ thực đề tài: Đảm nhiệm việc mô nhận diện phần mềm Matlab Sinh viên thực ( Ký ghi rõ họ tên ) TP HCM, ngày 24 tháng 04 năm 2020 Giảng viên hướng dẫn ( Ký ghi rõ họ tên ) MÃ ĐỀ TÀI: 01 VIỆN KỸ THUẬT HUTECH PHIẾU GIAO NHIỆM VỤ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Mỗi sinh viên phiếu, GVHD ghi rõ tên đề tài nhiệm vụ sinh viên GVHD chuyển cho SV để nộp VP Viện.) Sinh viên thực đề tài Họ tên : Phùng Bá Hùng MSSV : 1811030029 Lớp : 18DDTA1 Điện thoại : 0931112778 Email : bahunglong999@gmail.com Ngành : Kỹ thuật Điện tử - Viễn thông Tên đề tài: Nhận diện khuôn mặt Matlab Nhiệm vụ thực đề tài: Đảm nhiệm khâu thiết kế thực thi phần cứng khâu lấy mẫu để nhận diện Đảm nhận việc viết báo cáo kết thực đồ án Sinh viên thực ( Ký ghi rõ họ tên ) TP HCM, ngày 24 tháng 04 năm 2020 Giảng viên hướng dẫn ( Ký ghi rõ họ tên ) LỜI CAM ĐOAN Em xin cam đoan với lãnh đạo nhà trường Đại Học Công Nghệ Thành phố Hồ Chí Minh (HUTECH), q thầy bạn sinh viên khóa 2018 số liệu kết nghiên cứu luận văn trung thực chưa sử dụng để bảo vệ học vị Mọi giúp đỡ cho việc thực luận văn cảm ơn thơng tin trích dẫn luận văn rõ nguồn gốc rõ ràng phép công bố Người thực đề tài Đỗ Đình Lương Phùng Bá Hùng i LỜI CẢM ƠN Nhóm em muốn bày tỏ lòng biết ơn đến tất người giúp đỡ nhóm q trình viết luận án Lịng biết ơn sâu sắc tơi trước hết dành cho thầy hướng dẫn nhóm Thầy Bùi Hữu Hiên, khuyến khích hướng dẫn liên tục thầy Thầy hướng dẫn nhóm qua tất giai đoạn viết luận án Nếu khơng có hướng dẫn quán sáng suốt thầy, luận án đạt kết Cuốn đồ án hoàn thành theo thời gian quy định nhà trường khoa không nỗ lực em mà giúp đỡ bảo thầy hướng dẫn, quý thầy cô bạn sinh viên Thứ hai, nhóm xin bày tỏ lịng biết ơn chân thành đến tất thầy cô Viện Kỹ Thuật HUTECH cố gắng để giúp đỡ nhóm gặp khó khăn Nhóm biết ơn chân thành bạn bè bạn lớp, người giúp đỡ thời gian họ việc lắng nghe giúp giải vấn đề nhóm q trình gặp khó khăn luận án.\ Nhóm em xin chân thành cám ơn! ii TÓM TẮT Trong năm gần đây, với phát triển gần công nghệ mạng truyền thông, công nghệ sinh trắc học chấp nhận rộng rãi tiện lợi an tồn Bao gồm nhận dạng vân tay, nhận dạng khuôn mặt, nhận dạng giọng nói, nhận dạng mống mắt, v.v Trong số đó, nhận dạng khn mặt trở thành điểm nóng nghiên cứu khoa học máy tính trí tuệ nhân tạo khơng ép buộc khơng tiếp xúc Trong ngành giao thông vận tải đại, công nghiệp truyền thông, công nghiệp điện tử, nhận dạng khuôn mặt sử dụng rộng rãi Tuy nhiên, cịn nhiều yếu tố khơng thể kiểm sốt để nhận dạng khuôn mặt điều kiện không chuẩn, chẳng hạn ánh sáng bóng tối, biểu cảm, trang trí hình xăm Trong luận án này, thuật toán AlexNet Convolutional Neural Network sử dụng để xử lý yếu tố Sau đó, nghiên cứu giới thiệu cách áp dụng nguyên tắc Principal Component Analysis tích chập AlexNet nhận dạng khn mặt phương pháp tối ưu hóa AlexNet để có phương pháp có độ xác cao nhận dạng khuôn mặt với nhiễu Phương pháp phát triển dựa AlexNet cách giảm kích thước hạt nhân tích chập tăng số lượng hạt nhân tích chập kích thước nhỏ, Sau đó, thơng qua lớp gộp tối đa để làm bật tính cục bộ, số nhiễu hình ảnh pha lỗng, để cải thiện độ xác AlexNet trường hợp nhiễu không bị nhiễu Một nhóm đối chứng đặt thử nghiệm để so sánh thay đổi trước sau cải tiến nhằm xác định xem cải tiến có hiệu hay khơng Từ khóa: Principal Component Analysis, Convolutional Neural Network, AlexNet, Nhận dạng khuôn mặt iii ABSTRACT In recent years, with the recent development of network and communication technology, the biometric technology is widely accepted for its convenience and safety, including fingerprint recognition, face recognition, voice recognition, iris recognition and so on Among them, face recognition has become a research hotspot in computer science and artificial intelligence, because of its non-coercive and noncontact In the modern transportation industry, communication industry, electronic industry, face recognition has been widely used However, there are still various uncontrollable factors for face recognition under non- standard conditions, such as light and shadow, expression, decoration, and tattoo In this thesis, one of the Convolutional Neural Networks, AlexNet is used to handle the factors Then, the research introduces how the principle of Principal Component Analysis AlexNet be applied in face recognition, and a method to optimize AlexNet to get a higher accuracy method in face recognition with interference This method is developed based on AlexNet by reducing the size of convolution kernel and increasing the number of small size convolution kernel Then through the maximum pooling layer to highlight the local features, some of the interference in the image is diluted, to improve the accuracy of AlexNet in the case of interference and no interference A control group is set in the experiment to compare the changes before and after the improvement to determine whether the improvement is effective Keywords: Principal Component Analysis, Convolutional Neural Network, AlexNet, Face Recognition iv MỤC LỤC TIÊU ĐỀ TRANG LỜI CAM ĐOAN i LỜI CẢM ƠN ii TÓM TẮT iii ABSTRACT iv MỤC LỤC v DANH SÁCH CÁC TỪ VIẾT TẮT ix DANH SÁCH CÁC BẢNG, LƯU ĐỒ .x DANH SÁCH CÁC HÌNH ẢNH xi Lời mở đầu xiii CHƯƠNG : GIỚI THIỆU 1.1 Tính cấp thiết đề tài 1.2 Tình hình nghiên cứu 1.3 Mục đích nghiên cứu 1.4 Ứng dụng việc nghiên cứu 1.5 Giới hạn phạm vi nhiệm vụ nghiên cứu .3 1.6 Kết cấu đồ án CHƯƠNG 2: TỔNG QUAN GIẢI PHÁP 2.1 Phần mềm Matlab môi trường Windows .5 2.1.1 Giới thiệu phần mềm Matlab v mặt, độ sáng, điều kiện ánh sáng,v.v…, phát khuôn mặt đánh giá bước khó khăn quan trọng so với bước cịn lại hệ thống Trong đề tài mơ phỏng, liệu thu thập theo dạng tệp liệu tự thu thập Nhóm tiến hành thu thập liệu từ người khác thông qua chương trình thu nhập liệu đề cập Chương Chương trình tiến hành xác nhận khung hình nhận điện khuôn mặt, đồng tời tiến hành thu thập 100 tập mẫu cho xác nhận khn mặt Ở Bảng 6.3 cho so sánh khả thu thập liệu Tuỳ vào môi trường cho kết tốc độ thu thập liệu độ xác khung hình thu nhập đạt điều kiện cho nhiệm vụ cần phải xử lý Từ rút ra, để tập mẫu đáp ứng đạt yêu cầu yếu tố không gian xung quanh định tập mẫu có đủ sở liệu cho việc huấn luyện đạo tạo tới Tệp mẫu ( Số Số lượng Không gian lượng người ảnh xung quang khu lấy mẫu) tập mẫu vực lấy mẫu 100 100 100 dạng khuôn mặt tập mẫu tập mẫu (%) 53 sec nhiễu phía sau, nhiễu phía sau, cá nhân lấy mẫu nhận diện nhân lấy mẫu Nhiều chi tiết gây 100 mẫu nhận 100 tập mẫu / cá nhân lấy mẫu Độ xác Phông xanh, cá Nhiều chi tiết gây Tốc độ lấy 100 tập mẫu / 75 sec 100 tập mẫu / 68 sec Phông xanh, - 100 tập mẫu / cá nhân lấy mẫu 49 sec Bảng 6.3 So sánh liệu thu thập tệp mẫu từ chương trình 70 99% 91% 44% 63% Sau hồn tất trình lấy mẫu, đến trình đào tạo từ tệp mẫu thu thập AlexNet bắt đầu sử dụng sức mạnh tách giải lớp từ liệu mà thu thập trước Khi hoàn tất tách, tiến hành phân loại bắt đầu trình huấn luyện sử dụng sgdm tạo Convolutional Neural Network 0,00001 theo giao thức Nó đào tạo sử dụng tất lớp Tệp mẫu ( Số lượng Số lượng ảnh nhận Thời gian đào tạo (sử đụng người lấy mẫu) dạng tập mẫu GPU để phân tách lớp) 100 20 sec 200 34 sec 500 54 sec Bảng 6.4 So sánh thời gian huấn luyện đào tạo tệp mẫu Bảng so sách rõ rệt, q trình tiêu tốn thời gian thơng qua việc gọi thuật toán Alexnet Sau thứ vào quỹ đạo tập xếp theo thứ tự tiến hành phân tích theo thứ tự xếp, tệp mẫu thông qua GPU nhằm xử lý khối lượng công việc phân tách đặc tính riêng biệt làm sở đê đối chiếu Khối lượng tệp đào tạo lớn không nhiều thời gian để đào tạo Thời gian đào tạo thay đổi tuỳ thuộc vào cấu hình mà thiết bị mơ trang bị nên khơng có số chung kết xác Quá trình đào tạo kết thúc, cho phép nhóm sử dụng làm sở liệu để đối chiếu với hình ảnh thay dổi liên tục khoảng 20 - 30 khung hình sec Có nghĩa hình ảnh liên tục thay đổi theo thời gian mà hệ thống đáp ứng Đồng thời cho phép thông báo kết sau đối chiếu Môi trường tham chiếu không ảnh hưởng tới thời gian xác nhận mẫu Môi trường liệu dầu vào tốt cho kết xác ngược lại Có thể nhận diện nhiều người khung hình chính, khơng nhận dạng người phía sau 71 Nhận Số lượng Số liệu liệu đầu tệp mẫu vào qua đào tạo Không gian, diện liệu tham chiếu Được/ Thời gian Độ xác nhận xác nhận mẫu diện (%) Khơng 5 5 Phông xanh, rõ khuôn mặt Che khuất,không vật gây nhiễu Phông xanh, nhiều người sec K rõ mắt mũi miệng Nhiều người, nhiều 0,2 – 0,5 Đ Đ Đ 0,2 – 0,5 sec 0,2 – 0,5 sec 0,2 – 0,5 sec 98% 0% 65% 90% Bảng 6.5 So sánh kết nhận diện 6.1.2 Kết luận Thuật toán nhận dạng cho phép nhận dạng khn mặt với độ xác cao với góc nhìn nghiêng khơng q 30 độ Tốc độ thuật tốn nhanh Có thể nhận dạng qua webcam với khung hình ảnh bị rung khơng dùng chân máy quay hay biến thiên lớn tỉ lệ khn ảnh, chất lượng ảnh webcam kém, độ chói tư khuôn mặt thay đổi, khuôn mặt bị che phủ Thuật tốn nhận dạng khn mặt thơng qua webcam kết hợp thuật tốn AlexNet, phương pháp phân tích thành phần (PCA) mạng nơ ron đem lại kết cao Nghiên cứu giới thiệu ứng dụng thuật toán PCA Convolutional Neural Network ( CNN) AlexNet nhận dạng khuôn mặt Nghiên cứu sử dụng phương pháp kết hợp thuật toán PCA để tăng số lượng lớp phức tạp giảm kích thước hạt nhân tích chập để cải thiện AlexNet, tăng độ xác AlexNet nhận dạng khn mặt, có độ xác cao nhận dạng khuôn mặt 72 khuôn mặt che phủ ( che khuất, đeo trang, vv…) cung cấp giải pháp để nhận dạng khuôn mặt khuôn mặt che phủ với yếu tố khác Tuy nhiên, số lượng lớn hình ảnh khn mặt xử lý phương pháp dẫn đến tắc nghẽn Chỉ có 40 liệu data thử nghiệm, nhóm tham chiếu tất khn mặt che liệu lấy nơi Do đó, cịn thiếu sót khơng đủ liệu Xét mặt nghiên cứu, làm tốt giải vấn đề nêu từ đầu Đảm nhiệm việc thu thập liệu Data dùng lấy liệu tự thu thập Sử dụng liệu thu thập vào việc đào tạo tìm đặc điểm chung ma trận tách lớp tạo (Tách lớp hình ảnh) Áp dụng định lý SVD để có tính năng, giá trị vectơ đặc trưng hình ảnh khn mặt Sau tính tốn ma trận chiếu tối ưu Dùng camera chạy real time để lấy hình ảnh khn mặt đồng thời kiểm tra đối chiếu thời gian thực hình ảnh vào khơng gian đối tượng địa lý lấy vectơ tính với mục tiêu thu vectơ đặc trưng ma trận chiếu Thu kết so sánh cho gần 6.2 Hướng phát triển Với trỗi dậy Deep learning tiến trí tuệ nhân tạo, ứng dụng nhận dạng khuôn mặt vào tầng lớp xã hội độ xác nhận dạng khn mặt trở thành chủ đề nghiên cứu Trong báo này, thuật toán mạng đề xuất cho quy trình đào tạo tham số phương pháp mạng AlexNet, chứng minh có tốt hiệu suất thí nghiệm Nhưng cơng việc tương lai, nhận dạng khn mặt cịn nhiều vấn đề, chẳng hạn khuôn mặt ánh sáng khác hiển thị trạng thái ánh sáng bóng râm khác nhau, làm để thoát khỏi can thiệp bóng ánh sáng nhận dạng khn mặt quan trọng độ xác khn mặt Nhận Một ví dụ khác, thời gian dịch bệnh năm nay, người cần đeo trang ngồi trời nơi cơng cộng vấn đề an tồn Cách thực nhận dạng khn mặt nhanh chóng 73 xác mà khơng cần tháo trang nghiên cứu có ý nghĩa lớn an tồn phịng bệnh Và mạng nơ-ron, sở hạ tầng mạng nơ-ron đơn giản, mặt lý thuyết phù hợp với điều kiện liệu đa dạng, nhược điểm cấu trúc đơn giản, cần công việc kết hợp mạng nơ-ron quy mô lớn công cụ cho loại mạng phức tạp khơng đủ để kiểm sốt Dẫn đến tiến hóa chậm chạp Nếu khơng khắc phục, công nghệ thay cấu trúc Nhưng tổng thể xu hướng phía trước, việc liệu giới mạng nơ-ron, có phụ thuộc vào phát triển hay khơng tốc độ thay đổi công nghệ Thứ hai, trở ngại lớn việc CNN áp dụng cho nhiệm vụ làm để chọn siêu tham số bên phải Ví dụ: tỷ lệ học tập, kích thước hạt nhân lọc tích chập, số lượng lớp đòi hỏi nhiều kỹ kinh nghiệm Các siêu tham số có phụ thuộc số lượng nội liệu, làm cho việc điều chỉnh trở nên phức tạp Các nghiên cứu gần có chỗ đáng kể để cải thiện kỹ thuật lựa chọn theo phong cách học tập Kiến trúc CNN 74 TÀI LIỆU THAM KHẢO 6.1 Tài liệu sử dụng từ sách [1] Valueva, M.V.; Nagornov, N.N.; Lyakhov, P.A.; Valuev, G.V.; Chervyakov, N.I (2020) "Application of the residue number system to reduce hardware costs of the convolutional neural network implementation" Mathematics and Computers in Simulation Elsevier BV 177: 232– 243 doi: 10.1016/j.matcom.2020.04.031 ISSN 0378-4754 Convolutional neural networks are a promising tool for solving the problem of pattern recognition [2] LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard, W and Jackel, L.D., 1989 Backpropagation applied to handwritten zip code recognition Neural computation, 1(4), pp.541-551 [3] D H HUNEL and T N WIESEL, Receptive Fields, Binocular Interaction and Functional Architecture in the Cat’s Visual Cortex, From the Neurophysiology Laboratory, Department of Pharmacology Harvard Medical School, Boston, Massachusetts, USA, 31, July, 1961 [4] Goodfellow, I., Bengio, Y., Courville, A..Deep learning (Vol 1) Cambridg MIT press,2016:326-366 [5] Dr.A.Usha Ruby, Prasannavenkatesan Theerthagiri, Dr.I.Jeena Jacob, Dr.Y.Vamsidhar Binary cross entropy with deep learning technique for Image classification 2020/175942020 [6] G H Yann LeCun, Yoshua Bengio, “Deep learning,” Nature, vol 521, pp 436– 444, 2015 75 [7] David E Rumelhart, Geoffrey E Hintont Ronald J Williams, Learning Representations by back-propagating errors Institute for Cognitive Science, C-015, University of California, San Diego, La Jolla, California, 92093, USA [9] Gu, J., Wang, Z., Kuen, J., Ma, L., Shahroudy, A., Shuai, B., Liu, T., Wang, X., Wang, L., Wang, G and Cai, J., 2015 Recent advances in convolutional neural networks arXiv preprintarXiv:1512.07108 [10] Bottou, L., Curtis, F.E and Nocedal, J., 2018 Optimization methods for largescale machine learning SIAM Review, 60(2), pp.223-311 [11] Kingma, D.P and Ba, J., 2014 Adam: A method for stochastic optimization arXiv preprint arXiv:1412.6980 [12] Turchenko, V., Chalmers, E and Luczak, A., 2017 A Deep Convolutional Auto-Encoder with Pooling-Unpooling Layers in Caffe arXiv preprint arXiv:1701.04949 [13] Lee, H., Grosse, R., Ranganath, R and Ng, A.Y., 2009 Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations In Proceedings of the 26th annual international conference on machine learning (pp 609-616) ACM [14] Radford, A., Metz, L and Chintala, S., 2015 Unsupervised representation learning with deep convolutional generative adversarial networks arXiv preprint arXiv:1511.06434 [15] LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard, W 76 and Jackel, L.D., 1989 Backpropagation applied to handwritten zip code recognition Neural computation, 1(4), pp.541-551 [16] Stacked convolutional auto-encoders for hierarchical feature extraction, Jonathan Masci, Ueli Meier, Dan Cireásan, and Jăurgen Schmidhuber, 2011 [17] Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E (2017-05-24) "ImageNet classification with deep convolutional neural networks" Communications of the ACM 60 (6): 84–90 doi:10.1145/3065386 77 Phụ Lục Phụ lục 1: CODE NHẬN DẠNG KHUÔN MẶT DỰA TRÊN THUẬT TOÁN PCA function varargout = FaceRecognition(varargin) % FaceRecognition MATLAB code for FaceRecognition.fig % FaceRecognition, by itself, creates a new FaceRecognition or raises the existing % singleton* % % H = FaceRecognition returns the handle to a new FaceRecognition or the handle to % the existing singleton* % % FaceRecognition('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in FaceRecognition.M with the given input arguments % % FaceRecognition('Property','Value', ) creates a new FaceRecognition or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before FaceRecognition_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to FaceRecognition_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 gui_Singleton = 1; gui_State = struct('gui_Name', 'gui_Singleton', 78 mfilename, gui_Singleton, 'gui_OpeningFcn', @FaceRecognition_OpeningFcn, 'gui_OutputFcn', @FaceRecognition_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 % - Executes just before FaceRecognition is made visible function FaceRecognition_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 FaceRecognition (see VARARGIN) % Choose default command line output for FaceRecognition handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes FaceRecognition wait for user response (see UIRESUME) % uiwait(handles.figure1); 79 % - Outputs from this function are returned to the command line function varargout = FaceRecognition_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 load_button function load_button_Callback(hObject, eventdata, handles) % hObject handle to load_button (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.output = hObject; [file_name, file_path] =uigetfile({'*'}); handles.img=imread([file_path file_name]); imshow(handles.img,'parent',handles.axes1); guidata(hObject,handles); % - Executes on selection change in popupmenu1 function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array 80 % contents{get(hObject,'Value')} returns selected item from popupmenu1 val = get(handles.popupmenu1,'value'); object = ""; switch(val) case loaded_img = handles.img; FaceDetector = vision.CascadeObjectDetector(); BBOX = step(FaceDetector, loaded_img); B = insertObjectAnnotation(loaded_img, 'rectangle', BBOX, 'Khuôn m?t'); object = "Khuôn m?t"; imshow(B); case loaded_img = handles.img; EyePairBigDetector = vision.CascadeObjectDetector('EyePairBig'); EyePairBigDetector.MergeThreshold = 20; BBOX = step(EyePairBigDetector, loaded_img); B = insertObjectAnnotation(loaded_img, 'rectangle', BBOX, 'Dôi mat'); object = "Dôi mat"; imshow(B); case loaded_img = handles.img; NoseDetector = vision.CascadeObjectDetector('Nose'); NoseDetector.MergeThreshold = 30; BBOX = step(NoseDetector, loaded_img); B = insertObjectAnnotation(loaded_img, 'rectangle', BBOX, 'Mui'); object = "Mui"; imshow(B); case loaded_img = handles.img; MouthDetector = vision.CascadeObjectDetector('Mouth'); MouthDetector.MergeThreshold = 300; BBOX = step(MouthDetector, loaded_img); B = insertObjectAnnotation(loaded_img, 'rectangle', BBOX, 'Mi?ng'); object = "Mieng"; imshow(B); 81 end n = size(BBOX,1); if n >= set(handles.message nhan dien thành công thay " + n); set(handles.message else set(handles.message was Recognized"); set(handles.message end , 'String' , "Hoàn tat! Xác nhan dac diem:"+ object + " Dã tìm , 'BackgroundColor' , 'green'); , 'String' , "no " + object + " , 'BackgroundColor' , 'red'); % - Executes during object creation, after setting all properties function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end 82 Phụ Lục 2: CODE NHẬN DẠNG KHN MẶT THỜI GIAN THỰC TÍCH CHẬP THUẬT TOÁN AlexNet Data Collection clc clear all close all warning off; cao=webcam; faceDetector=vision.CascadeObjectDetector; c=100; temp=0; while true e=cao.snapshot; bboxes =step(faceDetector,e); if(sum(sum(bboxes))~=0); if(temp>=c) break; else es=imcrop(e,bboxes(1,:)); es=imresize(es,[227 227]); filename=strcat(num2str(temp),'.bmp'); imwrite(es,filename); temp=temp+1; imshow(es); drawnow; end else imshow(e); drawnow; end end Training clc clear all close all warning off g=alexnet; layers=g.Layers; layers(23)=fullyConnectedLayer(6); layers(25)=classificationLayer; 83 allImages=imageDatastore('New folder','IncludeSubfolders',true, 'LabelSource','foldernames'); opts=trainingOptions('sgdm','InitialLearnRate',0.00001,' MaxEpochs',5,'MiniBatchSize',64); myNet1=trainNetwork(allImages,layers,opts); save myNet1 Recognition clc clear all close all c=webcam; load myNet1; faceDetector=vision.CascadeObjectDetector; while true e=c.snapshot; bboxes =step(faceDetector,e); if(sum(sum(bboxes))~=0) es=imcrop(e,bboxes(1,:)); es=imresize(es,[227 227]); label=classify(myNet1,es); image(e); title(char(label)); drawnow; else image(e); title('Khơng tìm thay khn mat') end end 84 ... Thơng báo nhận diện khn mặt 41 Hình 4.8: Nhận diện đặc điểm mũi 42 Hình 4.9: Nhận điện khn mặt với số lượng lớn 43 Hình 4.10: Nhận diện mũi với số lượng lớn 43 Hình 4.11: Ảnh báo lỗi nhận diện 44... thuật tốn nhận dạng khn mặt phần mềm Matlab 4.2 Nguyên tác PCA Định vị khuôn mặt Không tồn – Inexistence Phát khuôn mặt Cơ sở liệu LabelMe POSE Khai thác tính Nhận dạng khuôn mặt Authentication Kết... nghệ sinh trắc học chấp nhận rộng rãi tiện lợi an tồn Bao gồm nhận dạng vân tay, nhận dạng khn mặt, nhận dạng giọng nói, nhận dạng mống mắt, v.v Trong số đó, nhận dạng khn mặt trở thành điểm nóng

Ngày đăng: 22/02/2023, 22:52

w