1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Tiểu luận) đồ á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

19 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

ĐẠ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 SỐT TRUY CẬP BẰNG NHẬN DIỆN KHN 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 .3 1.3 Tóm tắt nội dung II Nội dung báo cáo .4 2.1 Tóm tắt .4 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 .7 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 khn mặt .14 2.6.2 Huấn luyện đánh giá mơ hình nhận dạng khn 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ọ 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ọ tên Nguyễn Y Hợp Nguyễn Đăng Khoa Cơng việc Đọc tìm hiểu cơng trình nghiên cứu đề 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 khn mặt • Training đánh giá độ xác mơ hình phát nhận dạng khn mặt • Đánh giá độ 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, độ 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 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 u cầu đồng thời • 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 • Nguyễn Hồng Linh • 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ứa khuôn mặt, thành phần khác background loại bỏ • Train đánh giá độ xác mơ hình nhận biết người đeo trang • Đánh giá độ 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 khn mặt • Phát triển module phát khn 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 soát truy cập nhận diện khn 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 khn 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ở 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 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 cịn 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 tiến hành liệu được công bố 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 cho thấy hệ thống đề xuất đạt độ xác hiệu cao tác vụ phát nhận diện khn mặt có khả xử lý thời gian thực Mã nguồn 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-aiprogramming-infrastructure 2.2 Giới thiệu Phát nhận diện khuôn mặt trở thành đề tài quan tâm nghiên cứu với nhiều ứng dụng thực tiễn sống 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 nhiều ứng dụng Sự phát triển phát triển phát nhận diện khuôn mặt thực nhờ tiến 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ị trích xuất khn mặt từ hình ảnh video Quá trình bao gồm phân tích hình ảnh để xác định khu vực 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, trình so sánh đặc trưng khn mặt trích xuất với đặc trưng lưu trữ sở 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 tạo 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ó nhữ ng hạn chế, chẳng hạn độ 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ể 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ừ liệu đầu vào, làm cho chúng mạnh mẽ biến thể ánh sáng, tư biểu cảm Những tiến gần phương pháp phát hiệ n 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 Dựa khảo sát xây dựng hệ thống phát nhận dạng khuôn mặt Tiếp đó, chúng tơi tối ưu tốc độ xử lý để hệ thống 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 độ tin đánh giá tập liệu WIDER FACE với tác vụ phát khuôn mặt, VN-Celeb 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 khn mặt, phân loại thuộc tính khn mặt, chỉnh sửa khuôn mặt, theo dõi khuôn mặt, hiệu suất q trình có tác động trực tiếp hiệu nhiệm vụ [1], [2] Mặc dù có cải tiến thực phát khn mặt khơng kiểm sốt vài thập kỷ qua, nhiên phát khuôn mặt xác hiệu điều kiện thực tế thách thức mở Điều xảy yếu tố 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ỏ tỷ lệ khung hình, nhiều khn mặt lại có bi ến thể lớn 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 trích xuất từ hình ảnh (hoặc từ cửa sổ trượt hình ảnh) đưa vào phân loại (hoặc tập hợp phân loại) để phát vùng có khả khn 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 phân loại Haar Cascades [3] Histogram of Oriented Gradients (HOG) theo sau 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, độ xác nhận diện khn mặt cịn hạn chế hình ảnh đầy thách thức với nhiều yếu tố ảnh hưởng Hình Cùng vớ i phát triển mạnh mẽ phần cứng tính tốn dẫn đến thành cơng rực rỡ deep learning lĩnh vực thị giác máy tính (Computer vision), Có nhiều phương pháp đề xuất để phát khuôn mặt sử dụng kiến trúc học sâu khá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 toá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 khn mặt có kích thước khác Ngồ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 khuôn mặt mặt phẳng ảnh Hình 3: Minh họa kết dự đố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 chứa khuôn mặt không Mạng neural 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 tạo bước trước đó, xác định chúng có chứa khn mặt hay không Mạng neural huấn luyện với liệu chứa khuôn mặt không chứa khn mặt Phương pháp phát khn mặt nhỏ xoay với độ xác cao Scale-Aware Face Detection sử dụng phương pháp độc phát khuôn mặt ảnh với ý đặ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 tính tốn tỉ lệ kích thước khn mặt vùng đề xuất, sử dụng kết để xác định độ tin cậy vùng đề xuất Nếu tỉ lệ kích thước khuôn mặt vùng đề xuất lớn, điều cho thấy vùng khơng chứa khn mặt giá trị độ tin cậy 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 khuôn mặt giá trị độ tin cậy 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 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 mộ t chủ đề nghiên cứu lâu đời Vào đầu năm 1990, nghiên cứu 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 khn mặt Quy trình chung mạng học sâu trích xuất đặc trưng cho hình ảnh đầu vào Quá trình máy học 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ể 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 khn 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à sử dụng để phân biệt khuôn mặt khác SphereFace [11] đề xuất phương pháp nhúng để đạ i diện cho khuôn mặt không gian siêu cầu Mơ hình sử dụng 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ả phân biệt tốt khuôn mặt khác ArcFace [12] sử dụng hàm mát để cải thiện độ xác mơ hình nhận diện khn mặt Hàm mát 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 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 khn mặt Mơ hình sử dụng phương pháp gọi Partial Connection để tăng tốc độ tính tốn giảm nhớ u cầu q trình huấn luyện Thay kết nối tất nút đầu vào với nút đầu tầng ẩn, mơ hình Partial FC kết nối phần nút đầu vào với nút đầu Điều giúp giảm số lượng tham số 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 độ xác mơ hình Mơ hình Partial FC đạt hiệu suất tốt nhiều liệu nhận diện khuôn mặt, vượt qua mơ hình trước tốc độ độ 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 độ xác, tốc độ xử lý, kết trả có thêm đặc trưng mắt mũi, miệng MobinetV1 FPN (Backbone) (Neck) RetinaHead (Head) Hình 5: Kiến trúc Retinaface Kiến trúc Retinaface 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 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 sử dụng neck FPN, đó, features map có kích thước nhỏ upsample với kích thước features map lớn (tại vị trí liền kề nhau) sau cộng vào để feature map Mục đích sử dụng FPN đảm bảo mơ hình xử lý 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 cịn 64 Head: Đầu mơ hình gồm head (trả thơng tin cần dự đốn): • ClassHead: trả 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ả features map có số channel = số lượng anchor * 4, dùng để dự đoán thơng tin bounding box [x, y, h, w] • LandmarkHead: trả features map có số channel = số lượng anchor * 10, mục đích dự đốn tạo để điểm đánh dấu khuôn 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 training theo multi-task L= 1Lclass + 2Lbbox + 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 khn 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, 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ý 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, xuất trường hợp khn mặt có kích thước lớn khơng phát (Hình 6) Hình 6: Các vấn đề gặp phải ảnh có kích thước lớn Do để giải vấn đề trên, ảnh đầu vào đượ c xử lý với kích thướ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ý tối ưu (khoảng 0.05s cho ảnh) giải vấn đề khn mặt 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 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 khuôn 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ế thời gian training google colab nên chưa hồ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 xử lý kích thước 112 x 112, sau xử lý features map có kích thước x x 512 Đây vector dùng để biểu diễn đặc trưng khuôn 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 sử dụng Dist Cross Entropy loss Margin loss Dist Cross Entropy loss: Đây mộ t 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 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 mộ t loss dựa khoảng cách Cosine đặc trưng khuôn mặt Hàm loss đảm bảo khn mặt 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 cách đảm bảo khoảng cách đặc trưng củ a khuôn mặt lớp nhỏ ngưỡng xác định trước • Cả hai hàm mát nhằm tăng cường khả phân loại mơ hình đảm bảo khn 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 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ở liệu xác nhận khn mặt Do cần có phân loại để loại bỏ trường hợp đeo trang Xác định cấu trúc model Mạng Convolutional Neural Network (CNN) ứng dụng rộng rãi toán xử lý ảnh Trong này, xây dựng mạng CNN với cấu trúc hình bên Lớp input nhận vào ảnh có channel kích thước 32 x 32 Kích thướ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 chấp nhận 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 chiều Sau lớp flatten, ảnh có kích thước x 32 x 32 chuyển đổi dạng mảng chiều 300 đặc trưng Tại đây, ta kết hợp linear regression logistic regression để đưa output số thể 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ố layer thể 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 soá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 khuôn mặt 2.5.1 Các thành phần hệ thống STT Tên Service Chức 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, 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 in kết lên hình, bao gồm thơng tin người dùng, độ xác tìm kiếm liệu Web UI admin Hệ thống cho phép đăng ký người dùng mới, admin đă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 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, truy cập từ bên ngoà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ý kiện hệ thống có gương người dùng thêm vào, hay có người dùng truy cập tới Camera (mơ Access Point) Sau bắn kiện tới đơn vị có nhu cầu lắng nghe 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 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ữ vector đặc trưng người dùng 10 Engine Service Service nhận input image thu từ hình WebUI , chạy object detection model sau truyền 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ở liệu indexes load lên memory trả thông tin 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ả truy xuất thông tin 14 Tracing and Monitoring service Quản lý dịch vụ theo dõi 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 sốt truy cập khn mặt 2.5.3 Phần giao diện quản lý Giao diện quản lý hiển thị 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 thực framework Pytorch Quá 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 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 đa dạng data, số kỹ thuật data augmentation sử dụng như: Làm vỡ ảnh Lật ảnh theo phương ngang Xoay góc nhỏ (-3 độ đến độ) Chuyển ảnh ảnh xám Đảo kênh màu ảnh Áp dụng nhiễu, blur ảnh Tăng giảm độ sáng Kết độ xác dược đánh giá dựa benchmark cung cấp WIDER FACE với số lượng ảnh 3226 ảnh Kết cho thấy Retinaface vượt trội độ 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 minh họa: Hình 13: Một số kết 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 thực trền framework Pytorch Quá trình huấn luyện đánh giá độ xác sau: • Data train: VGG2 (https://paperswithcode.com/paper/vggface2-a-dataset-forrecognising-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 google drive nên nhóm sử dụng server GPU GTX 2080 Ti để training Model face recognition 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 đa dạng data, số kỹ thuật data augmentation sử dụng như: Làm vỡ ảnh • Lật ảnh theo phương ngang • Chuyển ảnh ảnh xám Áp dụng nhiễu, blur ảnh • • • • Tăng giảm độ sáng Đánh giá độ xác Độ đo: True Positive: Kết bắt so sánh người False Negative: Kết bắt sai so sánh người (người lạ mặt) • False Positive: Kết bắt so sánh người khác (bắt nhầm thành người khác) • True Negative: Kết bắt sai so sánh người khác • True Positive Rate: Mức độ xác so sánh người TPR = TP / (TP + FN) • False Positive Rate: Mức độ xác so sánh người khác FPR = FP / (FP + TN) • Accuracy: Độ 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.132 0.172 Qua ta nhận xét độ xác mơ hình Arcface PartialFC x ấp xỉ nhau, xét độ đo TPR FPR PartialFC thể hiệu cao Chứng tỏ khả bắt ngườ i không nhầm thành người khác cao Xét 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 lấy từ Kaggle Gồm hai loại: 0.04 • • Ả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ử dụng model phát khuôn mặt trình bày mục 2.4.1 để tạo tập data chứa khuôn mặt từ tập data cũ Hình bên thể 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 xử lý data khn mặt • • Tập data gồm: Train datatrain: 5512 ảnh Test datatest: 1378 ảnh Training Model train với khoảng 20 epoch learning rate 0.001 Hàm loss sử dụng Binary Cross Entropy Phương pháp sử dụng để tối ưu trọng số Stochastic Gradient Descent Đánh giá độ xác Model trả xác suất p khoảng [0, 1] thể 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ỏ 0.5, ta dự đốn người ảnh khơng đeo trang Hình bên kết dự đoán model p = 0.0037 Dự đoán = (khơng trang) p = 0.8900 Dự đốn = (có trang) Hình 15: Một số kết minh họa mơ hình phân lớp đeo trang Việc đánh giá model thực tập test dataset gồm 1378 ảnh, chúng tơi so sá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 cho thấy học sâu cho độ xác cao có thời gian xử lý nhanh Accuracy (%) 98.25 97.46 CNN HOG + SVM 2.7 Kết luận Với 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 so với phương pháp truyền thống có tốc độ xử lý nhanh Tuy nhiên, cần nhiều 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 liệu vấn đề cần quan tâm Hiện hệ thống cịn hạn chế chưa xử lý mơi trường ánh sáng yếu, tương cải thiện vấn đề tối ưu tốc độ xử lai, 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 hệ thống • • Đăng ký người dùng Xóa người dùng Time (s) 0.0087 0.0034 • Kiểm sốt vào 3.2.2 Demo Link tải tồn đồ á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 2019 [8] Hao, Zekun, et al "Scale-aware face detection." Proceedings of the IEEE Conference on Computer 2017 Vision and Pattern Recognition Vision and Pattern Recognition [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

Ngày đăng: 20/09/2023, 15:19

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w