Trang chủ Blog Khác

Phát hiện khuôn mặt và nhận di...

Phát hiện khuôn mặt và nhận diện nó trong máy chấm công khuôn mặt

Rabiloo

Phát hiện khuôn mặt là việc làm tiên quyết khi cần đi sâu vào bất cứ một bài toán, tác vụ nào đối với xử lý khuôn mặt. Đúng vậy, việc khoanh vùng cũng như xác định chính xác vị trí vật thể nhằm mục đích loại bỏ phần nhiễu, phần hình ảnh không thuộc đối tượng, có khả năng làm tăng đáng kể độ chính xác đối với các nhiệm vụ như phân tích, phân loại dự đoán sau đó.

Bài viết liên quan: Nhận diện khuôn mặt trong máy chấm công khuôn mặt.

1. Phương pháp định danh khuôn mặt

Hiện nay có rất nhiều phương pháp để thực hiện việc nhận dạng khuôn mặt, tuy nhiên về cơ bản sẽ qua ba bước:

  • Phát hiện khuôn mặt, tiến hành lọc ra các khuôn mặt xuất hiện trong hình ảnh.
  • Từ những hình ảnh khuôn mặt lấy ra được, tiến hành trích rút những đặc trưng cơ bản nhất của khuôn mặt.
  • Tiến hành so khớp đặc trưng khuôn mặt với cơ sở dữ liệu để đưa ra định danh cho người dùng.

2. Phát hiện khuôn mặt

2.1 Phát hiện khuôn mặt là gì

Phát hiện khuôn mặt là bài toán con nằm trong bài toán phát hiện vật thể (Object Detection). Phát hiện khuôn mặt là quá trình xác định vùng hình ảnh chứa khuôn mặt xuất hiện trong ảnh. Đầu vào của hầu hết mọi thuật toán phát hiện khuôn mặt là một ảnh.  Đầu ra của thuật toán là vùng ảnh chứa khuôn mặt có dạng hình chữ nhật có thể được biểu diễn bởi 4 điểm (hoặc 2 điểm và chiều dài, rộng) kèm theo đó là xác suất khuôn mặt có trong vùng ảnh đó.

Mô tả đầu ra của thuật toán phát hiện khuôn mặt

Mô tả đầu ra của thuật toán phát hiện khuôn mặt

2.2 Một vài phương pháp tiếp cận hiện nay

2.2.1 Two Stage

Các thuật toán two stage detection điển hình như RCNN, Fast-RCNN, Faster-RCNN. Việc gọi là two-stage là do cách model xử lý để lấy ra được các vùng có khả năng chứa vật thể từ bức ảnh. 

Ví dụ, với Faster-RCNN thì trong stage-1, ảnh sẽ được đưa ra 1 sub-network gọi là RPN (Region Proposal Network) với nhiệm vụ extract các vùng trên ảnh có khả năng chứa đối tượng dựa vào các anchor. Sau khi đã thu được các vùng đặc trưng từ RPN, model Faster-RCNN sẽ thực hiện tiếp việc phân loại đối tượng và xác định vị trí nhờ vào việc chia làm 2 nhánh tại phần cuối của mô hình (Object classification & Bounding box regression).

2.2.2 One Stage

1 cách tiếp cận khác là One-stage Object Detection với 1 số model điển hình như: SSD, Yolo, RetinaNet. Gọi là one-stage vì trong việc thiết kế model hoàn toàn ko có phần trích chọn các vùng đặc trưng (các vùng có khả năng chứa đối tượng) như RPN của Faster-RCNN. 

Các mô hình one-stage OD coi phần việc phát hiện đối tượng (object localization) như 1 bài toán regression (với 4 tọa độ offset, ví dụ x, y, w, h) và cũng dựa trên các pre-define box gọi là anchor để làm việc đó. Các mô hình dạng này thường có tốc độ dự đoán nhanh hơn. Tuy nhiên "độ chính xác" của model thường kém hơn so với two-stage object detection. Tất nhiên, 1 số mô hình one-stage vẫn tỏ ra vượt trội hơn 1 chút so với two-stage như Retina-Net với việc việc thiết kế mạng theo FPN (Feature Pyramid Network) và Focal Loss.

Có thể bạn quan tâm: Phát hiện người đeo khẩu trang | Ứng dụng trong dịch Covid | Face Mask Detection.

