Đồ án: Hệ thống nhận dạng khuôn mặt sử dụng mô hình Deep Learning (HaUI)

Báo cáo đồ án chuyên ngành xây dựng hệ thống nhận dạng khuôn mặt bằng deep learning. Trình bày mô hình RetinaFace, ArcFace và kết quả thực nghiệm chi tiết.

Trường đại học

Đại học Công nghiệp Hà Nội

Chuyên ngành

Công nghệ Thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án chuyên ngành

2023

71
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về Nhận dạng Khuôn mặt bằng Deep Learning

Nhận dạng khuôn mặt là một trong những ứng dụng quan trọng của Deep Learning trong lĩnh vực thị giác máy tính. Công nghệ này sử dụng mạng nơ ron tích chập (CNN) để phân tích và xác định đặc điểm khuôn mặt của con người. Hệ thống nhận dạng khuôn mặt hoạt động thông qua ba bước chính: phát hiện khuôn mặt, căn chỉnh khuôn mặt và xác định danh tính. Các mô hình như RetinaFace, MTCNNArcFace đã chứng minh hiệu quả cao trong việc nhận diện với độ chính xác vượt trội. Ứng dụng thực tế của công nghệ này bao gồm bảo mật sinh trắc học, quản lý ra vào, xác thực người dùng và nhiều lĩnh vực khác.

1.1. Khái niệm và Ứng dụng của Nhận dạng Khuôn mặt

Nhận dạng khuôn mặt là quá trình sử dụng công nghệ Deep Learning để xác định và xác thực danh tính của con người dựa trên đặc điểm sinh học khuôn mặt. Công nghệ này ứng dụng rộng rãi trong an ninh, tài chính, y tế và các ngành công nghiệp hiện đại khác.

1.2. Vai trò của Mạng Nơ ron Tích chập CNN trong Nhận dạng

Mạng nơ ron tích chập (CNN) là nền tảng của các mô hình Deep Learning hiện đại. CNN có khả năng trích xuất các đặc trưng hình ảnh ở nhiều mức độ khác nhau, từ đó giúp hệ thống nhận dạng khuôn mặt với độ chính xác cao và hiệu suất tối ưu.

II. Kiến trúc Mô hình RetinaFace và ArcFace

RetinaFace là mô hình phát hiện khuôn mặt tiên tiến được thiết kế với kiến trúc kết hợp nhiều tầng (multi-task) để xác định vị trí khuôn mặt, điểm mốc khuôn mặt và độ tin cậy dự đoán. ArcFace là mô hình nhận dạng khuôn mặt sử dụng hàm mất mát Angular Margin để tối ưu hóa biểu diễn vector khuôn mặt. Cả hai mô hình này khi kết hợp tạo nên một hệ thống nhận dạng khuôn mặt hoàn chỉnh với hiệu suất vượt trội. Quy trình bao gồm phát hiện khuôn mặt bằng RetinaFace, sau đó sử dụng ArcFace để trích xuất vector đặc trưng và so sánh với cơ sở dữ liệu đã đăng ký.

2.1. Kiến trúc RetinaFace cho Phát hiện Khuôn mặt

RetinaFace sử dụng backbone ResNet50 kết hợp với cơ chế Attention để phát hiện khuôn mặt ở nhiều tỷ lệ khác nhau. Mô hình này cho phép phát hiện khuôn mặt với độ chính xác cao ngay cả trong các điều kiện ánh sáng phức tạp, giúp cải thiện hiệu suất tổng thể của hệ thống nhận dạng.

2.2. Hàm mất mát ArcFace trong Nhận dạng Khuôn mặt

ArcFace sử dụng hàm mất mát Angular Margin để học các đặc trưng khuôn mặt phân biệt rõ ràng. Phương pháp này tối ưu hóa khoảng cách giữa các vector khuôn mặt khác nhau, nâng cao độ chính xác của nhận dạng khuôn mặt so với các phương pháp truyền thống như Softmax.

III. Quy trình Xây dựng Hệ thống Nhận dạng Khuôn mặt

