Bối cảnh và vấn đề nghiên cứu
Phát hiện khuôn mặt (face detection) là một nhiệm vụ nền tảng trong lĩnh vực thị giác máy tính, đóng vai trò tiền đề cho hàng loạt ứng dụng thực tế như hệ thống giám sát an ninh bằng video, xác thực sinh trắc học, giám sát trạng thái người lái xe, tương tác người - máy (HCI) và bảo mật thiết bị di động. Cùng với sự phát triển mạnh mẽ của các thiết bị thông minh và công nghệ Internet vạn vật (IoT), nhu cầu tích hợp khả năng phát hiện khuôn mặt trực tiếp lên các nền tảng phần cứng nhỏ gọn, bị hạn chế tài nguyên tính toán (như hệ thống nhúng và thiết bị biên - edge AI) ngày càng gia tăng.
Các giải pháp xử lý dựa trên điện toán đám mây truyền thống tuy cung cấp tài nguyên tính toán lớn nhưng bộc lộ nhiều nhược điểm nghiêm trọng: độ trễ đường truyền cao, lo ngại về bảo mật dữ liệu riêng tư và sự phụ thuộc hoàn toàn vào kết nối mạng ổn định. Những hạn chế này khiến mô hình xử lý đám mây không phù hợp với các ứng dụng nhạy cảm về mặt thời gian và yêu cầu quyền riêng tư nghiêm ngặt. Do đó, xu hướng công nghệ đã chuyển dịch sang cơ chế suy luận cục bộ trên thiết bị (on-device inference), cho phép hệ thống vận hành tự chủ, bảo mật và đạt tốc độ thời gian thực.
Trong số các thuật toán phát hiện khuôn mặt, mạng nơ-ron tích chập đa nhiệm phân tầng (Multi-task Cascaded Convolutional Neural Network - MTCNN) là phương pháp nổi bật nhờ cấu trúc chuỗi gồm ba tầng mạng: Proposal Network (P-Net), Refinement Network (R-Net) và Output Network (O-Net), cho phép giải quyết đồng thời các tác vụ phân loại khuôn mặt, hồi quy tọa độ hộp bao và định vị 5 điểm mốc đặc trưng trên khuôn mặt. Mặc dù đạt độ chính xác cao, kiến trúc MTCNN nguyên bản lại đòi hỏi chi phí tính toán lớn và dung lượng bộ nhớ cao, tạo nên rào cản kỹ thuật khi triển khai trên các nền tảng phần cứng bị giới hạn tài nguyên. Đồ án tốt nghiệp của sinh viên Phan Minh Đức và Nguyễn Lê Ngọc Trâm, dưới sự hướng dẫn của TS. Phạm Văn Khoa tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, tập trung giải quyết bài toán tái thiết kế và tối ưu hóa mô hình MTCNN nhằm cân bằng giữa độ chính xác phát hiện và hiệu năng tính toán phần cứng.
Nhiệm vụ nghiên cứu được cụ thể hóa thông qua 6 mục tiêu kỹ thuật:
- Đơn giản hóa kiến trúc (Architectural Simplification): Tái thiết kế kiến trúc MTCNN bằng cách cắt giảm số lớp, số bộ lọc và tổng lượng tham số nhằm giảm thiểu chi phí tính toán và mức tiêu thụ bộ nhớ.
- Nén mô hình (Model Compression): Áp dụng các kỹ thuật nén mô hình tiên tiến, bao gồm huấn luyện nhận biết lượng tử hóa (Quantization-Aware Training - QAT) và cắt tỉa (pruning) để thu nhỏ kích thước mô hình và nâng cao tốc độ suy luận.
- Thay thế tích chập hiệu năng cao (Efficient Convolutions): Thay thế các phép tích chập tiêu chuẩn bằng tích chập tách biệt theo chiều sâu (depthwise separable convolutions) nhằm giảm đáng kể số lượng phép tính dấu phẩy động (FLOPs) mà vẫn bảo tồn năng lực trích xuất đặc trưng.
- Tăng cường biểu diễn đặc trưng (Enhanced Feature Representation): Tích hợp các cơ chế chú ý gọn nhẹ, tiêu biểu là các khối Squeeze-and-Excitation (SE blocks), để duy trì chất lượng phát hiện khuôn mặt sau khi đã tinh giản mạng.
- Đánh giá chuẩn đối sánh (Performance Benchmarking): Thực hiện các chuỗi thực nghiệm đối sánh toàn diện giữa mô hình gốc và mô hình tinh chỉnh dựa trên độ chính xác, kích thước mô hình, thời gian suy luận và độ tương thích phần cứng.
- Đảm bảo tính sẵn sàng triển khai (Deployment Readiness): Kiểm chứng và bảo đảm mô hình sau tối ưu hóa có khả năng triển khai hiệu quả trên chuỗi xử lý AI biên, trọng tâm là bo mạch FPGA Kria KV260, bộ xử lý kiến trúc ARM và các mạch tăng tốc phần cứng công suất thấp.
Đối tượng nghiên cứu của đồ án là mô hình mạng nơ-ron tích chập đa nhiệm phân tầng tùy biến (Custom MTCNN) kết hợp các kỹ thuật tối ưu hóa phần mềm và nén dữ liệu. Phạm vi nghiên cứu về mặt không gian tập trung vào quy trình triển khai thực tế trên nền tảng phần cứng Kria KV260 Vision platform (FPGA) kết hợp camera cảm biến; về mặt nghiệp vụ, đề tài tập trung vào bài toán phát hiện khuôn mặt thông thường trong điều kiện không ràng buộc, đồng thời mô phỏng các môi trường ứng dụng như thanh toán tại quầy thu ngân và cổng kiểm soát an ninh tại nhà ga, sân bay. Nghiên cứu giới hạn phạm vi, không đi sâu vào giải quyết chuyên biệt các tình huống góc quay khuôn mặt quá lệch, che khuất diện rộng hoặc thiếu sáng trầm trọng ngoài các bài kiểm thử độ bền bỉ. Mốc thời gian hoàn thành khóa luận là tháng 07/2025.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết của công trình dựa trên sự kết hợp giữa các kiến trúc học sâu thị giác máy tính và các kỹ thuật tối ưu hóa mô hình cho hệ thống nhúng. Tác giả phân tích tiến trình kỹ thuật từ các phương pháp truyền thống đến hiện đại:
- Phương pháp truyền thống: Thuật toán Viola-Jones (2001) dựa trên đặc trưng Haar-like, cấu trúc ảnh tích hợp (Integral Image), bộ phân loại AdaBoost và kiến trúc phân tầng (cascade); phương pháp HOG (Histogram of Oriented Gradients) kết hợp máy vector hỗ trợ (SVM) của Dalal và Triggs (2005). Các phương pháp này nhẹ nhưng độ trúng giảm mạnh khi gặp biến đổi góc quay, ánh sáng và che khuất.
- Phương pháp học sâu hiện đại: Các kiến trúc Single-stage như SSD (Single Shot MultiBox Detector) và YOLO (You Only Look Once, ví dụ YOLO-Face, YOLOv4 đạt trên 30 FPS trên GPU) tối ưu về tốc độ; kiến trúc Two-stage như Faster R-CNN sử dụng mạng đề xuất vùng (RPN) cho độ chính xác cao nhưng tốc độ chậm; các mô hình chuyên biệt như RetinaFace và CenterFace hỗ trợ định vị điểm đặc trưng khuôn mặt chi tiết.
- Kiến trúc MTCNN: Hoạt động dựa trên chuỗi 3 mạng tích chập P-Net, R-Net và O-Net phối hợp cùng cơ chế tháp ảnh (Image Pyramid) để phát hiện khuôn mặt đa kích thước. Điểm cốt lõi trong xử lý hậu kỳ là giải thuật triệt tiêu phi cực đại (Non-Maximum Suppression - NMS), dựa trên chỉ số diện tích giao trên diện tích hợp (Intersection over Union - IoU):
$$\text{IoU}(A, B) = \frac{\text{Area}(A \cap B)}{\text{Area}(A \cup B)}$$
Ngưỡng lọc $T_{\text{IoU}}$ được thiết lập linh hoạt từ 0.3 đến 0.7 tùy từng tầng để loại bỏ các hộp bao chồng chéo.
- Kỹ thuật lượng tử hóa mô hình: Chuyển đổi trọng số và hàm kích hoạt từ định dạng dấu phẩy động 32-bit (FP32) sang số nguyên 8-bit (INT8). Các hướng tiếp cận gồm lượng tử hóa sau huấn luyện (Post-Training Quantization - PTQ, bao gồm PTQ tĩnh và PTQ động) và huấn luyện nhận biết lượng tử hóa (Quantization-Aware Training - QAT).
Phương pháp nghiên cứu thực nghiệm được tác giả triển khai qua 5 giai đoạn có tính lặp:
- Giai đoạn phân tích: Định vị các điểm nghẽn tính toán và dung lượng bộ nhớ của mạng MTCNN gốc.
- Giai đoạn tái thiết kế: Ứng dụng tích chập tách biệt theo chiều sâu (Depthwise Separable Convolution) và bổ sung khối Squeeze-and-Excitation (SE block).
- Giai đoạn nén mô hình: Thực hiện lượng tử hóa tĩnh/động với PTQ và mô phỏng sai số lượng tử với QAT thông qua thư viện Brevitas.
- Giai đoạn đánh giá: Đo kiểm độ chính xác phân loại, chỉ số IoU, độ chính xác trung bình (Average Precision - AP) trên tập dữ liệu chuẩn, đo thời gian suy luận và dung lượng bộ nhớ.
- Giai đoạn triển khai: Chuyển đổi mô hình và thực thi trên bo mạch FPGA Kria KV260 để đánh giá tốc độ khung hình thực tế.
Nguồn dữ liệu sử dụng trong đồ án bao gồm:
- Dữ liệu chuẩn: Trích xuất một tập con đại diện từ tập dữ liệu học máy WIDER Face công khai, bao phủ đa dạng tư thế khuôn mặt, điều kiện chiếu sáng và mức độ che khuất.
- Dữ liệu thực nghiệm tự xây dựng: Thu thập và chuẩn hóa hơn 8.000 hình ảnh thực tế phản ánh trực tiếp các bối cảnh mục tiêu. Tổng cộng hơn 15.000 khuôn mặt đã được gán nhãn thủ công thông qua nền tảng Roboflow, bao gồm tọa độ hộp bao và 5 điểm mốc khuôn mặt (tâm hai mắt, chóp mũi, hai khóe miệng). Tập dữ liệu được phân chia theo tỷ lệ phân tầng: 80% huấn luyện (training), 15% kiểm định (validation) và 5% kiểm tra độc lập (test).
- Dữ liệu mô phỏng ngữ cảnh: Sử dụng công cụ sinh hình ảnh OpenAI Sora dựa trên hình ảnh thực tế để tạo ra các tập dữ liệu bổ trợ đa dạng góc nhìn, phục vụ các tình huống cụ thể: quầy thanh toán bán lẻ (Shopping Dataset), cửa soát vé tự động (Metro Dataset) và cổng quét kiểm soát (Scan Dataset).
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế hoàn chỉnh từ khâu thu nhận tín hiệu thị giác đến khâu xuất kết quả định dạng chuẩn phục vụ các hệ thống phân tích tiếp theo. Kiến trúc tổng thể vận hành theo luồng: Camera thu nhận luồng hình ảnh thời gian thực $\rightarrow$ Bo mạch nhúng Kria KV260 Vision Platform thực thi mô hình MTCNN tối ưu hóa $\rightarrow$ Định vị khuôn mặt và hồi quy 5 điểm mốc $\rightarrow$ Cắt (crop) vùng khuôn mặt và chuẩn hóa về kích thước cố định $100 \times 100$ pixel để đưa vào các mô hình nhận diện (face recognition) hoặc phân tích biểu cảm.
+------------------+ +-------------------------------------------+ +----------------------------+
| Video Camera | ---> | Kria KV260 Vision Platform (Custom MTCNN) | ---> | Cropped Face (100x100 px) |
| (Real-time input)| | - P-Net -> R-Net -> O-Net (INT8 / FPGA) | | Output for downstream tasks|
+------------------+ +-------------------------------------------+ +----------------------------+
Kiến trúc phân tầng của mô hình MTCNN nguyên bản
Trước khi tối ưu hóa, tác giả đã tiến hành giải phẫu chi tiết cấu trúc tham số của ba mạng thành phần trong mô hình gốc:
| Mạng |
Lớp (Layer) |
Kích thước ngõ ra (Output Shape) |
Số lượng tham số (Parameters) |
| P-Net |
conv1 (Conv2D) Prelu1 (PReLU) Maxpooling1 (MaxPooling) Conv2 (Conv2D) Prelu2 (PReLU) Conv3 (Conv2D) Prelu3 (PReLU) conv4-1 (Conv2D - Hộp bao) conv4-2 (Conv2D - Phân loại) |
(None, None, None, 10) (None, None, None, 10) (None, None, None, 10) (None, None, None, 16) (None, None, None, 16) (None, None, None, 32) (None, None, None, 32) (None, None, None, 4) (None, None, None, 2) |
280 10 0 1.456 16 4.640 32 132 66 Tổng: 6.632 |
| R-Net |
conv1 (Conv2D) prelu1 (PReLU) maxpooling1 (MaxPooling) conv2 (Conv2D) prelu2 (PReLU) maxpooling2 (MaxPooling) conv3 (Conv2D) prelu3 (PReLU) flatten3 (Flatten) fc4 (Dense) prelu4 (PReLU) fc5-1 (Dense - Hộp bao) fc5-2 (Dense - Phân loại) |
(None, 22, 22, 28) (None, 22, 22, 28) (None, 11, 11, 28) (None, 9, 9, 48) (None, 9, 9, 48) (None, 4, 4, 48) (None, 3, 3, 64) (None, 3, 3, 64) (None, 576) (None, 128) (None, 128) (None, 4) (None, 2) |
784 28 0 12.144 48 0 12.352 64 0 78.856 128 516 258 Tổng: 100.178 |
| O-Net |
conv1 (Conv2D) prelu1 (PReLU) maxpooling1 (MaxPooling) conv2 (Conv2D) prelu2 (PReLU) conv3 (Conv2D) flatten4 (Flatten) fc5 (Dense) prelu5 (PReLU) fc6-1 (Dense - Hộp bao) fc6-2 (Dense - 5 Điểm mốc) fc6-3 (Dense - Phân loại) |
(None, 46, 46, 32) (None, 46, 46, 32) (None, 23, 23, 32) (None, 21, 21, 64) (None, 21, 21, 64) (None, 8, 8, 64) (None, 1152) (None, 256) (None, 256) (None, 4) (None, 10) (None, 2) |
896 32 0 18.496 64 36.928 0 295.168 256 1.028 2.570 514 Tổng: 389.040 |
Tối ưu hóa kiến trúc và cơ chế lượng tử hóa
Để giảm gánh nặng tính toán, các khối tích chập tiêu chuẩn được thay thế bằng cấu trúc Depthwise Separable Convolution, tách biệt quá trình lọc không gian (depthwise convolution) và kết hợp đặc trưng giữa các kênh thông qua tích chập điểm (pointwise convolution $1 \times 1$). Đồng thời, mô-đun Squeeze-and-Excitation (SE) được bổ sung nhằm tái điều chỉnh trọng số các kênh kênh thông qua hai thao tác: ép thông tin toàn cục (squeeze via global average pooling) và kích hoạt phi tuyến (excitation) nhằm duy trì độ chính xác của mạng sau khi giảm bớt tham số.
Trong công tác nén mô hình, hai chiến lược lượng tử hóa được đối chiếu:
- Post-Training Quantization (PTQ): Chuyển đổi mô hình đã huấn luyện sang dạng số nguyên INT8 mà không cần huấn luyện lại; thời gian thực hiện nhanh nhưng có thể gây suy giảm độ chính xác ở các lớp sâu.
- Quantization-Aware Training (QAT): Mô phỏng sai số lượng tử trực tiếp trong quá trình lan truyền tiến và lan truyền ngược, sử dụng thư viện Brevitas để gắn các hook lượng tử hóa vào mô hình PyTorch, giúp mạng thích ứng với độ chính xác số học thấp trước khi xuất ra định dạng INT8 phục vụ triển khai phần cứng.
| Tiêu chí |
Lượng tử hóa sau huấn luyện (PTQ) |
Huấn luyện nhận biết lượng tử hóa (QAT) |
| Tốc độ thực hiện |
Thường rất nhanh |
Chậm, đòi hỏi tài nguyên tính toán |
| Yêu cầu huấn luyện |
Không cần huấn luyện lại mô hình |
Bắt buộc huấn luyện hoặc tinh chỉnh (fine-tune) lại |
| Cơ chế triển khai |
Cắm-và-chạy (Plug and play) |
Cần tích hợp sơ đồ lượng tử vào pha huấn luyện |
| Kiểm soát độ chính xác |
Kém linh hoạt đối với sai số tích lũy |
Kiểm soát tốt do tham số lượng tử hóa được học |
| Chi phí triển khai |
Thấp |
Cao hơn về mặt thời gian và thuật toán |
| Độ chính xác thu được |
Thấp hơn |
Cao hơn rõ rệt |
Quy trình tạo mẫu và chuẩn bị dữ liệu huấn luyện
Quy trình tiền xử lý được lập trình bằng Python kết hợp OpenCV và NumPy:
- Chuẩn hóa điểm ảnh: Ảnh đầu vào được chuyển đổi từ BGR sang RGB và chuẩn hóa về miền giá trị $[-1, 1]$ theo công thức:
$$x_{norm} = (x - 127.5) \times 0.0078125$$
- Tạo mẫu huấn luyện P-Net ($12 \times 12$ px):
- Mẫu âm tính (Negative): Cắt ngẫu nhiên kích thước từ 12 px đến $\min(\text{box_width}, \text{box_height})/2$, chấp nhận nếu chỉ số $\text{IoU} < 0.3$ với mọi hộp mặt chuẩn; giới hạn tối đa 35 mẫu âm/ảnh.
- Mẫu dương tính (Positive): Cắt dịch chuyển ngẫu nhiên tâm trong khoảng $\pm 20%$ kích thước hộp gốc, resize về $12 \times 12$ px, chấp nhận nếu $\text{IoU} \ge 0.65$.
- Mẫu một phần (Part-face): Các mảnh cắt có $0.4 \le \text{IoU} < 0.65$, số lượng không vượt quá $1.2$ lần số mẫu dương tính.
- Tạo mẫu huấn luyện R-Net ($24 \times 24$ px): Đưa ảnh qua mô hình P-Net đã huấn luyện để sinh các đề xuất ứng viên (kích thước tối thiểu $20 \times 20$ px). Phân loại mẫu âm tính nếu $\text{IoU} < 0.3$ (giới hạn số lượng $< 3.2$ lần số mẫu dương), mẫu dương tính nếu $\text{IoU} \ge 0.65$, và mẫu một phần nếu $0.4 \le \text{IoU} < 0.65$ (giới hạn $< 1.2$ lần mẫu dương).
- Tạo mẫu huấn luyện O-Net ($48 \times 48$ px): Sử dụng chuỗi P-Net và R-Net để đề xuất các vùng quan tâm, cắt và chuẩn hóa về $48 \times 48$ px. Đối với dữ liệu điểm mốc (landmarks), chương trình mở rộng biên của 5 tọa độ điểm chuẩn thêm 20 pixel, thực hiện 15 lượt cắt ngẫu nhiên, chấp nhận mẫu có $\text{IoU} > 0.65$, tính toán độ lệch chuẩn hóa cho 4 giá trị hộp bao và 10 giá trị điểm mốc, đánh dấu bằng tiền tố đặc biệt
-2.
- Cân bằng dữ liệu: Sử dụng các kịch bản
assemble_Pnet.py, assemble_Rnet.py và assemble_Onet.py với kích thước mẫu cơ sở là 250.000 mẫu để chọn lọc ngẫu nhiên, tạo thành các danh sách dữ liệu tổng hợp phục vụ huấn luyện mạng.
Cấu hình huấn luyện mô hình
- Môi trường: PyTorch, thực thi trên nền tảng tính toán GPU (CUDA/cuDNN) hoặc CPU.
- Bộ nạp dữ liệu:
torch.utils.data.DataLoader với kích thước batch 32, bật cờ trộn ngẫu nhiên dữ liệu (shuffle=True), thiết lập 4 luồng tải song song (num_workers=4).
- Khởi tạo trọng số: Áp dụng phân phối đều Xavier (Xavier Uniform) theo khoảng giá trị:
$$w \sim \mathcal{U}\left(-\sqrt{\frac{6}{fan_{in} + fan_{out}}}, \sqrt{\frac{6}{fan_{in} + fan_{out}}}\right)$$
- Khởi tạo hệ số chệch (bias): Đặt giá trị hằng số cố định bằng $0.1$.
- Thuật toán tối ưu: Adam (Adaptive Moment Estimation).
- Hàm mất mát vị trí hộp bao (Bounding Box Loss): Sai số bình phương trung bình (Mean Squared Error - MSE):
$$L_{bbox} = \frac{1}{N} \sum_{i=1}^{N} |\hat{b}_i - b_i|^2$$
Nội dung chính theo từng chương
Chương 1: Introduction
Chương mở đầu phân tích tính tất yếu của việc chuyển dịch từ mô hình phát hiện khuôn mặt trên đám mây sang các giải pháp xử lý tại biên (edge AI) trong các hệ thống giám sát an ninh, bán lẻ và giao tiếp người - máy. Tác giả chỉ ra điểm nghẽn chính của MTCNN nguyên bản là kích thước bộ nhớ lớn và khối lượng phép tính đồ sộ, không tương thích với phần cứng nhúng. Chương này xác lập hệ thống 6 mục tiêu kỹ thuật, phạm vi giới hạn trong phát hiện khuôn mặt thời gian thực trên bo mạch FPGA, và phác thảo lộ trình nghiên cứu qua 5 giai đoạn từ phân tích, tái cấu trúc mạng, nén lượng tử hóa đến kiểm thử thực địa.
Chương 2: Background Knowledge
Chương 2 cung cấp nền tảng lý thuyết sâu rộng về các phương pháp phát hiện khuôn mặt từ cổ điển đến hiện đại:
- Đánh giá cơ chế hoạt động, ưu và nhược điểm của thuật toán Viola-Jones (Haar-like features, AdaBoost) và HOG + SVM.
- Phân tích các mô hình học sâu đương đại gồm MTCNN, Single-stage detectors (SSD, YOLO) và Two-stage detectors (Faster R-CNN), cùng các mạng RetinaFace và CenterFace.
- Trình bày chi tiết nguyên lý chuỗi phân tầng của MTCNN: P-Net quét đa tỷ lệ trên tháp ảnh (Image Pyramid), R-Net lọc bỏ dương tính giả, O-Net hoàn thiện hộp bao và định vị 5 điểm mốc (mắt, mũi, khóe miệng).
- Mô tả thuật toán Non-Maximum Suppression (NMS) và công thức tính IoU.
- Trình bày nguyên lý toán học và luồng xử lý của các giải pháp lượng tử hóa: Post-Training Quantization (PTQ), Quantization-Aware Training (QAT) và Lượng tử hóa độ chính xác hỗn hợp (Mixed-Precision Quantization).
Chương 3: Design and Implementation
Nội dung chương 3 tập trung vào toàn bộ quy trình thiết kế kỹ thuật và mã hóa hệ thống:
- Quy trình chuẩn bị dữ liệu: Xây dựng tập dữ liệu kết hợp giữa WIDER Face, hơn 8.000 ảnh chụp thực tế và các tập dữ liệu tổng hợp sinh bằng OpenAI Sora (Metro, Scan, Shopping Datasets); gán nhãn hơn 15.000 khuôn mặt trên Roboflow.
- Chi tiết quy trình trích xuất và cân bằng dữ liệu mẫu (mẫu dương tính, mẫu âm tính, mẫu một phần và mẫu landmark) cho từng mạng P-Net ($12 \times 12$), R-Net ($24 \times 24$) và O-Net ($48 \times 48$) với ngưỡng kích thước chuẩn 250.000 mẫu.
- Thống kê chi tiết cấu hình phân lớp và thông số tham số của MTCNN gốc (P-Net: 6.632 tham số; R-Net: 100.178 tham số; O-Net: 389.040 tham số).
- Thiết kế mô hình tùy biến: Tích hợp Depthwise Separable Convolution và khối Squeeze-and-Excitation (SE block).
- Triển khai kỹ thuật lượng tử hóa: Cài đặt PTQ tĩnh/động và cấu hình QAT sử dụng thư viện Brevitas.
- Thiết lập môi trường huấn luyện trên PyTorch: Chuẩn hóa dữ liệu về miền $[-1, 1]$, khởi tạo trọng số Xavier Uniform, bias bằng $0.1$, bộ tối ưu hóa Adam, hàm mất mát hồi quy tọa độ MSE.
Chương 4: Results and Evaluation
Chương 4 công bố kết quả thực nghiệm và đánh giá định lượng:
- Báo cáo kết quả huấn luyện của từng mạng P-Net, R-Net, O-Net và mô hình tùy biến qua các epoch.
- Đánh giá vai trò của khối Squeeze-and-Excitation thông qua so sánh trực quan và định lượng kết quả phát hiện khuôn mặt khi có và không có mô-đun SE.
- Đánh giá so sánh trực tiếp giữa mô hình MTCNN nguyên bản và mô hình MTCNN tùy biến: Cắt giảm xấp xỉ 60% tổng số lượng tham số, gia tăng tốc độ suy luận lên gần 2 lần ($\approx 2\times$).
- Đo kiểm độ chính xác trên tập dữ liệu chuẩn WIDER-FACE, mô hình đạt độ chính xác trung bình (Average Precision - AP) 96.3%.
- Đánh giá trên nền tảng phần cứng FPGA Kria KV260: Hệ thống xử lý mượt mà luồng video đầu vào ở tốc độ 30 khung hình/giây (FPS) theo thời gian thực.
- Phân tích độ bền vững (robustness) của mô hình trong các điều kiện môi trường phức tạp: góc quay mặt thay đổi, biến thiên cường độ sáng và che khuất cục bộ.
- So sánh hiệu năng tổng thể với các phương pháp khác gồm Haar Cascade, DLIB, Faster R-CNN và RetinaFace.
Chương 5: Summary and Future Work
Chương cuối tóm tắt toàn bộ thành tựu của đồ án trong việc thiết kế mô hình MTCNN gọn nhẹ và phần cứng hóa thành công trên FPGA. Tác giả đồng thời nêu rõ các giới hạn còn tồn tại về độ bao phủ dữ liệu trong các tình huống đám đông quá đông đúc hoặc góc nghiêng quá lớn, từ đó định hình các hướng nghiên cứu mở rộng trong tương lai.
Kết quả và đóng góp
Các kết quả định lượng cụ thể được công bố trong khóa luận:
- Cắt giảm tham số mô hình: Việc áp dụng tích chập tách biệt theo chiều sâu (depthwise separable convolution) kết hợp lược tỉa kiến trúc giúp mô hình tùy biến giảm xấp xỉ 60% tổng số lượng tham số so với kiến trúc MTCNN nguyên bản (vốn có 6.632 tham số ở P-Net, 100.178 ở R-Net và 389.040 ở O-Net).
- Tăng tốc độ tính toán: Tốc độ suy luận (inference speed) của toàn bộ hệ thống tăng gần gấp đôi ($\approx 2\times$) so với phiên bản gốc.
- Độ chính xác phát hiện: Mô hình đạt độ chính xác trung bình (Average Precision - AP) 96.3% trên tập kiểm thử chuẩn WIDER-FACE.
- Hiệu năng vận hành trên biên: Mô hình sau lượng tử hóa dạng INT8 (áp dụng QAT qua Brevitas) triển khai trên bo mạch phần cứng Kria KV260 Vision platform (FPGA) đạt tốc độ xử lý thời gian thực 30 khung hình/giây (FPS) từ luồng camera trực tiếp.
- Chuẩn hóa đầu ra: Hệ thống tự động cắt và định dạng vùng khuôn mặt phát hiện được về kích thước chuẩn $100 \times 100$ pixel, tạo dữ liệu đầu vào ổn định cho các thuật toán nhận diện sinh trắc học và phân tích cảm xúc tiếp theo.
Đóng góp kỹ thuật chính của công trình:
- Đề xuất một biến thể kiến trúc MTCNN tùy biến gọn nhẹ, kết hợp hài hòa giữa Depthwise Separable Convolution, khối Squeeze-and-Excitation (SE block) và quy trình huấn luyện nhận biết lượng tử hóa (QAT), giải quyết triệt để sự đánh đổi giữa kích thước mô hình và độ chính xác nhận diện.
- Hiện thực hóa thành công chuỗi xử lý từ khâu sinh dữ liệu mẫu, cân bằng mẫu (dương tính, âm tính, bán phần, điểm mốc), huấn luyện tham số đến khâu đóng gói triển khai trên phần cứng nhúng FPGA có tài nguyên giới hạn.
- Đóng góp tập dữ liệu thực nghiệm gồm hơn 8.000 hình ảnh thực tế và dữ liệu tổng hợp sinh bằng AI (Sora) với hơn 15.000 khuôn mặt được gán nhãn 5 điểm mốc phục vụ kiểm thử trong các bối cảnh giám sát an ninh thực tế.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của nghiên cứu:
- Giới hạn bài toán: Khóa luận chỉ tập trung vào bài toán phát hiện khuôn mặt tổng quát trong điều kiện bình thường; chưa tối ưu hóa chuyên sâu cho các trường hợp góc nghiêng khuôn mặt quá lớn (extreme facial poses, quay góc cạnh hoàn toàn), hiện tượng bị che khuất nghiêm trọng (heavy occlusion) hoặc môi trường ánh sáng cực yếu.
- Điểm nghẽn mật độ: Trong các khung cảnh có mật độ người quá dày đặc (dense crowds), cơ chế đề xuất đa tỷ lệ của tháp ảnh và giải thuật NMS phân tầng có thể dẫn đến việc triệt tiêu nhầm các khuôn mặt nằm sát nhau.
- Môi trường thử nghiệm: Các đánh giá phần cứng mới chỉ được xác nhận trong điều kiện thực nghiệm có kiểm soát trên bo mạch Kria KV260; hiệu năng khi chuyển đổi sang các môi trường phần cứng khác (như vi xử lý ARM di động hoặc chip ASIC chuyên dụng) có thể biến động và đòi hỏi tinh chỉnh thêm.
Hướng nghiên cứu mở rộng được tác giả đề xuất:
- Tiếp tục tối ưu hóa thuật toán để nâng cao khả năng nhận diện khuôn mặt kích thước cực nhỏ và cải thiện độ bền bỉ khi đối mặt với góc quay khuôn mặt lớn.
- Mở rộng phạm vi triển khai thử nghiệm trên các bộ xử lý nhúng kiến trúc ARM Cortex và hướng tới thiết kế mạch tích hợp chuyên dụng (ASIC) trong dài hạn.
- Tích hợp mô hình phát hiện khuôn mặt tùy biến này vào một hệ thống phân tích khuôn mặt hoàn chỉnh (Full Face Recognition System), kết hợp các tác vụ nhận diện danh tính và phân tích cảm xúc trực tiếp trên phần cứng tùy biến.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo thiết thực đối với:
- Sinh viên, học viên cao học và kỹ sư thuộc các chuyên ngành Công nghệ Kỹ thuật Máy tính, Hệ thống Nhúng, Kỹ thuật Điện tử, Trí tuệ Nhân tạo và Thị giác Máy tính đang nghiên cứu tối ưu hóa mạng nơ-ron học sâu lên phần cứng biên.
- Các nghiên cứu phát triển mô hình nhận diện khuôn mặt nhẹ cho thiết bị IoT, hệ thống camera an ninh thông minh hoặc thiết bị giám sát người lái.
Các nội dung có giá trị tham khảo kỹ thuật cao trong tài liệu:
- Phương pháp luận phân rã dữ liệu và cân bằng mẫu (positive, negative, part-face, landmark) phục vụ huấn luyện chuỗi mạng phân tầng (P-Net, R-Net, O-Net) trình bày chi tiết tại mục 3.1.
- Kỹ thuật thay thế lớp tích chập chuẩn bằng Depthwise Separable Convolution kết hợp mô-đun Squeeze-and-Excitation nhằm nén mô hình mà vẫn giữ vững độ chính xác trích xuất đặc trưng.
- Quy trình cài đặt lượng tử hóa QAT bằng thư viện Brevitas và phương pháp triển khai mạng tích chập lên bo mạch FPGA Kria KV260.
Câu hỏi thường gặp
1. Đề tài lựa chọn nền tảng phần cứng nào để thực nghiệm triển khai và hiệu năng đạt được ra sao?
Tác giả sử dụng bo mạch Kria KV260 Vision platform (nền tảng FPGA chuyên dụng cho thị giác máy tính) kết hợp camera thu nhận hình ảnh trực tiếp. Sau khi tối ưu hóa và lượng tử hóa mô hình sang định dạng INT8, hệ thống đạt tốc độ xử lý thời gian thực là 30 khung hình/giây (FPS).
2. Mô hình MTCNN tùy biến đạt được mức cải thiện cụ thể nào về tham số và tốc độ?
So với kiến trúc MTCNN nguyên bản, phiên bản tùy biến đã cắt giảm xấp xỉ 60% tổng lượng tham số và tăng tốc độ suy luận lên gần 2 lần ($\approx 2\times$), trong khi vẫn duy trì độ chính xác trung bình (Average Precision - AP) đạt 96.3% trên tập kiểm thử WIDER-FACE.
3. Tập dữ liệu huấn luyện của nghiên cứu được xây dựng từ những nguồn nào?
Tập dữ liệu kết hợp từ ba nguồn: một tập con đại diện trích xuất từ tập dữ liệu chuẩn WIDER Face; hơn 8.000 hình ảnh thực tế được nhóm tác giả tự chụp và thu thập; và các ảnh ngữ cảnh (thanh toán siêu thị, cổng an ninh nhà ga/sân bay) được tạo tự động bằng mô hình AI OpenAI Sora. Tổng cộng hơn 15.000 khuôn mặt đã được gán nhãn thủ công 5 điểm mốc trên nền tảng Roboflow và phân chia theo tỷ lệ 80% train, 15% validation và 5% test.
4. Thuật toán tối ưu và cấu hình tiền xử lý dữ liệu được thiết lập như thế nào trong pha huấn luyện?
Dữ liệu ảnh đầu vào được chuẩn hóa về miền giá trị $[-1, 1]$ theo công thức $x_{norm} = (x - 127.5) \times 0.0078125$. Mô hình được khởi tạo trọng số bằng phương pháp phân phối đều Xavier (Xavier Uniform), bias khởi tạo giá trị cố định $0.1$, sử dụng thuật toán tối ưu Adam với kích thước batch 32, và hàm mất mát hồi quy tọa độ hộp bao là sai số bình phương trung bình (MSE).
5. Đầu ra của hệ thống phát hiện khuôn mặt này được định dạng như thế nào và phục vụ mục đích gì?
Khuôn mặt sau khi được phát hiện và tinh chỉnh vị trí hộp bao sẽ được hệ thống tự động cắt rời khỏi ảnh gốc và thay đổi tỷ lệ về kích thước cố định $100 \times 100$ pixel. Dữ liệu chuẩn hóa này được thiết kế để chuyển tiếp sang các khối xử lý tiếp theo như nhận diện danh tính (face recognition), phân tích cảm xúc hoặc xác thực sinh trắc học.
Kết luận
Khóa luận tốt nghiệp của Phan Minh Đức và Nguyễn Lê Ngọc Trâm đã nghiên cứu thành công giải pháp tối ưu hóa kiến trúc mạng MTCNN phục vụ bài toán phát hiện khuôn mặt thời gian thực trên các nền tảng phần cứng biên bị giới hạn tài nguyên. Bằng việc kết hợp tích chập tách biệt theo chiều sâu (depthwise separable convolution), cơ chế chú ý Squeeze-and-Excitation và kỹ thuật huấn luyện nhận biết lượng tử hóa (QAT), công trình đã giảm 60% số lượng tham số và tăng gấp đôi tốc độ xử lý so với mô hình gốc mà vẫn duy trì độ chính xác AP 96.3% trên tập chuẩn WIDER-FACE. Khả năng vận hành ổn định 30 FPS trên bo mạch FPGA Kria KV260 khẳng định tính khả thi của giải pháp trong việc hiện thực hóa các ứng dụng AI thị giác nhúng trong giám sát an ninh và thiết bị thông minh.