MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD Ths HÀ THỊ MINH PHƯƠNG ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN ĐỒ ÁN CƠ SỞ 4 Đề tài Xây dựng ứng[.]
XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN ĐỒ ÁN CƠ SỞ Đề tài: Xây dựng ứng dụng nhận diện khuôn mặt sử dụng Deep Learning Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG Đà Nẵng, ngày 30 tháng 12 năm 2020 Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG MỞ ĐẦU Hiện nay, với phát triển xã hội, vấn đề án ninh bảo mật yêu cầu khắt khe nơi giới Các hệ thống nhận dạng người đời với độ tin cậy ngày cao Một toán nhận dạng người quan tâm nhận dạng khn mặt Vì nhận dạng khn mặt cách dễ dàng mà người dùng để phân biệt Bên cạnh đó, ngày việc thu thập, xử lý thông tin qua ảnh để phân biệt đối tượng quan tâm ứng dụng rộng rãi Với phương pháp này, thu nhận nhiều thơng từ đối tượng mà không cần tác nhiều đến đối tượng nghiên cứu Một toán nhiều người quan tâm lĩnh vực xử lý ảnh nhận dạng khuôn mặt (Face Recognition) Như biết, khn mặt đóng vai trị quan trọng q trình giao tiếp người với người, mang lượng thơng tin giàu có, chẳng hạn từ khn mặt xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt xác định mối quan hệ với đối tượng (có quen biết hay khơng) Do đó, tốn nhận dạng khn mặt đóng vai trị quan trọng nhiều lĩnh vực đời sống ngày người hệ thống giám sát, quản lý vào ra, tìm kiếm thông tin người tiếng, …đặc biệt an ninh, bảo mật Có nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất nhiên dù hay nhiều phương pháp vấp phải thử thách độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng tham số môi trường Trong khuôn khổ đồ án này, chúng em tiếp tục giải tốn nhận dạng offline Trong đối tượng thu thập thành file liệu chuyển trung tâm Tại đó, số liệu phân tích xử lý Chúng em lấy làm tảng để xây dựng ứng dụng lớn sau Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG LỜI CẢM ƠN Để thực hoàn thành tốt đồ án này, em nhận giúp đỡ hướng dẫn tận tình thầy cô thuộc Trường Đại học Công nghệ thông tin Truyền thông Việt Hàn – Đại học Đà Nẵng Em xin cảm ơn thầy cô thuộc môn chuyên ngành cung cấp cho chúng em thông tin, kiến thức vô quý báu cần thiết suốt thời gian để em thực hồn thành đồ án Đặc biệt em xin chân thành cảm ơn thành cô Hà Thị Minh Phương người trực tiếp hướng dẫn chúng em thời gian thực đồ án Cuối cùng, xin chân thành cảm ơn bạn ngành công nghệ thông tin ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm tài liệu có giúp chúng tơi q trình nghiên cứu thực đề tài Do giới hạn mặt thời gian kiến thức kinh nghiệm thực tiễn nên đề tài khơng tránh khỏi sai sót Em mong nhận thông cảm quý thầy cô mong đón nhận góp ý thầy bạn Em xin chân thành cảm ơn! Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Đà Nẵng, ngày 30 tháng 12 năm 2020 Giảng viên hướng dẫn HÀ THỊ MINH PHƯƠNG Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG MỤC LỤC Chương 1: GIỚI THIỆU .9 1.1 Giới thiệu đề tài 1.2 Phương pháp thực 10 1.3 Mục đích nghiên cứu 10 1.4 Giới hạn đề tài .11 1.5 Cấu trúc đồ án: 11 Chương 2: 12 CƠ SỞ LÝ THUYẾT .12 2.1 Các phương pháp nhận diện khuôn mặt 12 2.1.1 Nhận dạng khuôn mặt người dùng thuật toán PCA .13 2.1.2 Nhận dạng khuôn mặt người dựa phương pháp LBP [5] .14 2.1.3 Nhận dạng khuôn mặt dựa phương pháp haar like thuật tốn Adaboost .15 2.2 Mạng nơ-ron tích chập (Convolutional Neural Network) 19 2.2.1 Định nghĩa .19 2.2.2 Cấu trúc đơn giản CNN [8] 20 2.3 Tìm hiểu Face Detector - MTCNN: .24 2.4 Tìm hiểu Pre-trained model - FaceNet 28 2.4.1 Pre-trained model 28 2.4.2 FaceNet 28 2.4.3 Thuật toán Triplet loss FaceNet: 29 2.5 Kỹ thuật chỉnh khuôn mặt (Face alignment) 32 Hình 21 Căn chỉnh khn mặt 33 2.6 Ngôn ngữ Python 33 2.6.1 Giới thiệu sơ lược ngôn ngữ Python .33 2.6.2 Các đặc điểm ngôn ngữ Python .34 2.6.3 Ứng dụng Python 37 2.7 Một số thư viện quan trọng 37 2.7.1 Opencv 37 2.7.2 Numpy 39 2.7.3 Keras .39 2.7.4 TensorFlow 40 Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG 2.7.5 Dlib 40 Chương 3: 41 PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG 41 3.1 Phân tích – thiết kế hệ thống phát mặt người 41 3.1.1 Phân tích 41 3.1.2 Thiết kế hệ thống: 42 3.1.4 Trích chọn đặc trưng gán nhãn 43 3.1.5 Phát khuôn mặt ảnh đầu vào: 46 3.1.6 Căn chỉnh khuôn mặt trước nhận dạng: 46 3.1.7 Trích rút đặc trưng khn mặt từ ảnh đầu vào: 46 3.1.8 Nhận diện khuôn mặt 47 3.1.9 Xác định khuôn mặt “unknown” 48 3.2 Kết thử nghiệm hệ thống 48 3.2.1 Giao diện chương trình: 48 KẾT LUẬN .51 1.Kết đạt .51 2.Hướng phát triển: 51 DANH MỤC TÀI LIỆU THAM KHẢO 52 Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG MỤC LỤC HÌNH ẢNH Hình 1: Mơ tả tính tốn với bán kính điểm ảnh lấy mẫu điểm lân cận .13 Hình 2: Đặc trưng theo cạnh .14 Hình 3: Đặc trưng theo đường 14 Hình 4: Đặc trưng theo xung quanh tâm .14 Hình 5: Đặc trưng theo đường chéo 14 Hình 6: Cách tính Integral Image ảnh 15 Hình 7: Cách tính tổng giá trị pixel vùng cần tính .15 Hình 8: Hệ thống phát khuôn mặt .16 Hình 9: : Cấu trúc mạng nơ-ron tích chập 19 Hình 10: Minh họa chập với kernel 3x3 .19 Hình 11: Phép tốn sử dụng phép gộp 20 Hình 12: Một số hàm phi tuyến 21 Hình 13: Kiến trúc mạng MTCNN .23 Hình 14: Mạng neural P-Net 23 Hình 15: Mạng neural R-Net 24 Hình 16: Mạng neural O-Net 25 Hình 17: FaceNet lấy hình ảnh khn mặt làm đầu vào xuất vector embedding 26 Hình 18: Triplet loss hai positive faces-mặt tích cực negative face-mặt tiêu cực 28 Hình 19: Triplet loss 29 Hình 20: Triplet loss trước sau đào tạo 30 Hình 21: Căn chỉnh khn mặt 31 Hình 22: Biểu đồ ngữ cảnh hệ thống 39 Hình 23: Sơ đồ thực 40 Hình 24: Sơ đồ hệ thống .40 Hình 25: T Phát khn mặt với Haar cascade .42 Hình 26: Phát khuôn mặt với MTCNN .43 Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG Hình 27: Trước sau chỉnh khuôn mặt 44 Hình 28: Cosine similarity 45 Hình 29: Giao diện tạo người dùng .47 Hình 30: File hình ảnh 48 Hình 31: Giao diện training 48 Hình 32: Giao diện nhận diện .48 Trang XÂY DỰNG ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT GVHD: Ths HÀ THỊ MINH PHƯƠNG Chương 1: GIỚI THIỆU 1.1 Giới thiệu đề tài Ngày nay, kỷ nguyên số, máy tính phần thiếu nghiên cứu khoa học đời sống hàng ngày Tuy nhiên, hệ thống máy tính dựa lý thuyết cổ điển (tập hợp, logic nhị phân), nên dù có khả tính tốn lớn độ xác cao, máy tính làm việc theo chương trình gồm thuật tốn viết sẵn lập trình viên chưa thể tự lập luận hay sáng tạo Học máy (Machine learning) phương pháp phân tích liệu tự động hóa phân tích liệu tìm trích xuất đặc trưng liệu Học máy sử dụng thuật toán trừu tượng để tự học từ liệu, cho phép máy tính tìm thấy thơng tin có giá trị ẩn sâu mà khơng thể lập trình cách thông thường Khi tiếp xúc với liệu mới, học máy thích ứng nhanh độc lập Học sâu (Deep Learning) ngành đặc biệt học máy Học sâu sử dụng mạng nơ ron nhân tạo (Artificial Neural Networks) để giải tốn mà tính tốn cứng chưa thể xử lý liệu trừu tượng, liệu mờ, liệu khơng rõ ràng, Với tính chất vậy, học sâu thường ứng dụng nhận diện hình ảnh, nhận diện giọng nói, xử lý ngơn ngữ tự nhiên dự đoán, dự báo Mạng nơ ron nhân tạo (Artificial Neural Networks) mơ hình xử lý thông tin, cấu thành từ lớp nơ ron, đời sở mô hoạt động não sinh vật Mạng nơ ron nhân tạo gắn kết nhiều nơ ron theo mơ hình định, trải qua huấn luyện để rút kinh nghiệm, sử dụng kinh nghiệm có để xử lý thông tin Mạng nơ ron nhân tạo thường áp dụng vào giải toán nhận dạng mẫu, dự đốn Mạng nơ ron Tích chập (Convolutional Neural Network) mơ hình học sâu đại Mạng nơ ron Tích chập thường sử dụng nhiều hệ thống thông minh ưu điểm mạng có độ xác cao, nhiên tốc độ tính tốn lại nhanh Vì lý đó, mạng Trang 10