Bối cảnh và vấn đề nghiên cứu

Trong sự phát triển của cuộc Cách mạng công nghiệp 4.0, Trí tuệ nhân tạo (AI), Học máy (Machine Learning) và Học sâu (Deep Learning) đã trở thành các công cụ chủ đạo trong lĩnh vực Thị giác máy tính (Computer Vision). Việc phát hiện khuôn mặt và nhận diện các thuộc tính sinh trắc học như độ tuổi và giới tính đóng vai trò nền tảng trong nhiều ứng dụng thực tiễn, từ phân loại khách hàng tự động trong thương mại, truyền thông đến các hệ thống gợi ý sản phẩm cá nhân hóa trên các nền tảng thương mại điện tử.

Mặc dù bài toán nhận dạng giới tính và ước tính độ tuổi đã được nghiên cứu từ sớm (Cattrel & Matcalfe năm 1990 với mô hình Holo trên 160 ảnh; Kwon & Lobo năm 1994 phân loại 3 nhóm tuổi; Gil Levi & Tal Hassncer năm 2015 ứng dụng mạng nơ-ron tích chập CNN trên tập dữ liệu Adience), các nghiên cứu trước đây vẫn tồn tại một số hạn chế:

  • Các bài toán nhận dạng độ tuổi và giới tính thường được thực hiện riêng biệt, thiếu sự tích hợp đồng thời trong một hệ thống thời gian thực.
  • Các tập dữ liệu công khai hiện có phân chia các nhóm tuổi rời rạc, có khoảng cách gián đoạn giữa các nhóm (chẳng hạn như: 0–2, 4–6, 8–13, 15–20, 25–32, 38–43, 48–53, 60–100), khiến những độ tuổi nằm ngoài khoảng không thể nhận dạng.
  • Dữ liệu khuôn mặt trong các bộ dữ liệu quốc tế chủ yếu tập trung vào người phương Tây, thiếu hụt khuôn mặt người châu Á, đồng thời tỷ lệ giới tính và độ tuổi thường bị mất cân bằng.

Đề tài "Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và giới tính" do sinh viên Nguyễn Thị Hồng Gấm và Lê Thị Quỳnh Nhi thực hiện (ngành Công nghệ Kỹ thuật Điện tử - Viễn thông, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, dưới sự hướng dẫn của PGS.TS Trương Ngọc Sơn, bảo vệ tháng 07/2022) nhằm giải quyết các bất cập trên.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm 5 nội dung:

  1. Nghiên cứu, tìm hiểu kiến trúc mạng nơ-ron tích chập trong mô hình phân loại độ tuổi và giới tính.
  2. Xây dựng một bộ dữ liệu mới gồm 18.000 hình ảnh có số lượng ảnh cân bằng giữa các độ tuổi và cân bằng tỷ lệ giới tính nam - nữ, đồng thời nâng cao tỷ lệ khuôn mặt người châu Á.
  3. Triển khai mô hình đa nhiệm vụ nhận diện đồng thời giới tính (2 lớp: nam, nữ) và độ tuổi (8 nhóm tuổi liên tiếp: 1–9, 10–19, 20–29, 30–39, 40–49, 50–59, 60–69, 70+).
  4. Thiết kế mô hình mạng CNN dựa trên kiến trúc VGG16 bằng kỹ thuật học chuyển tiếp (Transfer Learning / Fine-tuning), tùy chỉnh các lớp kết nối đầy đủ và tham số huấn luyện để tối ưu độ chính xác.
  5. Triển khai nhận dạng thời gian thực từ luồng video webcam máy tính và hiển thị trực quan kết quả dự đoán trên giao diện web.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Mạng nơ-ron tích chập (CNN), kiến trúc VGG16, mô hình phát hiện khuôn mặt YuNet (yunet.onnx), các tập dữ liệu UTKFace, VN-celeb và dữ liệu thu thập từ Internet.
  • Phạm vi nghiên cứu: Đề tài tập trung xử lý các khuôn mặt được chụp cận mặt, trực diện, trong điều kiện đủ ánh sáng ban ngày; huấn luyện mô hình phân loại nhị phân cho giới tính và phân loại đa lớp cho 8 khoảng tuổi.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình sử dụng

  • Mạng nơ-ron tích chập (CNN): Sử dụng các lớp tích chập (Convolution layer) với các bộ lọc (filter/kernel) kích thước 3x3 để rút trích đặc trưng không gian (cạnh, góc, hình khối, mắt, mũi, miệng), lớp gộp Max Pooling kích thước 2x2 (bước trượt stride = 2) để giảm chiều dữ liệu và kiểm soát hiện tượng quá khớp (overfitting), cùng các lớp kết nối đầy đủ (Fully Connected - Dense) để phân lớp.
  • Hàm kích hoạt: Áp dụng hàm phi tuyến ReLU ($f(x) = \max(0, x)$) tại các lớp tích chập và lớp ẩn; hàm Sigmoid tại tầng xuất cho bài toán nhị phân giới tính; hàm Softmax cho bài toán phân loại đa lớp độ tuổi nhằm tạo phân phối xác suất ngõ ra.
  • Kiến trúc VGG16: Cấu trúc gồm 13 lớp tích chập phân bố trong 5 khối (Block 1 đến Block 5) và các lớp kết nối đầy đủ. Mạng nhận đầu vào kích thước $224 \times 224 \times 3$, tận dụng trọng số huấn luyện sẵn từ tập dữ liệu ImageNet (Pretrained weights).
  • Mô hình phát hiện khuôn mặt YuNet: Mô hình trích xuất từ OpenCV Zoo (yunet.onnx), hoạt động dựa trên việc định vị 5 điểm mốc khuôn mặt (2 mắt, 1 mũi, 2 khóe miệng) để tạo khung bao (bounding box).