Xây dựng hệ thống nhận dạng khuôn mặt bằng Deep Learning đòi hỏi các bước chuẩn bị và triển khai cụ thể. Đầu tiên, cần thu thập và chuẩn bị bộ dữ liệu phù hợp như WIDERFACELFW. Tiếp theo là xây dựng mô hình phát hiện khuôn mặt bằng RetinaFace và mô hình nhận dạng bằng ArcFace. Bước tiếp theo liên quan đến tối ưu hóa các siêu tham số và đánh giá hiệu suất trên tập dữ liệu kiểm tra. Cuối cùng, tích hợp các mô hình vào ứng dụng phần mềm với giao diện người dùng thân thiện và triển khai trên môi trường thực tế.

3.1. Thu thập và Chuẩn bị Dữ liệu

Bộ dữ liệu đóng vai trò thiết yếu trong huấn luyện Deep Learning. Sử dụng các bộ dữ liệu công khai như WIDERFACE cho phát hiện khuôn mặt và LFW cho nhận dạng giúp đảm bảo chất lượng và tính khả thi. Dữ liệu cần được chuẩn hóa, tăng cường và chia thành tập huấn luyện, xác thực và kiểm tra.

3.2. Huấn luyện và Tối ưu hóa Mô hình

Huấn luyện mô hình RetinaFaceArcFace yêu cầu thiết lập các siêu tham số phù hợp như learning rate, batch size và số epoch. Quá trình huấn luyện được giám sát bằng các chỉ số đánh giá như precision, recall và F1-score để đảm bảo mô hình đạt hiệu suất tối ưu.

IV. Triển khai Ứng dụng và Kết quả Thực nghiệm

Triển khai hệ thống nhận dạng khuôn mặt thực tế đòi hỏi tích hợp các mô hình Deep Learning vào ứng dụng phần mềm hoàn chỉnh. Giao diện người dùng được thiết kế để cho phép người dùng đăng ký thông tin khuôn mặt và thực hiện nhận dạng. Kết quả thực nghiệm cho thấy mô hình RetinaFace đạt độ chính xác cao trong phát hiện khuôn mặt với các chỉ số đánh giá ấn tượng. Mô hình ArcFace cải thiện đáng kể độ chính xác nhận dạng so với các phương pháp cũ. Hệ thống được triển khai thành công trên nền tảng web, cho phép người dùng tương tác dễ dàng và đạt các yêu cầu bảo mật cần thiết.

4.1. Thiết kế Giao diện và Logic Ứng dụng

Giao diện người dùng được thiết kế trực quan với hai chức năng chính: đăng ký khuôn mặt và nhận dạng khuôn mặt. Logic ứng dụng xử lý luồng dữ liệu từ camera hoặc ảnh tải lên, sau đó đưa qua các mô hình phát hiệnnhận dạng để cung cấp kết quả cho người dùng.

4.2. Kết quả và Đánh giá Hiệu suất Hệ thống

Kết quả thực nghiệm cho thấy hệ thống nhận dạng khuôn mặt đạt độ chính xác cao trên các bộ dữ liệu kiểm tra. Mô hình phát hiện đạt precision và recall ấn tượng, trong khi mô hình nhận dạng cho tỷ lệ xác nhận chính xác cao. Hệ thống khả thi và sẵn sàng cho các ứng dụng thực tế.

18/12/2025

Trích đoạn nội dung tài liệu

chương 1, chúng tôi đã phát biểu được bài toán, đưa ra được đầu vào và đầu ra của bài toán, và giới thiệu các lý thuyết liên quan đến bài toán. 7 CHƯƠNG 2: NHẬN DẠNG KHUÔN MẶT SỬ DỤNG RETINAFACE VÀ ARCFACE 2. Phát hiện khuôn mặt 2. Haar cascade Theo tác giả bài viết [4], Haar Cascade là một thuật toán được tạo ra dựa trên những đặc trưng để phát hiện đối tượng (có thể là khuôn mặt, mắt, tay, đồ vật…) được đề xuất vào năm 2001 bởi Paul Viola và Michael Jones trong bài báo của họ với khẳng định “Phát hiện đối tượng một cách nhanh chóng bằng cách sử dụng tầng (Cascade) tăng cường các đặc trưng đơn giản”.

