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

Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát

67 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây dựng Hệ thống Nhận diện Khuôn mặt qua Camera Giám sát
Tác giả Tơ Nhật Huy
Người hướng dẫn TS. Ngơ Đức Thành, ThS. Đỗ Văn Tiến
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Khoa học máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 67
Dung lượng 38,25 MB

Cấu trúc

  • 2.2.2.1 Viola-Jones (Cascade) (20)
  • 2.2.2.2 HOG-SVM (21)
  • 2.2.3. Phương pháp họcsâu (22)
    • 2.2.3.1 ReunaFace (0)
    • 2.2.3.2 SCRFD (23)
    • 2.2.3.3 YOLO5Face (0)
  • 2.4.1 Tổng quan về nhận diện khuônmặt (27)
  • 2.4.2 Các phương pháp nhận dạng khuôn mặt (28)
    • 2.4.2.1 FaceNet (28)
    • 2.4.2.2 CosFace.......... . Q Q Q Q Ro 16 2.4.2.3. ArcFace (29)
  • 2.42.4 MagEHace...............Ặ..Ặ 19 Kétchuong (0)
  • 3.2 Xây dựng tập dữ liệu phát hiện khuôn mat (0)
  • 3.3. Xây dựng tập dữ liệu nhận diện khuôn mặt (0)
    • 3.3.1 Hệ thống gán nhãn dữ liệu (0)
      • 3.3.1.1 Các chức năng của hệ thống (38)
      • 3.3.1.2 Kiến trúchệthống (38)
    • 3.3.2 Tap dữ liệu nhận diện khuôn mặt (0)
  • 3.4 Mộtsố độ đođánhgá (43)
    • 3.4.1 Một số khái nệm cơbản (0)
  • 3.43. Precision vàRecall (0)
  • 3.44 Fl-Score ........... 0.002. eee eee 32 (0)
    • 3.4.5 Mean average precision(mAP) (46)
    • 3.4.66 Cosine ...... ee ee ee 33 (0)
  • 3.5 Kếtquả và đánhgiá (47)
    • 3.5.1 Đánh giá các phương pháp phát hiện khuôn mat (47)
    • 3.5.2. Đánh giá các phương pháp nhận diện khuôn mat (49)
  • 3.6 Kếtchương ......... HQ ee 38 XÂY DỰNG HỆ THỐNG 39 (51)
  • 4.1 Médiu ...§ OC gg. Wm... ww ww (0)
  • 4.2 Kiếntrúchệthỗng (52)
    • 4.3.1 Module lấy dữ liệu từ camera giám sát (54)
    • 4.3.2 Module phát hiện và truy vết khuôn mat. .... 2... Al (54)
    • 4.3.3 Module tiền xử lý dữliệu (55)
    • 4.3.4 Module nhận dạng khuôn mặt (56)
    • 4.3.5 Module hiển thịthôngtin (57)
    • 4.3.6 Module thu thập dữ liệu mới (0)
  • 43.7 Module cập nhậtdữ lệumới (0)
  • 4.4 Giao diện hệ thống và một số kếtquả (0)
  • 44.1 Giao diệnhệthống (58)

Nội dung

TÓM TẮT KHÓA LUẬNTrong khóa luận này, tôi giới thiệu một hệ thống nhận dạng khuôn mặt cho camera giám sát được áp dụng các phương pháp học sâu Deep Learning tiên tiến nhất hiện nay nhưng

Viola-Jones (Cascade)

Đây là phương pháp phát hiện vat thé được dé xuất năm 2001 bởi Paul Viola và Michael Jones Phương pháp này sử dụng các đặc trưng Haar (Hình 2.3) đã được chọn lọc trước bằng Cascade Classifiers trượt qua từng vùng của bức ảnh.

Haar thường được sử dụng để phát hiện khuôn mặt trực diện của người, bởi vì

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

Hình 2.2: đầu vào va dau ra của bài toán pháp hiện khuôn mặt đặc tính chung của khuôn mặt là có một số vùng mắt và miệng tối hơn vùng trán và má theo chiều dọc, và vùng mũi thường sáng hơn hai má theo chiều ngang.

Cách áp dụng các bộ lọc này khác một chút so với các cửa sổ bộ lọc bên CNN. Ở CNN, bộ lọc chiếm toàn bộ cửa sổ trượt, trong khi ở đặc trưng Haar, bộ lọc chỉ chiếm một phần trong cửa sổ trượt thôi Điều đó được minh hoạ trên ảnh. Đây là phương pháp máy học được huấn luyện trên dữ liệu positive và neg- ative bằng hàm Cascade Nhược điểm của phương pháp này là nó nhạy cảm với điều kiện ánh sáng và thời gian huấn luyện lâu, bù lại là thời gian dự đoán rất nhanh.

HOG-SVM

Phương pháp này được giới thiệu trong thư viện Dlib, Dlib là thư viện C++ và python cho máy học được tạo bởi Davis King Như tên phương pháp đã cho thấy, phương pháp này sử dụng Histogram of Oriented Gradients (HOG) để trích xuất đặc trưng và bộ phân lớp SVM cho phát hiện khuôn mặt Phương pháp này còn kết hợp các phương pháp như image pyramid và sliding window ( cửa sổ

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

Hình 2.3: Hình minh họa một số đặt trưng Haar được sử dung trong phương pháp Viola

Jones [3] trượt ) Nhược điểm của phương pháp này là còn hạn chế đối với khuôn mặt bị nghiêng hoặc cách xa máy ảnh.

Phương pháp họcsâu

SCRFD

SCRED là phương pháp được giới thiệu bởi insightface vào nam 2021 DCRFD dé xuất một phương pháp hiệu quả đối với đầu vào độ phân giải cố định ở độ

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN phân giải VGA ( 640x480 pixel ).

Cumulative Face Ratio ad œ o > r ° Ra T

Hình 2.6: phân phối kích thước khuôn mặt trong tập dữ liệu WIDER FACE Khi chiều dài được cô định ở đồ phân giải 640 pixel.

Hầu hết các khuôn mặt (78,93%) trong tập dữ liệu WIDER EACE nhỏ hơn

32 x 32 pixel(hinh 2.6) va chúng được dự đoán ở giai đoạn shallow stages Để có thêm các mẫu đào tạo cho các giai này, trước tiên phương pháp đề xuất phương pháp phân phối lại mẫu ( Sample Redistribution - SR) giúp tăng cường các mẫu đào tạo cho các giai đoạn cần thiết; và phân phối lại tính toán (Computation Redistribution - SR ), phân bố lại tính toán giữa backbone, neck và head của mô hình.

Hình 2.7: So sánh phân phối mau giữa phương pháp baseline và SCRFD

Phương pháp phân phối lại mẫu tăng cường mẫu đào tạo từ 72.3k lên 118.3k ở khuôn mặt 16x16 pixel va tang từ 95.9k lên 115.1k ở độ phân giải 32x32(hinh

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

2.7 trái) Điều này có được là nhờ thay vì tăng cường dữ liệu bằng random size trong khoảng [ 0.3, 1.0], phương pháp đã sử dụng khoảng [0.3, 2.0] (hình 2.7 phải) Nhờ đó đã làm tăng số lượng của mẫu dif liệu ở độ phân giải thấp liên đáng kể.

Hình 2.8: Phân phối lại tính toán trong kiến trúc mang SCRFD

Ngoài ra, phương pháp SCRFD còn đề xuất phương pháp phân bố lại toán giữa backbone, neck và head của mô hình (hinh2.8) Chiều rộng của hình chữ nhật tương ứng với chỉ phí tính toán Sau khi phân phối lại tính toán, nhiều tính toán hơn được phân bổ cho các giai đoạn nông (tức là C2 và C3) Điều này giúp mô hình đạt độ chính xác cao trông khi vẫn giữ được thời gian thực thi và tiêu hao tài nguyên ở mức thấp.

Phương pháp SCRFD được chia thành nhiều biến thể theo thứ tự tăng dần số lượng tính toàn được đo theo Gflops (Giga Floating Point Operations Per Sec- ond ): SCRFD_S5O0OM_KPS , SCRFD_2.5G_KPS, SCRFD_10G_KPS, _KPS có nghĩa là mô hình bao gồm 5 điểm mốc của khuôn mat.