Phương pháp nghiên cứu

  • Học chuyển tiếp (Transfer Learning & Fine-tuning): Giữ lại toàn bộ các khối tích chập trích xuất đặc trưng của VGG16 (đóng băng/kế thừa trọng số ImageNet) và thay thế phần phân loại (Fully Connected) bằng các lớp Dense tùy chỉnh (128 nơ-ron, kèm Dropout) để huấn luyện lại trên tập dữ liệu mới.
  • Kỹ thuật gán nhãn và hàm mất mát:
    • Phân loại giới tính: Sử dụng hàm mất mát Binary Cross-Entropy kết hợp hàm kích hoạt Sigmoid: $$L_{giới_tính} = -\frac{1}{C}\sum_{i=1}^{C} y_i \log(1 - \hat{y}_i)$$ (với $C = 2$).
    • Phân loại độ tuổi: Áp dụng mã hóa One-hot encoding chuyển 8 nhóm tuổi thành vector 8 chiều, kết hợp hàm mất mát Categorical Cross-Entropy và hàm kích hoạt Softmax: $$L_{tuổi} = -\frac{1}{C}\sum_{i=1}^{C} y_i \log(\hat{y}_i)$$ (với $C = 8$).
  • Thuật toán tối ưu hóa: Sử dụng thuật toán Adam với tốc độ học $\alpha = 0.0001$, số chu kỳ huấn luyện (epochs) là 100 và kích thước lô (batch size) là 8.
  • Môi trường thực thi: Huấn luyện trên nền tảng đám mây Google Colaboratory (GPU Tesla K80 tốc độ 2.20 GHz, 13 GB RAM), lưu trọng số mô hình dưới định dạng .h5.

Nguồn và xử lý dữ liệu

Bộ dữ liệu gồm 18.000 ảnh khuôn mặt chuẩn hóa kích thước $224 \times 224$ pixel (định dạng JPG), đặt tên theo quy ước cấu trúc: [Tuổi]_[Giới tính]_[Chủng tộc]_[STT] (trong đó: Giới tính gồm 0: nam, 1: nữ; Chủng tộc gồm 1: châu Á/Đông Á/Đông Nam Á, 0: các châu lục khác).

Dữ liệu được tổng hợp từ ba nguồn chính:

  1. Tập UTKFace: Chiếm khoảng 40% tổng dữ liệu (chứa ảnh đa dạng chủng tộc, được gán nhãn tuổi bằng thuật toán DEX kết hợp kiểm định thủ công).
  2. Tập VN-celeb: Chiếm khoảng 30% tổng dữ liệu (ảnh khuôn mặt người nổi tiếng Việt Nam).
  3. Nguồn trực tuyến (Google Image, Getty Images, Dreamstime): Chiếm khoảng 30% tổng dữ liệu.