Triển khai ban đầu được sử dụng để phát hiện khuôn mặt chính diện và các đặc điểm như Mắt, Mũi và Miệng. Tuy nhiên, có nhiều đặc trưng Haar được đào tạo trước đó trong GitHub của họ cho các đối tượng khác cũng như cho toàn bộ cơ thể, thân trên, thân dưới, nụ cười và nhiều đồ vật khác. Nói một cách dễ hiểu hơn, Haar Cascade là gì? Là một lớp model có thể giúp chúng ta nhận diện khuôn mặt (Haar Cascade face detection) Haar Cascade sử dụng các tầng Haar và sau đó sử dụng thật nhiều đặc trưng đó qua nhiều lượt (Cascade) và tạo thành một cỗ máy nhận diện khuôn mặt hoàn chỉnh. Trong bài báo của tác giả Paul Viola và Michael Jones đã trình bày một phương pháp mới và nhanh hơn để xử lý hình ảnh và phát hiện khuôn mặt bằng cách sử dụng các đặc điểm hình chữ nhật như hình dưới đây.

Các đặc điểm hình chữ nhật tương tự được sử dụng để phát hiện các đặc điểm khác nhau của khuôn mặt như mắt và các nốt như trong hình minh họa.1: Các đặc trưng hình chữ nhật Các đặc trưng hình chữ nhật được chạy lần lượt trên hình ảnh và tổng số pixel nằm trong phần màu trắng được trừ cho tổng số pixel nằm trong phần màu đen. Trong đó: a) Là các bộ lọc bắt các cạnh trong ảnh b) Bắt các đường thẳng trong ảnh c) Về đặc trưng 4 hình vuông Trong hình minh họa bên dưới, đặc điểm hình chữ nhật đầu tiên đang tính toán cho sự khác biệt về cường độ giữa vùng mắt và vùng má trên khuôn mặt. Và đặc điểm hình chữ nhật thứ hai là đo sự chênh lệch về cường độ giữa hai vùng mắt và sống mũi. Bộ lọc Haar chỉ có thể nhìn cụ thể vào một vùng trong cửa sổ để nhận diện.2: Minh hoạ Haar Cascade Vì vậy, sử dụng các đặc điểm hình chữ nhật này trên một hình ảnh, chúng ta có thể tạo ra hàng nghìn điểm đặc trưng cho hình ảnh.

Tuy nhiên, việc tính toán tổng số pixel trong các vùng trắng và đen trong toàn bộ ảnh có thể là một hoạt động tốn kém, đặc biệt là đối với các ảnh lớn. Các tác giả cũng đề xuất một phương pháp được gọi là ảnh tích phân có thể đạt được tính toán tương tự bằng cách thực hiện các phép toán chỉ trên bốn điểm ảnh. Có thể sử dụng hàng nghìn hình ảnh được gắn nhãn để chuyển đổi chúng thành bản đồ đặc trưng tầng HAAR và đào tạo nó bằng cách sử dụng mô hình học máy để tạo bộ phân loại nhận diện khuôn mặt. Sau đây là từng bước nhận diện khuôn mặt của Haar Cascade: Hình 2.3: Cấu trúc tầng cho Haar Cascade 10 • Bước 1: Hình ảnh (đã được gửi đến bộ phân loại) được chia thành các phần nhỏ (hoặc các cửa sổ con như trong hình minh họa).

• Bước 2: Chúng tôi đặt N không có bộ dò theo cách xếp tầng trong đó mỗi bộ phát hiện sự kết hợp của các loại đặc trưng khác nhau từ các hình ảnh (ví dụ: đường thẳng, cạnh, hình tròn, hình vuông) được truyền qua. Giả sử khi việc trích xuất đối tượng địa lý được thực hiện, mỗi phần phụ được gán một giá trị tin cậy. • Bước 3: Hình ảnh (hoặc hình ảnh phụ) có độ tin cậy cao nhất được phát hiện dưới dạng khuôn mặt và được gửi đến bộ tích lũy trong khi phần còn lại bị từ chối. Do đó, Cascade tìm nạp khung hình / hình ảnh tiếp theo nếu còn lại và bắt đầu lại quá trình.

