Bối cảnh và vấn đề nghiên cứu
Trong lĩnh vực thị giác máy tính và phân tích hình ảnh, công nghệ phát hiện và nhận diện khuôn mặt đã chuyển dịch từ một hướng tiếp cận chuyên sâu thành một nhánh nghiên cứu ứng dụng phổ biến. Các hệ thống sinh trắc học khuôn mặt được ứng dụng rộng rãi trong giám sát an ninh, kiểm soát ra vào, quản lý nhân viên và điểm danh tự động tại các cơ sở giáo dục hoặc doanh nghiệp. So với các giải pháp sinh trắc học truyền thống như quét vân tay, nhận diện khuôn mặt sở hữu ưu thế vượt trội về mặt vệ sinh dịch tễ do không yêu cầu người dùng tiếp xúc vật lý với bề mặt thiết bị—một yếu tố đặc biệt quan trọng trong bối cảnh phòng chống dịch bệnh truyền nhiễm (như đại dịch Covid-19) và duy trì khoảng cách an toàn. Đồng thời, công nghệ này cho phép nhận diện từ xa và hỗ trợ định danh thụ động mà không đòi hỏi sự phối hợp tuyệt đối từ đối tượng.
Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính của nhóm tác giả Trần Nguyên Phong (MSSV: 16521829) và Đạt Đèo Quốc (MSSV: 16521643), dưới sự hướng dẫn của ThS. Lê Hoài Nghĩa và TS. Đoàn Duy tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh (2021), tập trung vào đề tài: "Nghiên cứu ứng dụng nhận diện khuôn mặt trong điểm danh sử dụng mô hình MobileFaceNet" (The Research of Applying Face Recognition for Attendance Using MobileFaceNet Model).
Nhiệm vụ và mục tiêu nghiên cứu của đề tài được xác định cụ thể như sau:
- Nghiên cứu cơ sở lý thuyết về xử lý ảnh, thị giác máy tính và các kỹ thuật nhận diện khuôn mặt người.
- Khảo sát các thuật toán phát hiện khuôn mặt nhẹ bao gồm Ultra-Light Face Detector và MTCNN (Multi-task Cascaded Convolutional Networks).
- Nghiên cứu các kiến trúc mô hình trích xuất đặc trưng và nhận diện khuôn mặt chuyên sâu: FaceNet và MobileFaceNet.
- Tìm hiểu kiến trúc phần cứng và thiết lập môi trường phát triển trên các hệ máy tính nhúng NVIDIA Jetson TX2 và NVIDIA Jetson Nano kết hợp cùng cảm biến thu nhận hình ảnh (Logitech C270).
- Xây dựng và thực nghiệm hệ thống điểm danh thời gian thực hoàn chỉnh với 3 giai đoạn xử lý: (i) Phát hiện khuôn mặt từ luồng hình ảnh của camera; (ii) Nhận diện định danh cá nhân và xuất mã ID tương ứng; (iii) Xuất danh sách ID định danh để đối chiếu và xác nhận vào cơ sở dữ liệu điểm danh.
Phạm vi và giới hạn thực nghiệm:
- Tập dữ liệu thử nghiệm: Do việc thu thập dữ liệu huấn luyện quy mô lớn gặp nhiều hạn chế, nhóm tác giả xây dựng tập dữ liệu thực nghiệm gồm 10 cá nhân, với khoảng 200 hình ảnh/đoạn video mẫu cho mỗi người.
- Điều kiện môi trường: Hệ thống được thiết kế để đạt độ chính xác cao khi khuôn mặt ở góc nhìn chính diện hoặc góc lệch không quá 20 độ dưới điều kiện ánh sáng tiêu chuẩn.
- Chỉ tiêu kỹ thuật kỳ vọng: Hệ thống có khả năng vận hành thời gian thực trực tiếp trên các kit phần cứng nhúng NVIDIA Jetson với độ chính xác nhận diện đạt trên 75%.
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nghiên cứu dựa trên quy trình 4 giai đoạn tiêu chuẩn trong bài toán xử lý nhận diện khuôn mặt:
[Luồng Video/Ảnh] -> (1) Face Detection -> (2) Face Alignment -> (3) Face Representation -> (4) Face Recognition -> [ID / Kết Quả Điểm Danh]
- Phát hiện khuôn mặt (Face Detection): Định vị tọa độ khuôn mặt trong khung hình, trích xuất bounding box $(x, y, w, h)$ cùng mức độ tin cậy (confidence score).
- Căn chỉnh khuôn mặt (Face Alignment): Sử dụng thuật toán hồi quy giảm bậc có giám sát (Supervised Descent Method - SDM) nhằm xác định 5 điểm mốc hình học (facial landmarks gồm mắt, mũi, khóe miệng) để chuẩn hóa góc xoay và tỷ lệ ảnh.
- Biểu diễn khuôn mặt (Face Representation): Trích xuất các thuộc tính phân biệt để mã hóa hình ảnh khuôn mặt thành một vector đặc trưng (embedding vector) 128 chiều trong không gian Euclid.
- Nhận diện khuôn mặt (Face Recognition): Tính toán khoảng cách (chuẩn khoảng cách L2 / khoảng cách Euclid) giữa vector đặc trưng mới và các vector tham chiếu đã lưu trong cơ sở dữ liệu để đưa ra kết luận định danh.
Về mặt mô hình toán học và mạng nơ-ron, nghiên cứu vận dụng cấu trúc mạng Siamese (Siamese Neural Network) và hàm mất mát Triplet Loss. Mạng Siamese sử dụng chung một tập trọng số nhằm ánh xạ hai hình ảnh đầu vào thành hai vector biểu diễn để so sánh độ tương đồng. Hàm mất mát Triplet Loss tiếp nhận bộ ba mẫu: mẫu gốc (Anchor - $A$), mẫu cùng danh tính (Positive - $P$), và mẫu khác danh tính (Negative - $N$). Mục tiêu tối ưu là thu hẹp khoảng cách giữa cặp $(A, P)$ và nới rộng khoảng cách giữa cặp $(A, N)$ thông qua hệ số biên $\alpha$:
$$|f(A) - f(P)|^2 - |f(A) - f(N)|^2 + \alpha \le 0$$
Về các thuật toán cốt lõi:
- Ultra-Light-Fast-Generic-Face-Detector-1MB: Mô hình phát hiện khuôn mặt siêu nhẹ do tác giả Linzaer phát triển. Ở định dạng dấu phẩy động 32-bit (FP32), kích thước mô hình chỉ đạt 1,1 MB; khi lượng tử hóa sang dạng INT8, dung lượng giảm còn 300 KB với khối lượng tính toán dao động từ 90 đến 109 MFLOPs ở độ phân giải $320 \times 240$. Mô hình gồm hai biến thể: bản slim (tối giản hóa tốc độ) và bản RFB (tích hợp khối Receptive Field Block để tăng độ chính xác).
- MobileFaceNet: Mạng tích chập hiệu năng cao dành cho thiết bị di động và hệ thống nhúng, sử dụng dưới 1 triệu tham số. Mô hình này khắc phục các nhược điểm của MobileNetV2 trong tác vụ sinh trắc học khuôn mặt, đạt tốc độ suy luận nhanh hơn gấp 2 lần MobileNetV2 (khoảng 18 ms trên vi xử lý di động).
- FaceNet: Mô hình trích xuất đặc trưng khuôn mặt của Google dựa trên kiến trúc Inception ResNet v1, tiền huấn luyện trên các tập dữ liệu mở quy mô lớn như CASIA-WebFace (~500.000 ảnh từ ~10.000 người) và VGGFace2 (~3 triệu ảnh từ ~9.000 người), đạt độ chính xác tương ứng 0,9905 và 0,9965 trên tập kiểm chuẩn LFW.
- Tăng tốc xử lý GPU: Khóa luận ứng dụng nền tảng tính toán song song NVIDIA CUDA nhằm chuyển giao tác vụ tính toán thị giác máy tính sang nhân GPU. Cơ sở lý thuyết viện dẫn nghiên cứu của Vaibhav Jain và Dinesh Patel chỉ ra rằng việc triển khai nhận diện khuôn mặt trên GPU đem lại tốc độ xử lý nhanh hơn 5,75 lần so với CPU.
Thiết kế và triển khai hệ thống
Khóa luận xây dựng một hệ thống kỹ thuật nhúng hoàn chỉnh, tích hợp phần cứng và chuỗi phần mềm xử lý thị giác máy tính để phục vụ điểm danh thời gian thực.
| Thành phần |
Chi tiết kỹ thuật phần cứng |
Vai trò trong hệ thống |
| NVIDIA Jetson TX2 |
GPU 256 nhân kiến trúc Pascal, CPU Dual Denver 2 + Quad ARM Cortex-A57, 8GB LPDDR4 (băng thông 59,7 GB/s), 32GB eMMC, bo mạch mở rộng Orbitty Carrier (Cung cấp Gigabit Ethernet, USB 3.0, HDMI, GPIO, I2C). |
Xử lý suy luận song song các mạng nơ-ron sâu với thông lượng cao. |
| NVIDIA Jetson Nano |
GPU 128 nhân kiến trúc Maxwell, CPU Quad-core ARM Cortex-A57, 4GB 64-bit LPDDR4, công suất tiêu thụ tối thiểu 5W, giao tiếp MIPI CSI-2, USB. |
Đánh giá hiệu năng suy luận trên nền tảng nhúng công suất thấp và chi phí tối ưu. |
| Logitech C270 Webcam |
Cảm biến độ phân giải HD 720p, tốc độ 30 khung hình/giây (fps), tiêu cự cố định (fixed focus), kết nối chuẩn USB. |
Thu nhận luồng video thời gian thực từ đối tượng di chuyển qua cửa. |
| Thiết bị ngoại vi |
Màn hình hiển thị HDMI 32 inches, thẻ nhớ 64GB SanDisk Ultra MicroSD, nguồn cấp chuyển mạch 5V/4A. |
Cài đặt hệ điều hành JetPack, hiển thị giao diện kết quả nhận diện và lưu trữ cục bộ. |
+------------------------------------+
| Camera Logitech C270 (720p) |
+-----------------+------------------+
|
(Luồng video USB)
v
+-------------------------------------------------------------------+
| Hệ Thống Nhúng NVIDIA Jetson |
| |
| 1. OpenCV Video Capture: Giải mã luồng khung hình |
| 2. Ultra-Light Face Detector: Bounding Box (x, y, w, h) |
| 3. Preprocessing: 5 Landmark Alignment -> Crop (112x112 / 160) |
| 4. Deep Feature Extraction: MobileFaceNet / FaceNet (128-D) |
| 5. Euclidean Matching: So khớp khoảng cách với CSDL mẫu |
+---------------------------------+---------------------------------+
|
+----------------------+----------------------+
| |
v v
+-----------------------+ +----------------------+
| Màn hình hiển thị | | Danh sách ID |
| (Bounding box + Tên) | | (Cơ sở dữ liệu |
| | | điểm danh) |
+-----------------------+ +----------------------+
Ngăn xếp phần mềm (Software Stack) bao gồm:
- Hệ điều hành Linux nền tảng Ubuntu chạy gói phần mềm JetPack SDK tích hợp sẵn trình điều khiển CUDA.
- Thư viện xử lý ảnh OpenCV dùng để bắt khung hình (video streaming), vẽ khung nhận diện và hiển thị trực tiếp.
- Môi trường thực thi Python đi kèm các gói thư viện phụ thuộc:
numpy, tensorflow ($\ge$ r1.0 cho MobileFaceNet), scipy==1.x (cho MTCNN và FaceNet).
Quy trình chuẩn bị và xử lý dữ liệu:
- Dữ liệu thu thập được tổ chức theo cấu trúc thư mục phân cấp theo tên từng cá nhân (chứa các tệp video định dạng
.mp4 hoặc tệp ảnh thô .jpg/.png).
- Thuật toán căn chỉnh trích xuất 5 điểm mốc khuôn mặt, thực hiện phép biến đổi hình học và cắt ảnh về kích thước chuẩn $112 \times 112$ pixel đối với MobileFaceNet (hoặc $160 \times 160$ pixel đối với FaceNet).
- Mô hình MobileFaceNet tính toán vector đặc trưng 128 chiều cho từng khuôn mặt trong tập mẫu và ghi nhận vào cơ sở dữ liệu nhận diện.
- Khi vận hành trực tiếp, khuôn mặt phát hiện từ camera được đưa qua chuỗi tiền xử lý tương tự, trích xuất vector đặc trưng và so khớp khoảng cách Euclid; kết quả định danh đúng sẽ hiển thị nhãn tên trên màn hình và ghi nhận mã số vào danh sách điểm danh.
Nội dung chính theo từng chương
Chapter 1: Goal and Scope / Definitions and Requirements
Chương này xác định các yêu cầu cơ bản và phạm vi triển khai của hệ thống điểm danh tự động. Tác giả phân định rõ ràng giữa hai khái niệm "Phát hiện khuôn mặt" (Face Detection) và "Nhận diện khuôn mặt" (Face Recognition). Mục tiêu thiết kế được chia làm hai phần chính: Triển khai thuật toán Ultra-Light Face Detector trên Jetson để vẽ bounding box theo thời gian thực; và ứng dụng MobileFaceNet tiền xử lý dữ liệu chuẩn hóa $112 \times 112$ pixel để trích xuất đặc trưng nhận diện 10 đối tượng. Phạm vi nghiên cứu đặt ra mức độ chính xác kỳ vọng từ 75% trở lên trên nền tảng nhúng.
Chapter 2: Definitions and Hardware Overview
Chương 2 cung cấp nền tảng lý thuyết sinh trắc học và kiến trúc phần cứng. Tác giả phân tích cấu trúc giải phẫu học khuôn mặt người, các điểm nhận dạng đặc trưng, biểu cảm và lịch sử phát triển công nghệ từ những năm 1960 qua các chương trình FERET đến khung Viola-Jones. Chương này làm rõ 4 giai đoạn xử lý thị giác (Detection, Alignment, Representation, Recognition) và phân tích các mô hình Deep Learning: MTCNN, Ultra-Light (1MB), FaceNet, MobileFaceNet, cùng cơ chế mạng Siamese và Triplet Loss. Phần cứng hệ thống được mô tả chi tiết với cấu hình của NVIDIA Jetson TX2 (kèm bo mạch Orbitty Carrier), Jetson Nano, camera Logitech C270 và nguyên lý tăng tốc tính toán song song qua GPU CUDA.
Chapter 3: Methods of Implementation
Chương 3 trình bày chi tiết quy trình cài đặt môi trường, tích hợp phần cứng và triển khai phần mềm. Tác giả mô tả sơ đồ kết nối ngoại vi cho kit Jetson (nguồn, HDMI, chuột, bàn phím, webcam), quy trình cài đặt thư viện OpenCV và các gói Python. Chương này đặc tả cấu trúc thư mục dữ liệu, quy trình căn chỉnh 5 điểm mốc khuôn mặt, cắt chuẩn hóa ảnh $112 \times 112$ (MobileFaceNet) và $160 \times 160$ (FaceNet), cũng như lưu đồ giải thuật từ lúc camera thu nhận tín hiệu đến khi tính toán khoảng cách vector đặc trưng và trả về kết quả điểm danh.
Chapter 4: Results and Evaluation
Chương 4 ghi nhận các kết quả thực nghiệm và đánh giá hệ thống qua hai bước kiểm thử chính:
- Kiểm thử phát hiện khuôn mặt với Ultra-Light: Đánh giá khả năng phát hiện khuôn mặt trong các kịch bản: khung hình đơn đối tượng, khung hình chứa nhiều người đồng thời, kiểm thử luồng video thời gian thực từ webcam Logitech C270, và phân tích các trường hợp phát hiện sai/bỏ sót khuôn mặt.
- Kiểm thử nhận diện khuôn mặt: So sánh đối chiếu hiệu năng giữa hai mô hình MobileFaceNet và FaceNet khi vận hành thực tế trên hai nền tảng phần cứng nhúng là NVIDIA Jetson TX2 (Bảng 4.1) và NVIDIA Jetson Nano (Bảng 4.2).
Kết quả và đóng góp
Kết quả thực nghiệm chính
- Khả năng phát hiện khuôn mặt: Thuật toán Ultra-Light Face Detector vận hành ổn định trên cả hai dòng kit Jetson Nano và TX2, định vị chính xác vị trí khuôn mặt trong điều kiện đủ sáng ở cả trường hợp một người và nhiều người trong một khung hình.
- Hiệu năng nhận diện của MobileFaceNet: Mô hình MobileFaceNet đáp ứng tốt yêu cầu xử lý thời gian thực trên phần cứng nhúng biên nhờ dung lượng tham số dưới 1 triệu, kích thước đầu vào tối ưu ($112 \times 112$ pixel), đạt độ chính xác nhận diện đáp ứng mục tiêu đề ra (>75%) đối với tập dữ liệu 10 người.
- So sánh mô hình và nền tảng: FaceNet cho độ đặc trưng cao nhưng đòi hỏi tài nguyên tính toán lớn hơn (kích thước ảnh $160 \times 160$ pixel), trong khi MobileFaceNet thể hiện tính tối ưu vượt trội về tốc độ suy luận khi chạy trên Jetson Nano. Nền tảng Jetson TX2 với 256 nhân CUDA Pascal cho tốc độ xử lý khung hình cao hơn Jetson Nano (128 nhân CUDA Maxwell).
Đóng góp kỹ thuật của đề tài
- Đã xây dựng thành công giải pháp hệ thống nhúng hoàn chỉnh cho bài toán điểm danh không tiếp xúc, kết hợp giữa mô hình phát hiện siêu nhẹ Ultra-Light và mô hình trích xuất đặc trưng rút gọn MobileFaceNet.
- Thiết lập quy trình tiền xử lý, căn chỉnh 5 điểm mốc và huấn luyện vector nhúng 128 chiều hoàn chỉnh chạy trực tiếp trên các dòng máy tính biên NVIDIA Jetson.
- Cung cấp dữ liệu thực nghiệm và đánh giá đối chuẩn giữa hai kiến trúc mạng (FaceNet vs. MobileFaceNet) trên hai cấu hình phần cứng nhúng biên thương mại phổ biến (Jetson TX2 và Jetson Nano).
Hạn chế và hướng nghiên cứu tiếp
Khóa luận chỉ ra một số giới hạn kỹ thuật cần tiếp tục hoàn thiện:
- Quy mô tập dữ liệu: Số lượng đối tượng thử nghiệm còn nhỏ (10 người với khoảng 200 ảnh/người), chưa phản ánh toàn diện các thách thức trong môi trường điểm danh quy mô lớn hàng trăm sinh viên/nhân viên.
- Độ nhạy với góc nghiêng và môi trường: Độ chính xác nhận diện suy giảm khi khuôn mặt quay nghiêng góc lớn (vượt quá 20 độ), ảnh có độ phân giải thấp hoặc môi trường có cường độ ánh sáng không đồng đều.
- Tỷ lệ nhận diện sai: Tương tự đặc tính chung của công nghệ nhận diện khuôn mặt so với sinh trắc học mống mắt hay vân tay, hệ thống vẫn tồn tại tỷ lệ chấp nhận sai (false acceptance) và từ chối sai (false rejection) trong các trường hợp khuôn mặt bị che khuất một phần.
Hướng mở rộng đề tài:
- Mở rộng cơ sở dữ liệu huấn luyện cho số lượng đối tượng lớn hơn và bổ sung các kịch bản ngoại cảnh đa dạng.
- Tích hợp thêm các kỹ thuật căn chỉnh khuôn mặt nâng cao để xử lý hiệu quả các góc nghiêng phức tạp.
- Ứng dụng các công cụ tối ưu hóa mô hình chuyên sâu (như NVIDIA TensorRT hoặc lượng tử hóa INT8) nhằm tăng tốc độ khung hình và giảm thiểu độ trễ xử lý trên Jetson Nano.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo hữu ích cho:
- Sinh viên và kỹ sư ngành Kỹ thuật Máy tính, Điện tử – Viễn thông, Công nghệ Thông tin, Trí tuệ Nhân tạo: Tham khảo tài liệu kỹ thuật về quy trình thiết lập hệ điều hành JetPack, cấu hình môi trường Deep Learning (CUDA, TensorFlow, OpenCV) trên các nền tảng máy tính nhúng NVIDIA Jetson.
- Các nhà phát triển hệ thống AI tại biên (Edge AI): Tham khảo kiến trúc kết hợp giữa mô hình phát hiện siêu nhẹ Ultra-Light Face Detector (1MB) và mạng trích xuất đặc trưng MobileFaceNet (<1M tham số) để tối ưu hóa tài nguyên phần cứng giới hạn.
- Người thực hiện các đề tài ứng dụng sinh trắc học: Tham khảo quy trình tiền xử lý ảnh 5 điểm mốc (Face Alignment) và phương pháp tính toán khoảng cách vector đặc trưng phục vụ nhận diện danh tính.
Câu hỏi thường gặp
1. Hệ thống sử dụng mô hình nào cho bước phát hiện khuôn mặt và kích thước của mô hình đó là bao nhiêu?
Hệ thống sử dụng thuật toán Ultra-Light-Fast-Generic-Face-Detector-1MB (do tác giả Linzaer phát triển). Ở định dạng FP32, kích thước tệp mô hình là 1,1 MB; khi lượng tử hóa INT8, kích thước giảm còn 300 KB với khối lượng tính toán từ 90 đến 109 MFLOPs ở độ phân giải $320 \times 240$.
2. Kích thước ảnh đầu vào của MobileFaceNet và FaceNet trong đề tài khác nhau như thế nào?
Trong giai đoạn tiền xử lý và căn chỉnh 5 điểm mốc, hình ảnh khuôn mặt được cắt và chuẩn hóa về kích thước $112 \times 112$ pixel khi sử dụng mô hình MobileFaceNet, và $160 \times 160$ pixel khi sử dụng mô hình FaceNet.
3. Phần cứng máy tính nhúng và camera nào được sử dụng để xây dựng hệ thống?
Đề tài triển khai thực nghiệm trên hai bộ kit nhúng là NVIDIA Jetson TX2 (kèm bo mạch Orbitty Carrier) và NVIDIA Jetson Nano Developer Kit, kết hợp cùng cảm biến thu hình là webcam Logitech C270 (độ phân giải HD 720p/30fps).
4. Cơ chế hoạt động của hàm mất mát Triplet Loss trong việc trích xuất vector đặc trưng là gì?
Hàm mất mát Triplet Loss nhận đầu vào gồm 3 ảnh: Anchor ($A$), Positive ($P$ - cùng người với $A$) và Negative ($N$ - người khác với $A$). Mục tiêu huấn luyện là cực tiểu hóa khoảng cách giữa $A$ và $P$, đồng thời cực đại hóa khoảng cách giữa $A$ và $N$ trong không gian vector 128 chiều theo điều kiện $|f(A) - f(P)|^2 - |f(A) - f(N)|^2 + \alpha \le 0$.
5. Việc chuyển đổi tác vụ xử lý sang GPU thông qua NVIDIA CUDA đem lại hiệu quả gì?
Việc tận dụng nhân CUDA trên GPU của dòng máy tính Jetson giúp giảm tải cho CPU trong các phép toán ma trận phức tạp của mạng nơ-ron sâu, nâng cao tốc độ xử lý thị giác máy tính lên gấp khoảng 5,75 lần so với khi chỉ chạy thuần túy trên CPU.
Kết luận
Khóa luận tốt nghiệp của tác giả Trần Nguyên Phong và Đạt Đèo Quốc đã nghiên cứu và hiện thực hóa thành công mô hình hệ thống điểm danh tự động dựa trên nhận diện khuôn mặt vận hành trên nền tảng máy tính nhúng NVIDIA Jetson (TX2 và Nano). Bằng việc kết hợp thuật toán phát hiện siêu nhẹ Ultra-Light và mạng nơ-ron rút gọn MobileFaceNet, hệ thống đã giải quyết hiệu quả bài toán cân bằng giữa độ chính xác và tốc độ xử lý thời gian thực trên thiết bị biên công suất thấp. Kết quả thực nghiệm của đề tài cung cấp cơ sở kỹ thuật và dữ liệu đối chuẩn thực tế có giá trị cho việc triển khai các ứng dụng thị giác máy tính và sinh trắc học không tiếp xúc trong môi trường giáo dục và doanh nghiệp.