MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT Giảng viên PGS TS HUỲNH CÔNG PHÁP Sinh viên thực[.]
ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT Giảng viên : PGS.TS HUỲNH CÔNG PHÁP Sinh viên thực : NGUYỄN NGUYÊN NGỌC PHÚ MAI TRÚC LÂN Lớp : 17IT3 Đà nẵng, 26 tháng 06 năm 2020 MỞ ĐẦU 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 xác định giới tính, tuổi tác, trạng thái cảm xúc người đó,… khảo sát chuyển động đường nét khn mặt biết người muốn nói Trong hệ thống nhận dạng người q trình nhận dạng khn mặt đánh giá bước khó khăn quan trọng so với bước cịn lại hệ thống Do đó, nhận dạng khuôn mặt điều quan trọng cần thiết Nhận dạng khuôn mặt người công nghệ ứng dụng rông rãi đờ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ó nhiều phương pháp nhận dạng khn 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ên, kích thước ảnh, hay ảnh hưởng tham số môi trường Cùng với phát triển xã hội, vấn đề an ninh, bảo mật yêu cầu khắt khe quốc gia giới Các hệ thống nhận dạng người, đồ vật… đời phát triển với độ tin cậy ngày cao Với cách tiếp cận đối tượng nhận dạng theo phương pháp này, thu nhập nhiều thông tin từ đối tượng hơn, mà không cần tác động nhiều đến đối tượng vấn đảm bảo tính xác, an tồn, thuận tiện Trong phạm vi báo cáo chúng em xin trình trình thực điểm danh qua nhận diện khuôn mặt qua thư viện opencv Cuối cùng, cố gắng nhiều thời gian có hạn, khả dịch hiểu tài liệu chưa tốt nên nội dung đồ án tránh khỏi thiếu sót, mong bảo, góp ý thầy bạn LỜI CẢM ƠN Trước tiên chúng em xin bày tỏ trân trọng lòng biết ơn thầy giáo Huỳnh Công Pháp Trong suốt thời gian học làm đồ án môn học, thầy dành nhiều thời gian quý báu để tận tình bảo, hướng dẫn, định hướng cho em thực đồ án s Chúng em xin cảm ơn thầy cô giáo Khoa CNTT & Truyền Thông – Đại Học Đà Nẵng giảng dạy trình học tập, thực hành, làm tập, giúp em hiểu thấu đáo nội dung học tập hạn chế cần khắc phục việc học tập, nghiên cứu thực đồ án Chúng em xin chân thành cảm ơn Đà nẵng, 18 tháng năm 2020 NHẬN XÉT (Của giảng viên hướng dẫn) …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… MỤC LỤC Chương GIỚI THIỆU TỔNG QUAN 1.1 Tổng quan nhận diện khuôn mặt 1.2 Phân tích tốn 1.3 Các công cụ 1.3.1 PyThon 1.3.2 Thư viện OpenCV 1.3.3 Visual Studio Code 1.3.4 Thư viện Tkinter 1.3.5 Mysql .9 1.4 Phương pháp giải 1.5 Cấu trúc báo cáo 10 Chương 2.1 THUẬT TOÁN NHẬN DẠNG .11 Phát khuôn mặt .11 2.1.1 Vấn đề 11 2.1.2 Tìm tất khn mặt có ảnh 12 2.2 Đổi góc độ chiều cho khn mặt .14 2.3 Mã hóa khn mặt 16 2.4 Tìm tên người từ hình ảnh mã hóa 19 Chương 3.1 TRIỂN KHAI CHƯƠNG TRÌNH 20 Cài đặt môi trường 20 3.1.1 Python Visual studio 20 3.2 Nắm rõ vấn đề 21 3.3 Giao diện chương trình 22 Chương 4.1 Kết Luận .29 4.1.1 4.2 Kết luận hướng phát triển 29 Tại nhận dạng khn mặt việc khó ? 29 Hướng phát triển 29 4.2.1 Cá nhân hóa trải nghiệm 29 4.2.2 An ninh sân bay quản lí an ninh biên giới 30 4.2.3 Chăm sóc sức khỏe 30 4.2.4 Thanh tốn khơng dùng thẻ 30 4.2.5 Ngành du lịch 31 4.2.6 Công nghệ thông minh 31 4.2.7 Quảng cáo digital 31 Chương GIỚI THIỆU TỔNG QUAN 1.1 Tổng quan nhận diện khuôn mặt Hơn thập kỉ qua có nhiều cơng trình nghiên cứu tốn xác định khn mặt người từ ảnh đen trắng, xám đến ảnh màu ngày hôm Các nhà nghiên cứu từ toán đơn giản, ảnh có mặt người nhìn thẳng vào thiết bị thu hình đầu tư thẳng đứng ảnh đen trắng Cho đến ngày hôm tốn mở rộng cho ảnh màu, có nhiều khn mặt ảnh, có nhiều tư thay đổi ảnh Khơng mà cịn mở rộng phạm vi từ môi trường xung quanh đơn giản môi trường xung quanh phức tạp nhằm đáp ứng nhu cầu người Trong năm gần ứng dụng trí tuệ nhân tạo ngày phát triển đánh giá cao Một lĩnh vực quan tâm trí tuệ nhân tạo nhằm tạo ứng dụng thơng minh, có tính người nhận dạng Trong đề tài em chọn đối tượng khn mặt 1.2 Phân tích tốn Bài tốn Nhận Diện Khn mặt(Face Recognition) bao gơm tốn khác Phát khn mặt (Face detection), đánh dấu(facial landmarking), trích chọn(rút) đặc trưng(feature extration), gán nhãn, phân lớp(classification) 1.3 Các công cụ Để giải tốn nhận dạng khn mặt đồ án chúng em sử dụng thư viện opencv ngôn ngữ python phần mềm Visual Studio Code 1.3.1 PyThon Python ngơn ngữ lập trình thơng dịch (interpreted), hướng đối tượng (object-oriented), ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic semantics) Python hỗ trợ module gói (packages), khuyến khích chương trình module hóa tái sử dụng mã Trình thơng dịch Python thư viện chuẩn mở rộng có sẵn dạng mã nguồn dạng nhị phân miễn phí cho tất tảng phân phối tự Các đặc điểm Python: Ngữ pháp đơn giản, dễ đọc Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object-oriented) Hỗ trợ module hỗ trợ gói (package) Xử lý lỗi ngoại lệ (Exception) Kiểu liệu động mức cao Có thư viện chuẩn module ngoài, đáp ứng tất nhu cầu lập trình Có khả tương tác với module khác viết C/C++ (Hoặc Java cho Jython, Net cho IronPython) Có thể nhúng vào ứng dụng giao tiếp kịch (scripting interface) 1.3.2 Thư viện OpenCV Opencv (Open Computer Vision library) Intel phát triển, giới thiệu năm 1999 hoàn thiện thành phiên 1.0 năm 2006 Thư viện opencv – gồm khoảng 500 hàm – viết ngôn ngữ lập trình C tương thích với hệ điều hành Windows, Linux, Mac OS… đóng vai trị xác lập chuẩn giao tiếp, liệu, thuật tốn cho lính vực CV tọa điều kiện cho người tham gia nghiên cứu phát triển ứng dụng Trước Opencv cơng cụ chuẩn cho lĩnh vực xử lí ảnh Các đoạn code đơn lẻ nhà nghiên cứu tự viết thường không thống không ổn định Các công cụ thương mại Matlab, Simulink, v.v lại có giá cao thích hợp cho cơng ty phát triển ứng dụng lớn Ngồi cịn có giải phảp kèm theo thiết bị phần cứng mà phần lớn mã đóng thiết kế riêng cho tứng thiết bị, khó khan cho việc mở rộng ứng dụng OpenCV công cụ hữu ích cho người bước đầu làm quen với xử lí ảnh số ưu điểm sau: OpenCV công cụ chuyên dụng: Intel phát triển theo hướng tối ưu hóa cho ứng dụng xử lí phân tích ảnh, với cấu trúc liệu hợp lí, thư viện tạo giao diện, truy xuất thiết bị phần cứng tích hợp sẵn OpenCV thích hợp để phát triển nhanh ứng dụng OpenCV công cụ mã nguồn mở: Không công cụ miễn phí, việc xây dựng mã nguốn mở giúp OpenCV trở thành cơng cụ thích hợp cho nghiên cứu phát triển, với khả thay đổi mở rộng mơ hình, thuật tốn OpenCV sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV thu hút lượng lớn người dung, có cơng ty lớn Microsoft, IBM, Sony, Siemens, Google nhóm nghiên cứu Standford, MIT, CMU, Cambridge,… Nhiều forum hỗ trợ cộng đồng người dung thành lập, tạo nên kênh thông tin rộng lớn, hữu ích cho việc tham khảo, tra cứu 1.3.3 Visual Studio Code Visual Studio Code trình biên tập mã phát triển Microsoft dành cho Windows, Linux macOS Nó hỗ trợ chức debug, kèm với Git, có syntax highlighting, tự hồn thành mã thông minh, snippets, cải tiến mã nguồn Visual Studio Code trình biên tập mã Nó hỗ trợ nhiều ngôn ngữ chức tùy vào ngôn ngữ sử dụng theo bảng sau Nhiều chức Visual Studio Code không hiển thị menu tùy chọn hay giao diện người dùng Thay vào đó, chúng gọi thơng qua khung nhập lệnh qua tập tin json (ví dụ tập tin tùy chỉnh người dùng) Khung nhập lệnh giao diện theo dịng lệnh Tuy nhiên, biến người dùng nhấp nơi khác, nhấn tổ hợp phím để tương tác với bên ngồi Tương tự với dòng lệnh tốn nhiều thời gian để xử lý Khi thực điều q trình xử lý dịng lệnh bị hủy 1.3.4 Thư viện Tkinter Tkinter gói Python có chứa module Tk hỗ trợ cho việc lập trình GUI Tk ban đầu viết cho ngơn ngữ Tcl Sau Tkinter viết để sử dụng Tk trình thơng dịch Tcl Python Ngồi Tkinter cịn có số cơng cụ khác giúp tạo ứng dụng GUI viết Python wxPython, PyQt, PyGTK 1.3.5 Mysql MySQL hệ quản trị sở liệu tự nguồn mở phổ biến giới nhà phát triển ưa chuộng trình phát triển ứng dụng Vì MySQL hệ quản trị sở liệu tốc độ cao, ổn định dễ sử dụng, có tính khả chuyển, hoạt động nhiều hệ điều hành cung cấp hệ thống lớn hàm tiện ích mạnh Với tốc độ tính bảo mật cao, MySQL thích hợp cho ứng dụng có truy cập CSDL internet Người dùng tải MySQL miễn phí từ trang chủ MySQL có nhiều phiên cho hệ điều hành khác nhau: phiên Win32 cho hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell, NetWare, SGI Irix, Solaris, SunOS,… MySQL ví dụ Hệ Quản trị Cơ sở liệu quan hệ sử dụng Ngơn ngữ truy vấn có cấu trúc (SQL) MySQL sử dụng cho việc bổ trợ NodeJs, PHP, Perl, nhiều ngôn ngữ khác, làm nơi lưu trữ thông tin trang web viết NodeJs, PHP hay Perl, 1.4 Phương pháp giải Những vấn đề cần giải quyết, Đầu tiên, nhìn vào hình tìm tất khn mặt có Thứ 2, tập trung vào khn mặt người nhận diện khuôn mặt quay hướng khác, môi trường thiếu ánh sáng Thứ chọn đặc điểm đặc trưng khuôn mặt mà bạn sử dụng để phân biệt với khuôn mặt người khác Vd: mắt lớn bao nhiêu, mặt dài bao nhiêu,mũi cao hay không, … 10 Cuối cùng, đối chiếu đặc điểm đặc trưng với người bạn biết xác định tên người 1.5 Cấu trúc báo cáo Chương 1: giới thiệu tổng quan o Nội dung chương giới thiệu tốn nhận dạng khn mặt, cách triển khai giải toán cơng cụ Chương 2: Thuật tốn nhận dậng o Nội dung chương diễn giải hiểu biết cá nhân thuật tốn nhận diện khn mặt sử dụng chưa trình thơng qua hàm thư viện Chương 3: Triển khai o Nội dung chưa thuật lại trình viết code kết đạt bước thông qua code hình ảnh minh họa Chương 4: Kết luận hướng phát triển o Nộ dung chương kết luận, đánh giá trình nghiên cứu hướng phát triển cho chương trình sau 11 Chương THUẬT TỐN NHẬN DẠNG 2.1 Phát khn mặt Phát khuôn mặt (Face Detection) kĩ thuật máy tính để xác định vị trí kích thước khn mặt người ảnh Kỹ thuật nhận biết đặc trưng khn mặt bỏ qua thứ khác như: tịa nhà, cấy cối, thể 2.1.1 Vấn đề Như não người có sợi thần kinh để làm tất việc cách tự động Trong thực tế, người giỏi việc nhận diện khuôn mặt tưởng tượng khuôn mặt vật thể ngày Hình 2.1: Hình dung khn mặt từ vật thể Máy tính lại khơng có khả bậc cao kiểu (trong tương lai có) Nên cần dạy cho chúng cách để làm bước riêng biệt trình nhận dạng Chúng ta cần xây dựng quy trình(hệ thống) nơi giải bước nhận diện khuôn mặt cách riêng biệt, chuyển kết cho bước 12 2.1.2 Tìm tất khn mặt có ảnh Hình 2.2 : Mục tiêu bước Mục tiêu bước tìm vị trí khn mặt hình trước phân biệc chúng qua bước Nếu bạn sử dụng camera khoảng năm trở lại bạn thấy nhận diện khn mặt tích hợp sẵn thiết bị.Nhận diện khn mặt tính tuyệt vời cho máy ảnh Khi máy ảnh tự động chọn khn mặt, chúng chắn tất khn mặt nét trước ghi hình Nhưng lại sử dụng với mục đích khác, tìm kiếm vị trí khn mặt hình gửi kết cho bước q trình Nhận diện khn mặt trở thành xu hướng vào đầu năm 2000 Paul Viola Michael Jones phát minh cách để nhận diện khuôn mặt với tốc độ đủ để chạy dịng máy ảnh rẻ tiền Tuy nhiên cịn có phương pháp đáng tin cậy xuất Chúng ta sử dụng phương pháp phát minh năm 2005 gọi “Histogram of Oriented Gradients” (rút gọn thành HOG) Để tìm khn mặt hình, bắt đầu với việc biến ảnh thành ảnh xảm, có đen trắng khơng cần màu sắc để tìm khn mặt Sau nhìn vào pixel hình lúc Với pixel một, lại nhìn vào pixel lân cận 13 Mục đích tìm pixel có màu tối so với pixel lân cận Khi vẽ mũi tên theo chiều mà màu trở nên tối Nếu bạn lặp lại tiến trình với pixel trong ảnh, bạn kết thúc với pixel thay mũi tên Những mũi tên gọi “gradients”(vectơ độ dốc) chúng dòng chảy(lưu lượng) từ pixel sáng đến pixel tối toàn hình ảnh Điều việc làm ngẫu nhiên, lí tốt để thay pixel thành gradients Nếu phân tích trực tiếp pixel tối pixel sáng ảnh người nhận tổng giá trị hoàn toàn khác Nhưng xem xét hướng sáng thay đổi, hai hình ảnh tối hình ảnh sáng cho kết với đại diện(con số) sác Điều làm cho vấn đề dễ giải Nhưng việc lưu gradient cho pixel đơn lẻ cho nhiều chi tiết Sẽ tốt nhìn thấy dịng chảy sáng / tối mức cao để thấy mơ hình hình ảnh Để làm điều này, chúng tơi chia hình ảnh thành vng nhỏ 16x16 pixel hình Trong ô vuông, đếm xem có độ dốc theo hướng (có điểm hướng lên, hướng lên phải, điểm phải, v.v ) Sau đó, chúng tơi thay hình vng hình ảnh hướng mũi tên bật Kết cuối biến hình ảnh gốc thành hình đại diện đơn giản, nắm bắt cấu trúc khuôn mặt cách đơn giản hơn: 14 Hình 2.3 : Ảnh input bước Hình 2.4 Ảnh output bước Để tìm khn mặt hình ảnh HOG này, tất phải làm tìm phần hình ảnh trông giống với mẫu HOG biết trích xuất từ loạt khn mặt đào tạo khác: 15 Hình 2.5: Kết thuật tốn HOG 2.2 Đổi góc độ chiều cho khn mặt Để làm cho điều này, cố gắng làm cong ảnh để mắt mơi ln vị trí mẫu ảnh Điều giúp dễ dàng nhiều để so sánh khuôn mặt bước Để làm điều này, sử dụng thuật tốn gọi ước lượng mốc mặt Có nhiều cách để làm điều này, sử dụng phương pháp phát minh vào năm 2014 Vahid Kazemi Josephine Sullivan Tải FULL (33 trang): https://bit.ly/3nDTelj Dự phòng: fb.com/TaiHo123doc.net Ý tưởng đưa 68 điểm cụ thể (được gọi mốc) tồn khuôn mặt - đỉnh cằm, cạnh mắt, cạnh lơng mày, v.v Sau đó, huấn luyện máy học thuật tốn để tìm thấy 68 điểm cụ thể mặt: Hình 2.6: 68 điểm mốc khn mặt 16 Giờ biết vị trí mắt miệng, dùng phép xoay đơn giản, chia cắt tỉ lệ hình ảnh cho mắt miệng tốt gọi biến đổi “affine” Hình 2.7 : Ảnh kết sau bước Bây giờ, khuôn mặt xoay nào, tập trung vào mắt miệng vị trí ảnh Điều làm cho bước xác nhiều 2.3 Mã hóa khn mặt Bây phần cốt lõi vấn đề - thực nói khuôn mặt khác biệt Cách tiếp cận đơn giản để nhận dạng khuôn mặt so sánh trực tiếp khn mặt chưa biết mà chúng tơi tìm thấy Bước với tất hình ảnh chúng tơi có người gắn thẻ Khi tìm thấy khn mặt gắn thẻ trước trơng giống với khn mặt chưa biết chúng ta, phải người Có vẻ ý tưởng tốt, phải khơng? Có vấn đề lớn với cách tiếp cận Một trang web Facebook với hàng tỷ người dùng hàng nghìn tỷ ảnh vịng qua khn mặt gắn thẻ trước để so sánh với ảnh tải lên Điều nhiều thời gian Họ cần có khả nhận diện khn mặt tính mili giây khơng phải hàng Những cần cách để trích xuất vài phép đo từ khuôn mặt Sau đó, đo khn mặt chưa biết theo cách tìm khuôn mặt biết 17 8090408 ... phạm vi báo cáo chúng em xin trình trình thực điểm danh qua nhận diện khuôn mặt qua thư viện opencv Cuối cùng, cố gắng nhiều thời gian có hạn, khả dịch hiểu tài liệu chưa tốt nên nội dung đồ án khơng... Đầu tiên, nhìn vào hình tìm tất khn mặt có Thứ 2, tập trung vào khuôn mặt người nhận diện khuôn mặt quay hướng khác, môi trường thiếu ánh sáng Thứ chọn đặc điểm đặc trưng khuôn mặt mà bạn... hướng cho em thực đồ án s Chúng em xin cảm ơn thầy cô giáo Khoa CNTT & Truyền Thông – Đại Học Đà Nẵng giảng dạy trình học tập, thực hành, làm tập, giúp em hiểu thấu đáo nội dung học tập hạn chế