YOLOv5 [11] là một phiên bản cải tiến từ YOLOv3 PyTorch [12] bởi Glenn Jocher Ban đầu những cải tiến này được gọi là YOLOv4 nhưng do trách xung đột bởi việc phát hành gần đây của YOLOv4 [13] trên Darknet, nên nó đã được đổi tên thành YOLOv5 Vì được phát triển trên thư viện PyTorch chứ không phải

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN là Darknet nên việc sửa đổi kiến trúc cũng như triển khai được trên nhiều môi trường khác nhau.

YOLOS5Face[1] là mô hình dựa trên YOLOv5 đã được tinh chỉnh để phù hợp và tăng độ chính xác với tác vụ phát hiện khuôn mặt Tác giả đã thêm Regression

Head với 5 điểm landmark trên khuôn mặt và sử dụng hàm Wing loss cho nó.

Việc thêm 5 điểm landmark đã làm cho đầu ra của mô hình từ 6 lên 16 gồm

4 bounding box, 1 confidence, 1 classification và 10 landmark với mỗi điểm landmark tương ứng 2 tọa độ Điều này đã làm tăng độ chính xác cho mô hình.

Ngoài ra, YOLOSFace còn thêm một đầu ra P6 với stride là 64 giúp tăng khả nang phát hiện khuôn mặt lớn và một loạt các tinh chỉnh khác giúp tang độ chính xác cho mô hình Kế thừa sự linh động trong thiết kế của YOLO YOLO5Face được thiết kế với 2 backbone nhẹ là ShuffleNetV2 và CSP nework. Các mô hình này rất nhỏ, trong khi đạt được hiệu suất SOTA cho thiết bị nhúng hoặc thiết bị di động Tổng cộng có 4 mô hình khác nhau: YOLOvSn, YOLOv5s, YOLOv5m, YOLOvS5I Đầu tiên là mô hình nhỏ nhất và kém chính xác nhất , cuối cùng mà mô hình lớn nhất và chính xác nhất Mô hình YOLOv5n sử dụng backbone ShuffleNetV2 trong khi các mô hình còn lại sử dụng CSP nework.

(a) Backbone with SPP and FPN (b) FAN (c) ouput

Hình 2.9: Kiến trúc mô hình YOLO5Face

YOLO5Face

2.3 Truy vết khuôn mặt với Deep SORT

Deep SORT [14] là một phương pháp phổ biến và được sử dụng rộng rải trong tác vụ truy vết vật thể Deep SORT là một phiên bản cải tiến từ SORT [15] nhằm giải quyết các van đề thiếu sót liên quan đến số lượng ID switches cao ID switches là van dé mất dấu đối tượng hoặc tráo ID của các đối tượng với nhau khi đối tượng bị che khuất, khi quỹ dao trùng lặp, Hướng giải quyết mà Deep SORT đề xuất dựa trên việc sử dụng deep learning để trích xuất các đặc trưng của đối tượng nhằm tăng độ chính xác trong quá trình liên kết dữ liệu Ngoài ra, một chiến lược liên kết cũng được xây dựng mang tên Matching Cascade giúp việc liên kết các đối tượng sau khi đã biến mất | thời gian được hiệu quả hơn.

Với chiến lược liên kết cũng như sử dụng những độ đo phù hợp, Deep SORT đã cải thiện được vấn đề của SORT Lượng switches ID giảm 45% đồng thời giảm các lỗi liên quan đến đối tượng bị che khuất hoặc biến mất 1 thời gian Dù tốc độ xử lỉ có giảm nhẹ, Deep SORT vẫn đảm bảo tốc độ xấp xỉ thời gian thực (realtime) nếu sử dụng GPU.

Tổng quan về nhận diện khuônmặt

Nhận diện khuôn mặt là bài toán match one-many Đầu vào bài toán là ảnh khuôn mặt được trích xuất thủ công hoặc bằng các phương pháp phát hiện khuôn mặt, đầu ra của bài toán là định danh của người trong ảnh (hình 2.10 ).

Dưới đây là các phương pháp nhận dạng khuôn mặt phổ biến hiện nay.

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

Hình 2.10: Đầu vào và đấu ra của bài toán nhận diện khuôn mặt

Các phương pháp nhận dạng khuôn mặt

FaceNet

FaceNet [7] là một phương pháp nhận dạng gương mặt được dé xuất bởi

Google vào năm 2015 Phương pháp rút trích đặc trưng dựa trên mạng tích chập lấy ý tưởng từ mạng Zeiler&Fergus [16] và Inception [17].

Hình 2.11: Kiến trúc Mô hình FaceNet

Sau quá trình encoding của mạng tích chập tạo ra embedding vector có 128 chiều Sau đó các vector này được đưa qua ham loss function gọi là Triplet loss(hình 2.12 để tính khoảng cách giữa các vector Hàm Triplet loss chọn một vector làm điểm móc gọi là Anchor, Positive là vector cùng một người với An- chor và Negative là một người khác với Anchor Hàm Triplet loss giúp tối thiểu hóa khoảng cách giữa Anchor và Positive và tối đa hóa khoảng cách giữa Anchor va Negative.

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

CosFace Q Q Q Q Ro 16 2.4.2.3 ArcFace

Hình 2.13: Kiến trúc Mô hình CosFace

Large Margin Cosine Loss (LMCL) hay còn được gọi là CosFace [8], được cải tiến dựa trên softmax loss, chúng đều có chung một ý tưởng là tối da hóa phương sai giữa inter-class và giảm thiểu phương sai của intra-class Ham loss được dé xuất như sau:

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

Lime = wv Li — log : 1 28 (089);,i-TM) +245, 95008 87 ¡ (2.1)

Theo điờu kiện W = IIEIE W= Tel? cos (ỉ;,Ă) = W7 xi

TT margin=0 6; margin>0

Hình 2.14: So sánh các bién(margin) quyết định của các hàm loss khác nhau

Trong hình 2.14, CosFace đã chỉ ra ảnh hưởng của giá trị margin với quyết định phân loại, CosFace đã so sánh 4 hàm loss:

Nhược điểm: biên phụ thuộc vào ca độ lớn của vector trọng số và góc, do đó biên quyết định bị chồng lên nhau trong không gian cosine.

Nhược điểm: yếu khi dữ liệu noise

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

Nhược điểm: biên trở nên nhỏ hơn khi @ giảm và biến mất hoàn toàn khi

CĂ : cos (ỉị) > cos (02) +m C2 : cos (@2) > cos (ỉỊ) +m

Uu điểm: mạnh hon kể cả khi có một ít nhiễu, nhất quán với mọi mẫu bat kể góc của weight vectors.

Hiện tại có 2 hướng nghiên cứu để huấn luyện một DCNNs cho bài toán nhận dạng khuôn mặt Hướng thứ nhất là huấn luyện một mạng CNNs với lớp cuối đóng vai trò là bộ phân lớp với số lớp bằng với số lớp có trong tập huấn luyện

(thường sử dụng softmax), hướng thứ hai là huấn luyện một mạng CNNs đã được loại bỏ lớp đầu ra ( output layer) tạo ra dữ liệu đầu ra là một vector đặc trưng (một embedding) thể hiện rõ sự tương quan giữa các lớp trong tập huấn luyện (cùng một lớp thì khoảng cách các embedding càng gần ngược lại 2 embedding khác lớp thì khoảng cách càng xa).

ArcFace là một phương pháp nhận dạng khuôn mặt được xây dựng theo hướng thứ 2, ArcFace cung cấp một hàm độ lỗi có khả năng đặt một mức "phạt" nhằm cũng cố cho các embedding trong cùng một lớp và tạo sự tách biệt rõ rệt cho các embedding không cùng một lớp.