Tất cả ảnh thu thập đều trải qua quá trình lọc bỏ nhiễu: loại bỏ ảnh mờ, ảnh góc nghiêng quá lớn, ảnh không rõ nét các bộ phận mắt, mũi, miệng hoặc ảnh không xác định rõ giới tính; cắt bỏ phần thân và hậu cảnh để tập trung vào khuôn mặt.

Chủng tộc Số lượng ảnh Tỷ lệ (%)
Châu Á 10.080 56%
Các châu lục khác 7.920 44%
Tổng cộng 18.000 100%

Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương 1 thiết lập nền tảng và tính cấp thiết của đề tài. Tác giả tổng hợp các mốc nghiên cứu tiêu biểu về nhận dạng thuộc tính khuôn mặt, chỉ ra những khoảng trống nghiên cứu trong nước và quốc tế như việc phân chia khoảng tuổi bị ngắt quãng và sự mất cân bằng về nhân khẩu học trong các bộ dữ liệu mẫu. Chương này xác định rõ mục tiêu xây dựng hệ thống phân loại song song giới tính và 8 nhóm tuổi liên tiếp theo thời gian thực, giới hạn phạm vi trong điều kiện ảnh chụp trực diện, đủ sáng, đồng thời vạch ra phương pháp nghiên cứu và cấu trúc 5 chương của đồ án.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày chi tiết cơ sở toán học và cấu trúc của mạng nơ-ron tích chập (CNN). Tác giả phân tích chi tiết chức năng của từng thành phần: lớp tích chập (bộ lọc kernel, bước trượt stride, kỹ thuật chèn viền padding dạng valid và same, feature map), các hàm kích hoạt phi tuyến (Sigmoid, Tanh, ReLU), và các cơ chế pooling (Max Pooling, Average Pooling). Tiếp theo, cấu trúc kinh điển của VGG16 được phân tích với 13 lớp Conv (kernel 3x3) cùng hơn 138 triệu tham số gốc. Phần cuối chương phân tích đặc tính của các bộ dữ liệu UTKFace, VN-celeb và các nguồn ảnh trực tuyến, làm rõ quy trình sàng lọc và tiền xử lý dữ liệu.

Chương 3: Thiết kế mô hình phân loại độ tuổi và giới tính

Chương 3 mô tả toàn bộ quy trình kỹ thuật xây dựng hệ thống. Tác giả trình bày phương pháp tổ chức và phân chia tập dữ liệu 18.000 ảnh:

  • Dữ liệu độ tuổi: Chia thành 8 nhóm tuổi liên tiếp: (1–9) gồm 2.160 ảnh; các nhóm (10–19), (20–29), (30–39), (40–49), (50–59), (60–69) mỗi nhóm 2.400 ảnh (mỗi độ tuổi đơn lẻ có 240 ảnh); nhóm (70+) gồm 1.440 ảnh.
  • Dữ liệu giới tính: 9.000 ảnh nam và 9.000 ảnh nữ (tỷ lệ 1:1).
  • Phân chia huấn luyện: 80% cho tập huấn luyện (Training set: 14.400 ảnh) và 20% cho tập kiểm thử (Validation set: 3.600 ảnh).

Chương này đi sâu vào kiến trúc xử lý: sử dụng YuNet thông qua cv2.create() với score_threshold = 0.9 để phát hiện khuôn mặt; thiết kế kiến trúc Fine-tuning trên VGG16; thiết lập hàm mất mát Binary Cross-Entropy (cho giới tính) và Categorical Cross-Entropy (cho độ tuổi); xây dựng thuật toán cập nhật trọng số Adam.

Chương 4: Kết quả và đánh giá

Chương 4 công bố kết quả thực nghiệm mô hình sau 100 epochs trên Google Colab. Tác giả phân tích bảng tham số mạng, các đồ thị biến thiên độ chính xác (accuracy) và độ mất mát (loss), cùng ma trận nhầm lẫn (Confusion Matrix) trên 3.600 mẫu kiểm thử. Chương này cũng trình bày các đánh giá định tính qua các trường hợp nhận dạng thực tế từ camera ở các nhóm tuổi và giới tính khác nhau trong các điều kiện bình thường và môi trường ánh sáng không tối ưu.

