TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC NGHIỆM
HỌC PHẦN: ĐỒ ÁN CHUYÊN NGÀNH
HỆ THỐNG NHẬN DẠNG BẰNG KHN MẶT SỬ
DỤNG MƠ HÌNH DEEP LEARNING
Giảng viên hướng dẫn: TS. Nguyễn Mạnh Cường
Lớp: IT6052.2 - 20231IT6052002
Nhóm thực hiện: Nhóm 16
Thành viên: 1. Lý Thành Lâm - 2020600571
2. Lê Bá Việt Anh - 2020601175
3. Nguyễn Trọng Hoàng 2020600594
Hà Nội, Năm 2023
i
MỤC LỤC
DANH MỤC HÌNH ẢNH ...................................................................................... iii
DANH MỤC BẢNG BIỂU ...................................................................................... v
LỜI CẢM ƠN ......................................................................................................... vi
LỜI NÓI ĐẦU ........................................................................................................ vii
CHƯƠNG 1:TỔNG QUAN VỀ BÀI TỐN NHẬN DẠNG KHN MẶT
................................................................................................................................... 1
1.1.
Tổng quan về nhận dạng ................................................................. 1
1.2.
Mạng nơ ron tích chập và bài toán nhận dạng ............................. 2
1.3.
Bài toán nhận dạng khn mặt qua ảnh ....................................... 4
CHƯƠNG 2:NHẬN DẠNG KHN MẶT SỬ DỤNG RETINAFACE VÀ
ARCFACE ................................................................................................................ 7
2.1.
2.1.1.
2.1.2.
2.1.3.
Phát hiện khuôn mặt ....................................................................... 7
Haar cascade .............................................................................. 7
MTCNN ................................................................................... 11
RetinaFace ............................................................................... 15
2.2.
Căn chỉnh khuôn mặt .................................................................... 18
2.3.
2.3.1.
2.3.2.
2.3.3.
Biểu diễn khuôn mặt...................................................................... 20
VGGFace ................................................................................. 21
FaceNet .................................................................................... 22
ArcFace .................................................................................... 24
2.4.
2.4.1.
2.4.2.
Xác định danh tính khn mặt ..................................................... 26
Khoảng cách Euclidean ........................................................... 27
Khoảng cách Cosine ................................................................ 28
CHƯƠNG 3:
MỘT SỐ KẾT QUẢ THỰC NGHIỆM ............................. 32
3.1.
Giới thiệu về dữ liệu thực nghiệm ................................................ 32
3.2.
3.2.1.
3.2.2.
Quy trình thực nghiệm .................................................................. 33
Mơ hình phát hiện khn mặt .................................................. 34
Mơ hình nhận dạng khn mặt ................................................ 35
3.3.
3.3.1.
Các siêu tham số được thiết lập và mơi trường .......................... 35
Mơ hình phát hiện khn mặt .................................................. 36
ii
3.3.2.
Mơ hình nhận dạng khn mặt ................................................ 36
3.4.
3.4.1.
3.4.2.
Một số kết quả ................................................................................ 37
Mơ hình phát hiện khn mặt .................................................. 37
Mơ hình nhận dạng khn mặt ................................................ 39
CHƯƠNG 4:XÂY DỰNG HỆ THỐNG NHẬN DẠNG BẰNG KHN MẶT
................................................................................................................................. 41
4.1.
4.1.1.
4.1.2.
4.1.3.
Các cơng cụ được sử dụng ............................................................ 41
Streamlit................................................................................... 41
DeepFace ................................................................................. 42
PyCharm .................................................................................. 42
4.2.
4.2.1.
4.2.2.
4.2.3.
4.2.4.
4.2.5.
4.2.6.
Các bước xây dựng phần mềm ..................................................... 43
Phân tích yêu cầu ..................................................................... 43
Thu thập và chuẩn bị dữ liệu ................................................... 43
Xây dựng mơ hình nhận diện khn mặt................................. 44
Thiết kế giao diện người dùng và logic ứng dụng ................... 44
Kiểm thử phần và triển khai phần mềm................................... 44
Bảo trì và cập nhật ................................................................... 45
4.3.
4.3.1.
4.3.2.
4.3.3.
4.3.4.
Phân tích/ thiết kế phần mềm ....................................................... 45
Biểu đồ use case ...................................................................... 45
Mô tả chi tiết use case nhận dạng ............................................ 45
Mô tả chi tiết use case đăng ký ................................................ 46
Thiết kế giao diện .................................................................... 48
4.4.
4.4.1.
4.4.2.
Kết quả đạt được ........................................................................... 50
Trang nhận dạng khuôn mặt .................................................... 50
Trang đăng ký thông tin nhận dạng ......................................... 54
KẾT LUẬN ............................................................................................................ 59
TÀI LIỆU THAM KHẢO ..................................................................................... 61
iii
DANH MỤC HÌNH ẢNH
Hình 2.1: Các đặc trưng hình chữ nhật ...................................................................... 8
Hình 2.2: Minh hoạ Haar Cascade............................................................................. 9
Hình 2.3: Cấu trúc tầng cho Haar Cascade ................................................................ 9
Hình 2.4: Mơ hình MTCNN .................................................................................... 11
Hình 2.5: Kiến trúc P-Net ........................................................................................ 12
Hình 2.6: Kiến trúc R-Net ....................................................................................... 13
Hình 2.7: Kiến trúc O-Net ....................................................................................... 14
Hình 2.8: Kiến trúc RetinaFace ............................................................................... 16
Hình 2.9: Mơ hình nhận dạng khn mặt sử dụng RetinaFace đạt kết quả tốt hơn
MTCNN ................................................................................................................... 17
Hình 2.10: Mơ hình phát hiện điểm trên khuôn mặt sử dụng RetinaFace đạt kết quả
tốt hơn MTCNN ...................................................................................................... 17
Hình 2.11: Khn mặt đã được phát hiện................................................................ 18
Hình 2.12: Mơ tả vị trí hai mắt của bức ảnh ví dụ ................................................... 19
Hình 2.13: Kết quả căn chỉnh khn mặt ................................................................ 20
Hình 2.14: Mơ hình VGGFace ................................................................................ 21
Hình 2.15: Kiến trúc mơ hình VGGFace ................................................................. 21
Hình 2.16: Huấn luyện mơ hình nhận dạng khn mặt sâu bằng ArcFace được đề
xuất (K=1) và sub-center ArcFace (ví dụ: K=3)...................................................... 25
Hình 2.17: So hàm Softmax và hàm mất mát ArcFace ........................................... 26
Hình 2.18: Sử dụng định lý Pythagorean để tính khoảng cách Euclidean 2-chiều . 27
Hình 2.19: Vector ví dụ ........................................................................................... 28
Hình 2.20: Tạo một vector để vẽ một hình tam giác ............................................... 29
Hình 3.1: Bộ dữ liệu WIDERFACE ........................................................................ 32
iv
Hình 3.2: Bộ dữ liệu LFW ....................................................................................... 33
Hình 3.3: Biểu đồ tỷ lệ nhận diện khuôn mặt cho các loại sự kiện khác nhau ........ 34
Hình 3.4: Kết quả huấn luyện mơ hình RetinaFace với backbone ResNet50 ......... 37
Hình 3.5: Kết quả dự đốn của mơ hình phát hiện khn mặt ................................ 38
Hình 3.6: So sánh giá trị dự đốn và giá trị thực tế ................................................. 39
Hình 3.7: Một số kết quả nhận dạng khn mặt ...................................................... 40
Hình 4.1: Biểu đồ use case ...................................................................................... 45
Hình 4.2: Thiết kế giao diện trang nhận dạng khn mặt ....................................... 48
Hình 4.3: Thiết kế giao diện trang đăng ký nhận dạng ............................................ 49
Hình 4.4: Trang nhận dạng khn mặt .................................................................... 50
Hình 4.5: Trang nhận dạng khn mặt .................................................................... 50
Hình 4.6: Trang nhận dạng khn mặt .................................................................... 51
Hình 4.7: Trang nhận dạng khn mặt .................................................................... 52
Hình 4.8: Trang nhận dạng khn mặt .................................................................... 52
Hình 4.9: Trang nhận dạng khn mặt .................................................................... 53
Hình 4.10: Trang đăng ký thơng tin nhận dạng ....................................................... 54
Hình 4.11: Trang đăng ký thơng tin nhận dạng ....................................................... 54
Hình 4.12: Trang đăng ký thơng tin nhận dạng ....................................................... 55
Hình 4.13: Trang đăng ký thơng tin nhận dạng ....................................................... 55
Hình 4.14: Trang đăng ký thơng tin nhận dạng ....................................................... 56
Hình 4.15: Trang đăng ký thơng tin nhận dạng ....................................................... 56
Hình 4.16: Trang đăng ký thơng tin nhận dạng ....................................................... 57
Hình 4.17: Trang đăng ký thơng tin nhận dạng ....................................................... 57
Hình 4.18: Trang đăng ký thông tin nhận dạng ....................................................... 58
v
DANH MỤC BẢNG BIỂU
Bảng 3.1: Kết quả đánh giá mô hình phát hiện khn mặt ..................................... 37
Bảng 3.2: Kết quả đánh giá mơ hình sử dụng các phương pháp khác nhau ............ 39
Bảng 4.1: Mô tả chi tiết use case nhận dạng ........................................................... 45
Bảng 4.2: Mô tả chi tiết use case đăng ký thông tin ................................................ 46
vi
LỜI CẢM ƠN
Trong quá trình thực hiện báo cáo của học phần đồ án chuyên ngành, với đề tài
"Hệ thống nhận dạng bằng khn mặt sử dụng mơ hình Deep Learning", chúng tôi
xin gửi lời cảm ơn chân thành đến tất cả những người đã đóng góp và hỗ trợ chúng
tơi hồn thành thành cơng báo cáo này.
Đầu tiên, chúng tôi muốn gửi lời cảm ơn sâu sắc tới Giảng viên hướng dẫn của
chúng tôi, tiến sĩ Nguyễn Mạnh Cường, vì sự chỉ dẫn, hướng dẫn và những kiến thức
quý báu mà thầy đã truyền đạt cho chúng tôi trong suốt quá trình thực hiện báo cáo
cũng như trong quá trình học. Sự kiên nhẫn và tận tâm của thầy đã giúp chúng tơi
vượt qua những khó khăn và hồn thiện báo cáo một cách tốt nhất.
Chúng tôi cũng muốn bày tỏ lịng biết ơn đến khoa Cơng nghệ thơng tin trường
Đại học Công Nghiệp Hà Nội đã tạo điều kiện thuận lợi và cung cấp những kiến thức
chuyên môn quan trọng cho chúng tơi trong suốt q trình học tập và nghiên cứu tại
trường.
Chúng tôi không thể không nhắc đến sự giúp đỡ của các bạn bè cùng lớp trong
việc tìm kiếm thơng tin, trao đổi ý kiến và hỗ trợ kỹ thuật.
Chúng tơi cũng muốn bày tỏ lịng biết ơn đến gia đình và người thân đã ln
ủng hộ, động viên và hiểu rõ những khó khăn chúng tơi gặp phải trong q trình thực
hiện báo cáo này. Sự động viên và tình yêu thương của gia đình là nguồn động lực
quan trọng giúp chúng tôi vượt qua mọi khó khăn.
Cuối cùng, chúng tơi xin gửi lời cảm ơn chân thành đến tất cả những người đã
đọc và đánh giá báo cáo này. Sự quan tâm và góp ý của mọi người là động lực để
chúng tôi tiếp tục nỗ lực và hoàn thiện hơn trong những nghiên cứu và dự án tương
lai.
Xin chân thành cảm ơn!
Lý Thành Lâm
Lê Bá Việt Anh
Nguyễn Trọng Hoàng
vii
LỜI NÓI ĐẦU
Trong những năm gần đây, Việt Nam đã chứng kiến sự phát triển mạnh mẽ
trong lĩnh vực công nghệ thông tin, đặc biệt là trong các ứng dụng của trí tuệ nhân
tạo (AI) và học máy. Sự tiến bộ này không chỉ thể hiện ở sự gia tăng của các startup
cơng nghệ, mà cịn qua việc áp dụng các công nghệ tiên tiến vào các ngành nghề
khác nhau. Trong số đó, cơng nghệ nhận diện khn mặt, một phần quan trọng của
AI, đã và đang trở thành một công cụ không thể thiếu trong nhiều lĩnh vực từ an ninh,
giao thông đến thương mại và giáo dục.
Hệ thống nhận dạng bằng khuôn mặt là một trong những ứng dụng quan trọng
của trí tuệ nhân tạo và thị giác máy tính. Hệ thống này có thể được sử dụng trong
nhiều lĩnh vực khác nhau, như an ninh, giáo dục, y tế, và giải trí. Tuy nhiên, việc
nhận dạng bằng khuôn mặt cũng gặp nhiều thách thức, như sự biến đổi của ánh sáng,
góc nhìn, biểu cảm, và phụ kiện. Do đó, cần phải nghiên cứu và phát triển các phương
pháp nhận dạng bằng khn mặt hiệu quả và chính xác.
Một trong những hướng tiếp cận hiện đại và tiên tiến nhất cho bài tốn nhận
dạng bằng khn mặt là sử dụng các mơ hình học sâu (Deep Learning). Các mơ hình
học sâu có thể học được các đặc trưng phức tạp và phân biệt của khuôn mặt từ dữ
liệu ảnh, và sử dụng chúng để phân loại hoặc xác minh các khn mặt khác nhau.
Các mơ hình học sâu cũng có thể được huấn luyện trên các tập dữ liệu lớn và đa
dạng, để tăng khả năng tổng quát hóa và chống nhiễu.
Đề tài “Hệ thống nhận dạng bằng khn mặt sử dụng mơ hình học sâu” nhằm
mục đích nghiên cứu và xây dựng một hệ thống nhận dạng bằng khn mặt hiệu quả
và chính xác, sử dụng các mơ hình học sâu phổ biến và tiên tiến nhất hiện nay, như
RetinaFace, MTCNN, và ArcFace. Đề tài cũng nhằm đánh giá và so sánh hiệu năng
của các mơ hình học sâu khác nhau trong bài toán nhận dạng bằng khuôn mặt, cũng
như đề xuất các cải tiến và giải pháp cho các vấn đề còn tồn tại.
viii
Bố cục đề tài bao gồm bốn chương chính:
Chương 1. Tổng quan về bài tốn nhận dạng khn mặt: Giới thiệu tổng quan
về bài toán, một số hướng tiếp cận chung, từ đó định nghĩa các bài tốn con khác cần
phải giải quyết.
Chương 2. Nhận dạng khuôn mặt sử dụng RetinaFace và ArcFace: tổng hợp các
nghiên cứu có liên quan về các phương pháp giải quyết từng bài toán con trong đề
tài và đưa ra phương pháp chính sẽ sử dụng trong báo cáo.
Chương 3. Một số kết quả thực nghiệm: đưa ra các thông tin về mặt thực nghiệm
và các kết quả đạt được trong việc giải quyết các bài toán con.
Chương 4. Xây dựng hệ thống nhận dạng bằng khn mặt: trình bày cơng cụ,
quy trình xây dựng, phân tích thiết kế phần mềm demo, và kết quả đạt được.
Qua đề tài này, chúng tơi mong muốn đóng góp một phương pháp hiệu quả và
đơn giản để nhận dạng sử dụng khuôn mặt. Chúng tôi cũng hy vọng đề tài này có thể
giúp ích cho các hệ thống nhận dạng danh tính và điểm danh bằng khn mặt.
1
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TỐN NHẬN DẠNG
KHN MẶT
1.1.
Tổng quan về nhận dạng
Theo Wikipedia [1], nhận dạng mẫu là quá trình xác định và phân loại các mẫu
hoặc mẫu dữ liệu dựa trên các đặc trưng và thuộc tính. Đối tượng được nhận dạng có
thể là các đối tượng vật lý, hình ảnh, âm thanh, chữ viết, hoặc bất kỳ dạng dữ liệu
nào khác.
Tổng quan về quá trình nhận dạng mẫu gồm các bước chính như sau:
• Thu thập dữ liệu: Đầu tiên, cần thu thập dữ liệu mẫu để xây dựng mơ hình nhận
dạng. Dữ liệu này có thể là các hình ảnh, tệp âm thanh, dữ liệu văn bản hoặc bất
kỳ dạng dữ liệu nào phù hợp với vấn đề nhận dạng cụ thể.
• Tiền xử lý dữ liệu: Trước khi huấn luyện mơ hình nhận dạng, dữ liệu cần được
tiền xử lý để chuẩn hóa, loại bỏ nhiễu và chuẩn bị cho quá trình huấn luyện. Các
bước tiền xử lý có thể bao gồm chuẩn hóa dữ liệu, giảm kích thước, loại bỏ
nhiễu hoặc tăng cường dữ liệu.
• Trích xuất đặc trưng: Các đặc trưng quan trọng và phù hợp với bài toán nhận
dạng được rút trích từ dữ liệu mẫu. Việc rút trích đặc trưng có thể dựa trên các
phương pháp truyền thống như phân tích thành phần chính (PCA) hoặc sử dụng
các mơ hình học sâu như mạng nơ-ron tích chập (CNN) trong trường hợp nhận
dạng hình ảnh.
• Xây dựng mơ hình nhận dạng: Với các đặc trưng đã được rút trích, có thể xây
dựng một mơ hình nhận dạng. Mơ hình này có thể dựa trên các thuật tốn máy
học như học có giám sát (supervised learning), học không giám sát
(unsupervised learning) hoặc kết hợp cả hai.
• Huấn luyện và đánh giá: Mơ hình nhận dạng cần được huấn luyện trên dữ liệu
mẫu đã được chuẩn bị. Quá trình huấn luyện đưa ra một mơ hình có khả năng
dự đốn và phân loại các mẫu mới dựa trên các đặc trưng đã học.
• Kiểm tra và triển khai: Mơ hình đã được huấn luyện cần được kiểm tra trên dữ
liệu kiểm tra độc lập để đánh giá hiệu suất và độ chính xác của nó. Nếu kết quả
2
đạt u cầu, mơ hình có thể được triển khai và sử dụng để nhận dạng các mẫu
mới trong thực tế.
Các ứng dụng của nhận dạng mẫu rất đa dạng và phong phú. Chẳng hạn, nhận
dạng khuôn mặt được sử dụng trong hệ thống mở khóa bằng khn mặt hoặc trong
việc xác định danh tính. Nhận dạng chữ viết có thể được sử dụng trong việc nhận
dạng chữ ký hoặc trong các hệ thống OCR (Optical Character Recognition) để
chuyển đổi văn bản từ hình ảnh vào dạng văn bản có thể xử lý. Nhận dạng giọng nói
có thể được sử dụng trong các hệ thống nhận diện giọng nói hoặc trong việc xác định
người nói. Ngồi ra, nhận dạng mẫu còn được áp dụng trong nhiều lĩnh vực khác
nhau như y tế, an ninh, giao thông, điều khiển tự động và nhiều lĩnh vực cơng nghiệp
khác.
Tóm lại, nhận dạng mẫu là quá trình xác định và phân loại các mẫu dữ liệu dựa
trên các đặc trưng và thuộc tính của chúng. Q trình này đóng vai trị quan trọng
trong việc xây dựng các hệ thống thơng minh có khả năng nhận biết và tương tác với
thế giới xung quanh.
1.2.
Mạng nơ ron tích chập và bài tốn nhận dạng
Theo Wikipedia [2], mạng nơ ron tích chập (Convolutional Neural Network CNN) là một loại mạng nơ ron sử dụng rộng rãi trong lĩnh vực thị giác máy tính và
xử lý ảnh. Được thiết kế để mô phỏng cấu trúc và hoạt động của hệ thống thị giác
của con người. CNN chủ yếu được sử dụng để giải quyết các bài toán liên quan đến
việc phân loại, nhận dạng và phân đoạn ảnh. CNN có ba thành phần chính: lớp tích
chập (convolutional layer), lớp gộp (pooling layer) và lớp kết nối đầy đủ (fully
connected layer). Lớp tích chập là thành phần chính của CNN và thực hiện việc trích
xuất đặc trưng của ảnh đầu vào. Lớp này sử dụng các bộ lọc (filter) nhỏ được áp dụng
lên ảnh để tạo ra các bản đồ đặc trưng (feature maps). Mỗi bộ lọc phát hiện các đặc
trưng như cạnh, góc, hoặc texture trong ảnh. Quá trình này cho phép mơ hình học
các đặc trưng ngữ nghĩa của ảnh một cách tự động. Lớp gộp được sử dụng để giảm
kích thước của bản đồ đặc trưng thông qua việc lấy giá trị lớn nhất (max pooling)
hoặc tính trung bình (average pooling) trên các vùng khơng gian. Điều này giúp giảm
số lượng tham số và tính tốn cần thiết trong mạng. Cuối cùng, lớp kết nối đầy đủ
kết nối các đặc trưng đã được trích xuất từ ảnh đến lớp đầu ra. Lớp này thực hiện
3
việc phân loại hoặc nhận dạng dựa trên các đặc trưng đã học được từ các lớp trước
đó.
Bài tốn nhận dạng là một trong những ứng dụng quan trọng của CNN. Bài toán
này đặt ra mục tiêu nhận dạng đối tượng, mẫu hoặc đặc điểm cụ thể trong ảnh hoặc
video. Ví dụ, nhận dạng khn mặt, phân loại chó mèo trong ảnh, hay nhận dạng
biển số xe là các bài tốn nhận dạng thường gặp. CNN có một số vai trị quan trọng
trong bài tốn nhận dạng. Dưới đây là một số tác vụ mà CNN thường đảm nhận trong
quá trình nhận dạng:
• Trích xuất đặc trưng: CNN được sử dụng để trích xuất các đặc trưng từ ảnh đầu
vào. Các lớp tích chập trong CNN có khả năng tự động học các bộ lọc nhằm
phát hiện các đặc trưng cụ thể trong ảnh, chẳng hạn như cạnh, góc, hoặc texture.
Q trình này giúp nắm bắt các thơng tin quan trọng trong ảnh và biểu diễn
chúng dưới dạng các bản đồ đặc trưng.
• Học cách phân loại: CNN có khả năng học cách phân loại các đối tượng, mẫu
hoặc đặc điểm trong ảnh. Sau khi trích xuất đặc trưng từ ảnh, các lớp kết nối
đầy đủ của CNN được sử dụng để xử lý thông tin và đưa ra dự đốn về nhãn
của ảnh. Q trình huấn luyện CNN trên tập dữ liệu nhãn chính xác giúp mơ
hình học cách phân loại các đối tượng theo cách chính xác.
• Độc lập với vị trí: CNN có khả năng nhận dạng đối tượng độc lập với vị trí trong
ảnh. Nhờ vào việc sử dụng lớp gộp (pooling layer), CNN có khả năng xác định
đặc trưng của đối tượng dựa trên một vùng khơng gian rộng hơn. Điều này làm
cho CNN có khả năng nhận dạng đối tượng dù chúng có vị trí và tỷ lệ khác nhau
trong ảnh.
• Khả năng tổng quát hóa: CNN có khả năng tổng quát hóa, có khả năng nhận
dạng đối tượng mới mà nó chưa từng thấy trước đó. Điều này là do q trình
huấn luyện trên một tập dữ liệu lớn và đa dạng, giúp mơ hình học cách phát hiện
các đặc trưng chung và quy luật phổ biến trong các ảnh.
• Xử lý ảnh đầu vào lớn: CNN có khả năng xử lý các ảnh đầu vào lớn mà khơng
u cầu kích thước đầu vào cố định. Nhờ vào cấu trúc tích chập và lớp gộp,
CNN có thể xử lý các ảnh có kích thước khác nhau mà khơng cần điều chỉnh
kích thước ảnh đầu vào.
4
Trong thời gian gần đây, CNN đã đạt được nhiều thành công đáng kể trong
nhiều lĩnh vực như nhận dạng khuôn mặt, nhận dạng vật thể, phân loại ảnh y tế và tự
động lái xe.
1.3.
Bài tốn nhận dạng khn mặt qua ảnh
Bài tốn nhận dạng khn mặt là bài tốn xác định hoặc xác nhận danh tính của
một người qua khuôn mặt của họ. Đây là một ứng dụng của cơng nghệ sinh trắc học
và thị giác máy tính, sử dụng các thuật tốn học sâu để phân tích và so sánh các đặc
điểm khn mặt trong các hình ảnh hoặc video. Bài tốn nhận dạng khn mặt có
nhiều ứng dụng trong các lĩnh vực như an ninh, giáo dục, y tế, giải trí…
Trích từ website [3], để giải quyết bài tốn nhận dạng khn mặt, cần phải giải
quyết các bài tốn con sau: phát hiện khn mặt, căn chỉnh khn mặt, biểu diễn
khn mặt, và nhận dạng khn mặt.
Nhìn chung, đầu vào của bài tốn nhận dạng khn mặt là một hình ảnh có thể
chứa một hoặc nhiều khn mặt của người. Dữ liệu này có thể được lấy từ các nguồn
khác nhau, như camera, điện thoại, máy tính… Bên cạnh đó, đầu ra của bài tốn nhận
dạng khn mặt là kết quả về danh tính hoặc xác nhận của khn mặt. Kết quả này
có thể được biểu diễn dưới dạng một nhãn, một số, một mã, một biểu tượng... Đầu
ra sau đó có thể được hiển thị trên màn hình và lưu trữ trong cơ sở dữ liệu.
Cụ thể hơn, các bài tốn con có chi tiết như sau:
● Phát hiện khuôn mặt: Bước này nhằm xác định vị trí, kích thước, và vị trí 5 điểm
mốc (landmarks) lần lượt là hai mặt, mũi, hai bên miệng của các khn mặt có
trong ảnh. Vì thế, đầu vào sẽ là hình ảnh có thể chứa một hoặc nhiều khn mặt,
và đầu ra sẽ là vị trí, kích thước, và vị trí 5 điểm mốc trên các khn mặt.
● Căn chỉnh khuôn mặt: Bước này nhằm cắt và căn chỉnh các khuôn mặt được
phát hiện ở bước trước, sao cho chúng có cùng góc nghiêng, kích thước, và vị
trí tương đối của các bộ phận khuôn mặt (mắt, mũi, miệng, ...). Như vậy, đầu
vào sẽ là đầu ra của bước trước, cịn đầu ra sẽ là hình ảnh khn mặt sau khi
được căn chỉnh.
● Biểu diễn khuôn mặt: Bước này nhằm biểu diễn các khuôn mặt đã được phân
đoạn ở bước trước bằng các vector đặc trưng có chiều thấp hơn, sao cho chúng
5
có thể phản ánh được sự khác biệt giữa các khn mặt khác nhau. Vì thế, đầu
vào sẽ là đầu ra của bước trước, và đầu ra sẽ là các vector đặc trưng của khn
mặt.
● Xác định danh tính khn mặt: Bước này nhằm xác định danh tính của các
khn mặt được biểu diễn bởi các vector đặc trưng ở bước trước, bằng cách so
sánh chúng với các vector đặc trưng của các khuôn mặt đã biết trong cơ sở dữ
liệu. Như vậy, đầu vào sẽ là đầu ra của bước trước kèm với các vector đặc trưng
của các khuôn mặt trong cơ sở dữ liệu, và đầu ra sẽ là kết quả về danh tính hoặc
xác nhận của khn mặt có trong cơ sở dữ liệu.
Bài tốn nhận dạng khn mặt là một bài tốn quan trọng và thú vị trong lĩnh
vực trí tuệ nhân tạo. Tuy nhiên, bài tốn này cũng gặp nhiều khó khăn và thách thức,
một số các yếu tố ảnh hưởng chính là:
● Độ sáng: Ánh sáng có ảnh hưởng lớn đến chất lượng của hình ảnh khn mặt.
Nếu ánh sáng q tối hoặc q sáng, các đặc trưng khuôn mặt sẽ bị mất hoặc bị
biến dạng, làm khó cho việc nhận dạng.
● Hướng nghiêng: Khi khn mặt khơng hướng về phía camera, các đặc trưng
khn mặt sẽ bị thay đổi theo góc nhìn. Điều này làm cho việc so sánh khuôn
mặt với các dữ liệu tham chiếu trở nên khó khăn hơn.
● Kích thước hình ảnh: Kích thước hình ảnh khn mặt cũng ảnh hưởng đến độ
chính xác của bài tốn nhận dạng. Nếu kích thước hình ảnh q nhỏ, các đặc
trưng khn mặt sẽ khơng rõ ràng và dễ bị nhiễu. Nếu kích thước hình ảnh quá
lớn, việc xử lý sẽ tốn nhiều thời gian và tài nguyên.
● Diện mạo: Diện mạo của khn mặt có thể thay đổi theo thời gian, do tuổi tác,
tình trạng sức khỏe, trang điểm, kiểu tóc, kính, râu, mũ... Những thay đổi này
có thể làm cho khn mặt trở nên khác biệt so với dữ liệu tham chiếu, gây khó
khăn cho việc nhận dạng.
● Biểu hiện cảm xúc: Biểu hiện cảm xúc của khuôn mặt cũng là một yếu tố ảnh
hưởng đến bài toán nhận dạng. Khi khn mặt cười, khóc, ngạc nhiên, tức
giận..., các đặc trưng khuôn mặt sẽ bị biến đổi, làm cho việc so sánh khuôn mặt
trở nên phức tạp hơn.
6
● Tham số môi trường: Một số tham số môi trường như nền ảnh, độ phân giải,
định dạng, màu sắc... cũng có thể ảnh hưởng đến bài tốn nhận dạng khn mặt.
Nếu nền ảnh q phức tạp, có nhiều đối tượng khác, hoặc có màu sắc gần với
màu da, việc phát hiện khn mặt sẽ gặp khó khăn. Nếu độ phân giải, định dạng,
màu sắc của hình ảnh khơng phù hợp, việc xử lý hình ảnh sẽ bị sai lệch.
Miền ứng dụng của bài tốn nhận dạng khn mặt cũng rất đa dạng, có thể kể
đến những lĩnh vực như bảo mật, an ninh, giáo dục, y tế, và giải trí, các ví dụ cụ thể
bao gồm:
● Bảo mật: Cơng nghệ nhận dạng khn mặt có thể được sử dụng để mở khóa
điện thoại, máy tính, cửa ra vào bằng khuôn mặt của người dùng. Đây là một
phương thức xác thực nhanh chóng, tiện lợi và an tồn.
● An ninh: Hệ thống nhận dạng khn mặt có thể được sử dụng để phát hiện, theo
dõi, xác minh hoặc nhận dạng các đối tượng nghi ngờ, nạn nhân, hoặc nhân
chứng trong các hoạt động thực thi pháp luật, kiểm soát sân bay, biên giới.
● Giáo dục: Hệ thống nhận dạng khuôn mặt cũng có thể được ứng dụng để kiểm
tra danh sách, theo dõi sự hiện diện, đánh giá hành vi, phản ứng, cảm xúc của
học sinh.
● Y tế: Các bệnh liên quan đến khuôn mặt, như ung thư da, Parkinson, Alzheimer
có thể áp dụng cơng nghệ nhận khn mặt để chẩn đốn giúp điều trị và phịng
ngừa sớm.
● Giải trí: Nhận dạng khn mặt có thể được sử dụng để nhận dạng người nổi
tiếng, hoặc tạo ra các hiệu ứng, bộ lọc, biến đổi trên khuôn mặt, trong các ứng
dụng, trị chơi và phim ảnh.
Ngồi ra, cịn rất nhiều ứng dụng khác nhưng trên đây là những lĩnh vực mà hệ
thống nhận dạng bằng khuôn mặt được ứng dụng nhiều nhất.
Qua chương 1, chúng tôi đã phát biểu được bài toán, đưa ra được đầu vào và
đầu ra của bài toán, và giới thiệu các lý thuyết liên quan đến bài toán.
7
CHƯƠNG 2: NHẬN DẠNG KHUÔN MẶT SỬ DỤNG
RETINAFACE VÀ ARCFACE
2.1.
Phát hiện khuôn mặt
2.1.1. Haar cascade
Theo tác giả bài viết [4], Haar Cascade là một thuật toán được tạo ra dựa trên
những đặc trưng để phát hiện đối tượng (có thể là khuôn mặt, mắt, tay, đồ vật…)
được đề xuất vào năm 2001 bởi Paul Viola và Michael Jones trong bài báo của họ
với khẳng định “Phát hiện đối tượng một cách nhanh chóng bằng cách sử dụng tầng
(Cascade) tăng cường các đặc trưng đơn giản”. Triển khai ban đầu được sử dụng để
phát hiện khn mặt chính diện và các đặc điểm như Mắt, Mũi và Miệng. Tuy nhiên,
có nhiều đặc trưng Haar được đào tạo trước đó trong GitHub của họ cho các đối
tượng khác cũng như cho toàn bộ cơ thể, thân trên, thân dưới, nụ cười và nhiều đồ
vật khác. Nói một cách dễ hiểu hơn, Haar Cascade là gì? Là một lớp model có thể
giúp chúng ta nhận diện khuôn mặt (Haar Cascade face detection) Haar Cascade sử
dụng các tầng Haar và sau đó sử dụng thật nhiều đặc trưng đó qua nhiều lượt
(Cascade) và tạo thành một cỗ máy nhận diện khn mặt hồn chỉnh.
Trong bài báo của tác giả Paul Viola và Michael Jones đã trình bày một phương
pháp mới và nhanh hơn để xử lý hình ảnh và phát hiện khn mặt bằng cách sử dụng
các đặc điểm hình chữ nhật như hình dưới đây. Các đặc điểm hình chữ nhật tương tự
được sử dụng để phát hiện các đặc điểm khác nhau của khn mặt như mắt và các
nốt như trong hình minh họa.
8
Hình 2.1: Các đặc trưng hình chữ nhật
Các đặc trưng hình chữ nhật được chạy lần lượt trên hình ảnh và tổng số pixel
nằm trong phần màu trắng được trừ cho tổng số pixel nằm trong phần màu đen.
Trong đó:
a) Là các bộ lọc bắt các cạnh trong ảnh
b) Bắt các đường thẳng trong ảnh
c) Về đặc trưng 4 hình vng
Trong hình minh họa bên dưới, đặc điểm hình chữ nhật đầu tiên đang tính tốn
cho sự khác biệt về cường độ giữa vùng mắt và vùng má trên khuôn mặt. Và đặc
điểm hình chữ nhật thứ hai là đo sự chênh lệch về cường độ giữa hai vùng mắt và
sống mũi. Bộ lọc Haar chỉ có thể nhìn cụ thể vào một vùng trong cửa sổ để nhận
diện.
9
Hình 2.2: Minh hoạ Haar Cascade
Vì vậy, sử dụng các đặc điểm hình chữ nhật này trên một hình ảnh, chúng ta có
thể tạo ra hàng nghìn điểm đặc trưng cho hình ảnh. Tuy nhiên, việc tính tốn tổng số
pixel trong các vùng trắng và đen trong toàn bộ ảnh có thể là một hoạt động tốn kém,
đặc biệt là đối với các ảnh lớn.
Các tác giả cũng đề xuất một phương pháp được gọi là ảnh tích phân có thể đạt
được tính tốn tương tự bằng cách thực hiện các phép tốn chỉ trên bốn điểm ảnh.
Có thể sử dụng hàng nghìn hình ảnh được gắn nhãn để chuyển đổi chúng thành bản
đồ đặc trưng tầng HAAR và đào tạo nó bằng cách sử dụng mơ hình học máy để tạo
bộ phân loại nhận diện khuôn mặt.
Sau đây là từng bước nhận diện khn mặt của Haar Cascade:
Hình 2.3: Cấu trúc tầng cho Haar Cascade
10
• Bước 1: Hình ảnh (đã được gửi đến bộ phân loại) được chia thành các phần nhỏ
(hoặc các cửa sổ con như trong hình minh họa).
• Bước 2: Chúng tơi đặt N khơng có bộ dị theo cách xếp tầng trong đó mỗi bộ
phát hiện sự kết hợp của các loại đặc trưng khác nhau từ các hình ảnh (ví dụ:
đường thẳng, cạnh, hình trịn, hình vng) được truyền qua. Giả sử khi việc
trích xuất đối tượng địa lý được thực hiện, mỗi phần phụ được gán một giá trị
tin cậy.
• Bước 3: Hình ảnh (hoặc hình ảnh phụ) có độ tin cậy cao nhất được phát hiện
dưới dạng khn mặt và được gửi đến bộ tích lũy trong khi phần cịn lại bị từ
chối. Do đó, Cascade tìm nạp khung hình / hình ảnh tiếp theo nếu cịn lại và bắt
đầu lại quá trình.
Haar cascade là một phương pháp phát hiện đối tượng trong thị giác máy tính.
Dưới đây là điểm mạnh và điểm yếu của Haar cascade:
Về điểm mạnh của Haar cascade, Haar cascade được thiết kế để hoạt động
nhanh chóng trên các hệ thống tính tốn có giới hạn. Các tính tốn Haar được thực
hiện bằng cách sử dụng các phép tính tốn đơn giản như phép cộng, trừ và tích chập,
giúp giảm thời gian tính tốn so với các phương pháp phức tạp hơn. Khơng những
thế, Haar cascade có khả năng phát hiện đối tượng với độ chính xác cao. Nó sử dụng
một tập hợp các đặc trưng Haar để phân biệt đối tượng khỏi nền, đồng thời sử dụng
các bộ phân loại để xác định xem đối tượng đó có tồn tại hay khơng. Khi được đào
tạo chính xác, Haar cascade có thể đạt được độ chính xác cao.
Về điểm yếu của Haar cascade, Haar cascade có thể khơng hoạt động tốt trong
điều kiện ánh sáng yếu hoặc đối tượng và nền có màu sắc tương tự nhau. Điều này
có thể dẫn đến việc phát hiện sai hay bỏ sót đối tượng. thêm nữa, Haar cascade không
phải là một phương pháp phát hiện đối tượng thơng qua việc học máy. Thay vào đó,
nó dựa vào việc sử dụng các đặc trưng Haar được xác định trước. Điều này có nghĩa
là Haar cascade có thể gặp khó khăn trong việc phát hiện các đối tượng mới, chưa
được đào tạo trước đó hoặc có dạng phức tạp.
11
Như vậy với những ưu và nhược điểm trên, chúng tơi quyết định khơng sử dụng
mơ hình Haar Cascade là phương pháp chính để giải quyết bài tốn biểu diễn khuôn
mặt.
2.1.2. MTCNN
Theo tác giả bài viết [5], MTCNN (Multi-task cascaded convolutional neural
networks) là một trong những công cụ phổ biến và chính xác nhất để phát hiện khn
mặt hiện nay. MTCNN gồm 3 mạng được kết nối với nhau theo kiểu tầng, mỗi mạng
thực hiện một tác vụ cụ thể.
MTCNN hoạt động theo 3 bước, mỗi bước có một mạng neural riêng lần lượt
là: P-Net, R-Net và O-net. Với mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều bản sao của
hình ảnh đó với các kích thước khác nhau.
Hình 2.4: Mơ hình MTCNN
Tại P-Net, thuật tốn sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để tìm
kiếm khn mặt. convolution thứ 3, mạng chia thành 2 lớp. Convolution 4-1 đưa ra
xác suất của một khuôn mặt nằm trong mỗi bounding boxes, và Convolution 4-2
cung cấp tọa độ của các bounding boxes.
12
Hình 2.5: Kiến trúc P-Net
R-Net có cấu trúc tương tự với P-Net. Tuy nhiên sử dụng nhiều layer hơn. Tại
đây, network sẽ sử dụng các bounding boxes đc cung cấp từ P-Net và tinh chỉnh là
tọa độ. Tương tự R-Net chia ra làm 2 layers ở bước cuối, cung cấp 2 đầu ra đó là tọa
độ mới của các bounding boxes, cùng độ tin tưởng của nó.
13
Hình 2.6: Kiến trúc R-Net
O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dấu các tọa độ của
các mốc trên khn mặt. Ở bước này, thuật tốn đưa ra 3 kết quả đầu ra khác nhau
bao gồm: xác suất của khuôn mặt nằm trong bounding box, tọa độ của bounding box
và tọa độ của các mốc trên khn mặt (vị trí mắt, mũi, miệng)
14
Hình 2.7: Kiến trúc O-Net
Điểm mạnh của MTCNN:
● Độ Chính Xác Cao: MTCNN nổi bật với khả năng phát hiện khn mặt chính
xác, ngay cả trong các điều kiện khó khăn như góc nhìn lệch hay che khuất.
15
● Phát Hiện Đa Quy Mơ: Cơng nghệ này có khả năng phát hiện khn mặt ở
nhiều kích cỡ và quy mơ khác nhau, làm cho nó rất linh hoạt và hữu ích trong
nhiều tình huống.
● Đánh Dấu Điểm Chính Trên Khn Mặt: Ngồi việc phát hiện khn mặt,
MTCNN cịn có thể đánh dấu các điểm chính trên khn mặt (như mắt, mũi,
miệng), hỗ trợ các ứng dụng như nhận dạng và phân tích biểu cảm khn mặt.
● Cấu Trúc Mạng Lưới Linh Hoạt: MTCNN sử dụng ba mạng lưới CNN xếp
chồng lên nhau, mỗi mạng thực hiện một tác vụ cụ thể, cho phép mơ hình được
tối ưu hóa tốt hơn.
Điểm yếu của MTCNN:
● u Cầu Tính Tốn Cao: Do sử dụng ba mạng CNN liên tiếp, MTCNN có thể
u cầu nhiều tài ngun tính tốn, làm giảm hiệu suất trong một số hệ thống.
● Thời Gian Xử Lý: Trong một số trường hợp, đặc biệt với hình ảnh có độ phân
giải cao hoặc có nhiều khn mặt, thời gian xử lý của MTCNN có thể tăng lên
đáng kể.
● Khả Năng Đối Phó Với Biến Thể Cực Đoan: Mặc dù MTCNN hiệu quả với
nhiều điều kiện khác nhau, nhưng nó có thể gặp khó khăn khi đối mặt với các
biến thể cực đoan như khuôn mặt bị che khuất hồn tồn hoặc góc nhìn rất
lệch.
● Khó Khăn Trong Tối Ưu Hóa: Việc tối ưu hóa MTCNN đơi khi có thể trở nên
phức tạp do cần phải xem xét tác động của mỗi mạng lưới con đối với tồn bộ
mơ hình.
Như vậy với những ưu và nhược điểm trên, chúng tơi thấy mơ hình MTCNN
khơng phải là phương pháp chính để giải quyết bài tốn phát hiện khn mặt.
2.1.3. RetinaFace
RetinaFace ra đời vào năm 2019 được nhóm tác giả xuất bản trong bài báo có
tên “RetinaFace: Single-Shot Multi-Level Face Localisation in the Wild” [6]. Đây
là một mơ hình phát hiện khn mặt một giai đoạn mạnh mẽ, nó thực hiện định vị
khuôn mặt theo pixel trên nhiều tỷ lệ khuôn mặt khác nhau bằng cách tận dụng khả
16
năng học tập đa tác vụ tự giám sát (self-supervised multi-task learning) và tự giám
sát bổ sung (joint extra-supervised). Cho đến hiện tại, mơ hình này đang cho kết quả
cao trên các benchmarks khác nhau.
Hình 2.8: Kiến trúc RetinaFace
Mạng RetinaFace bao gồm 3 thành phần chính:
● Feature Pyramid Network: Hình ảnh đầu vào được lấy và đưa ra các feature
maps có tỷ lệ khác nhau (các khối từ P2 đến P6). Bốn feature maps đầu tiên
(khối từ P2 đến P5) được tính tốn bằng ResNet đã được huấn luyện trước trên
tập dữ liệu imagenet-11k. Feature map trên cùng (khối P6) là tích chập 3x3 với
stride là 2 trên khối C5. Mục tiêu của feature pyramid là để giúp mơ hình có thể
nhìn được các feature bậc thấp lẫn các feature bậc cao, qua đó giúp mơ hình
phân loại được các khn mặt có kích thước khác nhau trong ảnh.
● Context Module: Để tăng cường khả năng mơ hình hóa bối cảnh, mạng tích
chập biến dạng (deformation convolutional network) được sử dụng trong môđun này trên các feature maps ngoại trừ tích chập 3x3 thơng thường. Ý tưởng
chính của context module là việc mở rộng receptive field để trích xuất các thơng
tin bên ngồi khn mặt. Việc áp dụng context module giúp cho mơ hình
retinaface có thể học thêm các thơng tin liên quan tới ngữ cảnh trong bức ảnh.
● Cascade Multi-task Loss: Để cải thiện việc định vị khuôn mặt, hồi quy tầng
(cascade regression) được sử dụng cùng với hàm chi phí đa tác vụ (multi-task
loss) như mơ tả ở trên. Context head module đầu tiên dự đoán hộp giới hạn bằng
cách sử dụng các neo thông thường và sau đó các modules tiếp theo dự đốn
hộp giới hạn chính xác hơn bằng cách sử dụng các neo hồi quy.