Hàm ArcFace loss được biểu diễn như sau:

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN z ` i é

Feature Softmax kì -l9§| c— m¡ KẾ h $f Oy, +m Re-scale Đa

1 oe celle Neg etes Merge PSY mares 7 8 * C080; Probability Ground Truth Cross-entropy al j€[l, ,n Logit One Hot Vector Loss

Hình 2.15: Quá trình huấn luyện một DCNN sử dung Arcface loss

MagFace là phương pháp được dé xuất bởi Qiang Meng và các cộng sự tại hội nghị CVPR 2021 Tác giả nhận thấy các phương pháp trước đó thường bỏ qua mối quan hệ giữa đánh giá chất lượng khuôn mặt và nhận dạng khuôn mặt. Chất lượng khuôn mặt ở đây được định nghĩa là “hardness for recognition” va được thể hiện bởi độ lớn của đặc trưng khuôn mặt ( feature magnitude) Những phương pháp trước như Cosface, Arcface, Bỏ qua tầm quan trọng của độ lớn của đặc trưng qua việc chuẩn quá hóa đặc trưng.

Hình 2.16: MagFace học cach tim (a) các khuôn mặt trong tự nhiên (b) một phép nhúng phổ biến bằng cách kéo các mẫu dễ hơn đến gần lớp trung tâm hơn và đẩy chúng ra xa gốc tọa độ 0.

2 CÔNG TRÌNH LIÊN QUAN VÀ KIEN THỨC CƠ BẢN

Magface phân phối rõ ràng các đặc trưng về mặt cấu trúc theo hướng góc (hình 2.16 b) Bằng cách đưa ra các đặc trưng khuôn mặt của cùng một đối tượng nhưng ở các mức chất lượng khác nhau, nó tìm các phân phối trong lớp. Trong đó những đặc trưng có chất lượng cao ở gần trung tâm lớp trong khi đặc trưng có chất lượng thấp bị đẩy ra xa trung tâm lớp Bằng cách này, Magface ngăn không cho mô hình overfit các mẫu nhiễu và chất lượng thấp, đồng thời học cách phân phối cấu trúc tốt phù hợp hơn cho mục đích nhận dạng và gom nhóm.

Leis = N vi-1 L;, whereLy cỗ cos ( 6y, +m)

Ham loss lấy ý tưởng từ Arcface, Magface đã kết hợp giá trị độ lớn (magnitude ) của đặc trưng ( z¡) nhằm làm giảm trọng số các mau Hard trong quá trình đào tạo và “thưởng” cho vector đặc trưng đã học có độ lớn lớn trong hàm mat mát

2.5 Kết chương Ở chương này, chúng đã tìm hiểu chung về các bài toán con trong nhận dạng khuôn mặt, các giai đoạn của quá trình nhận dạng khuôn mặt, các hướng tiếp cận và các phương pháp tiên tiến nhất hiện này cho bài toán phát hiện khuôn mặt, truy vết khuôn mặt và nhận dạng khuôn mặt Ngoài ra từng phương pháp sẽ có ưu nhược điểm khác nhau, vì thế trong chương sau chúng tôi sẽ tiến hành đánh giá các phương pháp này để chọn ra phương pháp phù hợp với hệ thống.

XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP

3.1 Mở đầu Để có thể thử nghiệm các phương pháp đã tìm hiểu ở chương 2 nhằm chọn ra phương pháp phù hợp cho hệ thống phát hiện khuôn mặt, Do đó chúng tôi quyết đỉnh xây dựng tập dữ liệu phù hợp với môi trường thực tế mà mong muốn hệ thống sẽ chạy.

Vì đây là dữ liệu được trích xuất từ camera giám sát nên khoảng cách từ camera đến khuôn mặt sẽ ảnh hưởng lớn đến độ chính xác của hệ thống Ví dụ, khi triển khai hệ thống trên các camera gần khuôn mặt hay camera cách xa khuôn mặt thì nên chọn phương pháp nào phù hợp đối với từng khoảng cách Do đó, một tập dữ liệu phát hiện và nhận dạng được chia theo khoảng cách là cần thiết cho đánh giá. Đối với dữ liệu phát hiện khuôn mặt, chúng tối xây dựng tập dữ liệu từ camera giám sát với lượng người di chuyển liên tục và bộ dữ liệu được chia thành nhiều phần nhỏ theo khoảng cách camera đến khuôn mặt để có thể đánh giá các phương

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

QUAN. pháp phát hiện khuôn mặt ở từng khoảng cách khác nhau Đối với dữ liệu nhận diện khuôn mặt, vì dat thù gan nhãn của loại dữ liệu này chưa có công cu gan nhãn dữ liệu tối ưu giúp giảm thiểu thời gian gán nhãn, do đó chúng tôi quyết định xây dựng một hệ thống gán nhãn dữ liệu nhận diện khuôn mặt tối ưu thời gian gán nhãn.

Tại thời điểm xây dựng tập dữ liệu nhận diện khuôn mặt vào tháng 9 năm

2021, khi này dịch bệnh Covid-19 vẫn đang diễn biến phức tạp, ở nước ta người dân hạn chế đi lại, không tụ tập quá 10 người, các trường đại học chuyển sang hình thức học online tại nhà Trong khi đó, dữ liệu nhận dạng khuôn mặt cần một lượng lớn khuôn mặt từ nhiều người khác nhau Vì thế, trong tình hình hiện tại việc xây dựng bộ dữ liệu là bất khả thi, do đó chúng tôi đã gán nhãn một bộ dữ liệu được chụp bằng camera giám sát, điện thoại và máy tính bảng được cung cấp bởi một ứng dụng điểm danh khuôn mặt, dữ liệu khuôn mặt của sinh viên trường UIT.

3.2 Xây dựng tập dư liệu phát hiện khuôn mặt

Chúng tôi đã xây dựng tập dữ liệu phát hiện khuôn mặt phù hợp với điều kiện thực tế gồm điều kiện ánh sáng , góc quay khuôn mặt đa dạng và khoảng cách từ camera giám sát đến khuôn mặt Tập dữ liệu được quay với dòng người di chuyển liên tục bao gồm 20 phút video với 4280 ảnh và 8496 bounding box.

Cách thu thập dif liệu: tập dữ liệu được thu thập gồm trên những người tình nguyện Đầu tiên họ phải đi trước camera giám sát từ trong bóng tối và sau đó họ phải làm điều tương tự trong điều kiện ánh sáng trong nhà không được kiểm soát.

Phân loại | easy | medium | hard | dark | all số box 4456 | 2501 1539 | 769 | 8496

Bang 3.1: Bang thống kê số bounding box của tập dữ liệu phát hiện khuôn mặt

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

Chúng tôi gán nhãn dữ liệu phát hiện khuôn mặt theo khoảng cách từ người đến camera giám sát, cụ thể là:

* Easy: độ khó dễ, người cách camera dưới 2m nên diện tích bounding box rat lớn , tôi đa có thể lên tới 3 diện tích ảnh.

* Medium: độ khó trung bình, người cách camera từ 2 đến 5m.

* Hard: độ khó khó, cách camera từ 5 đến 8m, nhiều bounding box có diện tích chỉ 25px

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

* Dark: ảnh có độ sáng thấp.

Hình 3.4: hình minh họa ảnh khuôn mặt với độ sáng thấp

3.3 Xây dựng tập dư liệu nhận diện khuôn mặt

3.3.1 Hé thống gán nhãn dữ liệu

Xây dựng tập dữ liệu nhận diện khuôn mặt

Tap dữ liệu nhận diện khuôn mặt

Mộtsố độ đođánhgá

Fl-Score 0.002 eee eee 32

Mean average precision(mAP)

mAP là độ đo được sử dung phổ biến hiện nay cho bài toán Object Detection. mAP là độ chính xác trung bình trên nhiều lượt truy van được xác định theo công thức sau:

AP = 3.4 m 0 (3.4) trong đó: Ó là số lượt truy van

AveP(q) là số lượt truy van

3.4.6 Cosine Độ do Cosine là công thức đơn giản tính góc giữa 2 vector, trên thực tế nó cũng chính là công thức tính độ tương đồng giữa 2 vector Độ đo cosine được dùng để tính toán độ tương đồng giữa 2 vector đặc trưng được rút trích từ khuôn

Cosine ee ee ee 33

QUAN. mặt độ đo cosine được biểu dién theo công thức:

Kếtquả và đánhgiá

Đánh giá các phương pháp phát hiện khuôn mat

Chúng tôi đánh giá các phương pháp phát hiện khuôn mặt dựa trên ba tiêu chí chính đó là độ chính xác sử dụng mAP, thời gian xử lý của mỗi phương pháp trên từng bức ảnh, dung lượng GPU tiêu thụ Ngoài ra chúng tôi cũng đánh giá các phương pháp trên cả CPU bằng cách chuyển đổi mô hình pretrain sang onnx được các tác giả cung cấp nhằm giúp hệ thống linh hoạt hơn khi triển khai trên môi trường không có GPU ví dụ như raspberry.

Tên phương pháp mAP GPU (Mib) | Thời gian (s/image) | Thư viện Biến thể

Haar Cascade 35.14% NaN 0.238 opencv NaN HOG 30.36% NaN 0.682 dlib NaN PCN 49.25% NaN 0.495 NaN NaN

SCRFD 84.41% 950 0.16 pytorch SCRFD_500M_KPS SCRFD 88.86% 897 0.15 pytorch SCRFD_2.5G_KPS SCRFD 92.16% 957 0.136 pytorch SCRFD_10G_KPS SCRFD 76.70% NaN 0.043 onnx SCRFD_500M_KPS SCRFD 81.00% NaN 0.050 onnx SCRFD_2.5G_KPS

SCRFD 84.44% NaN 0.074 onnx SCRFD_10G_KPS

YOLOSface 94.79% 1249 0.0400 pytorch YOLOSN YOLOSface 96.38% 1409 0.0462 pytorch YOLOSM YOLOSface 96.36% 1281 0.0420 pytorch YOLOSS YOLOSface 96.80% 1637 0.0752 pytorch YOLOSL YOLOS face 65.70% NaN 0.190 onnx YOLOSS YOLOS face 82.39% NaN 0.260 onnx YOLOSM YOLOS face 83.36% NaN 0.290 onnx YOLOSL

Bang 3.2: Bang đánh giá các phương pháp phat hiện khuôn mặt trên toàn bộ tập dữ liệu

Dựa kết quả đánh giá từ bảng 3.5.1, ta nhận thay rằng các phương pháp dựa trên học sâu đã đạt được những bước tiến vượt bật cả về độ chính xác và thời gian xử lý Tiêu biểu nhất là phương pháp YOLOSface đạt độ chính xác cao nhất

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

QUAN. trên trên tat cả các biến thể với biến thé có độ chính xác cao nhất là YOLOSL là 96.8% và thấp nhất YOLOSN là 94.79%

Về tốc độ xử lý, YOLO5face đạt tốc độ xử lý nhanh nhất trên GPU với biến thể YOLOSN được 0.04 s/ảnh Ngoài ra YOLOSface có độ chính xác không qua chênh lệch so với từng biến thể , mặt dù biến thể YOLO5M có độ chính xác thấp hơn 0.44% so với YOLO5L nhưng thời gian xử lý nhanh hơn 84% so với

YOLOSL Tuy nhiên khi chuyển pretrain sang onnx độ chính của phương pháp giảm đi đáng kể cũng như thời gian xử lý chậm hơn rất nhiều so với trên GPU. Trong khi đó phương pháp SCRED đạt tốc độ nhanh nhất trên CPU khi chuyển đổi sang onnx với biến thể SCRFD500MKPS được 0.043 s/ảnh trong khi vẫn giữ độ chính xác ở mức chấp nhận được.

Về tài nguyên, Phương pháp SCRFD có mức tiêu thụ tài nguyên thấp hơn các phương pháp khác đáng kể với 957Mb với biến thể cao nhất, chỉ bằng 58% so với YOLOSface và 53% so với RetinaFace phương pháp RetinaFace sử dung tài nguyên nhiều nhất với 1773 Mb VRAM GPU phương pháp YOLOSface sử dụng tài nguyên linh hoạt từ 1249 đến 1637 Mb.

Tên phương pháp | easy | medium | hard dark Biến thể

SCRFD 93.11% | 70.81% | 16.45% | 62.49% | SCRFD_500M_KPS SCRFD 93.76% | 74.23% | 26.15% | 72.04% | SCRFD_2.5G_KPS

Bang 3.3: Bang đánh giá các phương pháp phát hiện khuôn mặt trên tập dữ liệu đã thu thập được với các khoảng cách khác nhau, độ sáng khác nhau

Xây dựng một hệ thống nhận diện khuôn mặt qua camera giám sát độ chính xác sẽ phụ thuộc rất nhiều vào khoảng cách từ khuôn mặt đến camera và thiếu sáng từ môi trường Vì vậy, ngoài đánh giá tổng quan về các phương pháp trên

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

QUAN. toàn bộ tập dữ liệu, chúng tôi đã đánh giá các phương pháp trên các khoảng cách khác nhau và điêu kiện thiêu sáng: ô Đối với khoảng cỏch dộ (easy): cỏc phương phỏp đều đạt độ chớnh xỏc cao trên 90% , phương pháp đạt độ chính xác cao nhất là YOLO5face với biên thể YOLOSS là 96.6%. ô Đối với khoảng cỏch trung bỡnh (medium): cỏc phương phỏp vẫn giữ được độ chính xác có thể chấp nhận được trên 70%. ô Đối với khoảng cỏch khú (hard): cỏc kớch thước của khuụn mặt khi nay chỉ nhỏ hơn 30x30 pixel với khuôn mặt có kích thước nhỏ nhất với chỉ 8x8 pixel , đây là một thách thức lớn đối với các phương pháp phát hiện khuôn mặt Độ chính xác bây giờ giảm đi đáng kể với độ chính xác cao nhất chỉ là 54.53% với phương pháp YOLOSface và thấp nhất là phương pháp SCRFD với 16.45%. ô Đối với dữ liệu cú độ sỏng thấp: phương phỏp cú độ chớnh xỏc cao nhất là phương pháp YOLOSface với 77.1% và thấp nhất là phương pháp SCRFD với 62.46%

Đánh giá các phương pháp nhận diện khuôn mat

Ở phần này, chúng tôi đánh giá các phương pháp nhận diện khuôn mặt đã tìm hiểu trên tập dữ liệu nhận diện khuôn mặt chúng tôi xây dựng Nhằm giúp hệ thống chọn ra phương pháp tối ưu, chúng tôi đã đánh giá các phương pháp trên các cầu hình backbone khác nhau với với mô hình pretrain được cung cấp bởi tác giả Các mẫu dữ liệu được đưa qua các phương pháp nhận diện khuôn mặt sẽ thu được các vector đặt trưng tương ứng, sau đó các vector sẽ được so sánh với nhau bằng độ do cosine và được đánh giá trên độ đo Fl-score, kết quả được thể hiện ở bảng dưới đây:

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

Tên phương pháp | F1 Score | Thời gian (s/image) | GPU (Mib)

FaceNet 0.687 0.076 1405 CosFace - r18 0.759 0.014 1810 CosFace - r34 0.872 0.018 1894 CosFace - r50 0.885 0.023 1975 CosFace - r100 0.891 0.04 2156 ArcFace - r18 0.697 0.014 1810 ArcFace - r34 0.811 0.018 1894 ArcFace - r50 0.852 0.024 1974

Bang 3.4: Bang đánh gia các phương pháp nhận diện khuôn mat Để cân bằng giữa độ chính xác, thời gian xử lý cũng như tài nguyên tiêu thụ, chúng tôi đã đánh giá các phương pháp các phương pháp với các backbone khác nhau trên 3 tiêu chí trên:

* Vé độ chính xác, phương pháp MagFace với độ chính xác cao nhất đạt 0.9 với backbone ResNet100 và phương pháp FaceNet cho độ chính xác thấp nhất 0.687 Ngoài ra phương pháp MagFace cũng cho độ chính xác cao nhất trên backbone ResNet50 đạt 0.896.

* Về tốc độ xử lý, phương pháp MagFace đạt tốc độ xử lý nhanh nhất trên cả 3 backbone lần lược ResNet100, ResNet50 và ResNet18 là 0.036, 0.021 và 0.013 giây trên mỗi tắm ảnh Ngoài ra, 2 phương pháp là CosFace và ArcFace vẫn giữ được tốc độ không quá chênh lệch so với phương pháp

MagFace. ô Về tài nguyờn tiờu thụ, phương phỏp MagFace cú mức tiờu hao tài nguyờn thấp nhất với backbone ResNet18 là 932 Mib VRAM, giảm hơn 50% so với phương pháp CosFace và ArcFace Đối với backbone ResNet100, phương

3.XÂY DỰNG TẬP DỮ LIỆU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LIÊN

QUAN. pháp MagFace là phương pháp tối ưu về mặt tài nguyên và đội chính xác nhất với độ chính xác cao nhất là 0.9 nhưng vẫn giữ được mức tiêu thụ tài nguyên thấp chỉ 1390 Mib VRAM

Kếtchương HQ ee 38 XÂY DỰNG HỆ THỐNG 39

Qua chương này, chúng tôi cũng đã xây dựng được một bộ dữ liệu để phục vụ cho việc đánh giá các phương pháp trong từng bài toán con với các hướng tiếp cận khác nhau Bên cạnh đó, nhóm tìm hiểu đã biết được các thông số đặc điểm riêng biệt của từng thuật toán về tốc độ xử lý và độ chính xác Biết được đâu là phương pháp, thuật toán phù hợp nhất để áp dụng trong một bài toán thực

4.1 Mở đầu Ở chương trước, chúng tôi đã giới thiệu tổng quát về các vấn đề liên quan đến bài toán cũng như đánh giá các phương pháp để chọn ra phương pháp phù hợp cho hệ thống Trong chương này, chúng tôi thảo luận về quá trình thiết kế kiến trúc của hệ thống, cũng như các chỉ tiết kỹ thuật cần thiết để xây dựng một hệ thống Sau đó chúng tôi tiễn hành đánh giá tốc độ cũng như độ chính xác của hệ thống khi áp dụng thực tế.

Chúng tôi xây dựng hệ thống nhận diện khuôn mặt theo ba bước chính: Phát hiện khuôn mặt - Theo vết khuôn mặt - nhận dạng khuôn mặt Vì bước phát hiện phương tiện được thực hiện trên các đơn vi GPU với chi phi cao, ở đây chúng tôi bổ sung một bước tiền xử lý để xác định xem một khuôn mặt được trính xuất từ phát hiện khuôn mặt có phù hợp để nhận dạng khuôn mặt hay không Chỉ tiết kỹ thuật về mỗi bước trong bài toán sẽ được thảo luận kỹ hơn ở phần sau Để thiết kế hệ thống có khả năng mở rộng và chịu tải tốt, chúng tôi dựa theo kiến trúc

4 XÂY DUNG HỆ THONG microservices với các module (Hình 4.1):

* Module phát hiện và truy vết khuôn mặt: Sử dụng phương pháp YOLOSface với biến thể YOLOSS với tốc độ nhanh nhất nhưng vẫn giữ được độ chính xác cao.

* Module tiền xử lý dữ liệu: loại bỏ các khuôn mặt không đạt chất lượng để đưa vào nhận dạng khuôn mặt

* Module rút trích đặt trưng khuôn mặt: Thực hiện rút trích đặc trưng khuôn mặt và định danh khuôn mặt được rút trích. ° Module thu thập dữ liệu mới:Cho phép thêm người dùng vào cơ sở dit liệu.

Dữ liệu từ camera giám sát

Phát hiện vả truy vết khuôn mặt

Tiền xử lý dữ liệu Rút trích đặt trưng khuôn mặt

Hình 4.1: Kiến trúc hệ thống

4.3.1 Module lấy dữ liệu từ camera giám sát

Module này sử dung thư viện OpenCV để doc dif liệu truyền về từ các camera giám sát, dif liệu này được tiếp nhận và lưu trữ dưới dang các frame(khung ảnh), các frame này sau đó được sử dụng cho các quá trình phát hiện khuôn mặt, tiền xử lý ở các bước sau và streaming trực tiếp lên website hỗ trợ việc giám sát.

Module này cũng có trách nhiệm kiểm tra tình trạng của các camera, tự động khởi động lại camera khi bị lỗi, mất mat kết nối hoặc tốc độ đường truyền không ổn định

4.3.2 Module phát hiện và truy vết khuôn mặt

Hình 4.2: Minh họa đầu ra của YOLO5face

Vì ở module này nhận dữ liệu đầu vào là luồng video với kích thước ảnh lớn nên muốn hệ thống được real-time cần phải chọn một phương pháp nhận diện khuôn mặt với thời gian thực thi nhanh nhưng vẫn đảm bảo được độ chính xác.

Chúng tôi quyết định sử dụng phương pháp YOLO5face với biến thể nhỏ nhất là YOLOSS cho thời gian thực thi chi 0.042s cho từng ảnh nhưng vẫn giữ được độ chính xác cao Tracking khuôn mặt sử dụng phương pháp DeepSORT giúp truy vết khuôn mặt hỗ trợ trong quá trình nhận dạng khuôn mặt Đầu ra của YOLOSface gồm vị tri bounding box của khuôn mặt và 5 điểm móc của khuôn mặt.

4.3.3 Module tiền xử lý dữ liệu

Trong module này các ảnh khuôn mặt được rút trích ở trên được đưa qua một số bộ lọc nhằm loại bỏ các khuôn mặt có chất lượng thấp, không phù hợp cho nhận dạng nhằm tăng tính chính xác của quá trình nhận dạng khuôn mặt.

* Bộ lọc kích thước khuôn mặt: bộ lọc này sẽ loại bỏ các khuôn mặt có kích thước nhỏ hơn 70x70 pixel.

* Bộ loc chất lượng khuôn mặt: trong quá trình tìm hiểu các phương pháp liên quan, chúng tôi nhận thấy phương pháp nhận dạng khuôn mặt Mag- Face sau khi chuyển khuôn mặt thành đặc trưng có thể sử dụng cho việc đánh giá chất lượng khuôn mặt (hình 4.3), vì vậy chúng tôi đã sử dụng phương pháp này cho bộ lọc chất lượng khuôn mặt.

* Bộ lọc mờ: loại bỏ những khuôn mặt bị mờ do di chuyển nhanh hoặc ảnh hưởng bởi điều kiện ánh sáng từ môi trường,

Hình 4.3: Đánh giá chất lượng khuôn mặt được trích xuất đặt trưng từ phương pháp

4.3.4 Module nhận dạng khuôn mặt

Sử dụng phương pháp Dữ liệu thu thập được chúng tôi lưu trữ thành 2 folder face và feature dùng chứa ảnh khuôn mặt và vector đặc trưng đã được rút trích.

Trong 2 folder ấy lại được tổ chức thành nhiều folder nhỏ hơn tưng ứng với các lớp dữ liệu-định danh Các khuôn mặt còn lại sau khi đã lọc được đưa đến module nhận dạng để định danh Tại module này chúng tôi sử dụng phương pháp

MagFace với bacbone ResNet100 , là phương pháp có độ chính xác cao nhất đã đánh giá nhưng vẫn giữ được tốc độ chấp nhận được để trích xuất đặc trưng từ khuôn mặt, trong phương pháp MagFace ảnh khuôn mặt sẽ được resize về kích thước 112x112 sau đó dựa vào các điểm mốc thu được từ YOLO5face khuôn mặt sẽ được căn chỉnh lại Tiếp đó ảnh sẽ được đưa đi rút trích đặc trưng kết quả là ta thu được một vector 512 chiều thể hiện các đặc trưng của khuôn mặt đầu vào.

Loại bỏ các trường hợp khuôn mặt không có trong tập dữ liệu Với một số hệ thống giám sát án ninh với mục đích cham công hoặc điểm ảnh, việc loại trừ các trường hợp điểm danh hộ là vô cùng cần thiết Hoặc đơn giản là có một gương mặt lạ xuất hiện trong bức hình cũng bị nhận nhầm là nhân viên trong công ty

Các khuôn mặt lạ này chung quy lại là các khuôn mặt “unknown”.

Kiếntrúchệthỗng

Module lấy dữ liệu từ camera giám sát

Module này sử dung thư viện OpenCV để doc dif liệu truyền về từ các camera giám sát, dif liệu này được tiếp nhận và lưu trữ dưới dang các frame(khung ảnh), các frame này sau đó được sử dụng cho các quá trình phát hiện khuôn mặt, tiền xử lý ở các bước sau và streaming trực tiếp lên website hỗ trợ việc giám sát.

Module này cũng có trách nhiệm kiểm tra tình trạng của các camera, tự động khởi động lại camera khi bị lỗi, mất mat kết nối hoặc tốc độ đường truyền không ổn định

Module phát hiện và truy vết khuôn mat 2 Al

Hình 4.2: Minh họa đầu ra của YOLO5face

Vì ở module này nhận dữ liệu đầu vào là luồng video với kích thước ảnh lớn nên muốn hệ thống được real-time cần phải chọn một phương pháp nhận diện khuôn mặt với thời gian thực thi nhanh nhưng vẫn đảm bảo được độ chính xác.

Chúng tôi quyết định sử dụng phương pháp YOLO5face với biến thể nhỏ nhất là YOLOSS cho thời gian thực thi chi 0.042s cho từng ảnh nhưng vẫn giữ được độ chính xác cao Tracking khuôn mặt sử dụng phương pháp DeepSORT giúp truy vết khuôn mặt hỗ trợ trong quá trình nhận dạng khuôn mặt Đầu ra của YOLOSface gồm vị tri bounding box của khuôn mặt và 5 điểm móc của khuôn mặt.

Module tiền xử lý dữliệu

Trong module này các ảnh khuôn mặt được rút trích ở trên được đưa qua một số bộ lọc nhằm loại bỏ các khuôn mặt có chất lượng thấp, không phù hợp cho nhận dạng nhằm tăng tính chính xác của quá trình nhận dạng khuôn mặt.

* Bộ lọc kích thước khuôn mặt: bộ lọc này sẽ loại bỏ các khuôn mặt có kích thước nhỏ hơn 70x70 pixel.

* Bộ loc chất lượng khuôn mặt: trong quá trình tìm hiểu các phương pháp liên quan, chúng tôi nhận thấy phương pháp nhận dạng khuôn mặt Mag- Face sau khi chuyển khuôn mặt thành đặc trưng có thể sử dụng cho việc đánh giá chất lượng khuôn mặt (hình 4.3), vì vậy chúng tôi đã sử dụng phương pháp này cho bộ lọc chất lượng khuôn mặt.

* Bộ lọc mờ: loại bỏ những khuôn mặt bị mờ do di chuyển nhanh hoặc ảnh hưởng bởi điều kiện ánh sáng từ môi trường,

Hình 4.3: Đánh giá chất lượng khuôn mặt được trích xuất đặt trưng từ phương pháp

Module nhận dạng khuôn mặt

Sử dụng phương pháp Dữ liệu thu thập được chúng tôi lưu trữ thành 2 folder face và feature dùng chứa ảnh khuôn mặt và vector đặc trưng đã được rút trích.

Trong 2 folder ấy lại được tổ chức thành nhiều folder nhỏ hơn tưng ứng với các lớp dữ liệu-định danh Các khuôn mặt còn lại sau khi đã lọc được đưa đến module nhận dạng để định danh Tại module này chúng tôi sử dụng phương pháp

MagFace với bacbone ResNet100 , là phương pháp có độ chính xác cao nhất đã đánh giá nhưng vẫn giữ được tốc độ chấp nhận được để trích xuất đặc trưng từ khuôn mặt, trong phương pháp MagFace ảnh khuôn mặt sẽ được resize về kích thước 112x112 sau đó dựa vào các điểm mốc thu được từ YOLO5face khuôn mặt sẽ được căn chỉnh lại Tiếp đó ảnh sẽ được đưa đi rút trích đặc trưng kết quả là ta thu được một vector 512 chiều thể hiện các đặc trưng của khuôn mặt đầu vào.

Loại bỏ các trường hợp khuôn mặt không có trong tập dữ liệu Với một số hệ thống giám sát án ninh với mục đích cham công hoặc điểm ảnh, việc loại trừ các trường hợp điểm danh hộ là vô cùng cần thiết Hoặc đơn giản là có một gương mặt lạ xuất hiện trong bức hình cũng bị nhận nhầm là nhân viên trong công ty

Các khuôn mặt lạ này chung quy lại là các khuôn mặt “unknown”.

Các khuôn mặt “unknown” là các khuôn mặt không có trong bộ dữ liệu được huấn luyện từ trước Khi ảnh xuất hiện các khuôn mặt này, nếu không tiễn hành xác định và loại trừ thì khả năng cao hệ thống sẽ nhận nhầm với các khuôn mặt có trong bộ dữ liệu và tiến hành điểm danh sai là rất cao Từ cosine distance ta có thể xác định các khuôn mặt “unknown” với một tỉ lệ nhất định dựa trên ngưỡng cho phép (threshold) Không có một quy tắc chuẩn nào cho việc lựa chọn ngưỡng trong nhận dạng khuôn mặt, mà giá trị ngưỡng này được chọn thông qua các lần thử nghiệm mang lại kết quả tốt nhất.

Module hiển thịthôngtin

Module này là phần giao diện website của hệ thống, cung cấp một môi trường thân thiện cho người sử dụng, dễ dàng quản lý, bảo trì hệ thống Với phần back- end sử dụng thư viện Flask của Python còn phần front-end sử dụng template AdminLTE làm nền tang để chỉnh sửa làm giao diện trở nên đơn giản hơn.

4.3.6 Module thu thập du liệu mới

Là module cho phép người dùng upload ảnh khuôn mặt được chụp hoặc được cắt ra từ video và tên nhãn dữ liệu Sau khi upload dữ liệu sẽ được chuyển đến cơ sở dữ liệu, người dùng có thể tùy chọn có nên cập nhật dif liệu cho thé thống hay không.

4.3.7 Module cập nhật dữ liệu mới

Khi dữ liệu được thêm vào cơ sở dữ liệu hình ảnh khuôn mặt bằng module thu thập dữ liệu mới hoặc module phát hiện khuôn mặt Bởi vì trong quá trình nhận dạng khuôn mặt, chúng ta cần so khớp các đặc trưng khuôn mặt từ đầu vào video giám sát với đặt trưng khuôn mặt trong tập dữ liệu, vì thé can một module có nhiệm vụ rút trích đặc trưng khi cập nhật dữ liệu trong cơ sở dữ liệu.

Ngoài ra, dữ liệu đặc trưng khuôn mặt được lưu theo định dang file npy , đối với cơ sở dữ liệu có số khuôn mặt lớn, việc load file npy sẽ tốn nhiễu thời gian, chúng tôi đã sử dụng thư viện pickle lưu lại toàn bộ tập dữ liệu vào file cache với định dạng pkl Việc này giúp tăng tốc trong quá trình truy xuất vào cơ sở dữ liệu đặc trưng khuôn mặt.

Hình 4.4: Tổ chức tập dữ liệu thệ thống

4.4 Giao diện hệ thông và một sô kêt qua

Sau đây là một số hình ảnh minh họa của hệ thống:

Sau khi đăng nhập vào hệ thống , màn hình sẽ hiển thị giao diện tổng quan của hệ thống, ở khung màu xanh lá màn hình quản lý camera (hình 4.6) Ở đây cung cấp các chức năng cần thiết cho việc quản lý camera như thêm camera, xóa camera, hiển thị số khung hình của camera Ngoài ra còn có thể tùy chọn ngưởng độ chính xác cho nhánh nhận dạng khuôn mặt và tùy chọn phương pháp

Hình 4.5: Giao diện đăng nhập hệ thông phát hiện khuôn mặt.

IP Camera URL rtsp://192.168.28.75:8554/cafe2

Check for many simultaneous cameras (FPS Tweak)

Camera 1 FPS: 7.74 rtsp:jJ192.168.28.75:8554/test

Hinh 4.6: Giao dién thém va quan ly camera

Sau khi thêm camera vào, hệ thống sẽ hiển thị các khung hình của camera theo thời gian thực (hình 4.7) Các khuôn mặt đã nhận dạng sẽ được hiển thị bên khung Face Detected.

Hinh 4.7: Giao dién chinh Ở khung hiển thị khuôn mặt đã được phát hiện, có 3 tùy chọn có thể sử dụng(hình 4.8) Thứ nhất là Remove, xóa khuôn mặt không quan tâm đến Thứ hai là Trust, khuôn mặt được xác nhận là đúng định danh và được thêm vào tập dữ liệu khuôn mặt đó đã có Thứ 3 là Add New Face, chức năng này được sử dụng khi muốn thêm định danh một người "Unknown" vào tập dữ liệu hoặc gán nhãn lại khuôn mặt khi hệ thống định danh sai.

Giao diện upload khuôn mặt mới (hình 4.9), kết nỗi mới 2 module là thu thập dữ liệu mới và cập nhật dữ liệu mới.

Trong hệ thống này, chúng tôi sử dụng cấu hình tương tự như cấu hình máy đã ở chương 2 để đám bảo phù hợp với kết quả đã đánh giá các phương pháp Dù hệ thống phải xử lý rất nhiều bước khác nhau và các bước trong đó đa phần sử

Hình 4.8: Giao diện hiển thị các khuôn mặt đã nhận dạng và thêm khuôn mặt

Choose file No file chosen Submit

Hình 4.9: Giao diện upload dữ liệu khuôn mặt dụng các phương pháp học sau nhưng hệ thống vẫn giữ được real-time với một camera trung bình trên 22 khung hình trên một giây Trong khi đó hệ thống vẫn giữ được độ chính xác cao Ngoài ra, hệ thống có hổ trợ nhiều camera cùng lúc với tối đa lên đến 6 camera với trung bình mỗi cam từ 3 đến 6 khung hình trên một giây một số ưu điểm và nhược điểm của hệ thống: Ưu điểm: ¢ Hệ thống có thể real-time, đều này là vô cùng cần thiết khi dữ liệu là luồn video theo thời gian thực giúp cho người dùng dễ dàng khi có thì huống cấp thiết như có người lạ đột nhập.

4 XÂY DUNG HỆ THONG ằ Hệ thống được xõy dựng trờn mụ hỡnh microservice giỳp dộ dang thay thộ, nâng cap các module khi can thiệt. ô Kết hợp cỏc phương phỏp đó đạt được SOTA của từng bài toỏn tại thời điểm thực hiện kháo luận nên hệ thống cho ra kết quả tương đối tốt.

* Chưa thể real-time với số lượng nhiều camera. ¢ Hệ thống hoạt động kém khi khuôn mặt ở xa so với camera, không đủ thông tin đặt trưng khuôn mặt để tiến hành định danh. ô Bộ lọc tiền xử ly dif liệu khuụn mặt hoạt động chưa thật sự tốt.

Trong chương này chúng tôi đã giới thiệu về chỉ tiết các kiến trúc trong hệ thống của chúng tôi Chúng tôi đã chọn lọc và áp dụng các phương pháp tối ưu nhất cho hệ thống nhận dạng khuôn mặt

KÊT LUẬN VÀ HƯỚNG PHÁT

Nội dung của khóa luận này chúng tôi đã xây dựng một hệ thống nhận diện khuôn mặt cho camera giám sát, trong đó các thành phần xử lý đều áp dụng các phương pháp Deep learning nhưng vẫn đảm bảo tốc độ xử lý thời gian thực Để lựa chon các phương pháp phù hợp nhằm đảm bảo cân bằng giữa các yếu tố độ chính xác, tốc độ xử lý, tài nguyên sử dụng chúng tôi đã tiến hành thu thập và xây dựng các tập dữ liệu thực và đánh giá các phương pháp tiên tiến nhất hiện nay trên các tập dữ liệu này.

Chúng tôi đã xây dựng 2 tập dữ liệu cho pháp hiện khuôn mặt và nhận dạng khuôn mặt Đối với tập dữ liệu phát hiện khuôn mặt, chúng tối đã chia tập dữ liệu thành nhiều phần các nhau dự theo khoảng cách khuôn mặt tới camera và trong môi trường thiếu sáng, nhằm giúp đánh giá chi tiết hơn phù hợp với dữ liệu là video được trích xuất từ camera giám sát Đối với tập dit liệu nhận dạng khuôn mặt, vì đại dịch Covid-19 đã hạn chế cho việc thu thập dữ liệu thực tế, vì vậy chúng tôi đã sử dung dữ liệu từ mmlab-UIT dé gan nhãn và đánh giá, đây là tập đữ liệu mất cân bằng và có nhiều trường hợp khó Sau đó chúng tôi đã

50 đánh giá các phương pháp tiên tiến nhất hiện nay cho phát hiện khuôn mặt là

Viola Jones, RetinaFace, SRCFD, YOLOSface và cho nhận diện khuôn mặt là

FaceNet, CosFace, ArcFace, và MagFace.

Bên cạnh đó, chúng tôi đã xây dung hệ thống kết hợp nhiều phương pháp và công nghệ khác nhau nhưng đảm bảo hệ thống có thể xử lý trong thời gian thực Ngoài ra hệ thống có thể chịu tải nhiều camera cùng lúc với tối đa 6 camera.

Giao diệnhệthống

Sau đây là một số hình ảnh minh họa của hệ thống:

Sau khi đăng nhập vào hệ thống , màn hình sẽ hiển thị giao diện tổng quan của hệ thống, ở khung màu xanh lá màn hình quản lý camera (hình 4.6) Ở đây cung cấp các chức năng cần thiết cho việc quản lý camera như thêm camera, xóa camera, hiển thị số khung hình của camera Ngoài ra còn có thể tùy chọn ngưởng độ chính xác cho nhánh nhận dạng khuôn mặt và tùy chọn phương pháp

Hình 4.5: Giao diện đăng nhập hệ thông phát hiện khuôn mặt.

IP Camera URL rtsp://192.168.28.75:8554/cafe2

Check for many simultaneous cameras (FPS Tweak)

Camera 1 FPS: 7.74 rtsp:jJ192.168.28.75:8554/test

Hinh 4.6: Giao dién thém va quan ly camera

Sau khi thêm camera vào, hệ thống sẽ hiển thị các khung hình của camera theo thời gian thực (hình 4.7) Các khuôn mặt đã nhận dạng sẽ được hiển thị bên khung Face Detected.

Hinh 4.7: Giao dién chinh Ở khung hiển thị khuôn mặt đã được phát hiện, có 3 tùy chọn có thể sử dụng(hình 4.8) Thứ nhất là Remove, xóa khuôn mặt không quan tâm đến Thứ hai là Trust, khuôn mặt được xác nhận là đúng định danh và được thêm vào tập dữ liệu khuôn mặt đó đã có Thứ 3 là Add New Face, chức năng này được sử dụng khi muốn thêm định danh một người "Unknown" vào tập dữ liệu hoặc gán nhãn lại khuôn mặt khi hệ thống định danh sai.

Giao diện upload khuôn mặt mới (hình 4.9), kết nỗi mới 2 module là thu thập dữ liệu mới và cập nhật dữ liệu mới.

Trong hệ thống này, chúng tôi sử dụng cấu hình tương tự như cấu hình máy đã ở chương 2 để đám bảo phù hợp với kết quả đã đánh giá các phương pháp Dù hệ thống phải xử lý rất nhiều bước khác nhau và các bước trong đó đa phần sử

Hình 4.8: Giao diện hiển thị các khuôn mặt đã nhận dạng và thêm khuôn mặt

Choose file No file chosen Submit

Hình 4.9: Giao diện upload dữ liệu khuôn mặt dụng các phương pháp học sau nhưng hệ thống vẫn giữ được real-time với một camera trung bình trên 22 khung hình trên một giây Trong khi đó hệ thống vẫn giữ được độ chính xác cao Ngoài ra, hệ thống có hổ trợ nhiều camera cùng lúc với tối đa lên đến 6 camera với trung bình mỗi cam từ 3 đến 6 khung hình trên một giây một số ưu điểm và nhược điểm của hệ thống: Ưu điểm: ¢ Hệ thống có thể real-time, đều này là vô cùng cần thiết khi dữ liệu là luồn video theo thời gian thực giúp cho người dùng dễ dàng khi có thì huống cấp thiết như có người lạ đột nhập.

4 XÂY DUNG HỆ THONG ằ Hệ thống được xõy dựng trờn mụ hỡnh microservice giỳp dộ dang thay thộ, nâng cap các module khi can thiệt. ô Kết hợp cỏc phương phỏp đó đạt được SOTA của từng bài toỏn tại thời điểm thực hiện kháo luận nên hệ thống cho ra kết quả tương đối tốt.

* Chưa thể real-time với số lượng nhiều camera. ¢ Hệ thống hoạt động kém khi khuôn mặt ở xa so với camera, không đủ thông tin đặt trưng khuôn mặt để tiến hành định danh. ô Bộ lọc tiền xử ly dif liệu khuụn mặt hoạt động chưa thật sự tốt.

Trong chương này chúng tôi đã giới thiệu về chỉ tiết các kiến trúc trong hệ thống của chúng tôi Chúng tôi đã chọn lọc và áp dụng các phương pháp tối ưu nhất cho hệ thống nhận dạng khuôn mặt

KÊT LUẬN VÀ HƯỚNG PHÁT

Nội dung của khóa luận này chúng tôi đã xây dựng một hệ thống nhận diện khuôn mặt cho camera giám sát, trong đó các thành phần xử lý đều áp dụng các phương pháp Deep learning nhưng vẫn đảm bảo tốc độ xử lý thời gian thực Để lựa chon các phương pháp phù hợp nhằm đảm bảo cân bằng giữa các yếu tố độ chính xác, tốc độ xử lý, tài nguyên sử dụng chúng tôi đã tiến hành thu thập và xây dựng các tập dữ liệu thực và đánh giá các phương pháp tiên tiến nhất hiện nay trên các tập dữ liệu này.

Chúng tôi đã xây dựng 2 tập dữ liệu cho pháp hiện khuôn mặt và nhận dạng khuôn mặt Đối với tập dữ liệu phát hiện khuôn mặt, chúng tối đã chia tập dữ liệu thành nhiều phần các nhau dự theo khoảng cách khuôn mặt tới camera và trong môi trường thiếu sáng, nhằm giúp đánh giá chi tiết hơn phù hợp với dữ liệu là video được trích xuất từ camera giám sát Đối với tập dit liệu nhận dạng khuôn mặt, vì đại dịch Covid-19 đã hạn chế cho việc thu thập dữ liệu thực tế, vì vậy chúng tôi đã sử dung dữ liệu từ mmlab-UIT dé gan nhãn và đánh giá, đây là tập đữ liệu mất cân bằng và có nhiều trường hợp khó Sau đó chúng tôi đã

50 đánh giá các phương pháp tiên tiến nhất hiện nay cho phát hiện khuôn mặt là

Viola Jones, RetinaFace, SRCFD, YOLOSface và cho nhận diện khuôn mặt là

FaceNet, CosFace, ArcFace, và MagFace.

Bên cạnh đó, chúng tôi đã xây dung hệ thống kết hợp nhiều phương pháp và công nghệ khác nhau nhưng đảm bảo hệ thống có thể xử lý trong thời gian thực Ngoài ra hệ thống có thể chịu tải nhiều camera cùng lúc với tối đa 6 camera.

Về tương lai, Sinh viên mong muốn hoàn thiện hơn đề tài này với các vấn để sau: ¢ Cải thiện độ chính xác bộ lọc khuôn mặt. ô Chuyển đổi cỏc mụ hỡnh sang TensorRT giỳp tăng tốc độ xử lý. ô Áp dụng cụng nghệ big data như hệ thống phõn tỏn Kafka giỳp tăng khả năng chịu tải nhiều camera cùng lúc. ằ Chỉnh sửa giao diện phự hợp với người dựng hơn. ô Triển khai hệ thống trờn thiết bị nhỳng như Jetson.

[1] D Qi, W Tan, Q Yao, and J Liu, “YoloSface: Why reinventing a face detector,” arXiv preprint arXiv:2105.12931, 2021 xi, 4, 13

[2] Q Meng, S Zhao, Z Huang, and F Zhou, “Magface: A universal repre- sentation for face recognition and quality assessment,” in Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition,

[3] P Viola and M Jones, “Rapid object detection using a boosted cascade of simple features,’ in Proceedings of the 2001 IEEE computer society conference on computer vision and pattern recognition CVPR 2001, vol 1. Teee, 2001, pp I-I 4, 9

[4] N Dalal and B Triggs, “Histograms of oriented gradients for human de- tection,” in 2005 IEEE computer society conference on computer vision and pattern recognition (CVPR’05), vol 1 Teee, 2005, pp 886-893 4

[5] J Deng, J Guo, Y Zhou, J Yu, I Kotsia, and S Zafeiriou, “Reti- naface: Single-stage dense face localisation in the wild,” arXiv preprint arXiv:1905.00641, 2019 4

[6] J Guo, J Deng, A Lattas, and S Zafeiriou, “Sample and computation re- distribution for efficient face detection,” arXiv preprint arXiv:2105.04714,

[7] E Schroff, D Kalenichenko, and J Philbin, “Facenet: A unified embed- ding for face recognition and clustering,” in Proceedings of the IEEE con- Jerence on computer vision and pattern recognition, 2015, pp 815-823 4, 15

[8] H Wang, Y Wang, Z Zhou, X Ji, D Gong, J Zhou, Z Li, and W Liu,

“Cosface: Large margin cosine loss for deep face recognition,” in Proceed- ings of the IEEE conference on computer vision and pattern recognition,

[9] J Deng, J Guo, N Xue, and S Zafeiriou, “Arcface: Additive angular margin loss for deep face recognition,” in Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2019, pp 4690—

[10] J Deng, J Guo, E Ververas, I Kotsia, and S Zafeiriou, “Retinaface:

Single-shot multi-level face localisation in the wild,” in Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition,

[11] “Yolov5,” https://github.com/ultralytics/yolov5, 2020 12

[12] “Yolov3,” https://github.com/ultralytics/yolov3, 2016 12

[13] A Bochkovskiy, C.-Y Wang, and H.-Y M Liao, “Yolov4: Optimal speed and accuracy of object detection,” arXiv preprint arXiv:2004 10934, 2020. 12

Ngày đăng: 03/11/2024, 18:05

HÌNH ẢNH LIÊN QUAN

Hình minh họa TripletLoss.................... - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình minh họa TripletLoss (Trang 8)
Bảng đánh giá các phương pháp phát hiện khuôn mặt trên toàn - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
ng đánh giá các phương pháp phát hiện khuôn mặt trên toàn (Trang 10)
Hình 1.1: Minh họa dữ liệu từ camera giám sát và tập dữ liệu nhận diện khuôn mặt phổ - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 1.1 Minh họa dữ liệu từ camera giám sát và tập dữ liệu nhận diện khuôn mặt phổ (Trang 15)
Hình 2.1: Các nhánh trong bài toán nhận diện khuôn mặt - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.1 Các nhánh trong bài toán nhận diện khuôn mặt (Trang 19)
Hình ảnh kỹ thuật số được lay mẫu trước đó hoặc từ một khung hình trong một nguồn video khác - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
nh ảnh kỹ thuật số được lay mẫu trước đó hoặc từ một khung hình trong một nguồn video khác (Trang 19)
Hình 2.2: đầu vào va dau ra của bài toán pháp hiện khuôn mặt - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.2 đầu vào va dau ra của bài toán pháp hiện khuôn mặt (Trang 21)
Hình 2.3: Hình minh họa một số đặt trưng Haar được sử dung trong phương pháp Viola - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.3 Hình minh họa một số đặt trưng Haar được sử dung trong phương pháp Viola (Trang 22)
Hình 2.5: Trong RetinaFace các quá trình hoc của bộ phân lớp khuôn mặt, bộ hồi quy - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.5 Trong RetinaFace các quá trình hoc của bộ phân lớp khuôn mặt, bộ hồi quy (Trang 23)
Hình 2.7: So sánh phân phối mau giữa phương pháp baseline và SCRFD - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.7 So sánh phân phối mau giữa phương pháp baseline và SCRFD (Trang 24)
Hình 2.6: phân phối kích thước khuôn mặt trong tập dữ liệu WIDER FACE. Khi chiều dài được cô định ở đồ phân giải 640 pixel. - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.6 phân phối kích thước khuôn mặt trong tập dữ liệu WIDER FACE. Khi chiều dài được cô định ở đồ phân giải 640 pixel (Trang 24)
Hình 2.8: Phân phối lại tính toán trong kiến trúc mang SCRFD - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.8 Phân phối lại tính toán trong kiến trúc mang SCRFD (Trang 25)
Hình 2.9: Kiến trúc mô hình YOLO5Face - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.9 Kiến trúc mô hình YOLO5Face (Trang 26)
Hình 2.11: Kiến trúc Mô hình FaceNet - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.11 Kiến trúc Mô hình FaceNet (Trang 28)
Hình 2.14: So sánh các bién(margin) quyết định của các hàm loss khác nhau - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.14 So sánh các bién(margin) quyết định của các hàm loss khác nhau (Trang 30)
Hình 2.15: Quá trình huấn luyện một DCNN sử dung Arcface loss - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.15 Quá trình huấn luyện một DCNN sử dung Arcface loss (Trang 32)
Hình 2.16: MagFace học cach tim (a) các khuôn mặt trong tự nhiên (b) một phép nhúng - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 2.16 MagFace học cach tim (a) các khuôn mặt trong tự nhiên (b) một phép nhúng (Trang 32)
Hình 3.4: hình minh họa ảnh khuôn mặt với độ sáng thấp - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 3.4 hình minh họa ảnh khuôn mặt với độ sáng thấp (Trang 37)
Hình 3.5: Giao diện chọn đầu vào từ nhiều nguồn video khác nhau (stream link, video - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 3.5 Giao diện chọn đầu vào từ nhiều nguồn video khác nhau (stream link, video (Trang 39)
Hình 3.6: Giao diện stream video va gan nhãn dữ liệu khuôn mặt - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 3.6 Giao diện stream video va gan nhãn dữ liệu khuôn mặt (Trang 39)
Hình 3.7: Giao diện quản lý cơ sở dữ liệu đã được gán nhãn - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 3.7 Giao diện quản lý cơ sở dữ liệu đã được gán nhãn (Trang 40)
Hình 3.8: Giao diện chỉnh sửa thông tin một người - Khóa luận tốt nghiệp Khoa học máy tính: Xây dựng hệ thống nhận diện khuôn mặt qua camera giám sát
Hình 3.8 Giao diện chỉnh sửa thông tin một người (Trang 40)