Hệ thống sử dụng các thuật toán và công cụ tiên tiến để phát hiện và trích xuất các đặc trưng khuôn mặt từ hình ảnh hoặc video, sau đó so sánh chúng với các đặc trưng đã lưu trữ trong cơ
Trang 1ĐẠ I H Ọ C QU Ố C GIA THÀNH PH Ố H Ồ CHÍ MINH
ĐẠ I H Ọ C KHOA H Ọ C T Ự NHIÊN
XÂY DỰ NG HỆ THỐ NG KIỂM SOÁT TRUY CẬP
BẰ NG NHẬ N DIỆ N KHUÔN MẶT
TP.HCM, ngày 20 tháng 04 năm 2023
Giảng viên:
PGS.TS:Vũ Hải Quân Th.S: Cao Xuân Nam
Thự c hiện đ tài:
22C15006: Nguyễn Y Hợ 22C15010: Nguyễn Đăng Khoa 22C11009: Nguyễn Hoàng Linh
Trang 2MỤC LỤC
I Thông tin chung 3
1.1 Thông tin thành viên nhóm 3
1.2 Phân công công việc 3
1.3 Tóm tắt nội dung chính 3
II N ội dung báo cáo 4
2.1 Tóm tắt 4
2.2 Giớ i thiệu 4
2.3 Các công trình nghiên cứ u liên quan 5
2.3.1 Các nghiên cứu liên quan đến phát hiện khuôn mặt 5
2.3.2 Các nghiên cứu liên quan đến nhận dạng khuôn mặt 7
2.4 Phát triển các module trong hệ thống nhận diện khuôn mặt 7
2.4.1 Phát triển module phát hiện khuôn mặt 7
2.4.2 Phát triển module nhận dạng khuôn mặt 9
2.4.3 Phát triển module phân loại đeo khẩu trang 10
2.5 Xây dự ng hệ thống kiểm soát truy cập bằng khuôn mặt 11
2.5.1 Các thành phần của hệ thống 12
2.5.2 Phần giao diện ngườ i dùng 13
2.5.3 Phần giao diện quản lý 13
2.6 Thự c nghiệm 14
2.6.1 Huấn luyện và đánh giá mô hình phát hiện khuôn mặt 14
2.6.2 Huấn luyện và đánh giá mô hình nhận dạng khuôn mặt 14
2.6.3 Huấn luyện và đánh giá mô hình phân loại khẩu trang 15
2.7 Kết luận 17
III Mã nguồ n, demo 17
3.1 Cấu trúc mã nguồn 17
3.2 Các chức năng chính của hệ thống và demo 17
3.2.1 Các chức năng chính của hệ thống 17
3.2.2 Demo 18
IV: Tài liệu tham khả o 18
Trang 3I Thông tin chung
1.1 Thông tin thành viên nhóm
22C15006 Nguyễn Y Hợ p 22C15006@student.hcmus.edu.vn 0969902402 22C15010 Nguyễn Đăng Khoa 22C15010@student.hcmus.edu.vn
22C11009 Nguyễn Hoàng Linh 22C11009@student.hcmus.edu.vn
1.2 Phân công công việc
Nguyễn Y Hợ p • Đọc tìm hiểu các công trình nghiên cứu về đề tài phát hiện và nhận
dạng khuôn mặt
• Tìm kiếm data training model phát hiện khuôn mặt
• Tìm kiếm data training model nhận dạng khuôn khuôn mặt
• Hoàn thành mã nguồn phát hiện và nhận dạng khuôn mặt
• Training và đánh giá độ chính xác của mô hình phát hiện và nhận dạng khuôn mặt
• Đánh giá độ chính xác mô hình phát hiện khuôn mặt
• Tổng hợp và hoàn thành báo cáo đồ án Nguyễn Đăng Khoa • Tìm kiếm và tự build mô hình face recognition, nhưng độ chính xác
thấ p
• Tìm hiểu kiến trúc hệ thống liên quan đến nhận diện, truy xuất đặc trưng (faiss)
• Xây dựng hệ thống các services để tương tác giữa dữ liệu gửi từ ngườ i dùng, và model nhận diện object, mặt ngườ i
• Face detection cho web để tránh spam verify message tớ i server, giúp phục vụ nhiều yêu cầu đồng thời hơn.
• Chuẩn hóa các vector đặc trưng và service tìm kiếm các vector tương tự dựa trên cosine (faiss)
• Thiết k ế tương tác giữa các service và triển khai ứng dụng cho 3 model face detection, face recognition và facemask classification
Nguyễn Hoàng Linh • Tìm kiếm data chứa hai loại ảnh: người đeo khẩu trang và ngườ i không
đeo khẩu trang
• Sử dụng model phát hiện khuôn mặt để chuyển tập data ban đầu thành
tậ p data chỉ chứa khuôn mặt, các thành phần khác như background sẽ đượ c loại bỏ
• Train và đánh giá độ chính xác của mô hình nhận biết người đeo khẩu trang
• Đánh giá độ chính xác của mô hình nhận dạng khuôn mặt
1.3 Tóm tắt nội dung chính
• Các công trình nghiên cứu liên quan đến phát hiện và nhận dạng khuôn mặt
• Phát triển module phát hiện khuôn mặt
• Phát triển module nhận diện khuôn mặt
• Phát triển module phân lớp người có đeo khẩu không
• Xây dựng hệ thống kiểm soát truy cậ p bằng nhận diện khuôn mặt
Trang 4II Nội dung báo cáo
2.1 Tóm tắt
Hệ thống phát hiện và nhận diện khuôn mặt ngày càng tr ở nên quan tr ọng trong nhiều ứng dụng, như an ninh, kiểm soát truy cậ p và quản lý điểm danh Hệ thống sử dụng các thuật toán và công cụ tiên tiến để phát hiện và trích xuất các đặc trưng khuôn mặt từ hình ảnh hoặc video, sau đó so sánh chúng với các đặc trưng đã lưu trữ trong cơ sở dữ liệu để xác định một ngườ i
Trong nghiên cứu này, chúng tôi xây dựng một hệ thống nhận diện khuôn mặt theo thờ i gian thực có thể phát hiện và nhận diện khuôn mặt chính xác và nhanh chóng trong các tình huống thực tế Hệ thống sử dụng phương pháp học sâu tiên tiến cho phát hiện và trích xuất đặc trưng khuôn mặt Ngoài chức năng phát hiện và nhận diện khuôn mặt, hệ thống còn hỗ tr ợ phát hiện và từ chối các trườ ng hợp đeo khẩu trang Hệ thống có một giao diện đồ họa thân thiện với người dùng để dễ dàng sử dụng và quản lý
Để đánh giá hiệu suất của hệ thống, các thử nghiệm đã đượ c tiến hành trên các bộ dữ liệu đượ c đượ c công bố như WIDER FACE [14] cho tác vụ phát hiện khuôn mặt, VN-Celeb [16] cho tác vụ nhận dạng khuôn mặt Ngoài ra chúng tôi cũng tiến hành so sánh vớ i các phương pháp truyền thống vớ i cùng tậ p đánh giá K ết quả cho thấy r ằng hệ thống đề xuất đạt được độ chính xác và hiệu quả cao trong các tác vụ phát hiện và nhận diện khuôn mặt và có khả năng xử lý trong thờ i gian thực Mã nguồn có thể tham khảo tại đây:
• Face detection: https://github.com/genkerizer/Face_det
• Face recognition: https://github.com/genkerizer/Face_recognition
• Mask classification: https://github.com/genkerizer/Mask_classification
• Facial recognition system:
https://github.com/khoa-nguyendang/advanced-ai-programming-infrastructure 2.2 Giớ i thiệu
Phát hiện và nhận diện khuôn mặt đã trở thành đề tài đượ c quan tâm nghiên cứu vớ i nhiều ứng dụng thực tiễn trong cuộc sống như thực thi pháp luật, kiểm soát truy cậ p và quản lý điểm danh, cho phép xác định cá nhân một cách nhanh chóng và chính xác, làm cho nó tr ở thành một thành phần cần thiết của nhiều ứng dụng Sự phát triển của phát triển của phát hiện và nhận diện khuôn mặt đã đượ c thực hiện nhờ sự tiến bộ trong các thuật toán thị giác máy tính và học máy
Hệ thống phát hiện và nhận diện khuôn mặt bao gồm hai giai đoạn chính: phát hiện khuôn mặt và nhận diện khuôn mặt Phát hiện khuôn mặt là quá trình định vị và trích xuất các khuôn mặt từ một hình ảnh hoặc video Quá trình bao gồm phân tích hình ảnh để xác định các khu vực có thể chứa khuôn mặt và sau đó cô lậ p các vùng đó để xử lý tiế p Nhận diện khuôn mặt, ngượ c lại, là quá trình so sánh các đặc trưng khuôn mặt trích xuất với các đặc trưng được lưu trữ trong cơ sở dữ liệu để xác định một ngườ i
Trong những năm qua, các nhà nghiên cứu đã phát triển các k ỹ thuật khác nhau cho phát hiện và nhận diện khuôn mặt, bao gồm các phương pháp thị giác máy tính truyền thống và các phương pháp dựa trên học sâu Các phương pháp thị giác máy tính truyền thống dựa trên các đặc trưng đượ c tạo bởi con ngườ i, chẳng hạn như các đặc trưng Haar và Local Binary Patterns (LBP), để phát hiện và nhận diện khuôn mặt Tuy nhiên, các phương pháp này có những hạn chế, chẳng hạn như độ chính xác thấ p và nhạy cảm với thay đổi ánh sáng và vật che khuất
Ngượ c lại, các phương pháp dựa trên học sâu đã cho thấy hiệu suất đáng kể trong các tác vụ phát hiện và nhận diện khuôn mặt Các phương pháp này sử dụng mạng neural tích chập (CNN) để học các đặc trưng trực tiế p
từ dữ liệu đầu vào, làm cho chúng mạnh mẽ hơn đối vớ i các biến thể về ánh sáng, tư thế và biểu cảm Những tiến bộ gần đây trong các phương pháp phát hiện và nhận diện khuôn mặt dựa trên học sâu đã đạt được độ chính xác và tốc độ tốt nhất hiện nay
Trong nghiên cứu này, đầu tiên chúng tôi khảo sát một số phương pháp phát hiện và nhận dạng khuôn mặt mớ i nhất hiện nay Dựa trên những khảo sát chúng tôi xây dựng hệ thống phát hiện và nhận dạng khuôn mặt Tiế p
đó, chúng tôi tối ưu tốc độ xử lý để hệ thống có thể phát hiện và nhận diện khuôn mặt theo thờ i gian thực Ngoài ra chúng tôi phát triển thêm tính năng chuyên biệt phát hiện và từ chối định danh các đối tượng đeo khẩu trang K ết quả về độ tin cây được đánh giá trên tậ p dữ liệuWIDER FACE vớ i tác vụ phát hiện khuôn
Trang 5mặt, VN-Celeb đối vớ i tác vụ nhận dạng khuôn mặt Cuối cùng so sánh với các phương pháp không sử dụng học sâu.
2.3 Các công trình nghiên cứ u liên quan
2.3.1 Các nghiên cứu liên quan đến phát hiện khuôn mặt
Nhận diện khuôn mặt là bước đầu cần thiết cho các tác vụ như nhận dạng khuôn mặt, phân loại thuộc tính khuôn mặt, chỉnh sửa khuôn mặt, và theo dõi khuôn mặt, và hiệu suất của quá trình này có tác động tr ực tiế p
về hiệu quả của các nhiệm vụ đó [1], [2] Mặc dù đã có những cải tiến đã đượ c thực hiện trong phát hiện khuôn mặt không đượ c kiểm soát trong vài thậ p k ỷ qua, tuy nhiên phát hiện khuôn mặt chính xác và hiệu quả trong điều kiện thực tế vẫn là một thách thức mở Điều này xảy ra do các yếu tố như sự thay đổi trong tư thế, nét mặt, tỷ lệ, chiếu sáng, biến dạng hình ảnh, che khuất khuôn mặt, v.v các nhân tố
Khác vớ i phát hiện đối tượ ng nói chung, khuôn mặt có các biến thể có kích thướ c nhỏ trong tỷ lệ khung hình, nhưng nhiều khuôn mặt lại có các biến thể lớn hơn về tỷ lệ (từ vài điểm ảnh đến hàng nghìn điểm ảnh) Những nỗ lực phát hiện khuôn mặt ban đầu chủ yếu dựa trên phương pháp cổ điển, trong đó các đặc điểm thủ công đượ c trích xuất từ hình ảnh (hoặc từ cửa sổ trượ t trên hình ảnh) và được đưa vào một bộ phân loại (hoặc tậ p hợ p các bộ phân loại) để phát hiện các vùng có khả năng là khuôn mặt Hai công trình nghiên cứu mang tính bướ c ngoặc cho nhận diện khuôn mặt là bộ phân loại Haar Cascades [3] và Histogram of Oriented Gradients (HOG) theo sau bộ phân loại sử dụng SVM [4]
Hình 1: Các thách thức trong bài toán phát hiện khuôn mặt Tuy nhiên, độ chính xác của nhận diện khuôn mặt là vẫn còn hạn chế về hình ảnh đầy thách thức vớ i nhiều các yếu tố ảnh hưởng như trong Hình 1 Cùng vớ i sự phát triển mạnh mẽ của phần cứng tính toán đã dẫn đến thành công r ực r ỡ của deep learning trong lĩnh vực thị giác máy tính (Computer vision),Có nhiều phương pháp đượ c
đề xuất để phát hiện khuôn mặt sử dụng các kiến trúc học sâu khác nhau đượ c phân loại thành các nhóm sau:
• Các mô hình dựa trên Cascade-CNN
• Mô hình dựa trên R-CNN
• Single shot detection model
• Feature Pyramid Network Based Models
• Kiến trúc khác
Trang 6Hình 2: Các thuật toán face detection từ năm 2015 đến 2020 [5]
Một số công trình nghiên cứu nổi bật hiện nay như Retinaface [6], DSFD [7], Aware Face Detection [8]. RetinaFace là một phương pháp sử dụng FPN để trích xuất các đặc trưng hình ảnh, do đó phương pháp này hiệu quả đối vớ i các khuôn mặt có kích thước khác nhau Ngoài ra, đây là phương pháp phát hiện khuôn mặt một giai đoạn (one-stage) RetinaFace thực hiện nhận diện khuôn mặt theo cách đa tác vụ Cụ thể, mô hình dự đoán 4 thành phần: độ tin cậy, vùng ảnh chứa khuôn mặt, năm điểm neo khuôn mặt (2 mắt, mũi, hai điểm bên mép miệng và các đỉnh 3D khuôn mặt trên mặt phẳng ảnh.
Hình 3: Minh họa k ết quả dự đoán của Retinaface
DSFD: Dual Shot Face Detector áp dụng hai bước để phát hiện khuôn mặt trên ảnh Bước đầu tiên là sử dụng một mạng neural để tạo ra các vùng đề xuất (proposals) trên ảnh, các vùng này có thể chứa khuôn mặt hoặc không Mạng neural này đượ c huấn luyện để phát hiện các đặc trưng của khuôn mặt như đườ ng viền, điểm mắt, mũi, miệng, v.v Bướ c thứ hai là sử dụng một mạng neural khác để phân loại các vùng đề xuất đã đượ c tạo ra ở bước trước đó, xác định chúng có chứa khuôn mặt hay không Mạng neural này đượ c huấn luyện vớ i các bộ dữ liệu chứa các khuôn mặt và không chứa khuôn mặt Phương pháp này có thể phát hiện các khuôn mặt nhỏ và xoay với độ chính xác cao
Scale-Aware Face Detection sử dụng một phương pháp độc đáo để phát hiện khuôn mặt trên ảnh vớ i sự chú ý đặc biệt đến tỉ lệ kích thướ c của khuôn mặt, một mô hình mạng neural để tạo ra một số lượng các vùng đề xuất (proposals) trên ảnh, các vùng này có thể chứa khuôn mặt hoặc không Cụ thể, mô hình này sẽ tính toán tỉ lệ kích thướ c giữa khuôn mặt và vùng đề xuất, và sử dụng k ết quả này để xác định độ tin cậy của vùng đề xuất
đó Nếu tỉ lệ kích thướ c giữa khuôn mặt và vùng đề xuất là lớn, điều này cho thấy vùng đó không chứa khuôn mặt và giá tr ị độ tin cậy sẽ thấp Ngượ c lại, nếu tỉ lệ kích thướ c giữa khuôn mặt và vùng đề xuất là nhỏ, điều này cho thấy vùng đó chứa khuôn mặt và giá tr ị độ tin cậy sẽ cao
Trang 72.3.2 Các nghiên cứu liên quan đến nhận dạng khuôn mặt
Nhận dạng khuôn mặt Face recognition (FR) đã trở thành sinh tr ắc học nổi bật vớ i k ỹ thuật xác thực danh tính
đã đượ c sử dụng r ộng rãi nhiều lĩnh vực, chẳng hạn như quân sự, tài chính, an ninh công cộng và cuộc sống hàng ngày FR đã là một chủ đề nghiên cứu lâu đời Vào đầu những năm 1990, nghiên cứu về FR đã trở nên phổ biến sau khi vớ i cách tiế p cận Eigenface [15]
Hình 4: Quá trình phát triển của face recognition [9]
Sự phát triển của mạng thần kinh học sâu đóng một vai trò quan tr ọng trong lĩnh vực nhận dạng khuôn mặt Quy trình chung là mạng học sâu trích xuất một đặc trưng cho mỗi hình ảnh đầu vào Quá trình máy học sẽ dần dần thu hẹ p khoảng cách trong các lớ p giống nhau và mở r ộng khoảng cách giữa các lớ p khác nhau Hiện tại, các phương pháp thành công trong phân vùng các lớ p khác nhau bằng cách sử dụng softmax hoặc các biến thể của nó Dướ i dây là một số công trình tiêu biểu:
FaceNet [10], công trình này đề xuất một mô hình nhận diện khuôn mặt sử dụng deep learning để tạo ra một biểu diễn số học cho các khuôn mặt Mô hình sử dụng một mạng neural tích chập (CNN) để học các đặc trưng của khuôn mặt và tạo ra một vector nhúng mà có thể đượ c sử dụng để phân biệt giữa các khuôn mặt khác nhau. SphereFace [11] đề xuất một phương pháp nhúng mới để đại diện cho các khuôn mặt trong không gian siêu cầu Mô hình này sử dụng một CNN để học các đặc trưng của khuôn mặt và tạo ra một vector nhúng trong không gian siêu cầu mà có tính chất đồng nhất và khả năng phân biệt tốt giữa các khuôn mặt khác nhau. ArcFace [12] sử dụng một hàm mất mát mới để cải thiện độ chính xác của mô hình nhận diện khuôn mặt Hàm mất mát này đượ c thiết k ế để tạo ra một khoảng cách lớ n giữa các khuôn mặt khác nhau và tạo ra một vùng lân cận cho mỗi lớ p khuôn mặt để giúp mô hình phân biệt tốt hơn giữa các lớ p khác nhau.
Mô hình Partial FC [13] là một mô hình nhận diện khuôn mặt sử dụng mạng neural để tạo ra một biểu diễn số học cho khuôn mặt Mô hình này sử dụng một phương pháp mớ i gọi là Partial Connection để tăng tốc độ tính toán và giảm bộ nhớ yêu cầu trong quá trình huấn luyện Thay vì k ết nối tất cả các nút đầu vào với các nút đầu
ra trong các tầng ẩn, mô hình Partial FC chỉ k ết nối một phần các nút đầu vào với các nút đầu ra Điều này giúp giảm số lượ ng tham số trong mô hình và giảm thờ i gian tính toán trong quá trình huấn luyện, đồng thờ i vẫn đảm bảo độ chính xác của mô hình Mô hình Partial FC đã đạt đượ c hiệu suất tốt trên nhiều bộ dữ liệu nhận diện khuôn mặt, vượt qua các mô hình trước đó về tốc độ và độ chính xác
2.4 Phát triển các module trong hệ thống nhận diện khuôn mặt
2.4.1 Phát triển module phát hiện khuôn mặt
Để phát triển module phát hiện khuôn mặt, chúng tôi sử dụng Retinaface do có những ưu điểm về độ chính xác, tốc độ xử lý, k ết quả tr ả về có thêm các đặc trưng như mắt mũi, miệng
Trang 8Hình 5: Kiến trúc của Retinaface Kiến trúc của Retinaface đượ c mô tả tổng quát như Hình 5: Backbone, neck, head, tuy nhiên chúng tôi điều chỉnh lại Backbone để tối ưu thờ i gian xử lý
Backbone:Retinaface sử dụng backbone Mobilenet v1, tuy nhiên đượ c tinh chỉnh lại để phù hợ p vớ i tác vụ
xử lý khuôn mặt bằng việc loại bỏ layer average pooling và fully connected
• Inputs: H x W x 3
• Ouputs: [(H/8) x (W/8) x 64, (H/16) x (W/16) x 128, (H/32) x (W/32) x 256]
Thờ i gian xử lý vớ i một ảnh đầu vào có kích thướ c 640 x 640 x 3 là: 0.0232s
Neck:Kĩ thuật đượ c sử dụng tại neck là FPN, tại đó, features map có kích thướ c nhỏ sẽ upsample bằng vớ i kích thướ c của features map lớ n (tại vị trí liền k ề nhau) sau đó cộng vào nhau để đượ c 1 feature map mớ i Mục đích khi sử dụng FPN đảm bảo mô hình có thể xử lý đượ c các khuôn mặt vớ i nhiều dạng kích thướ c khác nhau Để tăng thêm tốc độ xử lý, số lượ ng channel xuống còn 64
Head: Đầu ra của mô hình gồm 3 head (tr ả về 3 thông tin cần dự đoán):
• ClassHead: tr ả về features map có số channel = số lượng anchor * 2, dùng để dự đoán tại vị trí đó có hay không khuôn mặt
• BboxHead: tr ả về features map có số channel = số lượng anchor * 4, dùng để dự đoán 4 thông tin của bounding box [x, y, h, w]
• LandmarkHead: tr ả về features map có số channel = số lượ ng anchor * 10, mục đích dự đoán 5 tạo
để điểm đánh dấu của khuôn mặt (2 mắt, mũi, 2 mép miệng)
Do mô hình cần dự đoán nhiều thông tin nên đượ c training theo multi-task
L =1Lclass +2L bbox+3Llandmark Trong đó:
• L1: Hàm lỗi tối ưu xác suất xuất hiện khuôn mặt vớ i 2 giá tr ị 0, không có khuôn mặt, 1 xuất hiện khuôn mặt tại anchor được đề cập đến
• L2: Hàm regression loss dùng để xác định tọa độ bounding box chứa khuôn mặt gồm các gì tr ị [x, y, h, w]
• L3: Cũng là một hàm regression loss dùng để xác định 5 điểum neo cho khuôn mặt [(x1, y1), (x2, y2), (x3, y3), (x4, y4), (x5, y5)]
Các tham số 1, 2, 3 đượ c tỉnh chỉnh để phù hợ p vớ i mức độ quan trong của từng hàm loss trong quá trình training
Tối ưu Face detection module
Trong quá trình phát triển module xuất hiện 2 vấn đề sau:
• Những ảnh có kích thướ c lớn đẫn dến tốc độ xử lý chậm, thờ i gian xử lý có thể lên đến 3-4 giây vớ i ảnh có kích thướ c 3000 x 4000
• Đối vớ i các ảnh có kích thướ c lớn, đôi khi sẽ xuất hiện các trườ ng hợ p khuôn mặt có kích thướ c r ất
lớ n không phát hiện đượ c (Hình 6)
RetinaHead (Head)
FPN (Neck) MobinetV1
(Backbone)
Trang 9Hình 6: Các vấn đề gặ p phải đối vớ i ảnh có kích thướ c r ất lớ n
Do đó để giải quyết 2 vấn đề như trên, ảnh đầu vào đượ c xử lý với kích thước đượ c resize theo tỉ lệ đảm bảo đầu vào có kích thướ c h = 640 hoặc w = 640, Khi đó thờ i gian xử lý đượ c tối ưu (khoảng 0.05s cho một ảnh)
và có thể giải quyết vấn đề khuôn mặt quá lớ n
2.4.2 Phát triển module nhận dạng khuôn mặt
Nhóm sử dụng công trình nghiên cứu Partial FC: Training 10 million Identities on a Single Machine để phát triển module nhận diện khuôn mặt
Hình 7: Kiến trúc Partial FC sử dụng backbone MobileFaceNet Kiến trúc gồm 2 thành phần chính (Hình 7): Backbone dùng để trích xuất đặc trưng và Partical FC dùng để biểu diển đặc trưng sao cho các khuôn mặt giống nhau thì gần nhau và ngượ c lại
Backbone: Nhóm sử dụng Mobile FaceNet (Hình 8) làm backbone để trích xuất đặc trưng khuôn mặt thay vì dùng Resnet 50 nhằm mục đích cải thiện tốc độ xử lý
Tuy nhiên nhóm vẫn training một bản thử nghiệm với backbone resnet50, nhưng do không có đủ phần cứng
và hạn chế về thờ i gian training trên google colab nên vẫn chưa hoàn thành kị p tiến độ dự kiến
Partial FC (Loss) MobileFaceNet
(Backbone)
Trang 10Hình 8: Kiến trúc của backbone MobileFaceNet Hình ảnh đầu vào của khuôn mặt đượ c xử lý về kích thướ c 112 x 112, sau khi xử lý sẽ đượ c features map có kích thướ c 1 x 1 x 512 Đây chính là vector dùng để biểu diễn đặc trưng của khuôn mặt
Loss: Vớ i mục tiêu cực tiêu hóa khoảng cách giữa các đặc trưng khuôn mặt của cùng 1 ngườ i và cực đại hóa khoảng cách giữa các khuôn mặt khác nhau, trong bài toán nhận dạng khuôn mặt, hai hàm loss đượ c sử dụng
là Dist Cross Entropy loss và Margin loss
• Dist Cross Entropy loss: Đây là một hàm loss dựa trên khoảng cách Euclide giữa các đặc trưng của các khuôn mặt Hàm loss này đo lườ ng khoảng cách giữa đặc trưng của một khuôn mặt với đặc trưng của các khuôn mặt trong cùng một lớp và đặc trưng của các khuôn mặt trong những lớ p khác nhau Mục tiêu của hàm loss là đảm bảo r ằng các khuôn mặt của cùng một lớp được đặt gần nhau trong không gian đặc trưng, trong khi các khuôn mặt của các lớp khác nhau được đặt xa nhau
• Margin loss: Đây là một loss dựa trên khoảng cách Cosine giữa các đặc trưng của các khuôn mặt Hàm loss này đảm bảo r ằng các khuôn mặt của cùng một lớ p có khoảng cách Cosine nhỏ hơn so vớ i các khuôn mặt của những lớ p khác nhau Mục tiêu của hàm loss đo lườ ng mức độ phân tách giữa các lớ p bằng cách đảm bảo khoảng cách giữa các đặc trưng của khuôn mặt cùng lớ p là nhỏ hơn một ngưỡ ng được xác định trướ c
Cả hai hàm mất mát này đều nhằm tăng cườ ng khả năng phân loại của mô hình và đảm bảo r ằng các khuôn mặt của cùng một lớp được đặt gần nhau trong không gian đặc trưng
2.4.3 Phát triển module phân loại đeo khẩu trang
Nguyên nhân: Do module phát hiện khuôn mặt vẫn phát hiện đượ c khuôn mặt khi đeo khẩu trang, điều này dẫn đến r ủi ro cho hệ thống khi đăng ký khuôn mặt vào cơ sở dữ liệu cũng như xác nhận khuôn mặt Do đó cần có một bộ phân loại để loại bỏ các trườ ng hợp đeo khẩu trang
Xác định cấu trúc model
Mạng Convolutional Neural Network (CNN) đượ c ứng dụng r ộng rãi trong các bài toán xử lý ảnh Trong bài này, chúng ta sẽ xây dựng một mạng CNN vớ i cấu trúc như hình bên dướ i Lớ p input nhận vào một ảnh có 3 channel và kích thước 32 x 32 Kích thước này đượ c tham khảo từ Kaggle blog. Vì đặc trưng khẩu trang khá
rõ ràng, nên dù kích thướ c input nhỏ, nhưng model vẫn cho k ết quả chấ p nhận đượ c Tại hidden layer, ta k ết
hợ p lớ p convolution và lớp max pool để làm giảm kích thướ c của ảnh mà vẫn giữ lại thông tin của bức ảnh nhiều nhất Lớ p flatten giúp chuyển data trên các convolution filter từ dạng đa chiều về một chiều Sau lớ p flatten, bức ảnh có kích thước 3 x 32 x 32 đã đượ c chuyển đổi về dạng mảng 1 chiều của 300 đặc trưng Tại