Haar cascade là một phương pháp phát hiện đối tượng trong thị giác máy tính. Dưới đây là điểm mạnh và điểm yếu của Haar cascade: Về điểm mạnh của Haar cascade, Haar cascade được thiết kế để hoạt động nhanh chóng trên các hệ thống tính toán có giới hạn. Các tính toán Haar được thực hiện bằng cách sử dụng các phép tính toán đơn giản như phép cộng, trừ và tích chập, giúp giảm thời gian tính toán so với các phương pháp phức tạp hơn. Không những thế, Haar cascade có khả năng phát hiện đối tượng với độ chính xác cao.

Nó sử dụng một tập hợp các đặc trưng Haar để phân biệt đối tượng khỏi nền, đồng thời sử dụng các bộ phân loại để xác định xem đối tượng đó có tồn tại hay không. Khi được đào tạo chính xác, Haar cascade có thể đạt được độ chính xác cao. Về điểm yếu của Haar cascade, Haar cascade có thể không hoạt động tốt trong điều kiện ánh sáng yếu hoặc đối tượng và nền có màu sắc tương tự nhau. Điều này có thể dẫn đến việc phát hiện sai hay bỏ sót đối tượng.

thêm nữa, Haar cascade không phải là một phương pháp phát hiện đối tượng thông qua việc học máy. Thay vào đó, nó dựa vào việc sử dụng các đặc trưng Haar được xác định trước. Điều này có nghĩa là Haar cascade có thể gặp khó khăn trong việc phát hiện các đối tượng mới, chưa được đào tạo trước đó hoặc có dạng phức tạp. 11 Như vậy với những ưu và nhược điểm trên, chúng tôi quyết định không sử dụng mô hình Haar Cascade là phương pháp chính để giải quyết bài toán biểu diễn khuôn mặt.

MTCNN Theo tác giả bài viết [5], MTCNN (Multi-task cascaded convolutional neural networks) là một trong những công cụ phổ biến và chính xác nhất để phát hiện khuôn mặt hiện nay. MTCNN gồm 3 mạng được kết nối với nhau theo kiểu tầng, mỗi mạng thực hiện một tác vụ cụ thể. MTCNN hoạt động theo 3 bước, mỗi bước có một mạng neural riêng lần lượt là: P-Net, R-Net và O-net. Với mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều bản sao của hình ảnh đó với các kích thước khác nhau.4: Mô hình MTCNN Tại P-Net, thuật toán sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để tìm kiếm khuôn mặt.

convolution thứ 3, mạng chia thành 2 lớp. Convolution 4-1 đưa ra xác suất của một khuôn mặt nằm trong mỗi bounding boxes, và Convolution 4-2 cung cấp tọa độ của các bounding boxes.5: Kiến trúc P-Net R-Net có cấu trúc tương tự với P-Net. Tuy nhiên sử dụng nhiều layer hơn. Tại đây, network sẽ sử dụng các bounding boxes đc cung cấp từ P-Net và tinh chỉnh là tọa độ.

