Đăng ký Đăng nhập
Trang chủ Xây dựng hệ thống nhận dạng khuôn mặt sử dụng raspberry pi và opencv...

Tài liệu Xây dựng hệ thống nhận dạng khuôn mặt sử dụng raspberry pi và opencv

.PDF
85
35
134

Mô tả:

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN THƠ C C R L T. XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT SỬ DỤNG RASPBERRY PI VÀ OPENCV DU LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ Đà Nẵng – Năm 2020 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN THƠ XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT SỬ DỤNG RASPBERRY PI VÀ OPENCV C C R L T. DU Chuyên ngành : Kỹ thuật Điện tử Mã số : 852.02.03 LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học: TS. NGUYỄN DUY NHẬT VIỄN Đà Nẵng – Năm 2020 LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu và kết quả trong luận văn là trung thực và chưa được ai công bố trong bất kỳ công trình nào. Tác giả luận văn Nguyễn Văn Thơ C C DU R L T. XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT SỬ DỤNG RASPBERRY PI VÀ OPENCV Học viên: Nguyễn Văn Thơ Chuyên ngành: Kỹ thuật điện tử Mã số: Khóa: K38 Trường Đại học Bách khoa - ĐHĐN Tóm tắt – Hệ thống nhận dạng khuôn mặt là một nhiệm vụ nghiên cứu phổ biến trong lĩnh vực xử lý hình ảnh và thị giác máy tính, do khả năng ứng dụng to lớn cũng như giá trị lý thuyết của nó. Hệ thống này được triển khai rộng rãi nhiều ứng dụng trong thế giới thực như an ninh, giám sát, an ninh nội địa, kiểm soát truy cập, tìm kiếm hình ảnh, người-máy và giải trí. Tuy nhiên, các ứng dụng này đặt ra những thách thức khác nhau như điều kiện ánh sáng và nét mặt. Luận văn nêu bật các nghiên cứu gần đây về phương pháp cũng như các thuật toán phát hiện và nhận dạng khuôn mặt. Qua đó đề xuất hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3 sử dụng thư viện mã nguồn mở OpenCV. Hệ thống sử dụng mạng Neural tích chập với các Model CNN (convolutional neural network) trong thuật toán phát hiện và nhận dạng khuôn mặt. Hệ thống với kích thước nhỏ gọn, độ chính xác cao và khả năng nhận dạng đáp ứng thời gian thực, có thể triển khai được trong các ứng dụng IoT, hệ thống điểm danh tự động… C C R L T. DU Từ khóa – Hệ thống nhận dạng khuôn mặt; OpenCV; mạng Neural tích chập; Raspberry Pi; chấm công tự động. BUILDING A FACE RECOGNITION SYSTEM USING RASPBERRY PI AND OPENCV Abstract - The facial recognition system is a popular research task in the field of image processing and computer vision, due to its enormous applicability and theoretical value. The system is widely deployed in real-world applications such as security, surveillance, domestic security, access control, image search, robotics and entertainment. However, these applications pose various challenges such as lighting conditions and facial expressions. The thesis highlights recent studies on facial detection methods as well as algorithms for detection and recognition. Thereby proposing facial recognition system on Raspberry Pi 3 embedded computer using OpenCV open source library. The system uses convolutional neural network (model CNN) in face detection and recognition algorithm. The system with compact size, high accuracy and real-time response identification, can be deployed in IoT applications, automatic attendance system… Key words - The facial recognition system; OpenCV; convolutional neural network (CNN); Raspberry Pi; automatic attendance system. MỤC LỤC MỞ ĐẦU ......................................................................................................................... 1 1. Tính cấp thiết của đề tài ...................................................................................... 1 2. Mục đích nghiên cứu .......................................................................................... 2 3. Đối tượng và phạm vi nghiên cứu ...................................................................... 2 4. Phương pháp nghiên cứu .................................................................................... 2 5. Ý nghĩa khoa học và thực tiễn của đề tài ............................................................ 2 6. Bố cục luận văn................................................................................................... 3 CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT ........ 4 1.1. Giới thiệu chương ..................................................................................................... 4 1.2. Tổng quan về hệ thống nhận dạng khuôn mặt .......................................................... 4 1.2.1. Các vấn đề liên quan ..................................................................................... 4 1.2.2. Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt .............................. 5 C C 1.2.3. Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt ................ 6 1.2.4. Những ứng dụng hệ thống nhận dạng khuôn mặt ......................................... 7 1.3. Kết luận chương ....................................................................................................... 9 R L T. DU CHƯƠNG 2. KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT ........................ 10 2.1. Giới thiệu chương ................................................................................................... 10 2.2. Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar .............................................. 10 2.2.1. Tổng quan về các đặc trưng Haar-like ........................................................ 10 2.2.2. Mô hình phân tầng Cascade of Classifiers.................................................. 12 2.3. Các phương pháp nhận dạng khuôn mặt ................................................................ 14 2.3.1. Nhận dạng dựa trên đặc trưng giữa các phần tử (Feature Based)............... 14 2.3.2. Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based) ........... 15 2.4. Kỹ thuật trích chọn đặc trưng PCA ........................................................................ 19 2.4.1. Giới thiệu về phương pháp PCA ................................................................. 19 2.4.2. Thuật toán PCA .......................................................................................... 21 2.5. Phương pháp đối sánh trong nhận dạng ................................................................. 22 2.6. Phương pháp máy vector hỗ trợ ............................................................................. 23 2.7. Phương pháp mạng neural tích chập ...................................................................... 25 2.7.1. Nhận dạng khuôn mặt sử dụng mạng neural tích chập ............................... 25 2.7.2. Lớp tích chập .............................................................................................. 27 2.7.3. Lớp tinh chỉnh đơn vị tuyến tính (ReLU layer) .......................................... 29 2.7.4. Pooling layer ............................................................................................... 29 2.7.5. Lớp kết nối hoàn chỉnh (The Fully connected layer) ................................. 30 2.7.6. Hàm mất mát (Loss function) ..................................................................... 30 2.8. Kết luận chương ..................................................................................................... 31 CHƯƠNG 3. XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT TRÊN MÁY TÍNH NHÚNG RASPBERRY PI 3 ................................................................. 32 3.1. Giới thiệu chương ................................................................................................... 32 3.2. Máy tính nhúng Raspberry Pi 3 .............................................................................. 32 3.2.1. Giới thiệu chung ......................................................................................... 32 3.2.2. Cấu trúc phần cứng ..................................................................................... 33 3.2.3. Hệ điều hành ............................................................................................... 36 3.2.4. Ưu, nhược điểm .......................................................................................... 36 3.3. Ngôn ngữ Python .................................................................................................... 36 3.3.1. Giới thiệu Python ........................................................................................ 36 3.3.2. Các chức năng chính của Python ................................................................ 36 3.4. Thư viện OpenCV .................................................................................................. 37 3.4.1. Giới thiệu OpenCV ..................................................................................... 37 3.4.2. Tổ chức thư viện OPENCV ........................................................................ 38 3.5. Quy trình xây dựng hệ thống nhận dạng khuôn mặt .............................................. 39 3.5.1. Sơ đồ chức năng hệ thống nhận dạng khuôn mặt ....................................... 39 3.5.2. Phát hiện khuôn mặt sử dụng mạng neural tích chập nối tầng đa nhiệm C C R L T. DU (MTCNN) ...................................................................................................................... 41 3.5.3. Mã hóa và nhận dạng khuôn mặt ................................................................ 44 3.6. Kết luận chương ..................................................................................................... 46 CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG ............................... 47 4.1. Giới thiệu chương ................................................................................................... 47 4.2. Kết quả thực hiện hệ thống ..................................................................................... 47 4.3. Đánh giá hệ thống ................................................................................................... 50 4.3.1. Tiêu chí đánh giá......................................................................................... 50 4.3.2. Xây dựng cơ sở dữ liệu và phân tích kết quả ............................................. 51 4.4. Kết luận chương ..................................................................................................... 53 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI ................................................... 54 DANH MỤC TÀI LIỆU THAM KHẢO PHỤ LỤC QUYẾT ĐỊNH GIAO ĐỀ TÀI (Bản sao) DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Tiếng anh Dịch nghĩa tiếng việt Artificial Neural Network Mạng neural nhân tạo Artificial Intelligence Trí tuệ nhân tạo CNN Convolutional Neural Network Mạng nơ-ron tích chập DSP Digital Signal Processing Xử lý tín hiệu số FSVM Fuzzy support vector machines Máy vector hỗ trợ mờ HOG Histogram of Oriented Gradians Biểu đồ Gradients IoT Internet of Things Kết nối vạn vật ID Identification Nhận dạng Linear Discriminant Analysis Phương pháp phân tích sai khác tuyến tính ANN AI LDA MTCNN C C Mạng nơ-ron tích chập nối tầng đa nhiệm R L T. Multi-Task Cascaded Convolutional Networks DU PCA Principal Component Analysis SVM Support Vector Machine Phương pháp phân tích thành phần chính Máy vector hỗ trợ DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang 4.1. Ma trận confusion matrix 51 4.2. Kết quả nhận dạng của hệ thống 52 4.3. Kết quả nhận dạng của hệ thống 52 4.4. Tham số ma trận nhầm lẫn của hệ thống 52 4.5. Kết quả thống kê tham số RC, PR, Acc 52 C C DU R L T. DANH MỤC CÁC HÌNH Số hiệu hình Tên hình Trang 1.1 Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt [5] 5 1.2 Giao diện chương trình FaceFinder 8 1.3 Máy chấm công FK605 dùng FaceID 9 2.1 Các đặc trưng Haar-like cơ sở 10 2.2 Các đặc trưng Haar-like mở rộng 10 2.3 Cách tính Integral Image của ảnh 11 2.4 Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các đặc trưng xoay 45o 12 2.5 Minh họa mô hình phân tầng Cascade of Classifiers 2.6 Hình ảnh nhìn từ 2 phía khác nhau của con lạc đà 16 2.7 Không gian mới (Aex1, Axe2)có độ biến thiên dữ liệu cao hơn so với không gian cũ, tìm theo PCA 17 2.8 Phân loại với LDA 19 2.9 Phân loại dựa trên between và within theo LDA 19 2.10 Phân lớp SVM trong mặt phẳng 24 2.11 Siêu phẳng h phân chia dữ liệu thành 2 lớp + và - với khoảng cách biên lớn nhất, các điểm gần nhất (được khoanh tròn) là 24 C C R L T. DU 13 các vector hỗ trợ 2.12 Kiến trúc cơ bản một mạng neural tích chập (CNN) 26 2.13 Mạng neural ứng dụng trong phân loại đối tượng 26 2.14 Các thành phần của tích chập 27 2.15 Minh họa tích chập 27 2.16 Ảnh mờ hơn sau khi áp dụng phép tích chập 28 2.17 Ảnh được phát hiện biên sau khi chập 28 2.18 Đồ thị hàm ReLU 29 2.19 Tính toán với phương pháp MaxPooling 30 3.1 Máy tính nhúng Raspberry Pi 3 32 3.2 Sơ đồ phần cứng Raspberry Pi 3 33 3.3 Sơ đồ chân vào/ ra của Raspberry Pi 3 34 3.3 Tổ chức thư viện OpenCV 38 3.5 Sơ đồ quá trình nhận dạng khuôn mặt trên Raspberry Pi 3 39 Số hiệu Tên hình hình Trang 3.6 Sơ đồ chức năng của hệ thống 40 3.7 Kiến trúc mạng MTCNN 41 3.8 Các bước phát hiện và cân chỉnh khuôn mặt sử dụng MTCNN 44 3.9 Quy trình mã hóa khuôn mặt sử dụng mạng Neural tích chập 44 3.10 Kết quả mã hóa khuôn mặt thành vecto 128 chiều 45 3.11 Quá trình mã hóa và phân lớp khuôn mặt 45 3.12 Quá trình huấn luyện mạng sử dụng hàm triple loss 46 4.1 Giao diện đăng ký thông tin 47 4.2 Quá trình đăng ký từ những hình ảnh có sẵn 48 4.3 Quá trình đăng ký hình ảnh trực tiếp từ camera 48 4.4 Cơ sở dữ liệu data_face sau khi đăng ký các đối tượng 49 4.5 Giao diện nhận dạng khuôn mặt 49 4.6 Hệ thống nhận dạng nhiều đối tượng cùng lúc DU R L T. C C 50 1 MỞ ĐẦU 1. Tính cấp thiết của đề tài Ngày nay, nghiên cứu các kỹ thuật xử lý và nhận dạng ảnh đang và được triển khai rộng rãi ở nước ta. Xử lý ảnh là một phân ngành trong xử lý tín hiệu số nhưng đối tượng tín hiệu cụ thể là ảnh. Đối tượng ảnh chủ yếu được sử dụng ở đây là ảnh số, và việc xử lý được tiến hành trên hệ thống máy tính. Thông thường việc xử lý ở đây được tiến hành theo quy trình sau. Đầu tiên, thông qua các phép biến đổi ảnh như làm mượt, nhị phân ảnh, trích xuất viền,… ta có thể thu được các thông tin hữu ích. Sau đó, từ các thông tin hữu ích, thông qua các phương pháp phân nhóm hay phân loại, nhận dạng ta có thể xây dựng được các hệ thống thông minh phục vụ cho cuộc sống của con người. Cụ thể ở nước ta, đã có các công trình nghiên cứu liên quan đến xử lý ảnh như nhận dạng dấu vân tay, nhận dạng chữ viết, nhận dạng khuôn mặt… C C Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành Computer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt Iris recognition). Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích R L T. DU chọn đặt trưng (feature extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người. So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát). Nhận dạng khuôn mặt được ứng dụng rất rộng rãi trong đời sống hằng ngày của con người, như các hệ thống bảo mật, an ninh, giám sát, quản lý vào ra, tìm kiếm thông tin, ứng dụng trong mạng xã hội như Facebook, google… Vì vậy nhận dạng khuôn mặt được nhiều nhóm nghiên cứu, công ty công nghệ lớn trên thế giới quan tâm. Thêm nữa cùng với sự ra đời và phát triển bùng nổ của khoa học máy tính, nhận dạng khuôn mặt đang đòi hỏi nhiều yêu cầu cao về kết quả, độ tin cậy, tính bảo mật. Hiện nay, tất cả các thuật toán nhận diện khuôn mặt được phát triển phần lớn đều dựa trên nền tảng hệ thống xử lý tín hiệu số DSP (Digital Signal Processing) với lượng tài nguyên tính toán rất lớn và giá thành cao, vì vậy khó có thể tích hợp vào các hệ thống nhận dạng yêu cầu giá thành thấp. Để giải quyết vấn đề này, luận văn hướng đến nghiên 2 cứu nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi, với đặc trưng là tài nguyên tính toán giới hạn nhỏ gọn, giá thành thấp nhưng vẫn đảm bảo độ chính xác. Khi trí tuệ nhân tạo AI và Internet vạn vật (IoT) đang phát triển mạnh mẽ, cùng với đó là các thiết bị thông minh ngày càng có sẵn cho người tiêu dùng, nhu cầu về một hệ thống kết nối nhận dạng khuôn mặt với các tiện ích thông minh trở nên phổ biến thì máy tính nhúng Raspberry là một trong những lựa chọn phù hợp và hiệu quả cao. 2. Mục đích nghiên cứu Luận văn xây dựng hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3 sử dụng thư viện mã nguồn mở OpenCV. Thông qua việc nghiên cứu lý thuyết và thực nghiệm hệ thống nhận dạng khuôn mặt, luận văn đưa ra khảo sát đánh giá về độ chính xác cũng như tính đáp ứng thời gian thực. Từ đó luận văn hướng đến triển khai hệ thống nhận dạng ứng dụng trong thực tiễn. C C 3. Đối tượng và phạm vi nghiên cứu  Lý thuyết tổng quan về hệ thống nhận dạng khuôn mặt.  Phương pháp để nhận dạng và phân lớp đối tượng ứng dụng trong nhận dạng khuôn mặt. R L T. DU  Lý thuyết tổng quan về máy tính nhúng Raspberry Pi và thư viện xử lý ảnh OpenCV  Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural tích chập  Các tiêu chí đánh giá hiệu năng của hệ thống nhận dạng khuôn mặt: tỉ lệ nhận dạng đúng, thời gian nhận dạng. 4. Phương pháp nghiên cứu Luận văn được nghiên cứu theo phương pháp thu thập dữ liệu kết hợp giữa lý thuyết và thực nghiệm, theo thứ tự sau:  Thu thập tài liệu nghiên cứu, bao gồm tài liệu lý thuyết và thực nghiệm.  Tìm hiểu, khảo sát cơ sở vật chất, kỹ thuật và công nghệ, thiết bị sẵn có, linh kiện phù hợp có mặt trên thị trường.  Xây dựng mô hình tổng quan về nhận dạng khuôn mặt trên hệ thống nhúng (kit Raspberry Pi).  Thao tác thử nghiệm các thuật toán trực tiếp trên phần cứng .  Xây dựng bản demo hệ thống nhận dạng khuôn mặt 5. Ý nghĩa khoa học và thực tiễn của đề tài Luận văn thực hiện lại các nghiên cứu từ các tài liệu, bài báo cáo khoa học về kỹ thuật nhận dạng khuôn mặt dựa trên nền tảng OpenCV và Raspberry Pi. Kết quả luận văn sẽ là tài liệu tham khảo để rút ra ưu điểm và những hạn chế của phương pháp nhận 3 dạng khuôn mặt trên hệ thống nhúng Raspberry Pi. Trên cơ sở đó có thể sử dụng Raspberry Pi để ứng dụng vào các hệ thống điều khiển, quản lý, giám sát, an ninh… 6. Bố cục luận văn Luận văn được chia ra làm 4 chương như sau: Chương 1: Tổng quan về hệ thống nhận dạng khuôn mặt Phân tích tổng quan hệ thống nhận dạng khuôn mặt, tình hình phát triển của kỹ thuật này cũng như tóm tắt sơ lược về các phương pháp, kỹ thuật nhận dạng khuôn mặt. Chương 2: Kỹ thuật trích chọn đặc trưng và phương pháp phân lớp ứng dụng trong nhận dạng khuôn mặt Tập trung phân tích lý thuyết cho hệ thống từ mức tổng quan đến chi tiết từng thuật toán. Ở chương này, Luận văn trình bày lý thuyết chung cho từng kỹ thuật ứng dụng trong luận văn: kỹ thuật phân tích thành phần chính PCA, kỹ thuật huấn luyện bằng phương pháp đối sánh và phương pháp máy vector hỗ trợ SVM, phương pháp mạng Neural tích chập. Chương 3: Hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3 Trình bày các kiến thức tổng quan về Raspberry Pi 3 và thư viện mã nguồn mở OpenCV, quy trình thực hiện nhận dạng khuôn mặt thực hiện trên Raspberry Pi. Chương 4: Thực nghiệm và đánh giá hệ thống Trình bày hệ thống nhận dạng khuôn mặt thực nghiệm, đánh giá hiệu năng của hệ thống. Từ đó rút ra kết luận và hướng phát triển của đề tài C C R L T. DU Luận văn được thực hiện dựa trên các nguồn tài liệu tham khảo được thu thập từ nhiều nguồn khác nhau: các bài báo trong các tạp chí hoặc hội thảo khoa học chuyên ngành, các báo cáo khoa học, cơ sở dữ liệu Đồ án và Luận văn tại các trường Đại học, được trích dẫn trong suốt luận văn và danh mục tài liệu được liệt kê cụ thể ở phần Tài liệu tham khảo. 4 CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 1.1. Giới thiệu chương Hệ thống nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác định hoặc nhận dạng một người nào đó từ một hình ảnh kỹ thuật số hoặc một khung hình video từ một nguồn video. Một trong những cách để thực hiện điều này là so sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt. Công nghệ nhận dạng khuôn mặt là công nghệ sinh trắc học ít tác động đến người dùng nhất và là công nghệ sinh trắc học nhanh nhất. Nhà quản lý có thể chủ động hơn trong việc kiểm soát, hệ thống sẽ nhận diện khuôn mặt một cách kín đáo bằng cách chụp ảnh khuôn mặt của những ai bước vào một khu vực được xác định từ camera giám sát. Trong chương này sẽ trình bày những khái niệm cơ bản về nhận dạng khuôn mặt, quá trình nhận dạng khuôn mặt và những thách thức, khó khăn cũng như những giải pháp công nghệ đã được đưa ra để nâng cao tính hiệu quả của nhận dạng khuôn mặt. C C R L T. 1.2. Tổng quan về hệ thống nhận dạng khuôn mặt 1.2.1. Các vấn đề liên quan Đặc tính sinh trắc học: Những thuộc tính vật lý hoặc các mẫu hành vi, các đặc điểm sinh học đặc trưng như dấu vân tay, mẫu mống mắt, giọng nói, khuôn mặt, dáng đi... để nhận diện con người [1, 2]. DU Dữ liệu sinh trắc lý tưởng của người luôn luôn phải có những đặc tính cơ bản như sau:  Tính tổng quát: Mỗi người đều được thể hiện bởi đặc tính này.  Tính duy nhất: Không thể tồn tại hai người có đặc tính giống nhau.  Tính thường xuyên: Là sự độc lập của đặc tính đối với thời gian.  Tính thu thập được: Là đặc tính được thu thập một cách tương đối đơn giản và nhanh chóng từ mỗi cá nhân và có thể được chi tiết hóa. Hệ thống sinh trắc học: Hệ thống sinh trắc học là một hệ thống được thiết kế để xác minh và nhận dạng một người dựa vào những đặc trưng sinh học duy nhất của người đó. Hệ thống nhận dạng khuôn mặt: Hệ thống nhận dạng khuôn mặt là một hệ thống được thiết kế để tìm thông tin của một người. Kĩ thuật nhận dạng là kiểm tra sự phù hợp dựa trên phép so sánh một-nhiều, cụ thể là tìm ra một người là ai trong số những người đã được lưu trữ trong hệ thống dựa vào thông tin khuôn mặt [3-5]. Hệ thống xác minh hay xác thực mặt người: Hệ thống xác minh/xác thực khuôn 5 mặt là một hệ thống được thiết kế để xác minh thông tin của một người. Kĩ thuật xác minh là kiểm tra sự phù hợp trên phép so sánh một-một, cụ thể là đối chiếu thông tin mới nhận về một người với thông tin đã lưu trữ về người này có khớp hay không dựa trên thông tin khuôn mặt [3]. 1.2.2. Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt Nhận dạng khuôn mặt là một kiểu nhận dạng trực quan, khuôn mặt được xem là một đối tượng với sự thay đổi của ánh sáng, tư thế, cảm xúc sẽ được xác định dựa trên ảnh hai chiều. Nhiệm vụ của hệ thống nhận dạng khuôn mặt là xử lý tự động thông tin từ các hình ảnh đầu vào và đưa ra quyết định về thông tin khuôn mặt [3]. Trong đề tài này, cấu trúc của hệ thống nhận dạng khuôn mặt được thực hiện theo quy trình như hình sau: Image Phát hiện khuôn mặt Trích xuất đặc trưng DU R L T. C C Nhận dạng khuôn mặt ID Dữ liệu khuôn mặt Hình 1.1. Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt [5] Chức năng từng khối mô tả cụ thể như sau: Phát hiện khuôn mặt: Hệ thống nhận dạng khuôn mặt đầu tiên bắt đầu với việc định vị khuôn mặt người trong một hình ảnh cụ thể. Mục đích của bước này là xác định xem hình ảnh đầu vào có chứa khuôn mặt người hay không. Sự thay đổi của ánh sáng và biểu cảm khuôn mặt có thể ngăn cản việc phát hiện khuôn mặt thích hợp. Nhiều kỹ thuật được sử dụng để phát hiện và định vị hình ảnh khuôn mặt người, ví dụ, máy dò Viola - Jones [8, 9], biểu đồ của gradient định hướng (HOG) [10], và phân tích thành phần chính (PCA) [17-19 ]. Trích xuất đặc trưng: Chức năng chính của bước này là trích xuất các đặc điểm của hình ảnh khuôn mặt được phát hiện trong bước đầu tiên. Bước này đại diện cho một khuôn mặt với một tập hợp các vectơ đặc điểm được gọi là “đặc trưng” mô tả các đặc điểm nổi bật của hình ảnh khuôn mặt như miệng, mũi và mắt với sự phân bố hình học của chúng [21]. Mỗi khuôn mặt được đặc trưng bởi cấu trúc, kích thước và hình dạng cho phép nó được nhận dạng. Một số kỹ thuật liên quan đến việc trích xuất hình dạng 6 của miệng, mắt hoặc mũi để xác định khuôn mặt bằng cách sử dụng kích thước và khoảng cách. HOG [10], Eigenface [18, 21], phân tích thành phần độc lập (ICA), phân tích phân biệt tuyến tính (LDA) [19], biến đổi tính năng bất biến tỷ lệ (SIFT) [22], bộ lọc gabor, lượng tử hóa pha cục bộ (LPQ) [23] và kỹ thuật mẫu nhị phân cục bộ (LBP) [24] được sử dụng rộng rãi để trích xuất các đặc trưng của khuôn mặt. Nhận dạng khuôn mặt: Bước này xem xét các đặc trưng được trích xuất trong bước trích xuất đặc trưng và so sánh nó với các khuôn mặt đã biết được lưu trữ trong cơ sở dữ liệu cụ thể. Trong bước nhận dạng, một khuôn mặt thử nghiệm được so sánh với một tập hợp các khuôn mặt trong dữ liệu có sẵn nhằm tìm ra khuôn mặt phù hợp nhất. Trong bước nhận dạng, một khuôn mặt kiểm tra được so sánh với các khuôn mặt đã biết trong cơ sở dữ liệu để đưa ra quyết định [25, 26]. 1.2.3. Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt - Tư thế, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt. Chẳng hạn như: chụp thẳng, chụp xéo bên trái hay xéo bên phải, chụp từ trên xuống, chụp từ dưới lên, v.v...Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết [8]. - Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: các đặc trưng như râu mép, râu hàm, mắt kính, v.v... có thể xuất hiện hoặc không. Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều. C C R L T. DU - Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt. Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi,v.v... - Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác. - Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại,v.v...) ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt. Tuy vậy, hệ thống nhận dạng mặt người cần đảm bảo các yêu cầu sau: - Độ chính xác nhận dạng có thể chấp nhận được đối với yêu cầu của bài toán nhận dạng người. - Tốc độ vận hành cao đối với các cơ sở dữ liệu lớn và số lượng các yêu cầu có thể giải quyết được. - Đơn giản trong việc cài đặt, lựa chọn thiết bị và vận hành, an toàn với người sử dụng. 7 1.2.4. Những ứng dụng hệ thống nhận dạng khuôn mặt Ngày nay, trên thế giới ước tính có khoảng 79% số lượng vi xử lý dùng trong các hệ thống nhúng. Thị trường hệ thống nhúng sẽ sớm vượt thị trường của các hệ thống dạng PC, và đương nhiên, hệ thống phần mềm và các thuật toán kèm theo cũng được dự đoán là sẽ tăng vượt bậc. Và hệ thống nhận dạng khuôn mặt trên nền hệ thống nhúng cũng nằm trong quy luật phát triển đó. Trong nước, các nghiên cứu về hệ thống nhận dạng khuôn mặt chỉ tập trung vào nền tảng PC với nhiều thuật toán phức tạp. Rất nhiều nghiên cứu của các tác giả trong nước về các thuật toán nhận dạng khuôn mặt cũng như xây dựng nhiều hệ thống thực nghiệm để đánh giá. Các ứng dụng trên được mô phỏng và xử lý tốt với Matlab, và có thể phát triển thành các ứng dụng cụ thể với ngôn ngữ C#. Các hệ thống này đáp ứng rất tốt tính thời gian thực, độ chính xác rất cao, tuy nhiên trong phạm vi hệ thống nhúng, các phương pháp tính này tỏ ra chưa phù hợp khi chưa đảm bảo được tính hiệu quả ở nhiều thông số như: năng lượng, kích thước hệ thống, hiệu quả sử dụng và giá thành. Bên cạnh đó, trên thế giới, để đáp ứng nhu cầu về phát triển hệ thống nhúng chuyên dụng cho mục đích nhận dạng khuôn mặt thì đã có nhiều nhóm nghiên cứu tiến hành thực hiện và đánh giá các thuật toán và đạt được kết quả rất khả quan. Các bài toán phát hiện khuôn mặt sử dụng FPGA, Kit Xilinx XC5VLX50, có khả năng xử lý các bức ảnh tĩnh có độ phân giải 10242 pixels cũng như các hệ thống sử dụng OpenCV cascade of C C R L T. DU classifiers cho khuôn mặt chính diện và lưu trữ được đến 2730 Haar-like classifiers. Từ năm 2009 đến 2013, nhiều nhóm nghiên cứu đã tiếp tục phát triển các hệ thống nhúng nhận dạng khuôn mặt trên chip ARM với các bộ cơ sở dữ liệu có sẵn như AT&T, Yale, Face94.... Hệ thống được xây dựng trên chip ARM 7, hệ điều hành Window với kết nhận dạng rất tốt. Tuy nhiên, các kết quả trên chỉ có thể áp dụng để phát triển và đánh giá thuật toán, mà không thể đi vào ứng dụng thực tiễn do mô hình hệ thống chưa phù hợp (thiếu các cơ cấu IO chấp hành, cửa sổ hiển thị phải dùng Matlab...). Nhận dạng khuôn mặt đang được phát triển và ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Cụ thể có thể nói đến hệ thống nhận diện khuôn mặt được triển khai ở Mỹ, vốn trước kia chỉ dành cho các cơ quan thực thi pháp luật của nước này. Chính phủ Mỹ hiện đang ứng dụng công nghệ này để đảm bảo an ninh quốc gia thông qua việc nhận diện khuôn mặt kẻ tội phạm ngay khi chúng xuống sân bay hay loại bỏ những lá phiếu gian lận thông qua việc xác định khuôn mặt người đi bầu cử. Một ứng dụng khác rất tiềm năng là việc xác thực rút tiền từ máy rút tiền tự động ATM, một giải pháp bảo mật hứa hẹn sẽ trở nên phổ biến trong tương lai gần. Trên lĩnh vực điện thoại di động, ứng dụng nhận diện khuôn mặt để mở máy đã có 8 trong hệ điều hành Android 4.x, thành quả thu được của Google sau thắng lợi trong cuộc chiến bằng sáng chế trước các đối thủ cạnh tranh. Cùng thời điểm đó, Apple cũng đã tiết lộ bằng sáng chế khóa và mở khóa các dòng sản phẩm của hãng ứng dụng công nghệ nhận diện khuôn mặt. Tháng 6/2012, việc mạng xã hội Facebook mua lại công ty nhận diện khuôn mặt Face.com đã tạo ra những hy vọng nhất định cho các công ty hoạt động trong lĩnh vực này. Trước đó, Google và Sony cũng đã ứng dụng công nghệ nhận diện khuôn mặt trong các phần mềm của họ, tương ứng là Picasa và Picture Motion Browser. Tất nhiên, tất cả mới chỉ dừng lại ở việc tạo sự thuận tiện cho người sử dụng. Các lĩnh vực và sản phẩm cụ thể đã áp dụng nhận dạng khuôn mặt có thể liệt kê như: - Face Identification: Hệ thống này nhận dạng khuôn mặt bởi hình ảnh khuôn mặt trực tuyến chứ không phải thông qua các mã PIN, ID hay password cổ điển. Ứng dụng cụ thể như nhận dạng bằng lái xe, chứng minh nhân dân, passports hay kiểm phiếu bầu C C cử. Năm 2000, Faceit technology đã lần đầu tiên ứng dụng nhận dạng khuôn mặt chống gian lận trong bầu cử. Người bỏ phiếu được nhận dạng và lưu lại trong cơ sở dữ liệu nhằm đối sánh để loại bỏ các trường hợp trùng lặp người bỏ phiếu. Hay như hệ thống R L T. Viisage’s face Finder của Department of State for the Diversity Visa Program Hoa Kỳ (hình 1.2) chứa xấp xỉ 50000 thông tin khuôn mặt phục vụ cho quản lý bằng lái xe. DU Hình 1.2. Giao diện chương trình FaceFinder 9 - Access control: Ứng dụng cho việc giới hạn đăng nhập vào hệ thống bất kì như máy tính, hệ thống tòa nhà,...Hệ thống này yêu cầu ảnh hoặc video phải được thu nhận dưới các ràng buột nhất định về hướng khuôn mặt hay độ sáng khung hình...Năm 2000, các máy tính của IBM được tích hợp Facelt và camera Ultraport cho phép người dùng quản trị máy tính bằng khuôn mặt. Admin của hệ thống được quan sát từ video tích hợp trên máy tính, nếu admin không có trước màn hình máy tính, hệ thống sẽ tự động khóa bàn phím và chuột, cho đến khi admin trở về và kích hoạt đăng nhập bằng khuôn mặt. Dễ thấy hơn cả là các hệ thống Facegate sử dụng khuôn mặt để đăng nhập hoặc chấm công, được sử dụng rộng rãi trên toàn thế giới C C R L T. DU Hình 1.3. Máy chấm công FK605 dùng FaceID - An ninh: Ngày nay, hơn bao giờ hết, an ninh là một mối quan tâm chính tại các địa điểm công cộng và sự kiện tập trung nhiều người. Ví dụ như hệ thống an ninh sân bay sử dụng công nghệ nhận dạng khuôn mặt đã được thực hiện tại nhiều nơi trên toàn thế giới. Mặc dù nó có thể kiểm soát điều kiện ánh sáng và định hướng khuôn mặt trong một số ứng dụng bảo mật, (ví dụ, bằng cách sử dụng một làn đường cho người đi bộ duy nhất với ánh sáng kiểm soát), một trong những thách thức lớn nhất đối với nhận dạng khuôn mặt ở những nơi công cộng là số lượng lớn các mặt mà cần phải được kiểm tra nên hiệu suất nhận dạng chưa cao. 1.3. Kết luận chương Với nội dung chương 1, luận văn đã trình bày tổng quát về hệ thống nhận dạng khuôn mặt nói chung, cụ thể là về những đặc điểm của hệ thống cũng như các khó khăn, thách thức hiện nay đối với nhận dạng khuôn mặt. Chương này cũng giới thiệu một số ứng dụng cụ thể của công nghệ nhận dạng khuôn mặt đang được triển khai. 10 CHƯƠNG 2 KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT 2.1. Giới thiệu chương Trong chương này sẽ trình bày tổng quan về kỹ thuật phát hiện và nhận dạng khuôn mặt, cụ thể là về phương pháp trích chọn đặc trưng và nhận dạng khuôn mặt. Kỹ thuật phát hiện khuôn mặt sử dụng thuật toán Haar và trích chọn đặc trưng khuôn mặt dựa trên phương pháp PCA. Sau đó đưa ra phương pháp nhận dạng được áp dụng vào PCA, đó là phương pháp đối sánh và phương pháp SVM. 2.2. Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar 2.2.1. Tổng quan về các đặc trưng Haar-like Đặc trưng Haar-like diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh không diễn đạt được [7,8]. Mỗi đặc trưng Haar-like chứa 2, 3 hoặc 4 miền hình học có màu “trắng” hoặc “đen” như sau: C C R L T. DU Hình 2.1. Các đặc trưng Haar-like cơ sở Hình 2.2. Các đặc trưng Haar-like mở rộng Giá trị của một đặc trưng Haar-like chỉ đơn giản là sự khác biệt giữa tổng các giá trị xám của các pixel trong vùng “đen” với tổng các giá trị xám của các pixel trong vùng “trắng”: f(x) = Tổngvùng đen (mức xám của pixel) - Tổngvùng trắng (mức xám của pixel) (2.1)
- Xem thêm -

Tài liệu liên quan