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

28 1 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

Đ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

ĐẠ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 Giảng viên hướng dẫn TS PHAN THỊ[.]

ĐẠ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 Giảng viên hướng dẫn : TS.PHAN THỊ LAN ANH Sinh viên thực : CAO TRUNG NGUYÊN Lớp : 18CE Đà nẵng, 26 tháng 05 năm 2021 ĐẠ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 ĐỒÁNCƠSỞ5 ĐỀ TÀI : XẬY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT Đà nẵng, 26 tháng 05 năm 2021 NHẬN XÉT (Của giảng viên hướng dẫn) …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… MỞ ĐẦU Khuôn mặt người đó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 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 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 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 hướng dẫn, định hướng cho em thực đồ án 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 Sinh viên, Cao Trung Nguyê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 toá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 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 khuôn 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 toá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 khn 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ừ tố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 khuôn 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 ngồ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 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 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 10 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) 14 Để 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 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 tồ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 vng, chúng tơi đế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: 15 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: Hình 2.5 : Kết thuật tốn HOG 16 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 toá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 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 - 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” 17 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 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? 18 - 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 khn 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 khn 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) o Tải hình ảnh khác người biết đến (#2) o Tải hình ảnh người hồn tồ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 19 - 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 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ụ : 20

Ngày đăng: 20/04/2023, 08:51

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

Tài liệu liên quan