Báo Cáo Đồ Án Cơ Sở 5 Đề Tài Xây Dựng Hệ Thống Nhận Diện Khuôn Mặt.doc

27 13 0
Báo Cáo Đồ Án Cơ Sở 5 Đề Tài Xây Dựng Hệ Thống Nhận Diện Khuôn Mặt.doc

Đ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

MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI XẬY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT M[.]

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI : XẬY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT MỞ ĐẦU Khn mặt người đóng vai trị quan trọng 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 khuôn mặt biết người muốn nói Trong hệ thống nhận dạng người trình nhận dạng khn mặt đánh giá bước khó khăn quan trọng so với bước lại hệ thống Do đó, nhận dạng khn 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 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ê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 q trình thực điểm danh qua nhận diện khn 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 cô 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 giảng viên Phan Thị Lan Anh Trong suốt thời gian học làm đồ án môn học, cô dành nhiều thời gian quý báu để tận tình bảo, s đồ án hướng dẫn, định hướng cho em thực Chúng em xin cảm ơn thầy cô giáo Trường Đại học CNTT & Truyền Thông Việt & Hàn – Đạ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 Em xin trân trọng cảm ơ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 .7 1.2 Phân tích tốn 1.3 Các công cụ .7 1.3.1 PyThon .7 1.3.2 Thư viện OpenCV .8 1.3.3 Visual Studio Code 1.3.4 Thư viện Tkinter .9 1.3.5 Mysql .10 1.4 Phương pháp giải .10 1.5 Cấu trúc báo cáo 11 Chương THUẬT TOÁN NHẬN DẠNG 12 2.1 Phát khuôn mặt 12 2.1.1 Vấn đề 12 2.1.2 Tìm tất khn mặt có ảnh 13 2.2 Đổi góc độ chiều cho khn mặt .16 2.3 Mã hóa khn mặt .17 2.4 Tìm tên người từ hình ảnh mã hóa 20 Chương TRIỂN KHAI CHƯƠNG TRÌNH 21 3.1 Cài đặt môi trường .21 3.1.1 Python Visual studio 21 3.2 Nắm rõ vấn đề 22 3.3 Giao diện chương trình 23 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 24 4.1 Kết luận 24 4.2 Hướng phát triển 24 4.2.1 Cá nhân hóa trải nghiệm 24 4.2.2 An ninh sân bay quản lí an ninh biên giới 25 4.2.3 Chăm sóc sức khỏe 25 4.2.4 Thanh tốn khơng dùng thẻ 25 4.2.5 Ngành du lịch 26 4.2.6 Công nghệ thông minh 26 4.2.7 Quảng cáo digital 26 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 toá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 khơng có 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 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 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, …  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 toán nhận dạng khuôn mặt, cách triển khai giải tố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ội 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 Chương THUẬT TOÁN NHẬN DẠNG 2.1 Phát khuôn 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 khuôn 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 10 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: 13 Hình 2.5 : Kết thuật tốn HOG 2.2 Đổi góc độ chiều cho khuôn 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ưởng đưa 68 điểm cụ thể (được gọi mốc) tồn khn mặt - đỉnh cằm, cạnh ngồi mắt, cạnh lơng mày, v.v Sau đó, huấn luyện máy học thuật toán để tìm thấy 68 điểm cụ thể mặt: 14 Hình 2.6: 68 điểm mốc khn mặt - 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 khn mặt khác biệt Cách tiếp cận đơn giản để nhận dạng 15 khuôn mặt so sánh trực tiếp khuôn 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ừ khn mặt Sau đó, đo khn mặt chưa biết theo cách tìm khn mặt biết phép đo gần Ví dụ: đo kích thước tai, khoảng cách hai mắt, chiều dài mũi, v.v - Vậy cách đo khn mặt sác ? Kích thước tai? Mũi dài? Màu mắt? Thứ khác? - Các nhà nghiên cứu phát phương pháp xác để máy tính tìm phép đo để thu thập Deep learning thực cơng việc tốt người việc tìm phần khuôn mặt quan trọng để đo - Giải pháp đào tạo mạng lưới thần kinh Nhưng thay đào tạo mạng để nhận đối tượng hình ảnh làm lần trước, đào tạo để tạo 128 phép đo cho khuôn mặt - Quá trình đào tạo hoạt động cách nhìn vào hình ảnh khn mặt lúc: o Tải hình ảnh khn mặt đào tạo người biết (#1) 16 o Tải hình ảnh khác người biết đến (#2) o Tải hình ảnh người hoàn toàn khác (#3) - Sau đó, thuật tốn xem xét phép đo mà tạo cho số ba hình ảnh Sau đó, tinh chỉnh mạng lưới thần kinh chút để đảm bảo phép đo mà tạo cho # # gần chút đảm bảo phép đo cho # # cách xa chút: Hình 2.8: Mơ q trình so sánh kết sau bước - Sau lặp lại bước hàng triệu lần cho hàng triệu hình ảnh hàng ngàn người khác nhau, mạng lưới thần kinh học cách tạo 128 phép đo đáng tin cậy cho người Bất kỳ mười hình ảnh khác người cho phép đo gần - (Machine learning people call the 128 measurements of each face an embedding The idea of reducing complicated raw data like a picture into a list of computer-generated numbers comes up a lot in machine learning (especially in language translation) The exact 17 approach for faces we are using was invented in 2015 by researchers at Google but many similar approaches exist.) - Mã hóa hình ảnh khn mặt o Quá trình đào tạo mạng nơ ron tích chập để nhúng mặt đầu địi hỏi nhiều liệu sức mạnh máy tính Ngay với card hình NVidia Telsa đắt tiền, phải khoảng 24 đào tạo liên tục để có độ xác tốt o Nhưng mạng đào tạo, tạo phép đo cho khuôn mặt nào, khn mặt mà chưa thấy trước đây! Vì vậy, bước cần thực lần May mắn có người làm việc cho họ xuất mà trực tiếp sử dụng - Vì vậy, phần khn mặt 128 số đo xác? Hóa khơng thực quan trọng với Tất quan tâm mạng tạo gần số nhìn vào hai hình ảnh khác người - Vì vậy, tất cần làm chạy hình ảnh khn mặt thơng qua mạng đào tạo trước để có số đo 128 cho khn mặt Ở ví dụ : 18 Hình 2.9: Kết mã hóa ảnh bước 2.4 Tìm tên người từ hình ảnh mã hóa  Bước cuối thực bước dễ toàn trình Tất phải làm tìm người sở liệu người biết có số đo gần với hình ảnh thử nghiệm  Tất cần làm đào tạo phân loại thực phép đo từ hình ảnh thử nghiệm cho biết người biết người phù hợp Chạy trình phân loại phần nghìn giây Kết phân loại tên người Chương TRIỂN KHAI CHƯƠNG TRÌNH 3.1 Cài đặt mơi trường  Đầu tiên cần cài đặt python 3.7.2, phiên ổn định python phát hành vào ngày 24/12/2018(Dec 24, 2018) 19 Hình 3.1: Download python  Tiếp theo Visual Studio 2019 Hình 3.2 : Visual Studio 2019  Cụ thể cần tính development with C++ Visual Studio 20

Ngày đăng: 14/06/2023, 11:42

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

Tài liệu liên quan