Chương 5: Kết luận và phương hướng phát triển

Chương 5 tổng kết mức độ hoàn thành nhiệm vụ nghiên cứu: mô hình đã nhận dạng ổn định giới tính và độ tuổi trên luồng webcam và web Streamlit. Tác giả nêu rõ các hạn chế còn tồn đọng và đề xuất các hướng nâng cấp mô hình trong tương lai.


Thiết kế và triển khai hệ thống

Hệ thống nhận dạng được thiết kế theo quy trình xử lý luồng liên tục qua 4 khối chức năng chính:

[Dữ liệu ngõ vào: Webcam] 
  --> [Khối phát hiện khuôn mặt: OpenCV YuNet (yunet.onnx)] 
  --> [Khối tiền xử lý: Chuẩn hóa 224x224x3] 
  --> [Khối trích xuất & Phân loại: VGG16 tùy biến] 
  --> [Giao diện hiển thị: Streamlit Web UI]

1. Kiến trúc mô hình chi tiết

Mô hình giữ nguyên 5 khối tích chập của mạng VGG16 để trích xuất đặc trưng không gian, sau đó kết nối với lớp làm phẳng (Flatten) và cấu trúc phân loại tùy biến. Bảng thông số chi tiết của hai mô hình được tổng hợp như sau:

