Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số và bùng nổ của Trí tuệ nhân tạo (Artificial Intelligence - AI), Thị giác máy tính (Computer Vision) đóng vai trò nòng cốt trong việc tự động hóa các tác vụ nhận thức thị giác của con người. Theo các báo cáo phân tích thị trường công nghệ toàn cầu, phân tích nhân khẩu học khuôn mặt (Facial Demographic Analysis) đạt tốc độ tăng trưởng kép hàng năm (CAGR) trên 16%, phục vụ đắc lực cho các hệ thống bán lẻ thông minh (Smart Retail), tiếp thị hướng mục tiêu, quản lý an ninh và hệ thống gợi ý nội dung cá nhân hóa.
Tuy nhiên, bài toán ước lượng độ tuổi và phân loại giới tính từ khuôn mặt trong điều kiện môi trường thực tế gặp phải nhiều rào cản kỹ thuật:
- Sự thiếu cân bằng dữ liệu chủng tộc: Hầu hết các bộ cơ sở dữ liệu mở quốc tế (như Adience, UTKFace) tập trung chủ yếu vào khuôn mặt người phương Tây, dẫn đến độ chính xác suy giảm nghiêm trọng khi áp dụng cho người châu Á do sự khác biệt rõ rệt về cấu trúc xương mặt và tốc độ lão hóa da.
- Sự gián đoạn trong phân nhóm độ tuổi: Các nghiên cứu trước đây thường phân chia độ tuổi thành các khoảng rời rạc (ví dụ: 0–2, 4–6, 8–13, 15–20, 25–32, 38–43, 48–53, 60–100), tạo ra "vùng trống" không thể phân loại các đối tượng ở độ tuổi trung gian.
- Độ phức tạp tính toán lớn: Các mạng nơ-ron sâu (Deep Neural Networks - DNN) nguyên bản đòi hỏi tài nguyên tính toán khổng lồ, khó đáp ứng bài toán nhận diện thời gian thực (real-time) trên các thiết bị phổ thông.
Đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Điện tử - Viễn thông tại Trường Đại học Sư phạm Kỹ thuật TP.HCM mang tên "Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và giới tính" được nghiên cứu và phát triển nhằm giải quyết triệt để các hạn chế trên.
+----------------------------------------------------------------------------------------------------+
| MỤC TIÊU CỐT LÕI CỦA ĐỀ TÀI |
+----------------------------------------------------------------------------------------------------+
| 1. Xây dựng tập dữ liệu cân bằng 18.000 ảnh (56% khuôn mặt người châu Á, cân bằng 1:1 nam/nữ). |
| 2. Chuẩn hóa 8 phân lớp độ tuổi liên tiếp: (1-9), (10-19), (20-29), (30-39), (40-49), (50-59), |
| (60-69) và (70+). |
| 3. Ứng dụng kỹ thuật Transfer Learning & Fine-tuning trên kiến trúc VGG16 kết hợp YuNet Face. |
| 4. Triển khai ứng dụng Web giám sát thời gian thực qua webcam máy tính bằng Streamlit Framework. |
+----------------------------------------------------------------------------------------------------+
Phương pháp tiếp cận và kết quả kỳ vọng
- Giải pháp: Tách biệt module phát hiện khuôn mặt (Face Detection bằng mô hình nhẹ YuNet ONNX với 5 điểm mốc đặc trưng) và module phân loại (mạng nơ-ron tích chập CNN tùy biến từ VGG16). Áp dụng phương pháp Fine-tuning, đóng băng các tầng trích xuất đặc trưng và tái cấu trúc các lớp kết nối đầy đủ (Fully Connected - FC).
- Kết quả đo lường kỳ vọng: Đạt độ chính xác (Accuracy) trên tập kiểm thử validation $\ge 90%$ cho bài toán giới tính, duy trì tốc độ khung hình $\ge 15\text{ FPS}$ trên luồng camera trực tiếp.
- Phạm vi và giới hạn: Hệ thống tập trung xử lý ảnh khuôn mặt chụp trực diện hoặc góc nghiêng nhẹ ($\le 30^\circ$), điều kiện ánh sáng rõ ràng, kích thước khuôn mặt sau khi crop được chuẩn hóa về $224 \times 224 \times 3\text{ pixels}$.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi thiết kế hệ thống, các giải pháp nhận dạng thuộc tính khuôn mặt phổ biến được tổng hợp và đánh giá:
| Phương pháp / Mô hình |
Kiến trúc trích xuất |
Độ chính xác giới tính |
Phân khoảng độ tuổi |
Ưu điểm |
Nhược điểm |
| SVM + HOG/LBP (Cổ điển) |
Trích xuất thủ công (Handcrafted Features) |
78% – 82% |
3 nhóm lớn (Trẻ em, Trưởng thành, Già) |
Nhẹ, chạy được trên CPU cấu hình thấp |
Rất nhạy cảm với ánh sáng, góc nghiêng; trích xuất kém |
| Levi & Hassner (2015) |
CNN cơ bản (5 layers) |
86.8% |
8 khoảng rời rạc (có khe hở tuổi) |
Học đặc trưng tự động, nhanh |
Dữ liệu Adience thiếu ảnh châu Á, khoảng tuổi bị gián đoạn |
| Giải pháp đề tài (VGG16 + YuNet) |
Deep CNN Fine-tuned (16 layers) + YuNet ONNX |
94.0% (Validation) |
8 nhóm liên tục (1 đến 70+) |
Khả năng tổng quát hóa cao trên người châu Á, real-time |
Yêu cầu tài nguyên huấn luyện GPU ban đầu |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Module phát hiện khuôn mặt tự động; phân loại nhị phân giới tính (Nam/Nữ) độ chính xác $>90%$; phân loại 8 nhóm tuổi liên tiếp; giao diện Web hiển thị Bounding Box và nhãn dự đoán.
- Should have (Nên có): Tối ưu hóa pipeline để xử lý mượt mà qua webcam thông thường; ma trận nhầm lẫn (Confusion Matrix) chi tiết trên 3.600 mẫu kiểm thử.
- Could have (Có thể có): Hiển thị xác suất tin cậy (Confidence Score) cho từng nhóm tuổi; tối ưu hóa kích thước mô hình để xuất file trọng số
.h5.
- Won't have (Chưa thực hiện ở giai đoạn này): Nhận diện danh tính cụ thể (Face Recognition) hoặc ước lượng biểu cảm cảm xúc (Emotion Recognition).
Thiết kế hệ thống
Kiến trúc tổng thể của hệ thống nhận dạng độ tuổi và giới tính được thiết kế theo dạng đường ống (End-to-End Pipeline) 4 tầng logic:
+------------------+ +--------------------+ +-------------------------+ +-------------------+
| Camera Input | ---> | YuNet Detection | ---> | Preprocessing & Crop | ---> | VGG16 Backbone |
| (Webcam 30 FPS) | | (5 Landmarks Crop) | | (Normalize 224x224x3) | | (5 Conv Blocks) |
+------------------+ +--------------------+ +-------------------------+ +---------+---------+
|
+---------------------------------+
|
+------------------+------------------+
| |
v v
+--------------------+ +--------------------+
| Gender Head (FC) | | Age Head (FC) |
| Dense(128) -> Drop | | Dense(128) -> Drop |
| Dense(1, Sigmoid) | | Dense(8, Softmax) |
+----------+---------+ +----------+---------+
| |
+------------------+------------------+
|
v
+--------------------+
| Streamlit Web UI |
| (Real-time Render) |
+--------------------+
Technology Stack và phiên bản sử dụng
- Ngôn ngữ lập trình: Python
3.8.10
- Thư viện Deep Learning: TensorFlow / Keras
2.8.0
- Xử lý ảnh và Computer Vision: OpenCV
4.5.4 (Module cv2.FaceDetectorYN)
- Mô hình Face Detection:
yunet.onnx (pre-trained weight từ OpenCV Zoo)
- Kiến trúc phân loại: VGG16 (ImageNet weights)
- Web App Interface: Streamlit Framework
1.10.0
- Môi trường huấn luyện: Google Colaboratory (NVIDIA Tesla K80 GPU, 13GB RAM)
Cân nhắc về bảo mật và hiệu năng
- Bảo mật dữ liệu riêng tư: Hệ thống xử lý khung hình theo thời gian thực (In-Memory Processing), không lưu trữ hình ảnh cá nhân hoặc vector sinh trắc học vào cơ sở dữ liệu vĩnh viễn.
- Tối ưu hóa hiệu năng: Cơ chế non-maximum suppression (NMS) với ngưỡng
nms_threshold = 0.3 và score_threshold = 0.9 giúp loại bỏ hoàn toàn các khung nhận diện trùng lặp, giải phóng tài nguyên CPU.
Phương pháp luận (Methodology)
Quy trình phát triển đồ án tuân theo mô hình lặp thực nghiệm (Empirical Agile Prototyping) qua các mốc tiến độ cụ thể:
+----------------------------------------------------------------------------------------------------+
| TIẾN ĐỘ THỰC HIỆN DỰ ÁN |
+----------------------------------------------------------------------------------------------------+
| [Tuần 1-3] Thu thập, làm sạch & gán nhãn 18.000 ảnh đa nguồn (UTKFace, VN-celeb, Web). |
| [Tuần 4-6] Thiết kế kiến trúc VGG16 tùy biến, cấu hình hàm kích hoạt và bộ tối ưu hóa Adam. |
| [Tuần 7-10] Huấn luyện mô hình (100 Epochs/task) trên Google Colab GPU; tinh chỉnh siêu tham số. |
| [Tuần 11-13] Đánh giá định lượng (Confusion Matrix, Precision, Recall) & kiểm thử điều kiện sáng. |
| [Tuần 14-16] Đóng gói trọng số (.h5), xây dựng Web UI với Streamlit và hoàn thiện khóa luận. |
+----------------------------------------------------------------------------------------------------+
Ma trận đánh giá rủi ro và giải pháp khắc phục
- Rủi ro Overfitting trên tập huấn luyện nhỏ: Khắc phục bằng kỹ thuật Data Augmentation, chèn lớp
Dropout(0.5) sau lớp Dense(128), và sử dụng mạng nơ-ron tích chập sâu đóng băng trọng số trích xuất đặc trưng cơ bản.
- Rủi ro mất cân bằng dữ liệu giữa các độ tuổi: Khắc phục bằng cách chuẩn hóa chính xác 240 ảnh/tuổi (120 nam, 120 nữ) cho các nhóm tuổi từ 1 đến 69.
- Rủi ro sụt giảm FPS khi chạy trên máy tính cá nhân: Khắc phục bằng cách sử dụng mô hình nhận diện khuôn mặt siêu nhẹ YuNet ONNX thay vì MTCNN hay Haar-Cascade nặng nề.
Implementation và kết quả
Quá trình phát triển và chi tiết thuật toán
Xử lý dữ liệu (Data Pipeline)
Tập dữ liệu 18.000 ảnh được mã hóa theo quy chuẩn danh pháp: [Tuổi]_[Giới tính]_[Chủng tộc]_[STT].jpg.
[Giới tính]: 0 (Nam), 1 (Nữ).
[Chủng tộc]: 1 (Châu Á - Đông Á, Đông Nam Á), 0 (Chủng tộc khác).
Tập dữ liệu được chia theo tỷ lệ vàng $80:20$:
- Tập huấn luyện (Training set): $80% = 14.400\text{ ảnh}$.
- Tập kiểm thử (Validation set): $20% = 3.600\text{ ảnh}$.
Kiến trúc chi tiết các tầng mạng VGG16 Fine-tuned
Mạng VGG16 chuẩn gồm 5 khối tích chập liên tiếp với các bộ lọc kích thước nhỏ $3 \times 3$, đệm (padding) dạng same, theo sau bởi các tầng MaxPooling2D(2, 2) bước trượt $s=2$.
import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.applications import VGG16
def build_custom_vgg16(num_classes=1, is_gender=True):
# 1. Tải kiến trúc VGG16 chuẩn với trọng số ImageNet, loại bỏ các lớp FC gốc
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
# 2. Đóng băng các tầng Convolutional trích xuất đặc trưng
for layer in base_model.layers:
layer.trainable = False
# 3. Tái cấu trúc các tầng Fully Connected (FC)
x = base_model.output
x = layers.Flatten(name='flatten')(x)
x = layers.Dense(128, activation='relu', name='dense_fc1')(x)
x = layers.Dropout(0.5, name='dropout_fc1')(x)
if is_gender:
# Nhánh phân loại nhị phân giới tính
outputs = layers.Dense(1, activation='sigmoid', name='gender_output')(x)
else:
# Nhánh phân loại đa lớp độ tuổi (8 nhóm)
outputs = layers.Dense(num_classes, activation='softmax', name='age_output')(x)
model = models.Model(inputs=base_model.input, outputs=outputs)
return model
Cơ sở toán học của các hàm mất mát và tối ưu
-
Phân loại giới tính (Binary Classification):
Sử dụng hàm mất mát Binary Cross-Entropy kết hợp kích hoạt Sigmoid ngõ ra:
$$\mathcal{L}{BCE} = -\frac{1}{N}\sum{i=1}^{N} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right]$$
Trong đó $y_i \in {0, 1}$ là nhãn thực tế, $\hat{y}_i \in (0, 1)$ là xác suất đầu ra dự đoán.
-
Phân loại độ tuổi (Multi-class Classification):
Mã hóa One-Hot vector 8 chiều cho 8 lớp nhãn, kết hợp hàm Softmax và Categorical Cross-Entropy:
$$\text{Softmax}(z_j) = \frac{e^{z_j}}{\sum_{k=1}^{C} e^{z_k}}, \quad \mathcal{L}{CCE} = -\frac{1}{N}\sum{i=1}^{N}\sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c})$$
với $C = 8$.
-
Thuật toán tối ưu hóa Adam (Adaptive Moment Estimation):
Cập nhật trọng số thông qua mô-men bậc 1 ($m_t$) và mô-men bậc 2 ($v_t$):
$$m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t, \quad v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2$$
$$\hat{m}_t = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v}t = \frac{v_t}{1 - \beta_2^t}, \quad \theta{t+1} = \theta_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon}\hat{m}_t$$
Thiết lập siêu tham số: Learning rate $\eta = 0.0001$, $\beta_1 = 0.9$, $\beta_2 = 0.999$, $\epsilon = 10^{-7}$, Batch size = 8, Epochs = 100.
Thử nghiệm và đánh giá chất lượng (Testing & Validation)
Phân tích số lượng tham số mô hình
- Mô hình phân loại giới tính:
- Tổng số tham số: 17.926.209
- Tham số huấn luyện (Trainable params): 3.211.521
- Tham số đóng băng (Non-trainable params): 14.714.688
- Mô hình phân loại độ tuổi:
- Tổng số tham số: 17.927.112
- Tham số huấn luyện (Trainable params): 3.212.424
- Tham số đóng băng (Non-trainable params): 14.714.688
Kết quả đánh giá mô hình phân loại giới tính
Trên tập kiểm thử ngẫu nhiên 3.600 mẫu ($20%$ validation set):
| Nhãn thực tế \ Nhãn dự đoán |
Dự đoán Nam (Predicted Male) |
Dự đoán Nữ (Predicted Female) |
Tổng thực tế |
| Thực tế Nam (True Male) |
1.676 (TM) |
107 (FM) |
1.783 |
| Thực tế Nữ (True Female) |
109 (FF) |
1.708 (TF) |
1.817 |
| Tổng dự đoán |
1.785 |
1.815 |
3.600 |
- Độ chính xác tổng thể (Accuracy):
$$\text{Accuracy} = \frac{\text{TM} + \text{TF}}{\text{TM} + \text{TF} + \text{FM} + \text{FF}} = \frac{1676 + 1708}{3600} \approx \mathbf{94.0%}$$
- Precision (Độ chuẩn xác đối với Nam): $\frac{\text{TM}}{\text{TM} + \text{FF}} = \frac{1676}{1676 + 109} \approx \mathbf{93.89%}$
- Recall (Độ nhạy đối với Nam): $\frac{\text{TM}}{\text{TM} + \text{FM}} = \frac{1676}{1676 + 107} \approx \mathbf{93.99%}$
- F1-Score (Điểm điều hòa): $2 \times \frac{0.9389 \times 0.9399}{0.9389 + 0.9399} \approx \mathbf{93.94%}$
+----------------------------------------------------------------------------------------------------+
| BIỂU ĐỒ TIẾN TRÌNH HUẤN LUYỆN (100 EPOCHS) |
+----------------------------------------------------------------------------------------------------+
| Training Accuracy : [ 0% ] =====================================> [ 98.2% ] (Loss: 0.05) |
| Validation Accuracy : [ 0% ] ================================> [ 94.0% ] (Loss: 0.20) |
| Status : Không xảy ra hiện tượng Vanishing Gradient nhờ ReLU và Transfer Learning. |
+----------------------------------------------------------------------------------------------------+
Kết quả thử nghiệm thực tế trong các điều kiện môi trường
- Điều kiện ánh sáng tiêu chuẩn, góc chụp trực diện: Độ chính xác giới tính đạt $96.5%$, ước lượng độ tuổi đúng nhóm hoặc lệch tối đa $\pm 1$ nhóm liền kề đạt $89.2%$.
- Điều kiện ánh sáng yếu hoặc ngược sáng: Tỷ lệ phát hiện khuôn mặt của YuNet giảm còn $88.0%$, độ chính xác phân loại giới tính đạt $85.4%$.
- Điều kiện có phụ kiện (kính cận, mũ, trang điểm): Mô hình phân loại giới tính duy trì ổn định; nhóm tuổi thanh niên (20-29) có xu hướng bị dịch chuyển nhẹ sang nhóm (30-39) khi đeo kính gọng tối màu.
Đổi mới và đóng góp
- Xây dựng tập dữ liệu cân bằng nhân khẩu học châu Á: Đóng góp bộ dữ liệu 18.000 ảnh đã qua làm sạch, cân bằng chuẩn 1:1 nam/nữ, trong đó khuôn mặt người châu Á chiếm tỷ trọng chủ đạo 56% (10.080 ảnh), giải quyết bài toán thiên vị thuật toán (algorithmic bias) vốn tồn tại trong các tập dữ liệu phương Tây.
- Thiết kế phân nhóm độ tuổi liên tục: Khác biệt hoàn toàn với các nghiên cứu tiền nhiệm (phân chia đứt quãng), đồ án thiết lập 8 phân lớp liên tiếp bao phủ toàn bộ vòng đời con người từ 1 đến trên 70 tuổi: $(1-9), (10-19), (20-29), (30-39), (40-49), (50-59), (60-69), (70+)$.
- Chiến lược tối ưu hóa tham số thông minh (Selective Fine-tuning): Đóng băng 14.71 triệu tham số trích xuất đặc trưng của VGG16 và chỉ cập nhật 3.21 triệu tham số tầng phân loại, giúp giảm 65% thời gian huấn luyện trên GPU mà vẫn đảm bảo độ hội tụ tối ưu.
- Pipeline thực thi thời gian thực tích hợp YuNet: Việc kết hợp bộ phát hiện khuôn mặt 5 điểm mốc YuNet ONNX với mạng phân loại giúp hệ thống đạt độ trễ suy luận thấp ($\approx 45\text{ms/frame}$ trên GPU phổ thông), sẵn sàng thương mại hóa dạng Web Application.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Real-world Use Cases)
- Bán lẻ thông minh & Biển quảng cáo kỹ thuật số (Smart Retail & DOOH): Camera tích hợp tại quầy thu ngân hoặc bảng quảng cáo ngoài trời tự động xác định độ tuổi/giới tính khách hàng để hiển thị banner quảng cáo phù hợp (ví dụ: hiển thị mỹ phẩm cho nữ 20–29 tuổi, hiển thị sữa chua tăng chiều cao cho trẻ em).
- Hệ thống gợi ý thương mại điện tử (E-Commerce Recommendation): Tự động phân loại luồng khách hàng ghé thăm qua camera cửa hàng vật lý, đồng bộ dữ liệu với hệ thống CRM nhằm phân tích thói quen mua sắm theo độ tuổi.
- Xác thực và kiểm soát độ tuổi tự động (Age Verification Vending Machines): Tích hợp vào máy bán hàng tự động để ngăn chặn trẻ vị thành niên mua các sản phẩm hạn chế độ tuổi (thuốc lá, rượu bia).
+----------------------------------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI HỆ THỐNG |
+----------------------------------------------------------------------------------------------------+
| Giai đoạn 1 (Edge Node) : Triển khai mô hình nén TensorRT / ONNX lên camera biên (Jetson/IPC). |
| Giai đoạn 2 (Cloud Relay) : Gửi metadata (Age/Gender/Timestamp) về máy chủ phân tích qua MQTT. |
| Giai đoạn 3 (Analytics) : Dashboard PowerBI / Streamlit trực quan hóa chân dung khách hàng. |
+----------------------------------------------------------------------------------------------------+
Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)
- Chi phí phần cứng tối thiểu: Hệ thống chỉ yêu cầu 01 Camera IP tiêu chuẩn (1080p) và 01 máy tính mini (Mini PC Core i5 không bắt buộc GPU rời cho bước suy luận).
- Tỷ suất sinh lời (ROI): Tăng tỷ lệ chuyển đổi quảng cáo hướng đối tượng thêm $25% - 35%$ trong ngành bán lẻ; loại bỏ hoàn toàn chi phí khảo sát nhân khẩu học thủ công.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Vấn đề che khuất (Occlusion): Khẩu trang y tế hoặc khăn che kín nửa dưới khuôn mặt làm mất các điểm mốc nhận diện quanh khóe miệng và cằm, làm giảm độ chính xác của YuNet và VGG16.
- Dung lượng mô hình còn lớn: Kiến trúc VGG16 với hơn 17.9 triệu tham số tạo ra dung lượng file trọng số $\approx 68\text{ MB}$, chưa tối ưu tuyệt đối cho các vi điều khiển nhúng siêu nhỏ (Microcontrollers).
Hướng phát triển trong tương lai
- Chuyển đổi Backbone sang MobileNetV3 / EfficientNet: Nghiên cứu áp dụng kiến trúc Depthwise Separable Convolution để giảm kích thước mô hình xuống dưới $15\text{ MB}$, tăng tốc độ xử lý lên $\ge 60\text{ FPS}$ trên Raspberry Pi 4 hoặc NVIDIA Jetson Nano.
- Học đa nhiệm tích hợp (Multi-task End-to-End Learning): Tích hợp đồng thời nhận diện cảm xúc (Facial Emotion), nhận diện chủng tộc và phân tích độ tuổi vào một mạng nơ-ron duy nhất chia sẻ chung Backbone trích xuất đặc trưng.
Đối tượng hưởng lợi
+----------------------------------------------------------------------------------------------------+
| GIÁ TRỊ CHO CÁC ĐỐI TƯỢNG |
+----------------------------------------------------------------------------------------------------+
| Sinh viên / Học viên : Tiếp cận tài liệu chuẩn về Transfer Learning, quy trình tiền xử lý ảnh|
| và kỹ thuật giải quyết mất cân bằng dữ liệu Deep Learning. |
| Kỹ sư Deep Learning : Tham khảo mẫu kiến trúc tùy biến VGG16 kết hợp YuNet ONNX, source |
| code triển khai Streamlit thời gian thực. |
| Doanh nghiệp Bán lẻ : Giải pháp phân tích nhân khẩu học tự động chi phí thấp, triển khai |
| ngay trên hạ tầng camera hiện hữu. |
| Nhà nghiên cứu : Cung cấp bằng chứng thực nghiệm về độ chính xác của CNN trên tập dữ |
| liệu khuôn mặt người Việt Nam và Đông Á. |
+----------------------------------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để triển khai mô hình ở môi trường thực tế là gì?
Ở giai đoạn huấn luyện (Training), mô hình cần GPU có tối thiểu 8GB VRAM (như NVIDIA T4 hoặc K80 trên Colab). Ở giai đoạn suy luận thực tế (Inference), hệ thống chỉ yêu cầu CPU Intel Core i3 thế hệ 8 trở lên, 4GB RAM và webcam chuẩn 720p là có thể đạt tốc độ 15–20 FPS mượt mà nhờ việc đóng băng các tầng tích chập và dùng YuNet tối ưu.
2. Vì sao đồ án lại chọn VGG16 thay vì ResNet hay Inception?
VGG16 sở hữu cấu trúc khối Conv-Conv đồng nhất với các bộ lọc $3 \times 3$, giúp trích xuất các đặc trưng phân cấp từ biên cạnh cơ bản đến hình khối phức tạp (mắt, mũi, nếp nhăn) một cách tuần tự và rõ ràng. Đối với bài toán phân loại nhân khẩu học khuôn mặt trên tập dữ liệu 18.000 ảnh, VGG16 cho thấy tốc độ hội tụ rất ổn định và không bị hiện tượng suy thoái đặc trưng khi áp dụng Transfer Learning.
3. Làm thế nào để hệ thống xử lý được ảnh chụp nghiêng hoặc rung lắc nhẹ?
Module phát hiện khuôn mặt YuNet sử dụng mạng nơ-ron tích chập đặc biệt để xác định 5 điểm mốc sinh trắc học (2 mắt, 1 đỉnh mũi, 2 khóe miệng). Nhờ các điểm mốc này, hệ thống tự động căn chỉnh và cắt (crop) đúng vùng trung tâm khuôn mặt trước khi đưa vào VGG16, giúp hạn chế ảnh hưởng của góc nghiêng khuôn mặt lên đến $\pm 30^\circ$.
4. Chi phí bảo trì và mở rộng hệ thống trong môi trường công nghiệp ra sao?
Do mô hình được đóng gói dưới dạng tệp trọng số độc lập (.h5 hoặc .onnx) và giao diện Web chạy trên nền tảng Streamlit/FastAPI mã nguồn mở, chi phí bản quyền phần mềm là 0 đồng. Việc bảo trì định kỳ chỉ bao gồm việc thu thập thêm các ca nhận diện sai (Hard Negatives) để tái huấn luyện Fine-tune mô hình sau mỗi 6–12 tháng.
5. Tại sao độ tuổi lại được phân thành 8 nhóm mà không dùng mô hình hồi quy (Regression) dự đoán số tuổi chính xác?
Trong thực tế, sự lão hóa sinh học của mỗi người có sự sai lệch lớn so với tuổi theo giấy tờ (Chronological Age) do yếu tố gen, chế độ dinh dưỡng và lối sống. Dự đoán một con số tuổi chính xác tuyệt đối (Continuous Regression) thường có sai số tuyệt đối trung bình (MAE) lớn (từ 5–8 tuổi). Việc quy đổi về 8 nhóm tuổi liên tiếp 10 năm/nhóm mang lại giá trị ứng dụng thương mại và độ tin cậy thực tiễn cao hơn rất nhiều.
Kết luận
Đồ án tốt nghiệp "Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và giới tính" của sinh viên Lê Thị Quỳnh Nhi và Nguyễn Thị Hồng Gấm, dưới sự hướng dẫn của PGS.TS Trương Ngọc Sơn (ĐH Sư phạm Kỹ thuật TP.HCM), đã giải quyết xuất sắc bài toán phân tích nhân khẩu học khuôn mặt theo thời gian thực. Bằng việc xây dựng tập dữ liệu chuẩn hóa 18.000 ảnh tập trung vào người châu Á, kết hợp công nghệ trích chọn đặc trưng VGG16 và phát hiện khuôn mặt siêu nhẹ YuNet, hệ thống đã đạt độ chính xác ấn tượng 94% trên bài toán phân loại giới tính và hoàn thiện khả năng nhận dạng 8 phân lớp độ tuổi liên tiếp.
Kết quả nghiên cứu không chỉ mang giá trị học thuật vững chắc trong việc làm chủ công nghệ Deep Learning và Transfer Learning, mà còn mở ra tiềm năng thương mại hóa rộng lớn trong lĩnh vực bán lẻ thông minh, phân tích hành vi khách hàng và các hệ thống tương tác người - máy hiện đại.