Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
3,5 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC KHOA HỌC TỰ NHIÊN CHUYÊN NGÀNH: TRÍ TUỆ NHÂN TẠO BÁO CÁO ĐỒ Á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 SỬ DỤ NG DEEP LEARNING Giảng viên: Thự c đ tài: PGS.TS: Vũ Hải Quân Th.S: Cao Xuân Nam 22C15006: Nguyễn Y Hợ p 22C15010: Nguyễn Đăng Khoa 22C11009: Nguyễn Hoàng Linh TP.HCM, ngày 20 tháng 04 năm 2023 MỤC L ỤC I Thông tin chung 1.1 Thông tin thành viên nhóm 1.2 Phân công công việc 1.3 Tóm tắt nội dung II N ội dung báo cáo 2.1 Tóm tắt 2.2 Giớ i thiệ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 khuôn mặt 2.3.2 Các nghiên cứu liên quan đế n nhận dạng khuôn mặt 2.4 Phát triển module hệ thống nhận diện khuôn mặt 2.4.1 Phát triển module phát khuôn mặt 2.4.2 Phát triển module nhận dạng khuôn m ặt 2.4.3 Phát triển module phân lo ại đeo trang 10 2.5 Xây dự ng hệ thống kiểm sốt truy cập khn mặt 11 2.5.1 Các thành ph ần 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 đánh giá mơ hình phát hiệ n khn mặt 14 2.6.2 Huấn luyện đánh giá mơ hình nhậ n dạng khuôn m ặt 14 2.6.3 Huấn luyện đánh giá mơ hình phân loạ i 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 hệ thống demo 17 3.2.1 Các ch ức hệ thống 17 3.2.2 Demo 18 IV: Tài liệu tham khả o 18 I Thông tin chung 1.1 Thông tin thành viên nhóm MSSV 22C15006 22C15010 22C11009 Họ và tên Nguyễn Y Hợ p Nguyễn Đăng Khoa Nguyễn Hoàng Linh Email 22C15006@student.hcmus.edu.vn 22C15010@student.hcmus.edu.vn 22C11009@student.hcmus.edu.vn SĐT 0969902402 1.2 Phân công công việc Họ và tên Nguyễn Y Hợ p • • • • • • • Nguyễn Đăng Khoa • • • • • • Nguyễn Hồng Linh • • • • Cơng việc Đọc tìm hiểu cơng trình nghiên cứu về đề tài phát nhận dạng khn mặt Tìm kiếm data training model phát khn mặt Tìm kiếm data training model nhận dạng khn khn mặt Hồn thành mã nguồn phát nhận dạng khuôn mặt Training đánh giá độ chính xác mơ hình phát nhận dạng khn mặt Đánh giá độ chính xác mơ hình phát khn mặt Tổng hợp hồn thành báo cáo đồ án Tìm kiếm tự build mơ hình face recognition, độ 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 services để tương tác dữ liệu gửi từ ngườ i dùng, 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 vector đặc trưng service tìm kiếm vector tương tự dựa cosine (faiss) Thiết k ế tương tác service triển khai ứng dụng cho model face detection, face recognition facemask classification Tìm kiếm data chứa hai loại ảnh: người đeo trang ngườ i không đeo trang Sử dụng model phát khuôn mặt để chuyển tập data ban đầu thành tậ p data chỉ chứa khuôn mặt, thành phần khác background đượ c loại bỏ Train đánh giá độ chính xác mơ hình nhận biết người đeo trang Đánh giá độ chính xác mơ hình nhận dạng khn mặt 1.3 Tóm tắt nội dung • • • • • Các cơng trình nghiên cứu liên quan đến phát nhận dạng khuôn mặt Phát triển module phát 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ơng Xây dựng hệ thống kiểm sốt truy cậ p nhận diện khuôn mặt II Nội dung báo cáo 2.1 Tóm tắt Hệ thống phát nhận diện khuôn mặt ngày tr ở nên quan tr ọng nhiều ứng dụng, an ninh, kiểm soát truy cậ p quản lý điểm danh Hệ thống sử dụng thuật toán cơng cụ tiên tiến để phát trích xuất đặc trưng khn mặt từ hình ảnh video, sau so sánh chúng với đặc trưng lưu trữ sở dữ liệu để xác định ngườ i Trong nghiên cứu này, xây dựng hệ thống nhận diện khuôn mặt theo thờ i gian thực có thể phát nhận diện khn mặt xác nhanh chóng tình thực tế Hệ thống sử dụng phương pháp học sâu tiên tiến cho phát trích xuất đặc trưng khn mặt Ngồi chức phát nhận diện khn mặt, hệ thống hỗ tr ợ phát từ chối trườ ng hợp đeo trang Hệ thống có giao diện đồ họa thân thiện với người dùng để dễ dàng sử dụng quản lý Để đánh giá hiệu suất hệ thống, thử nghiệm đượ c tiến hành bộ dữ liệu đượ c đượ c công bố như WIDER FACE [14] cho tác vụ phát khuôn mặt, VN-Celeb [16] cho tác vụ nhận d ạng khn mặt Ngồi chúng tơi tiến hành so sánh vớ i phương pháp truyền thống vớ i tậ p đánh giá K ết quả cho thấy r ằng hệ thống đề xuất đạt độ chính xác hiệu quả cao tác vụ phát nhận diện khuôn mặt có khả năng xử lý thờ i gian thực Mã nguồn có thể tham khảo đâ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-programminginfrastructure 2.2 Giớ i thiệu Phát 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 sống như thực thi pháp luật, kiểm soát truy cậ p quản lý điểm danh, cho phép xác định cá nhân cách nhanh chóng xác, làm cho tr ở thành thành phần cần thiết c nhiều ứng dụng Sự phát triển phát triển phát nhận diện khuôn mặt đượ c thực nhờ sự tiến bộ trong thuật tốn thị giác máy tính học máy Hệ thống phát nhận diện khuôn mặt bao gồm hai giai đoạn chính: phát khn mặt nhận diện khuôn mặt Phát khuôn mặt q trình định vị và trích xuất khn mặt từ một hình ảnh video Q trình bao gồm phân tích hình ảnh để xác định khu vực có thể chứa khn mặt sau lậ p vùng để xử lý tiế p Nhận diện khn mặt, ngượ c lại, q trình so sánh đặc trưng khn mặt trích xuất với đặc trưng lưu trữ trong sở dữ liệu để xác định ngườ i Trong năm qua, nhà nghiên cứu phát triển k ỹ thuật khác cho phát nhận di ện khuôn mặt, bao gồm phương pháp thị giác máy tính truyền thống phương pháp dựa học sâu Các phương pháp thị giác máy tính truyền th ống d ựa đặc trưng đượ c t ạo b ởi ngườ i, chẳng h ạn đặc trưng Haar Local Binary Patterns (LBP), để phát nhận diện khuôn mặt Tuy nhiên, phương pháp có hạn chế, chẳng hạn độ chính xác thấ p nhạy cảm với thay đổi ánh sáng vật che khuất Ngượ c lại, phương pháp dựa học sâu cho thấy hiệu suất đáng kể trong tác vụ phát nhận diện khuôn mặt Các phương pháp sử d ụng mạng neural tích chập (CNN) để họ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 biến thể về ánh sáng, tư thế và biểu cảm Những tiến b ộ gần phương pháp phát nhận di ện khuôn mặt dựa học sâu đạt độ xác tốc độ tốt Trong nghiên cứu này, khảo sát số phương pháp phát nhận dạng khuôn mặt mớ i Dựa khảo sát xây dựng hệ thống phát nhận dạng khn mặt Tiế p đó, tối ưu tốc độ x ử lý để h ệ thống có thể phát nhận di ện khn mặt theo thờ i gian thực Ngồi chúng tơi phát triển thêm tính chuyên biệt phát từ ch ối định danh đối tượng đeo trang K ết quả v ề độ tin đánh giá tậ p d ữ li ệu WIDER FACE vớ i tác vụ phát khuôn mặt, VN-Celeb đối vớ i tác vụ nhận dạng khuôn mặt Cuối so sánh với 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 khuôn mặt Nhận di ện khuôn mặt bước đầu cần thiết cho tác vụ nhận d ạng khuôn mặt, phân loại thuộc tính khn mặt, chỉnh sửa khn mặt, theo dõi khn mặt, hiệu suất q trình có tác độ ng tr ực tiế p về hiệu quả của nhiệm vụ đó [1], [2] Mặc dù có cải tiến đượ c thực phát khuôn mặt không đượ c kiểm soát vài thậ p k ỷ qua, nhiên phát khn mặt xác hiệu quả trong điều kiện thực t ế v ẫn thách thức mở Điều xảy yếu t ố sự thay đổi tư thế, nét mặt, tỷ lệ, chiếu sáng, biến dạng hình ảnh, che khuất khn mặt, v.v nhân tố Khác vớ i phát đối tượ ng nói chung, khn mặt có biến thể có kích thướ c nhỏ trong tỷ lệ khung hình, nhiều khn mặt lại có biến thể lớ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 khuôn mặt ban đầu chủ yếu dựa phương pháp cổ điển, đặc điểm thủ cơng đượ c trích xuất t ừ hình ảnh (hoặc từ cửa s ổ trượ t hình ảnh) đưa vào bộ phân loại (hoặc tậ p hợ p b ộ phân loại) để phát vùng có khả năng khn mặt Hai cơng trình nghiên cứu mang tính bướ c ngoặc cho nhận diện khn mặt bộ phân loại Haar Cascades [3] 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 tốn phát khn mặt Tuy nhiên, độ chính xác nhận diện khn mặt cịn hạn chế về hình ảnh đầy thách thức vớ i nhiều yếu tố ảnh hưởng Hình Cùng vớ i sự phát triển mạnh mẽ của phần cứng tính tốn dẫn đế n thành công r ực r ỡ của deep learning 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 khuôn mặt sử dụng kiến trúc học sâu khác đượ c phân loại thành nhóm sau: • Các mơ hình dựa Cascade-CNN • Mơ hình dựa R-CNN • Single shot detection model • Feature Pyramid Network Based Models • Kiến trúc khác Hình 2: Các thuật tốn face detection từ năm 2015 đến 2020 [5] Một số cơng trình nghiên cứu bật Retinaface [6], DSFD [7], Aware Face Detection [8]. RetinaFace phương pháp sử d ụng FPN để trích xuất đặc trưng hình ảnh, phương pháp hiệu quả đối vớ i khn mặt có kích thước khác Ngoài ra, phương pháp phát khuôn mặt giai đoạn (one-stage) RetinaFace thực nhận diện khuôn mặt theo cách đa tác vụ Cụ thể, mơ hình dự đốn 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 đỉnh 3D khn mặt mặt phẳng ảnh. Hình 3: Minh họa k ết quả dự đoán Retinaface DSFD: Dual Shot Face Detector áp d ụng hai bước để phát khuôn mặt ảnh Bước sử dụng mạng neural để t ạo vùng đề xuất (proposals) ảnh, vùng có thể chứa khn mặt khơng Mạng neural đượ c hu ấn luyện để phát đặc trưng khuôn mặt đườ ng viền, điểm mắt, mũi, miệng, v.v Bướ c thứ hai sử d ụng mạng neural khác để phân loại vùng đề xuất đượ c tạo ở bước trước đó, xác định chúng có chứa khn mặt hay khơng Mạng neural đượ c huấn luyện vớ i bộ dữ li ệu chứa khuôn mặt không chứa khuôn mặt Phương pháp có thể phát khn mặt nhỏ và xoay với độ chính xác cao Scale-Aware Face Detection sử dụng phương pháp độc đáo để phát khuôn mặt ảnh vớ i sự chú ý đặc biệt đến tỉ lệ kích thướ c khn mặt, mơ hình mạng neural để tạo số lượng vùng đề xuất (proposals) ảnh, vùng có thể chứa khn mặt khơng Cụ thể, mơ hình sẽ tính tốn tỉ lệ kích thướ c khn mặt vùng đề xuất, sử dụng k ết quả này để xác định độ tin cậy vùng đề xuất Nếu tỉ lệ kích thướ c khn mặt vùng đề xuất lớn, điều cho thấy vùng khơng chứa khuôn mặt giá tr ị độ tin cậy sẽ thấp Ngượ c lại, tỉ lệ kích thướ c khn mặt vùng đề xuất nhỏ, điều cho thấy vùng chứa khn mặt giá tr ị độ tin cậy sẽ cao 2.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 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 quân sự, tài chính, an ninh cơng cộng s ống hàng ngày FR chủ đề nghiên cứu lâu đời Vào đầu năm 1990, nghiên cứu về FR trở nên phổ biến sau vớ i cách tiế p cận Eigenface [15] Hình 4: Quá trình phát triển face recognition [9] Sự phát triển mạng thần kinh học sâu đóng vai trị quan tr ọng lĩnh vực nhận dạng khuôn mặt Quy trình chung mạng học sâu trích xuất m ột đặc trưng cho hình ảnh đầu vào Quá trình máy học s ẽ thu hẹ p khoảng cách lớ p giống mở r ộng khoảng cách lớ p khác Hiện tại, phương pháp thành công phân vùng lớ p khác cách sử dụng softmax biến thể của Dướ i dây số cơng trình tiêu biểu: FaceNet [10], cơng trình đề xuất mơ hình nhận diện khn mặt sử dụng deep learning để tạo biểu diễn số học cho khuôn mặt Mơ hình sử dụng mạng neural tích chập (CNN) để học đặc trưng khuôn mặt tạo vector nhúng mà có thể đượ c sử dụng để phân biệt khuôn mặt khác nhau. SphereFace [11] đề xu ất phương pháp nhúng để đại di ện cho khn mặt khơng gian siêu cầu Mơ hình sử d ụng m ột CNN để h ọc đặc trưng khuôn mặt tạo vector nhúng khơng gian siêu cầu mà có tính chất đồng khả năng phân biệt tốt khuôn mặt khác nhau. ArcFace [12] sử dụng hàm mát để cải thiện độ chính xác mơ hình nhận diện khn mặt Hàm mát đượ c thiết k ế để tạo khoảng cách lớ n khuôn mặt khác tạo vùng lân cận cho lớ p khuôn mặt để giúp mơ hình phân biệt tốt lớ p khác nhau. Mơ hình Partial FC [13] mơ hình nhận diện khn mặt sử dụng mạng neural để tạo biểu diễn số học cho khuôn mặt Mô hình sử dụng phương pháp mớ i gọi Partial Connection để tăng tốc độ tính tốn giảm bộ nhớ u cầu trình huấn luyện Thay k ết nối tất cả các nút đầu vào với nút đầu tầng ẩn, mơ hình Partial FC chỉ k ết n ối m ột ph ần nút đầu vào với nút đầu Điều giúp giảm số lượ ng tham số trong mô hình giảm thờ i gian tính tốn q trình huấn luyện, đồng thờ i đảm b ảo độ chính xác mơ hình Mơ hình Partial FC đạt đượ c hi ệu suất t ốt nhiều b ộ d ữ li ệu nhận diện khn mặt, vượt qua mơ hình trước về tốc độ và độ chính xác 2.4 Phát triển module hệ thống nhận diện khuôn mặt 2.4.1 Phát triển module phát khuôn mặt Để phát triển module phát khn mặt, chúng tơi sử dụng Retinaface có ưu điểm về độ chính xác, tốc độ xử lý, k ết quả tr ả về có thêm đặc trưng mắt mũi, miệng MobinetV1 (Backbone) FPN (Neck) RetinaHead (Head) Hình 5: Kiến trúc Retinaface Kiến trúc Retinaface đượ c mơ tả tổng qt Hình 5: Backbone, neck, head, nhiên điều chỉnh lại Backbone để tối ưu thờ i gian xử lý Backbone: Retinaface sử dụng backbone Mobilenet v1, nhiên đượ c tinh chỉnh lại để phù hợ p vớ i tác vụ xử lý khuôn mặt việc loại bỏ layer average pooling fully connected • Inputs: H x W x • 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 ảnh đầu vào có kích thướ c 640 x 640 x là: 0.0232s Neck: Kĩ thuật đượ c sử dụng neck FPN, đó, features map có kích thướ c nhỏ sẽ upsample vớ i kích thướ c features map lớ n (tại vị trí liền k ề nhau) sau cộng vào để đượ c feature map mớ i Mục đích sử dụng FPN đảm bảo mơ hình có thể xử lý đượ c khn mặt vớ i nhiều dạng kích thướ c khác Để tăng thêm tốc độ xử lý, số lượ ng channel xuống 64 Head: Đầu mơ hình gồm head (tr ả về 3 thơng tin cần dự đốn): • ClassHead: tr ả về features map có số channel = số lượng anchor * 2, dùng để dự đốn vị trí có hay khơng khn mặt • BboxHead: tr ả về features map có số channel = số lượng anchor * 4, dùng để dự đốn thơng tin bounding box [x, y, h, w] • LandmarkHead: tr ả về features map có số channel = số lượ ng anchor * 10, mục đích dự đốn tạo để điểm đánh dấu khn mặt (2 mắt, mũi, mép miệng) Do mơ hình cần dự đố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 khuôn mặt vớ i giá tr ị 0, khơng có khn mặt, xuất khn mặt anchor đề 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 tr ị [x, y, h, w] • L3: Cũng hàm regression loss dùng để xác định đ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 hàm loss trình training Tối ưu Face detection module Trong trình phát triển module xuất 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 ảnh có kích thướ c lớn, đơi sẽ xuất trườ ng hợ p khn mặt có kích thướ c r ất lớ n khơng phát đượ c (Hình 6) Hì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 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 w = 640, Khi thờ i gian xử lý đượ c tối ưu (khoảng 0.05s cho ảnh) có thể giải vấn đề khn mặt q lớ n 2.4.2 Phát triển module nhận dạng khn 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 khn mặt MobileFaceNet (Backbone) Partial FC (Loss) Hình 7: Kiến trúc Partial FC sử dụng backbone MobileFaceNet Kiến trúc gồm thành phần (Hình 7): Backbone dùng để trích xuất đặc trưng Partical FC dùng để biểu diển đặc trưng cho khn mặt giống gần 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 khn mặt thay dùng Resnet 50 nhằm mục đích cải thiện tốc độ xử lý Tuy nhiên nhóm training thử nghiệm với backbone resnet50, khơng có đủ phần cứng hạn chế về thờ i gian training google colab nên chưa hoàn thành kị p tiến độ dự kiến Hình 8: Kiến trúc backbone MobileFaceNet Hình ảnh đầu vào khn mặt đượ c xử lý về kích thướ c 112 x 112, sau xử lý sẽ đượ c features map có kích thướ c x x 512 Đây vector dùng để biểu diễn đặc trưng khn mặt Loss: Vớ i mục tiêu cực tiêu hóa khoảng cách đặc trưng khuôn mặt ngườ i cực đại hóa khoảng cách khn mặt khác nhau, tốn nhận dạng khn mặt, hai hàm loss đượ c sử dụng Dist Cross Entropy loss Margin loss • Dist Cross Entropy loss: Đây hàm loss dựa khoảng cách Euclide đặc trưng khuôn mặt Hàm loss đo lườ ng khoảng cách đặc trưng khuôn mặt với đặc trưng khuôn mặt l ớp đặc trưng khuôn mặt l ớ p khác Mục tiêu hàm loss đảm bảo r ằng khuôn mặt lớp đặt gần không gian đặc trưng, khuôn mặt lớp khác đặt xa • Margin loss: Đây loss dựa khoảng cách Cosine đặc trưng khuôn mặt Hàm loss đảm bảo r ằng khn mặt c l ớ p có khoảng cách Cosine nhỏ so vớ i khuôn mặt lớ p khác Mục tiêu hàm loss đo lườ ng mức độ phân tách lớ p bằng cách đảm bảo khoảng cách đặc trưng khuôn mặt lớ p nhỏ hơn ngưỡ ng xác định trướ c Cả hai hàm mát nhằm tăng cườ ng khả năng phân loại mơ hình đảm bảo r ằng khuôn mặt lớp đặt gần không gian đặc trưng 2.4.3 Phát triển module phân loại đeo trang Nguyên nhân: Do module phát khuôn mặt phát đượ c khuôn mặt đeo trang, điề u dẫn đến r ủi ro cho hệ th ống đăng ký khuôn mặt vào sở d ữ li ệu xác nhận khn mặt Do cần có bộ phân loại để loại bỏ các trườ ng hợp đeo trang Xác định cấu trúc model Mạng Convolutional Neural Network (CNN) đượ c ứng dụng r ộng rãi toán xử lý ảnh Trong này, sẽ xây dựng mạng CNN vớ i cấu trúc hình bên dướ i Lớ p input nhận vào ảnh có channel kích thước 32 x 32 Kích thước đượ c tham khảo từ Kaggle blog. Vì đặc trưng trang rõ ràng, nên dù kích thướ c input nhỏ, model cho k ết quả chấ p nhận đượ c Tại hidden layer, ta k ết hợ p lớ p convolution lớp max pool để làm giảm kích thướ c ảnh mà giữ lại thông tin ảnh nhiều Lớ p flatten giúp chuyển data convolution filter từ dạng đa chiều về một chiều Sau lớ p flatten, ảnh có kích thước x 32 x 32 đượ c chuyển đổi về dạng mảng chiều 300 đặc trưng Tại đây, ta kết hợp linear regression logistic regression để đưa output về 1 số duy thể hiện xác suất ảnh có trang hay khơng. Hình 9: Kiến trúc mơ hình phân lớ p Các tham số của layer đượ c thể hiện qua bảng sau Layer name Input (C x H x W) Output (C x H x W) Kernel size Strides input x 32 x 32 conv x 32 x 32 x 28 x 28 5x5 1x1 max pool x 28 x 28 x 14 x 14 2x2 1x1 conv x 14 x 14 12 x 10 x 10 5x5 1x1 max pool 12 x 10 x 10 12 x x 2x2 1x1 flatten 12 x x 300 linear 300 150 linear 150 2.5 Xây dự ng hệ thống kiểm sốt truy cập khn mặt Hình 10: Sơ đồ hệ thống kiểm sốt truy cậ p nhận dạng khn mặt 2.5.1 Các thành phần hệ thống STT Tên Service Chức năng Web UI Đưa giao diện người dùng, tương tác trực tiế p vớ i camera input Khi phát có gương mặt ngườ i khung hình, sẽ gửi request lên server để kiểm tra danh tính Nếu ngườ i dùng tồn tại, hệ thống sẽ in k ết quả lên hình, bao gồm thơng tin người dùng, độ chính xác tìm kiếm dữ liệu Web UI admin Hệ thống cho phép đăng ký ngườ i dùng mớ i, admin sẽ đăng ký thông tin cá nhân người ảnh chân dung với góc độ khác Quản tr ị viên có thể xóa, sửa thông tin ngườ i dùng Server API gateway Làm chốt chặn để quản lý tương tác ngườ i dùng service (chạy mạng riêng ảo, không thể truy cậ p từ bên ngồi) User Service Quản lý thơng tin ngườ i dùng, bao gồm Thêm, Xóa , Sửa, Tìm kiếm, liệt kê danh sách ngườ i dùng Logging Service Quản lý sự kiện hệ thống có gương ngườ i dùng mớ i thêm vào, hay có ngườ i dùng truy cậ p tớ i Camera (mô phỏng Access Point) Sau bắn sự kiện tới đơn vị có nhu cầu lắng nghe sự kiện đó. Authentication Service Hiện chưa thực hiện, nhóm khơng đủ thời gian, cần thiết để phân biệt ngườ i dùng quản tr ị viên Kafka Message Streaming service, dùng để làm trung gian truyền nhận sự kiện gửi từ User Service tới nơi muôn nhận, MySQL Database lưu trữ thông tin ngườ i dùng MongoDB Database lưu trữ các vector đặc trưng ngườ i dùng 10 Engine Service Service nhận input image thu đượ c từ màn hình WebUI , chạy object detection model sau truyền dữ liệu sang face recognition để trích xuất đặc trưng, trướ c gửi sang faiss service 11 Faiss Service Nhận vector input từ Engine service, tìm kiếm sở dữ liệu indexes load lên memory trả về thông tin đượ c gắn vớ i vector tìm thấy (thỏa mãn ngưỡng threshold cho trướ c) 12 MinIO Lưu trữ ảnh đăng ký ngườ i dùng, ảnh ngườ i dùng verify thành công 13 Redis Làm caching layer tăng khả năng truy xuất thông tin 14 Tracing and Monitoring service Quản lý dịch vụ và theo dõi sự kiện diễn hệ thống để khỏi phải đọc log 2.5.2 Phần giao diện ngườ i dùng Hình 11: Giao diện hệ thống kiểm soát truy cậ p khuôn mặt 2.5.3 Phần giao diện quản lý Giao diện quản lý hiển thị các thông tin đối tượng đăng ký database Hình 12: Giao diện quản lý ngườ i dùng hệ thống 2.6 Thự c nghiệm 2.6.1 Huấn luyện đánh giá mơ hình phát khuôn mặt Mã nguồn đượ c thực framework Pytorch Q trình huấn luyện, đánh sau: • Data train: WIDER FACE (http://shuoyang1213.me/WIDERFACE/) • Data test: WIDER FACE • Tài nguyên sử dụng: Google colab (https://colab.research.google.com/drive/154RQHgY2A6zHqZavDb4ocm07WHyDp_D7?usp=shari ng) • Model face detection đượ c training google colab vớ i số lượ ng epoch 25 • Nhóm thực training lại từ đầu tậ p data WIDER FACE (khơng dùng pretrain) • Optimizer: SGD vớ i learning rate khở i tạo: 0.001 Để tăng sự đa dạng data, số k ỹ thuật data augmentation đượ c sử dụng như: • Làm vỡ ảnh • Lật ảnh theo phương ngang • Xoay góc nhỏ (-3 độ đến độ) • Chuyển ảnh về ảnh xám • Đảo kênh màu ảnh • Áp dụng nhiễu, blur ảnh • Tăng giảm độ sáng K ết quả độ chính xác dược đánh giá dựa benchmark đượ c cung cấ p bở i WIDER FACE vớ i số lượ ng ảnh 3226 ảnh K ết quả cho thấy Retinaface vượ t tr ội về độ chính xác thờ i gian xử lý so vớ i phương pháp truyền thống Giải thuật Harr Cascade HoG Retinaface APEasy 0.2607 0.4844 0.7890 APMedium 0.2609 0.3980 0.6897 APHard 0.1299 0.1673 0.3804 Time (image/s) 0.14581 0.62219 0.05432 Dưới số k ết quả minh họa: Hình 13: Một số k ết quả minh họa Retinaface phát khuôn mặt 2.6.2 Huấn luyện đánh giá mô hình nhậ n dạng khn mặt Mã nguồn đượ c thực tr ền framework Pytorch Quá trình huấn luyện đánh giá độ chính xác sau: • • • • • • Data train: VGG2 (https://paperswithcode.com/paper/vggface2-a-dataset-for-recognising-faces) vớ i 9k Id, 3.31 triệu ảnh Data test: VN_Celeb vớ i số lượ ng ID 31 (gồm 308 ảnh) Tài nguyên sử dụng: Do số lượ ng data training lớ n, không thể lưu đượ c google drive nên nhóm sử dụng server GPU GTX 2080 Ti để training. Model face recognition đượ c training server GTX 2080Ti vớ i số lượ ng epoch Nhóm thực training lại từ đầu tậ p data VGG2 Optimizer: AdamW vớ i learning rate khở i tạo: 0.02 Để tăng sự đa dạng data, số k ỹ thuật data augmentation đượ c sử dụng như: • Làm vỡ ảnh • Lật ảnh theo phương ngang • Chuyển ảnh về ảnh xám • Áp dụng nhiễu, blur ảnh • Tăng giảm độ sáng Đánh giá độ chính xác Độ đo: • True Positive: K ết quả bắt so sánh ngườ i • False Negative: K ết quả bắt sai so sánh người (ngườ i lạ mặt) • False Positive: K ết quả bắt so sánh ngườ i khác (bắt nhầm thành ngườ i khác) • True Negative: K ết quả bắt sai so sánh ngườ i khác True Positive Rate: Mức độ chính xác so sánh ngườ i • TPR = TP / (TP + FN) False Positive Rate: Mức độ chính xác so sánh ngườ i khác • FPR = FP / (FP + TN) Accur acy: Độ chính xác • Accuracy = (TP + TN)/N Trong N số lượ ng cặ p ảnh đánh giá Model Eigenfaces PartialFC MobileFacenet (Our) Arcface Resnet50 PartialFC Resnet50 Accuracy 0.51 0.981 0.993 0.993 TPR 0.406 0.462 0.795 0.846 FPR 0.016 0.002 0.001 0.003 Thờ i gian xử lý tính giây (xét CPU): Model Eigenfaces PartialFC MobileFacenet (Our) Arcface Resnet50 PartialFC Resnet50 Time process (s) 0.006 0.04 0.132 0.172 Qua ta có thể nhận xét r ằng về độ chính xác mơ hình Arcface PartialFC xấ p xỉ nhau, xét về độ đo TPR FPR PartialFC thể hiện hiệu cao Chứng tỏ r ằng khả năng bắt ngườ i không nhầm thành người khác cao Xét về th ờ i gian xử lý mơ hình Eigenfaces xử lý nhanh mơ hình cịn lại 2.6.3 Huấn luyện đánh giá mơ hình phân loạ i trang Tậ p data sử dụng để train đánh giá model đượ c lấy từ Kaggle. Gồm hai loại: • • Ảnh người đeo trang (with_mask) Ảnh người không đeo trang (without_mask) Tuy nhiên, ngồi khn mặt, ảnh tậ p data chứa nhiều thành phần khác background, vai, mũ nón Vì vậy, ta sẽ sử dụng model phát khn mặt đượ c trình bày ở mục 2.4.1 để tạo tậ p data mớ i chỉ chứa khuôn mặt từ tậ p data cũ. Hình bên dướ i thể hiện trình tìm vùng khuôn mặt ảnh Ảnh ban đầu Vùng ảnh chứa khn mặt Hình 14: Minh họa k ết quả xử lý data khuôn mặt Tậ p data mớ i gồm: • Train datatrain: 5512 ảnh • Test datatest: 1378 ảnh Training Model đượ c train vớ i khoảng 20 epoch learning rate 0.001 Hàm loss đượ c sử dụng Binary Cross Entropy Phương pháp đượ c sử dụng để tối ưu bộ tr ọng số là Stochastic Gradient Descent Đánh giá độ chính xác Model tr ả về xác suất p trong khoảng [0, 1] thể hiện xác suất ngườ i ảnh có đeo trang hay không Xác suất p lớn 0.5, ta dự đốn ngườ i ảnh có đeo trang Và ngượ c lại, xác suất nhỏ hơn 0.5, ta dự đốn ngườ i ảnh k hơng đeo trang Hình bên dướ i k ết quả dự đoán model p = 0.0037 Dự đốn = (khơng khẩ u trang) p = 0.8900 Dự đốn = (có khẩ u trang) Hình 15: Một số k ết quả minh họa mơ hình phân lớp đeo trang Việc đánh giá model đượ c thực tậ p test dataset gồm 1378 ảnh, chúng tơi so sánh độ chính xác thờ i gian xử lý với phương pháp học sâu mạng CNN với phương pháp sử dụng HOG k ết hợ p vớ i SVM K ết quả cho thấy học sâu cho độ chính xác cao và có thờ i gian xử lý r ất nhanh CNN HOG + SVM Accuracy (%) 98.25 97.46 Time (s) 0.0087 0.0034 2.7 Kết luận Vớ i sự phát triển k ỹ thuật deep learning, mơ hình phát nhận diện khn mặt đạt độ xác cao hơn so vớ i phương pháp truyền thống có tốc độ xử lý nhanh Tuy nhiên, cần r ất nhiều dữ liệu huấn luyện đặc biệt tác vụ nhận dạng khuôn mặt nên vấn đề bảo mật dữ liệu vấn đề cần đượ c quan tâm Hiện hệ thống hạn chế do chưa xử lý đượ c môi tr ườ ng ánh sáng yếu, tương lai, sẽ cải thiện vấn đề này tối ưu tốc độ xử lý hệ thống III Mã nguồn, demo 3.1 Cấu trúc mã nguồn Hình 16: Cấu trúc thư mục đồ án demo: Chứa video, hình ảnh demo documents: Chứa tài liệu, file báo cáo source: Chứa mã nguồn • advanced-ai-programming-infrastructure: Mã nguồn hệ thống kiểm sốt truy cậ p nhận diện khn mặt • Face_det: Chứa mã nguồn training Face detection, weights, Face detection inference module • Face_reg: Chứa mã nguồn training Face recognition, weights, Face recognition inference module • Mask_classification: Chứa mã nguồn training phân biệt khn mặt có đeo trang hay khơng, weights, Mask classification inference module Trong mã nguồn có file readme mơ tả chi tiết cách sử dụng Hình 17: Các mã nguồn dự án 3.2 Các chức hệ thống demo 3.2.1 Các chức chính của hệ thống • • Đăng ký ngườ i dùng mớ i Xóa ngườ i dùng. • Kiểm sốt vào. 3.2.2 Demo Link tải toàn bộ đồ án: https://drive.google.com/drive/folders/1RkHl9lZbNhE9-ux337BKrZDL_3_HtTVY?usp=sharing Link video demo: https://drive.google.com/drive/folders/1KK2IKUpWhvx9_EyDFLJx2jPD4gpBFc7X?usp=sharing IV: Tài liệu tham khảo [1] M Wang and W Deng, “Deep face recognition: A survey,” arXiv preprintarXiv:1804.06655, 2018. [2] S Minaee, A Abdolrashidi, H Su, M Bennamoun, and D Zhang, “Biometric recognition using deep learning: A survey,” arXiv preprint arXiv:1912.00271, 2019. [3] Qin, Hongwei, et al "Joint training of cascaded CNN for face detection." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition 2016. [4] Hearst, Marti A., et al "Support vector machines." IEEE Intelligent Systems and their applications 13.4 (1998): 18-28. [5] Anh Nguyen, Alexey Dosovitskiy, Jason Yosinski, Thomas Brox, and Jeff Clune Synthesizing the Preferred Inputs for Neurons in Neural Networks via Deep Generator Networks In Neural Information Processing Systems, pages 3387 – 3395, 2016 [6] Deng, Jiankang, et al "Retinaface: Single-shot multi-level face localisation in the wild." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition 2020. [7] Li, Jian, et al "DSFD: dual shot face detector." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition 2019. [8] Hao, Zekun, et al "Scale-aware face detection." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition 2017. [9] Forough Poursabzi-Sangdeh, Daniel G Goldstein, Jake M Hofman, Jennifer W Vaughan, and Hanna Wallach Manipulating and Measuring Model Interpretability.arXiv preprint arXiv:1802.07810, 2018. [10] Schroff, Florian, Dmitry Kalenichenko, and James Philbin "Facenet: A unified embedding for face recognition and clustering." Proceedings of the IEEE conference on computer vision and pattern recognition 2015. [11] Liu, Weiyang, et al "Sphereface: Deep hypersphere embedding for face recognition." Proceedings of the IEEE conference on computer vision and pattern recognition 2017 [12] Deng, Jiankang, et al "Arcface: Additive angular margin loss for deep face recognition." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition 2019. [13] An, Xiang, et al "Partial fc: Training 10 million identities on a single machine." Proceedings of the IEEE/CVF International Conference on Computer Vision 2021 [14] http://shuoyang1213.me/WIDERFACE/ [15] Slavković, Marijeta, and Dubravka Jevtić "Face recognition using eigenface approach." Serbian Journal of electrical engineering 9.1 (2012): 121-130 [16] https://drive.google.com/drive/folders/1I3KXcGpmm6zpw_y07p-7wIKt5K08iOgc