Tên lớp (Layer) Kiểu lớp (Type) Kích thước ngõ ra (Output Shape) Số lượng tham số (Parameters)
input_1 InputLayer (None, 224, 224, 3) 0
block1_conv1 & conv2 Conv2D (64 filters, 3x3) (None, 224, 224, 64) 1.792 + 36.928
block1_pool MaxPooling2D (2x2, s=2) (None, 112, 112, 64) 0
block2_conv1 & conv2 Conv2D (128 filters, 3x3) (None, 112, 112, 128) 73.856 + 147.584
block2_pool MaxPooling2D (2x2, s=2) (None, 56, 56, 128) 0
block3_conv1, 2, 3 Conv2D (256 filters, 3x3) (None, 56, 56, 256) 295.168 + 590.080 + 590.080
block3_pool MaxPooling2D (2x2, s=2) (None, 28, 28, 256) 0
block4_conv1, 2, 3 Conv2D (512 filters, 3x3) (None, 28, 28, 512) 1.180.160 + 2.359.808 + 2.359.808
block4_pool MaxPooling2D (2x2, s=2) (None, 14, 14, 512) 0
block5_conv1, 2, 3 Conv2D (512 filters, 3x3) (None, 14, 14, 512) 2.359.808 + 2.359.808 + 2.359.808
block5_pool MaxPooling2D (2x2, s=2) (None, 7, 7, 512) 0
flatten Flatten (None, 25088) 0
dense Dense (ReLU) (None, 128) 3.211.392
dropout Dropout (None, 128) 0
dense_1 (Giới tính) Dense (Sigmoid) (None, 1) 129
dense_1 (Độ tuổi) Dense (Softmax) (None, 8) 1.032
  • Mô hình phân loại giới tính:
    • Tổng số tham số: 17.926.209
    • Tham số có thể huấn luyện (Trainable params): 3.211.521
    • Tham số không huấn luyện (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ố có thể huấn luyện (Trainable params): 3.212.424
    • Tham số không huấn luyện (Non-trainable params): 14.714.688

2. Triển khai ứng dụng và phát hiện thời gian thực

  • Khối phát hiện khuôn mặt tải trọng số yunet.onnx thông qua hàm cv2.create(), áp dụng ngưỡng score_threshold = 0.9 và ngưỡng lọc chồng lặp NMS từ 0.3 đến 0.4 nhằm định vị chính xác vùng mặt dựa trên 5 điểm mốc giải phẫu.
  • Vùng ảnh khuôn mặt được trích xuất, định dạng lại về chuẩn $224 \times 224 \times 3$, sau đó chuyển vào 2 mô hình VGG16 đã huấn luyện sẵn.
  • Ứng dụng web được xây dựng bằng framework Streamlit, thực hiện kết nối webcam thời gian thực, vẽ khung chữ nhật bao quanh khuôn mặt và hiển thị đồng thời nhãn dự đoán giới tính cùng nhóm tuổi trên màn hình.

Kết quả và đóng góp

Kết quả định lượng

Mô hình phân loại giới tính đạt độ chính xác trên tập huấn luyện xấp xỉ 98% (loss dưới 10%, xấp xỉ 5%) và trên tập kiểm thử (validation set) đạt xấp xỉ 94% (loss nhỏ nhất đạt 20%).

Đánh giá chi tiết trên tập kiểm thử gồm 3.600 mẫu (tỷ lệ 20% trích xuất từ 18.000 ảnh) thông qua ma trận nhầm lẫn:

Nhãn thực tế \ Nhãn dự đoán Nam (Predicted Male) Nữ (Predicted Female) Tổng thực tế
Nam (Actual Male) 1.676 (True Male - TM) 121 (False Female - FF) 1.797
Nữ (Actual Female) 107 (False Male - FM) 1.696 (True Female - TF) 1.803
Tổng dự đoán 1.783 1.817 3.600

Độ chính xác tổng thể (Accuracy) của mô hình phân loại giới tính trên tập kiểm thử được tính toán theo công thức: $$\text{Accuracy} = \frac{TM + TF}{TM + FM + TF + FF} = \frac{1.676 + 1.696}{3.600} = \frac{3.372}{3.600} \approx 93{,}67% \ (\approx 94%)$$

Đóng góp của đề tài

  1. Xây dựng bộ dữ liệu cân bằng: Thu thập và chuẩn hóa thành công tập dữ liệu 18.000 ảnh khuôn mặt với tỷ lệ giới tính cân bằng (50% nam, 50% nữ), tỷ lệ số lượng ảnh ở từng độ tuổi đồng đều và nâng tỷ lệ khuôn mặt người châu Á lên 56% (10.080 ảnh), khắc phục độ lệch nhân khẩu học của các bộ dữ liệu quốc tế.
  2. Khắc phục tính gián đoạn khoảng tuổi: Đề xuất phân chia 8 nhóm tuổi liên tục từ 1 đến trên 70 tuổi (thay vì các khoảng cách quãng), cho phép mô hình nhận dạng được khuôn mặt ở mọi lứa tuổi.
  3. Hiện thực hóa hệ thống ứng dụng: Tích hợp thành công mô hình phát hiện khuôn mặt nhẹ YuNet cùng mô hình Fine-tuning VGG16 vào một ứng dụng web hoàn chỉnh bằng Streamlit, có khả năng phân loại đồng thời tuổi và giới tính theo thời gian thực từ webcam.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

  • Điều kiện dữ liệu đầu vào: Mô hình chỉ đạt hiệu quả cao với ảnh chụp cận cảnh, góc chụp trực diện và đủ ánh sáng ban ngày. Khi góc mặt nghiêng lớn hoặc điều kiện ánh sáng yếu/phức tạp, độ chính xác bị suy giảm.
  • Tập kiểm thử ngẫu nhiên: Quá trình trích xuất ngẫu nhiên 20% tập dữ liệu làm tập validation dẫn đến số lượng mẫu nam (1.797) và nữ (1.803) trong tập kiểm thử chưa hoàn toàn cân bằng tuyệt đối.
  • Hạ tầng phần cứng: Việc huấn luyện phụ thuộc vào gói tài nguyên miễn phí của Google Colab (giới hạn thời gian phiên làm việc và cấu hình GPU K80).

Hướng nghiên cứu tiếp

  • Mở rộng tập dữ liệu với các trường hợp khuôn mặt ở góc nghiêng, biểu cảm đa dạng và điều kiện ánh sáng phức tạp hoặc ban đêm.
  • Nghiên cứu tối ưu hóa kiến trúc mạng để giảm số lượng tham số, tăng tốc độ xử lý khung hình trên giây (FPS) phục vụ triển khai trên các thiết bị nhúng và thiết bị biên.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên và học viên ngành Kỹ thuật Điện tử - Viễn thông, Công nghệ Thông tin, Khoa học Dữ liệu: Tham khảo quy trình xây dựng bài toán nhận dạng thuộc tính khuôn mặt từ khâu thu thập, làm sạch, cân bằng dữ liệu đến thiết kế mạng CNN.
  • Người nghiên cứu về Thị giác máy tính: Cung cấp giải pháp mẫu về việc kết hợp mô hình phát hiện khuôn mặt YuNet (yunet.onnx) và mô hình phân loại sâu VGG16 theo phương pháp Fine-tuning.
  • Phát triển ứng dụng thực tế: Tham khảo phương thức đóng gói mô hình học máy thành ứng dụng web thời gian thực tương tác với camera thông qua framework Streamlit.

Câu hỏi thường gặp

1. Đề tài đã giải quyết vấn đề thiên lệch dữ liệu của các bộ dữ liệu khuôn mặt công khai như thế nào?

Nhóm tác giả đã tổng hợp một bộ dữ liệu mới gồm 18.000 ảnh từ UTKFace (40%), VN-celeb (30%) và các nguồn Internet (30%). Trong đó, số lượng ảnh người châu Á chiếm 56% (10.080 ảnh), số lượng ảnh giữa các độ tuổi được cân bằng (240 ảnh cho mỗi độ tuổi đơn lẻ) và tỷ lệ giới tính đạt 50% nam - 50% nữ (9.000 ảnh mỗi giới tính).

2. Cấu trúc mạng VGG16 nguyên bản đã được điều chỉnh như thế nào trong đồ án?

Nhóm tác giả giữ lại 5 khối tích chập trích xuất đặc trưng của VGG16 (kế thừa trọng số từ ImageNet), loại bỏ 3 lớp kết nối đầy đủ nguyên bản (4096-4096-1000) và thay thế bằng: lớp Flatten ngõ ra 25.088, lớp Dense 128 nơ-ron (hàm ReLU), lớp Dropout (128), và lớp Dense ngõ ra (1 nơ-ron với Sigmoid cho phân loại giới tính; 8 nơ-ron với Softmax cho phân loại độ tuổi).

3. Mô hình phát hiện khuôn mặt YuNet được cấu hình với các thông số nào?

Mô hình YuNet (yunet.onnx) được tích hợp qua OpenCV (cv2.create()), sử dụng 5 điểm mốc khuôn mặt (2 mắt, 1 mũi, 2 khóe miệng) để xác định vị trí mặt với ngưỡng tin cậy phát hiện score_threshold = 0.9 và ngưỡng loại bỏ khung bao chồng lặp NMS trong khoảng 0.3 đến 0.4.

4. Kết quả định lượng của mô hình phân loại giới tính trên tập kiểm thử đạt mức nào?

Trên tập kiểm thử gồm 3.600 ảnh, mô hình đạt độ chính xác xấp xỉ 94% (chính xác 93,67%), với 1.676 mẫu nam dự đoán đúng (True Male), 1.696 mẫu nữ dự đoán đúng (True Female), 121 mẫu nam bị nhầm thành nữ và 107 mẫu nữ bị nhầm thành nam.

5. Mô hình được huấn luyện với các siêu tham số và môi trường phần cứng nào?

Mô hình được huấn luyện trong 100 epochs với kích thước lô batch size là 8, sử dụng thuật toán tối ưu Adam với tốc độ học $\alpha = 0.0001$. Quá trình huấn luyện thực hiện trên Google Colaboratory sử dụng GPU Tesla K80 (2.20 GHz, 13 GB RAM).


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" đã hoàn thành các mục tiêu đề ra về việc xây dựng bộ dữ liệu chuẩn hóa 18.000 ảnh cân bằng nhân khẩu học và tối ưu hóa kiến trúc VGG16 cho bài toán phân loại đa nhiệm vụ. Hệ thống đạt độ chính xác thực nghiệm xấp xỉ 94% đối với phân loại giới tính và phân loại hiệu quả 8 nhóm tuổi liên tiếp. Công trình đã tích hợp thành công mô hình phát hiện khuôn mặt YuNet và mô hình phân loại nơ-ron sâu vào giao diện web Streamlit để nhận dạng thời gian thực qua webcam, tạo cơ sở ứng dụng thực tiễn trong các hệ thống tương tác và thương mại thông minh.