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

Nhận dạng đối tượng bằng khuôn mặt

20 15 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

Nội dung

Một trong những bài toán được nhiều người quan tâm nhất của lĩnh vực xử lý ảnh hiện nay đó là nhận dạng khuôn mặt (Face Recognition). Như chúng ta đã biết, khuôn mặt đóng vai trò quan trọng trong quá trình giao tiếp giữa người với người, nó mang một lượng thông tin giàu có, chẳng hạn như từ khuôn mặt chúng ta có thể 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 là xác định mối quan hệ với đối tượng (có quen biết hay không). Do đó, bài toán nhận dạng khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đời sống hằng ngày của con người như các hệ thống giám sát, quản lý vào ra, tìm kiếm thông tin một người nổi tiếng, … đặc biệt là an ninh, bảo mật. Có rất nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất tuy nhiên dù ít hay nhiều những phương pháp này đang vấp phải những thử thách về độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng của tham số môi trường. Bài toán Nhận diện khuôn mặt (Face Recognition) bao gồm nhiều bài toán khác nhau như: phát hiện mặt người (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). Trong thực tế, nhận dạng khuôn mặt người (Face Recognition) là một hướng nghiên cứu được nhiều nhà khoa học quan tâm, nghiên cứu để ứng dụng trong thực tiễn. Ở các trường đại học hàng đầu về Công Nghệ Thông Tin như Massachusetts Institute of Technology (MIT), Carnegie Mellon University (CMU), Standford, Berkeley và các công ty lớn như Microsoft, Apple, Google,

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN MÔN HỌC: TRUYỀN THÔNG ĐA PHƯƠNG TIỆN Giảng viên hướng dẫn:Vũ Hữu Tiến ĐỀ TÀI: NHẬN DẠNG ĐỐI TƯỢNG BẰNG KHUÔN MẶT MỤC LỤC LỜI MỞ ĐẦU Lý chọn đề tài Mục đích đề tài Đối tượng phạm vi nghiên cứu I BÀI TỐN NHẬN DẠNG ĐỐI TƯỢNG BẰNG KHN MẶT Tổng quan khái niệm liên quan đến nhận dạng khuôn mặt .5 1.1 Hệ thống sinh trắc học 1.2 Hệ thống nhận dạng khuôn mặt 1.3 Hoạt động hệ thông nhận diện khuôn mặt 1.4 Những khó khăn hệ thống nhận dạng khuôn mặt .6 Tổng quan kiến trúc hệ thống nhận dạng mặt người .7 2.1 Tổng quan kiến trúc .7 2.2 Ngôn ngữ lập trình Hướng tiếp cận đề tài: Tổng quan thư viện 4.1 Tổng quan thư viện opencv 4.2 Tổng quan thư viện face_recognition 10 4.3 Thư viện pyQT 11 Các thuật toán sử dụng: .11 5.1 Các đặc trưng Haar-Like 11 5.2 Trích xuất đặc trưng: 14 5.3: Nhận diện khuôn mặt: .14 Xây dựng hệ thống: .15 Code 18 II Kết Luận 20 Tài liệu tham khảo 20 LỜI MỞ ĐẦU Lý chọn đề tài Với phát triển không ngừng khoa học công nghệ, đặc biệt với điện thoại thông minh (smartphone) ngày đại sử dụng phổ biến đời sống người làm cho lượng thơng tin thu hình ảnh ngày tăng Theo đó, lĩnh vực xử lý ảnh trọng phát triển, ứng dụng rộng rãi đời sống xã hội đại Không dừng lại việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh giải tốn nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khn mặt… Một tốn nhiều người quan tâm lĩnh vực xử lý ảnh nhận dạng khn mặt (Face Recognition) Như biết, khn mặt đó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 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 Bài tốn Nhận diện khn mặt (Face Recognition) bao gồm nhiều toán khác như: phát mặt người (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) Trong thực tế, nhận dạng khuôn mặt người (Face Recognition) hướng nghiên cứu nhiều nhà khoa học quan tâm, nghiên cứu để ứng dụng thực tiễn Ở trường đại học hàng đầu Công Nghệ Thông Tin Massachusetts Institute of Technology (MIT), Carnegie Mellon University (CMU), Standford, Berkeley công ty lớn Microsoft, Apple, Google, Facebook có trung tâm sinh trắc học (Biometrics Center) nghiên cứu nhận dạng khn mặt người trở thành lĩnh vực nghiên cứu Mục đích đề tài - Xây dựng dự án phần mềm ứng dụng nhận dạng khuôn mặt sử dụng cho việc điểm danh - Tìm hiểu xây dựng giao diện pyQT5 - Tìm hiểu thư viện OpenCV - Tìm hiểu thư viện face_recognition - Phương pháp phát khuôn mặt harr-casscade - Sử dụng phương pháp trích xuất đặc trưng thư viện face_recognition Đối tượng phạm vi nghiên cứu a, Đối tượng - Các phương pháp, thuật toán phục vụ cho việc phát nhận dạng khuôn mặt người ảnh - Bộ thư viện xử lý ảnh OpenCV - Bộ thư viện face_reconition b, Phạm vi nghiên cứu: - Tập trung tìm hiểu nhận dạng khn mặt (Face Recognition) khơng trọng tìm hiểu phát khuôn mặt (Face Detection) - Việc xử lý ảnh, nhận dạng khuôn mặt thỏa mãn điều kiện: + Ánh sáng bình thường + Góc ảnh: Trực diện (frontal) + Khơng bị che khuất (no occulusion) + Ảnh có chất lượng cao (high quality images) I BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG BẰNG KHUÔN MẶT Tổng quan khái niệm liên quan đến nhận dạng khuôn mặt 1.1 Hệ thống sinh trắc học Hệ thống sinh trắc học hệ thống thiết kế để xác minh nhận dạng người dựa vào đặc trưng sinh học người 1.2 Hệ thống nhận dạng khuôn mặt Hệ thống nhận dạng mặt người hệ thống nhận vào ảnh đoạn video (một dịng hình ảnh liên tục) Qua xử lý, tính tốn hệ thống xác định vị trí mặt người (nếu có) ảnh xác định người số người mà hệ thống biết (qua trình học) người lạ Hình Hệ thống nhận dạng mặt người 1.3 Hoạt động hệ thông nhận diện khn mặt Hình Hoạt động hệ thống 1.4 Những khó khăn hệ thống nhận dạng khn mặt Bài toán nhận dạng mặt người toán nghiên cứu từ năm 70 Tuy nhiên, tốn khó nên nghiên cứu chưa đạt kết mong muốn Chính thế, vấn đề nhiều nhóm giới quan tâm nghiên cứu Khó khăn tốn nhận dạng mặt người kể đến sau: a Tư chụp, góc chụp: Ảnh chụp khn mặt thay đổi nhiều góc chụp camera khn mặt Chẳng hạn như: chụp thẳng, chụp chéo bên trái 45 hay chụp chéo bên phải 450, chụp từ xuống, chụp từ lên, v.v… Với tư khác nhau, thành phần khuôn mặt mắt, mũi, miệng bị khuất phần chí khuất hết b Sự xuất thiếu số thành phần khuôn mặt: Các đặc trưng như: râu mép, râu hàm, mắt kính, v.v… xuất khơng Vấn đề làm cho tốn trở nên khó nhiều c Sự biểu cảm khuôn mặt: Biểu cảm khuôn mặt người làm ảnh hưởng đáng kể lên thơng số khuôn mặt Chẳng hạn, khuôn mặt người, khác họ cười sợ hãi, v.v… d Sự che khuất: Khn mặt bị che khuất đối tượng khác khuôn mặt khác e Hướng ảnh (pose variations): Các ảnh khn mặt biến đổi nhiều với góc quay khác trục camera Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục ảnh f Điều kiện ảnh: Ảnh chụp điều kiện khác về: chiếu sáng, tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất lượng thấp ảnh hưởng nhiều đến chất lượng ảnh khuôn mặt g Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian vấn đề khó khăn, khả nhận dạng người h Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt test nhà nghiên cứu nhỏ (vài trăm tới vài chục nghìn ảnh mặt), nhiên thực tế CSDL lớn, ví dụ CSDL ảnh mặt cảnh sát đất nước chứa từ hàng triệu tới tỉ ảnh i Đối với hệ thống điểm danh cần tốc độ xử lý thời gian thực Tổng quan kiến trúc hệ thống nhận dạng mặt người 2.1 Tổng quan kiến trúc Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý sau: Phát khuôn mặt (Face Detection) Căn chỉnh khn mặt (Face Alignmen) Trích chọn đặc trưng (Feature Extraction) Nhận dạng (Recognition) hay Phân lớp khn mặt (Face Clasaification) Phát khn mặt dị tìm, định vị vùng (vị trí) khuôn mặt xuất ảnh frame video Các vùng tách riêng để xử lý Căn chỉnh khuôn mặt đưa khuôn mặt góc hướng để thuận tiện cho việc trích xuất đặc trưng nhận diện Ở bước trích chọn đặc trưng, sử dụng thư viện face_recognition, thư viện sử dụng mơ hình deep leanring huấn luyện sẵn với liệu đủ lớn để trích xuất đặc trưng khn mặt, đặc trưng trích xuất có dạng vector (feature vector) có kích thước 128x1 Những vecto đặc trưng liệu đầu vào cho mơ hình huấn luyện trước để nhận dạng khuôn mặt (Face Recognition) hay phân lớp khuôn mặt (Face Classifition), tức xác định danh tính (identity) hay nhãn ảnh ảnh Ở bước nhận dạng khuôn mặt (Face Recognition), thường sử dụng độ đo để so sánh sai khác vector đặc trưng nhận dạng Bên cạnh bước nêu trên, cịn áp dụng thêm số bước khác tiền xử lý, hậu xử lý nhằm làm tăng độ xác cho hệ thống Ví dụ, sau bước phát khn mặt, ta thực bước tiền xử lý (Preprocessing) bao gồm bước chuẩn hóa ánh sáng (illumination normalization) Do số thơng số như: tư khuôn 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 lại hệ thống Tuy nhiên, phạm vi đồ án này, khơng tập trung tìm hiểu bước phát khuôn mặtmà tập trung chủ yếu vào bước nhận dạng khn mặt 2.2 Ngơn ngữ lập trình Để giải tốn nhận dạng khn mặt sử dụng thư viện OpenCV, sử dụng ngơn ngữ lập trình như: NET C#, VB, IronPython, Java, C++…Trong đồ án ngơn ngữ lập trình sử dụng Python, viết phần mềm Python Hướng tiếp cận đề tài: - Do đề tài hướng đến việc xây dựng hệ thống điểm danh nên yêu cầu hệ thống nhận diện phải thực thời gian thực - Phương pháp phát khuôn mặt, sử dụng haar-casscade thư viện opencv, phương pháp cho độ xác chấp nhận tốc độ xử lý thời gian thực - Trích xuất vùng khn mặt, chỉnh - Phương pháp trích xuất đặc trưng, sử dụng thư viện face_recognition để trích xuất đặc trưng khn mặt - Phương pháp nhận diện, sử dụng độ đo tương đồng, so sánh tương đồng vetor đặc trưng đưa kết luận Tổng quan thư viện 4.1 Tổng quan thư viện opencv * Giới thiệu tổng quan thư viện OPENCV OpenCV (Open Source Computer Vision) thư viện mã nguồn mở thị giác máy với 500 hàm 2500 thuật toán tối ưu XLA, vấn đề liên quan tới thị giác máy OpenCV thiết kế cách tối ưu, sử dụng tối đa mạnh dòng chip đa lõi… để thực phép tính tốn thời gian thực, nghĩa tốc độ đáp ứng thể đủ nhanh cho ứng dụng thông thường OpenCV thư viện thiết kế để chạy nhiều tảng khác (crossplatform), nghĩa chạy hệ điều hành Window, Linux, Mac, iOS… Việc sử dụng thư viện OpenCV tuân theo quy định sử dụng phần mềm mã nguồn mở BSD bạn sử dụng thư viện cách miễn phí cho mục đích phi thương mại lẫn thương mại Dự án OpenCV khởi động từ năm 1999, đến năm 2000 giới thiệu hội nghị IEEE vấn đề thị giác máy nhận dạng, nhiên OpenCV 1.0 tới tận năm 2006 thức cơng bố năm 2008 1.1 (pre-release) đời Tháng 10 năm 2009, OpenCV hệ thứ hai đời (thường gọi phiên 2.x), phiên có giao diện C++ (khác với phiên trước có giao diện C) có nhiều điểm khác biệt so với phiên thứ Thư viện OpenCV ban đầu hỗ trợ từ Intel, sau hỗ trợ Willow Garage, phịng thí nghiệm chun nghiên cứu cơng nghệ Robot Cho đến nay, OpenCV thư viện mở, phát triển nguồn quỹ không lợi nhuận (noneprofit foundation) hưởng ứng lớn cộng đồng * Cấu trúc tổng quan Cấu trúc tổng quan OpenCV bao gồm phần Hình vẽ đây, mơ tả thành phần Hình Các thành phần thư viện OpenCV Phần CV bao gồm thư viện XLA giải thuật thị giác máy tính MLL thư viện thuật toán học máy, bao gồm nhiều phân cụm phân loại thống kê HighGUI chứa đựng thủ tục vào ra, chức lưu trữ đọc file ảnh video Phần thứ 4, Cxcore chứa đựng cấu trúc liệu (ví dụ cấu trúc XML, liệu…) Phần cuối CVAUX, phần bao gồm cá thư viện cho việc phát hiện, theo dõi nhận dạng đối tượng (khuôn mặt, mắt…) 4.2 Tổng quan thư viện face_recognition - Là thư viện xây dựng từ thư viện dlib (one of the best deep learning model for face recognition) Mô hình có độ xác lên đến 9938% tập liệu labeled faces in the wild - Thư viện cung cấp giao diện lập trình cho người dùng gọi từ python code - Chúng em sử dụng thư viện face_recognition để trích xuất đặc trưng ảnh khuôn mặt 10 4.3 Thư viện pyQT - Là thư viện xây dựng giao diện ứng dụng viết ngơn ngữ python Các thuật tốn sử dụng: 5.1 Các đặc trưng Haar-Like Các đặc trưng Haar-Like hình chữ nhật phân thành vùng khác hình: Hình Phân vùng đặc trưng thuật toán Haar-Like Đặc trưng Viola Jones công bố gồm đặc trưng để xác định khuôn mặt người Mỗi đặc trưng Haar-Like kết hợp hai hay ba hình chữ nhật trắng hay đen hình sau: 11 Hình Đặc trưng để xác định khuôn mặt người Để sử dụng đặc trưng vào việc xác định khuôn mặt người, đặc trưng HaarLike mở rộng chia làm tập đặc trưng sau: - Đặc trưng cạnh (edge feature) Hình Đặc trưng cạnh (edge feature) - Đặc trưng đường (line feature) Hình Đặc trưng đường (line feature) 12 - Đặc trưng xung quanh tâm (center-surround features) Hình Đặc trưng xung quanh tâm (center-surround feature) Dùng đặc trưng trên, ta tính giá trị đặc trưng Haar-Like chênh lệch tổng pixel vùng đen vùng trắng công thức sau: Viola Jones đưa khái niệm gọi Integral Image, mảng chiều với kích thước với kích thước ảnh cần tính đặc trưng Haar-Like, với phần tử mảng tính cách tính tổng điểm ảnh phía (dịng-1) bên trái (cột-1) Hình Cơng thức tính Intergral Image 13 Sau tính Integral Image, việc tính tổng giá trị mức xám vùng ảnh thực đơn giản theo cách sau: Giả sử ta cần tính tổng giá trị mức xám vùng D hình dưới, ta tính sau: D = A + B + C + D - (A+B) - (A+C) + A Với A + B + C + D giá trị điểm P4 Integral Image, tương tự A+B giá trị điểm P2, A+C giá trị điểm P3, A giá trị điểm P1 Vậy ta viết lại biểu thức tính D sau: Hình 10 Tổng giá trị mức xám điểm D 5.2 Trích xuất đặc trưng: - Thư viện face_recognition sử dụng deep learning để trích xuất đặc trưng khn mặt - Mơ hình huấn luyện tập liệu labeled face in the wild đạt độ xác 99.38% 5.3: Nhận diện khuôn mặt: - Sử dụng khoảng cách Euclidean để tính tương đồng vector đặc trưng trích xuất - Sau đưa kết 14 Xây dựng hệ thống: * Các bước xây dựng hệ thống - Xây dựng giao diện + Giao diện xây dựng gồm trang, trang sử dụng để thêm khuôn mặt vào hệ thống 15 + Trang thứ giao diện điểm danh  Quy trình hoạt động hệ thống: o Thêm người điểm danh vào hệ thống + Khi nhập thông tin vào giao diện bấm thêm, ảnh đưa vào hệ thống xử lý + Hệ thống phát khn mặt thuật tốn harr-cascade + Sau hệ thống trích xuất vùng chưa khn mặt + Kết sử dụng để trích xuất đặc trưng thư viện face_recognition trả vector đặc trưng + Sau vector đặc trưng thơng tin người thêm lưu vào hệ thống 16  Điểm danh + Khi bấm start hệ thống sử dụng ảnh thu từ camera đưa qua thuật tốn harr-cascade để trích xuất vùng có khn mặt + Vùng chưa khuôn mặt đưa qua thư viện face_recognition để trích xuất vector đặc trưng + Vector đặc trưng sau trích xuất so sánh với danh sách vector đặc trưng hệ thống đưa kết điểm danh + Khi bấm stop hệ thống tạm dừng điểm danh + Khi bấm done hệ thống lưu lại danh sách điểm danh đóng hệ thống 17 Code - Lấy thơng tin người có sở liệu 18 - Tính khoảng cách giưã vector đặc trưng - Phát khuôn mặt 19 - Vẽ hình chữ nhật vào mặt II Kết Luận - Hệ thống chưa hồn chỉnh cịn phát triển thêm nhiều tính năng, hệ thống đáp ứng yêu cầu tối thiếu thêm liệu sinh viên vào hệ thống, điểm danh lưu lại danh sách điểm danh - Hệ thống đáp ứng yêu cầu chạy thời gian thực với độ xác khơng cao chấp nhận Tài liệu tham khảo https://github.com/ChibaniMohamed/Polaris? fbclid=IwAR3iF7GH1V6M8y6KNQGJUA4bcoKOSNNmhpy0XeXtt9X_-S75outwEli_ac 20 ... Mục đích đề tài Đối tượng phạm vi nghiên cứu I BÀI TOÁN NHẬN DẠNG ĐỐI TƯỢNG BẰNG KHUÔN MẶT Tổng quan khái niệm liên quan đến nhận dạng khuôn mặt .5 1.1 Hệ thống... Hệ thống nhận dạng khuôn mặt 1.3 Hoạt động hệ thông nhận diện khuôn mặt 1.4 Những khó khăn hệ thống nhận dạng khuôn mặt .6 Tổng quan kiến trúc hệ thống nhận dạng mặt người... lý ảnh giải toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khuôn mặt… Một toán nhiều người quan tâm lĩnh vực xử lý ảnh nhận dạng khn mặt (Face Recognition) Như biết, khuôn mặt đóng vai

Ngày đăng: 05/02/2023, 23:04

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w