2.3 Metric (đánh giá)

2.3.1 Intersection Over Union (IoU)

IoU là tỉ lệ giữa phần giao và phân hợp của vùng dự đoán và vùng đối tượng thật

IoU là tỉ lệ giữa phần giao và phân hợp của vùng dự đoán và vùng đối tượng thật

Trong đó:

  • Area of Overlap là diện tích vùng giao nhau giữa predicted bounding box và ground truth.
  • Area of Union bao gồm diện tích phần hợp của predicted bounding box và ground truth.

2.3.2 Precision và Recall

Kết quả IoU đo được thường sẽ có giá trị trong khoảng (0,1) với mỗi detection sẽ có 1 giá trị riêng. Để xác định liệu đó là dự đoán sai hay đúng, chúng ta sẽ cần dựa vào 1 ngưỡng (threshold) cho trước, nếu IoU lớn hơn hoặc bằng ngưỡng, ta sẽ xác định bounding box đó sẽ chứa đối tượng cần tìm kiếm và ngược lại.

True/False Positive/Negative trong bài toán Object Detection:

  • True Positive: Mô hình dự đoán là một object (Positive) và thực tế thì đúng là một object (True)
  • False Positive: Mô hình dự đoán là một object (Positive) nhưng thực tế thì bounding box đó không chứa bất kì object cần xác định nào cả.
  • False Negative: Bounding box được xác định không chứa object nhưng thực tế điều đó là sai.

Precision là thông số thể hiện tỷ lệ dự đoán đúng so với tổng số dự đoán của mô hình còn Recall là thông số thể hiện tỷ lệ dự đoán đúng trên tổng số ground truth. Do đó, trong bài toán Face Detection, precision và recall được thể hiện như sau.

2.3.3. mAP (mean Average Precision)

mAP đơn giản là trung bình AP score của n class, được định nghĩa với công thức 

trong đó 

2.4 Một vài bộ dữ liệu tham khảo hiện có

Hiện nay đã có rất nhiều bộ dữ liệu public với kích thước vô cùng lớn phục vụ quá trình huấn luyện mô hình, cũng như những bộ dữ liệu kiểm thử đa dạng. Những bộ dữ liệu này đều được sử dụng rộng rãi, là thang đo để đánh giá, so sánh hiệu quả của các mô hình Face Detection:

* Bộ dữ liệu Wider Face: Bao gồm wider face hard, medium và easy

* Bô dữ liệu Face Detection Dataset and Benchmark (FDDB)

2.5 Những mô hình tiên tiến, hiện đại đang được áp dụng

Face Detection là một bài toán cơ bản nhưng lại vô cùng quan trọng đối với các nhiệm vụ phân tích khuôn mặt. Do đó, các thuật toán phát hiện khuôn mặt luôn được ưu tiên phát triển và tối ưu liên tục nên hiện nay đã đạt được một vài kết quả nhất định có thể kể đến như:

+ Multi-task Cascaded Convolutional Network (MTCNN) - https://github.com/ipazc/mtcnn

+ RetinaFace - https://github.com/deepinsight/insightface

+ Dual Shot Face Detector - https://github.com/Tencent/FaceDetection-DSFD

+ FaceBoxes - https://github.com/sfzhang15/FaceBoxes

Có thể nói hầu hết các mô hình phát hiện khuôn mặt được sử dụng trên các máy chấm công hiện nay đều đã đạt được độ chính xác rất tốt trên hầu hết các trường hợp. Nhưng đặc biệt, mô hình mà Rabiloo lựa chọn và sử dụng đang đạt hiệu suất tốt về thời gian, có thể chạy tối ưu trên các thiết bị cấu hình thấp, đặc biệt là các thiết bị mạch nhúng với chi phí vô cùng rẻ. Do đó, ta có thể dành nhiều tài nguyên hơn cho các tác vụ khác như nhận dạng khuôn mặt, giới tính, độ tuổi hay phân tích cảm xúc,... Hơn nữa, nhóm cũng đã xử lý, bắt được những khuôn mặt với góc độ khó, khuôn mặt đeo khẩu trang, sử dụng những kỹ thuật để lọc bỏ nhiễu, tăng đáng kể độ chính xác của mô hình.