1. Trang chủ
  2. » Giáo Dục - Đào Tạ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

19 3 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

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 

Ngày đăng: 11/08/2023, 13:27

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

TÀI LIỆU LIÊN QUAN

w