Tương tự R-Net chia ra làm 2 layers ở bước cuối, cung cấp 2 đầu ra đó là tọa độ mới của các bounding boxes, cùng độ tin tưởng của nó.6: Kiến trúc R-Net O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dấu các tọa độ của các mốc trên khuôn mặt. Ở bước này, thuật toán đưa ra 3 kết quả đầu ra khác nhau bao gồm: xác suất của khuôn mặt nằm trong bounding box, tọa độ của bounding box và tọa độ của các mốc trên khuôn mặt (vị trí mắt, mũi, miệng) 14 Hình 2.7: Kiến trúc O-Net Điểm mạnh của MTCNN: ● Độ Chính Xác Cao: MTCNN nổi bật với khả năng phát hiện khuôn mặt chính xác, ngay cả trong các điều kiện khó khăn như góc nhìn lệch hay che khuất. 15 ● Phát Hiện Đa Quy Mô: Công nghệ này có khả năng phát hiện khuôn mặt ở nhiều kích cỡ và quy mô khác nhau, làm cho nó rất linh hoạt và hữu ích trong nhiều tình huống. ● Đánh Dấu Điểm Chính Trên Khuôn Mặt: Ngoài việc phát hiện khuôn mặt, MTCNN còn có thể đánh dấu các điểm chính trên khuôn mặt (như mắt, mũi, miệng), hỗ trợ các ứng dụng như nhận dạng và phân tích biểu cảm khuôn mặt.

● Cấu Trúc Mạng Lưới Linh Hoạt: MTCNN sử dụng ba mạng lưới CNN xếp chồng lên nhau, mỗi mạng thực hiện một tác vụ cụ thể, cho phép mô hình được tối ưu hóa tốt hơn. Điểm yếu của MTCNN: ● Yêu Cầu Tính Toán Cao: Do sử dụng ba mạng CNN liên tiếp, MTCNN có thể yêu cầu nhiều tài nguyên tính toán, làm giảm hiệu suất trong một số hệ thống. ● Thời Gian Xử Lý: Trong một số trường hợp, đặc biệt với hình ảnh có độ phân giải cao hoặc có nhiều khuôn mặt, thời gian xử lý của MTCNN có thể tăng lên đáng kể. ● Khả Năng Đối Phó Với Biến Thể Cực Đoan: Mặc dù MTCNN hiệu quả với nhiều điều kiện khác nhau, nhưng nó có thể gặp khó khăn khi đối mặt với các biến thể cực đoan như khuôn mặt bị che khuất hoàn toàn hoặc góc nhìn rất lệch.

● Khó Khăn Trong Tối Ưu Hóa: Việc tối ưu hóa MTCNN đôi khi có thể trở nên phức tạp do cần phải xem xét tác động của mỗi mạng lưới con đối với toàn bộ mô hình. Như vậy với những ưu và nhược điểm trên, chúng tôi thấy mô hình MTCNN không phải là phương pháp chính để giải quyết bài toán phát hiện khuôn mặt. RetinaFace RetinaFace ra đời vào năm 2019 được nhóm tác giả xuất bản trong bài báo có tên “RetinaFace: Single-Shot Multi-Level Face Localisation in the Wild” [6]. Đây là một mô hình phát hiện khuôn mặt một giai đoạn mạnh mẽ, nó thực hiện định vị khuôn mặt theo pixel trên nhiều tỷ lệ khuôn mặt khác nhau bằng cách tận dụng khả 16 năng học tập đa tác vụ tự giám sát (self-supervised multi-task learning) và tự giám sát bổ sung (joint extra-supervised).

Cho đến hiện tại, mô hình này đang cho kết quả cao trên các benchmarks khác nhau.8: Kiến trúc RetinaFace Mạng RetinaFace bao gồm 3 thành phần chính: ● Feature Pyramid Network: Hình ảnh đầu vào được lấy và đưa ra các feature maps có tỷ lệ khác nhau (các khối từ P2 đến P6). Bốn feature maps đầu tiên (khối từ P2 đến P5) được tính toán bằng ResNet đã được huấn luyện trước trên tập dữ liệu imagenet-11k. Feature map trên cùng (khối P6) là tích chập 3x3 với stride là 2 trên khối C5. Mục tiêu của feature pyramid là để giúp mô hình có thể nhìn được các feature bậc thấp lẫn các feature bậc cao, qua đó giúp mô hình phân loại được các khuôn mặt có kích thước khác nhau trong ảnh.

● Context Module: Để tăng cường khả năng mô hình hóa bối cảnh, mạng tích chập biến dạng (deformation convolutional network) được sử dụng trong mô- đun này trên các feature maps ngoại trừ tích chập 3x3 thông thường.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