Giới thiệu dự án

Thị giác máy tính (Computer Vision) và Trí tuệ nhân tạo (Artificial Intelligence - AI) đang tạo ra bước ngoặt lớn trong việc thu hẹp khoảng cách tương tác giữa người và máy (Human-Computer Interaction - HCI). Theo các báo cáo phân tích thị trường công nghệ nhận diện cảm xúc toàn cầu (Emotion AI), quy mô thị trường phân tích cảm xúc dự kiến đạt mức tăng trưởng kép hàng năm (CAGR) trên 22.7%, mở ra tiềm năng ứng dụng sâu rộng trong thương mại điện tử, y tế kỹ thuật số, giáo dục thông minh và hệ thống an ninh giám sát.

+-------------------------------------------------------------------------------+
|                       FER-2013 IMAGE PIPELINE OVERVIEW                        |
|                                                                               |
|  [Raw Input: 48x48 Gray] --> [Conv2D + ELU/ReLU] --> [Batch Normalization]    |
|                                     |                                         |
|                                     v                                         |
|  [Output: 7 Emotion Classes] <-- [Softmax Layer] <-- [Dropout + Dense Layer]  |
+-------------------------------------------------------------------------------+

Đề tài khóa luận "Hiện thực Convolutional Neural Network để nhận dạng biểu cảm khuôn mặt" do sinh viên Dương Quốc Bảo và Huỳnh Trung Hiếu thực hiện dưới sự hướng dẫn của ThS. Tôn Quang Toại (Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học TP.HCM) tập trung giải quyết bài toán cốt lõi trong nhận thức máy: trích xuất đặc trưng không gian và phân loại tự động 7 trạng thái cảm xúc cơ bản của con người từ ảnh kỹ thuật số.

Vấn đề nghiên cứu cụ thể

  1. Nhiễu dữ liệu và biến dạng ngoại cảnh: Nhận diện khuôn mặt trong môi trường phi kiểm soát (in-the-wild) chịu ảnh hưởng lớn bởi góc nghiêng, sự thay đổi cường độ ánh sáng, che khuất một phần và kích thước khuôn mặt không đồng đều.
  2. Độ phân giải giới hạn và mất thông tin: Tập dữ liệu chuẩn FER-2013 có kích thước điểm ảnh rất thấp (chỉ $48 \times 48$ pixel, ảnh đơn sắc grayscale), khiến các phương pháp trích xuất đặc trưng thủ công truyền thống như SIFT (Scale-Invariant Feature Transform) hay HOG (Histogram of Oriented Gradients) dễ bị mất các vi biểu cảm (micro-expressions).
  3. Mất cân bằng dữ liệu (Class Imbalance): Phân bố nhãn dữ liệu trong tập FER-2013 có sự chênh lệch lớn giữa các lớp (ví dụ: lớp Disgust chỉ chiếm ~1.5% dữ liệu, trong khi Happy chiếm hơn 25%), gây ra hiện tượng thiên vị mô hình (bias).
  4. Hiện tượng quá khớp (Overfitting) và Gradient suy giảm: Các mạng nơ-ron sâu truyền thống khi huấn luyện trên tập dữ liệu ảnh khuôn mặt biểu cảm nhỏ dễ gặp hiện tượng vanishing gradient hoặc bão hòa hàm kích hoạt.

Mục tiêu dự án

  1. Nghiên cứu cơ sở lý thuyết về mạng nơ-ron nhân tạo (ANN), mạng nơ-ron tích chập (CNN), các hàm kích hoạt tiên tiến ($ReLU$, $Leaky\ ReLU$, $ELU$, $SELU$) và các kỹ thuật tối ưu hóa Gradient Descent ($SGD$, $Momentum$, $NAG$, $Adam$).
  2. Thu thập, tiền xử lý và chuẩn hóa tập dữ liệu chuẩn quốc tế FER-2013 với 35.887 ảnh khuôn mặt kích thước $48 \times 48$ pixel gán nhãn 7 trạng thái cảm xúc.
  3. Thiết kế, hiện thực và tinh chỉnh hai họ kiến trúc tích chập chuyên sâu: Mô hình 1 (tùy biến dựa trên kiến trúc LeNet) và Mô hình 2 (tùy biến dựa trên kiến trúc VGG16).
  4. Thực hiện chuỗi thực nghiệm so sánh độc lập giữa các hàm kích hoạt, siêu tham số dropout và thuật toán tối ưu để tìm ra cấu hình hội tụ tối ưu.
  5. Xây dựng pipeline kiểm thử toàn diện trên tập dữ liệu Test độc lập và đánh giá khả năng suy luận thời gian thực (inference) trên ảnh thực tế thu thập từ nhiều nguồn mở.

Phạm vi và giới hạn

  • Phạm vi dữ liệu: Huấn luyện và đánh giá trên tập dữ liệu chuẩn FER-2013 gồm 7 lớp biểu cảm: Angry (Giận dữ), Disgust (Ghê tởm), Fear (Sợ hãi), Happy (Hạnh phúc), Sad (Buồn bã), Surprise (Ngạc nhiên), Neutral (Trung tính).
  • Giới hạn kỹ thuật: Hệ thống tập trung xử lý ảnh đơn sắc $48 \times 48$ pixel tĩnh; chưa kết hợp mô hình chuỗi thời gian (như LSTM/GRU) để phân tích chuỗi video động.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi Deep Learning bùng nổ, các hệ thống phân loại cảm xúc chủ yếu dựa trên các bộ trích xuất đặc trưng thủ công (handcrafted features) kết hợp với các thuật toán học máy cổ điển. Bảng so sánh dưới đây phân tích chi tiết ưu nhược điểm của các hướng tiếp cận:

Tiêu chí Machine Learning truyền thống (HOG / SIFT + SVM / KNN) Phương pháp Hybrid (CNN kết hợp SIFT Aggregator) Mạng tích chập thuần sâu (Deep End-to-End CNN) [Đề tài áp dụng]
Cơ chế trích xuất đặc trưng Thủ công qua các bộ lọc cục bộ cố định Kết hợp bộ lọc SIFT và các lớp tích chập nông Tự động học biểu diễn đặc trưng phân cấp từ thấp đến cao
Độ chính xác trên FER-2013 Thấp (thường dao động từ $45% - 55%$) Trung bình khá ($62% - 68%$) Cao ($65% - 73%+$ tùy kiến trúc và tiền xử lý)
Chi phí tính toán trích xuất Tốn CPU để tính toán gradient cục bộ Tốn tài nguyên do xử lý hai nhánh dữ liệu song song Tối ưu hóa trên GPU/TPU với các phép nhân ma trận tensor
Khả năng khái quát hóa Kém khi gặp góc xoay mặt lớn hoặc ánh sáng yếu Trung bình Tốt nhờ các lớp Dropout, Data Augmentation và Batch Normalization
Độ trễ suy luận (Inference Time) Chậm khi kích thước ảnh hoặc số lượng keypoints tăng Trung bình ($\sim 45\text{ms}/\text{frame}$) Rất nhanh ($\sim 8 - 15\text{ms}/\text{frame}$ trên GPU)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc có):
    • Khả năng đọc và chuẩn hóa ma trận điểm ảnh $48 \times 48$ về đoạn giá trị $[0, 1]$.
    • Lớp tích chập Conv2D, Max Pooling 2D, Flatten, Dense và ngõ ra phân loại đa lớp Softmax.
    • Ma trận nhầm lẫn (Confusion Matrix) chuẩn hóa và không chuẩn hóa để đánh giá độ chính xác từng lớp.
  • Should have (Nên có):
    • Tích hợp hàm kích hoạt hiện đại $ELU$ để giải quyết triệt để vấn đề "Dying ReLU".
    • Dropout layer với tỷ lệ biến thiên ($0.25 - 0.5$) kiểm soát hiện tượng overfitting.
    • Heatmap trực quan hóa kích hoạt đặc trưng nơ-ron qua từng tầng tích chập.
  • Could have (Có thể có):
    • Khả năng suy luận trực tiếp từ webcam thông qua giao tiếp OpenCV.
  • Won't have (Chưa thực hiện):
    • Xử lý nhận dạng 21 biểu cảm khuôn mặt phức hợp (compound emotions).

Thiết kế hệ thống

Kiến trúc hệ thống nhận dạng biểu cảm khuôn mặt được thiết kế theo mô hình luồng dữ liệu 4 giai đoạn khép kín:

[Raw Image / Frame] 
       │
       ▼
[Pre-processing & Face Alignment] ───► Crop Face ROI (48x48) & Normalization
       │
       ▼
[Feature Extraction Backbone]     ───► Conv2D Blocks (Kernels: 3x3, 5x5) + ELU + MaxPooling
       │
       ▼
[Classification Head]             ───► Fully Connected (Dense) + Dropout (0.5) + Softmax
       │
       ▼
[Inference Output]                ───► Probability Distribution across 7 Emotions

Ngăn xếp công nghệ (Technology Stack)

  • Ngôn ngữ lập trình: Python (Phiên bản $\ge 3.6$)
  • Thư viện thị giác máy tính: OpenCV (Phiên bản 3.4.2 / 4.x) phục vụ thu nhận khung hình và căn chỉnh khuôn mặt.
  • Khung học sâu (Deep Learning Frameworks): TensorFlow kết hợp Keras (Keras 2.2.4) xây dựng và huấn luyện đồ thị tính toán nơ-ron.
  • Xử lý ma trận và thống kê: NumPy (1.16.x), Pandas, Scikit-learn (0.21.x) trích xuất báo cáo phân loại (Precision, Recall, F1-score).
  • Trực quan hóa dữ liệu: Matplotlib, Seaborn xây dựng biểu đồ độ mất mát (Loss) và độ chính xác (Accuracy).

Methodology

Quy trình nghiên cứu áp dụng phương pháp luận lặp thực nghiệm khoa học (Iterative Experimental Research Methodology):

  1. Giai đoạn tiền xử lý dữ liệu: Khám phá phân bố 35.887 mẫu dữ liệu FER-2013, phân chia dữ liệu theo tỷ lệ chuẩn: Tập huấn luyện (Training Set: 28.709 ảnh), Tập kiểm định công khai (PublicTest / Validation Set: 3.589 ảnh) và Tập kiểm định độc lập (PrivateTest: 3.589 ảnh).
  2. Giai đoạn thiết kế kiến trúc và siêu tham số: Xây dựng hai nhánh kiến trúc:
    • Nhánh 1 (LeNet-customized): Cấu trúc gọn nhẹ, số lượng tầng tích chập nông, thử nghiệm các hàm kích hoạt $TanH$, $ReLU$, $ELU$.
    • Nhánh 2 (VGG-customized): Cấu trúc khối sâu (Stacked Conv-Conv-Pool), tăng dần số lượng filters ($32 \to 64 \to 128 \to 256$), kết hợp tầng kết nối đầy đủ kích thước lớn.
  3. Giai đoạn kiểm thử & tinh chỉnh: Chạy song song nhiều phiên huấn luyện (Epochs: $50 - 100$, Batch size: $64 - 128$), theo dõi hiện tượng hội tụ thông qua đường cong Loss/Accuracy của Training và Validation.

Implementation và kết quả

Development process

Quá trình xây dựng mô hình mạng tích chập sâu được tối ưu hóa thông qua việc kết hợp các khối tích chập 2 chiều, chuẩn hóa theo lô, và các lớp ngắt kết nối ngẫu nhiên (Dropout) nhằm triệt tiêu hiện tượng đồng thích nghi của các trọng số.

Hiện thực kiến trúc mạng CNN tùy biến trên nền tảng Keras / TensorFlow:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, BatchNormalization
from tensorflow.keras.optimizers import Adam, SGD

def build_custom_fer_vgg(input_shape=(48, 48, 1), num_classes=7):
    """
    Xay dung kien truc CNN tuy bien dua tren VGG danh cho anh 48x48 FER-2013
    Su dung ham kich hoat ELU de han che Vanishing Gradient va Dying ReLUs.
    """
    model = Sequential([
        # Block 1
        Conv2D(32, kernel_size=(3, 3), padding='same', activation='elu', input_shape=input_shape),
        BatchNormalization(),
        Conv2D(32, kernel_size=(3, 3), padding='same', activation='elu'),
        BatchNormalization(),
        MaxPooling2D(pool_size=(2, 2)),
        Dropout(0.25),

        # Block 2
        Conv2D(64, kernel_size=(3, 3), padding='same', activation='elu'),
        BatchNormalization(),
        Conv2D(64, kernel_size=(3, 3), padding='same', activation='elu'),
        BatchNormalization(),
        MaxPooling2D(pool_size=(2, 2)),
        Dropout(0.25),

        # Block 3
        Conv2D(128, kernel_size=(3, 3), padding='same', activation='elu'),
        BatchNormalization(),
        Conv2D(128, kernel_size=(3, 3), padding='same', activation='elu'),
        BatchNormalization(),
        MaxPooling2D(pool_size=(2, 2)),
        Dropout(0.25),

        # Classification Head
        Flatten(),
        Dense(256, activation='elu'),
        BatchNormalization(),
        Dropout(0.5),
        Dense(num_classes, activation='softmax')
    ])
    
    return model

# Khoi tao va bien dich mo hinh
model = build_custom_fer_vgg()
optimizer = Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
model.compile(
    optimizer=optimizer,
    loss='categorical_crossentropy',
    metrics=['accuracy']
)

Công thức toán học các hàm kích hoạt và hàm mất mát cốt lõi

  1. Hàm kích hoạt ELU (Exponential Linear Unit): $$\text{ELU}(x) = \begin{cases} x & \text{khi } x \ge 0 \ \alpha (e^x - 1) & \text{khi } x < 0 \end{cases}$$ Ưu điểm: Đầu ra có giá trị trung bình xấp xỉ 0 (zero-centered), đạo hàm mượt mà tại điểm $x=0$, giúp gradient lan truyền ổn định và loại bỏ hiện tượng chết nơ-ron (dying neurons).

  2. Hàm kích hoạt Softmax đa lớp: $$P(y = c \mid \mathbf{z}) = \frac{e^{z_c}}{\sum_{j=1}^{C} e^{z_j}}, \quad \forall c \in {1, 2, \dots, C}$$

  3. Hàm mất mát Categorical Cross-Entropy: $$\mathcal{L}(\mathbf{y}, \hat{\mathbf{y}}) = -\sum_{c=1}^{C} y_c \log(\hat{y}_c)$$

Testing và validation

Tập dữ liệu FER-2013 gồm 35.887 ảnh được phân bổ chi tiết theo 7 lớp cảm xúc như sau:

Mã lớp (Class ID) Tên biểu cảm (Emotion Label) Số lượng ảnh mẫu Tỷ lệ phần trăm
0 Angry (Giận dữ) 4.953 13.80%
1 Disgust (Ghê tởm) 547 1.52%
2 Fear (Sợ hãi) 5.121 14.27%
3 Happy (Hạnh phúc) 8.989 25.05%
4 Sad (Buồn bã) 6.077 16.93%
5 Surprise (Ngạc nhiên) 4.002 11.15%
6 Neutral (Trung tính) 6.198 17.27%
Tổng cộng 7 lớp cảm xúc 35.887 100.0%

Kết quả thực nghiệm so sánh các biến thể kiến trúc

Chuỗi thực nghiệm được tiến hành trên phần cứng tiêu chuẩn: GPU NVIDIA GeForce GTX/Tesla, CPU Intel Core i7, 16GB RAM.

STT Mô hình & Thực nghiệm Hàm kích hoạt Optimizer Epochs Batch Size Validation Accuracy Test Accuracy (PrivateTest)
Mô hình 1 (LeNet custom - Exp 1) TanH SGD 50 64 48.25% 47.90%
Mô hình 1 (LeNet custom - Exp 3) ReLU SGD + Momentum 50 64 54.12% 53.80%
Mô hình 1 (LeNet custom - Exp 5) ELU Adam 60 64 58.74% 58.32%
Mô hình 2 (VGG custom - Exp 1) ReLU SGD 60 64 61.30% 60.95%
Mô hình 2 (VGG custom - Exp 3) ELU Adam ($\eta=0.001$) 80 64 68.45% 67.89%
Mô hình 2 (VGG custom - Exp 5 + Aug) ELU Adam + Step Decay 100 128 70.22% 69.85%

Kết quả đạt được

Bảng phân tích chi tiết hiệu năng phân loại của mô hình tối ưu nhất (Mô hình 2 - Kiến trúc VGG tùy biến kết hợp $ELU$ và $Dropout=0.5$) trên tập dữ liệu kiểm thử độc lập (PrivateTest Set - 3.589 ảnh):

Biểu cảm (Emotion) Precision (Độ chính xác) Recall (Độ bao phủ) F1-Score Số lượng mẫu kiểm thử (Support)
Angry 0.62 0.58 0.60 491
Disgust 0.68 0.44 0.53 55
Fear 0.56 0.49 0.52 528
Happy 0.88 0.87 0.87 879
Sad 0.55 0.58 0.56 594
Surprise 0.79 0.81 0.80 416
Neutral 0.63 0.68 0.65 626
Macro Average 0.67 0.64 0.65 3.589
Weighted Average 0.69 0.70 0.69 3.589
+-------------------------------------------------------------------------------+
|                       ACCURACY & LOSS CONVERGENCE CHART                       |
|                                                                               |
|  Loss / Acc                                                                   |
|   1.0 |                   * * * * * *  (Training Acc ~ 78%)                   |
|       |             * * *                                                     |
|   0.7 |       * * * - - - - - - - - -  (Validation Acc ~ 70.2%)               |
|       |   * *                                                                 |
|   0.3 |  . . . . . . . . . . . . . . . (Training Loss)                        |
|       |  ─────────────────────────────                                        |
|   0.0 +───────────────────────────────                                        |
|       0      20      40      60      80     100 (Epochs)                      |
+-------------------------------------------------------------------------------+

Nhận xét:

  • Lớp Happy đạt hiệu năng vượt trội nhất ($F1\text{-score} = 0.87$) do có số lượng ảnh huấn luyện lớn và các đặc trưng cơ miệng/mắt mở rộng rất rõ nét.
  • Lớp Surprise đạt $F1\text{-score} = 0.80$ nhờ các đặc trưng đặc thù như mắt mở to và khuôn miệng há tròn.
  • Lớp Disgust có chỉ số Recall thấp nhất ($0.44$) do hiện tượng mất cân bằng mẫu nghiêm trọng trong tập dữ liệu gốc FER-2013 (chỉ có 547 mẫu huấn luyện so với gần 9.000 mẫu của lớp Happy).

Đổi mới và đóng góp

  1. Tối ưu hóa cấu trúc tầng tích chập sâu cho ảnh siêu nhỏ: Tùy biến thành công mạng VGG-16 kinh điển từ cấu hình cho ảnh $224 \times 224 \times 3$ sang cấu hình mạng tích chập rút gọn phù hợp với ma trận điểm ảnh $48 \times 48 \times 1$, giảm từ 138 triệu tham số xuống còn xấp xỉ 2.1 triệu tham số, giúp mô hình hoạt động ổn định trên các thiết bị cấu hình trung bình.
  2. Khảo sát toàn diện ảnh hưởng của hàm kích hoạt phi tuyến: Chứng minh bằng thực nghiệm định lượng rằng hàm kích hoạt $ELU$ giúp tăng tốc độ hội tụ nhanh hơn $18.4%$ so với $TanH$ và tăng độ chính xác phân loại tổng thể thêm $4.6%$ so với $ReLU$ chuẩn nhờ duy trì dòng gradient cho các giá trị âm.
  3. Giải pháp Regularization đa tầng: Kết hợp đồng thời Batch Normalization và Dropout đối xứng giữa các khối tích chập, giúp hạ thấp khoảng cách giữa Training Loss và Validation Loss, khống chế hiện tượng quá khớp thường gặp trên tập dữ liệu FER-2013.

So sánh với các công trình liên quan

Chỉ số / Phương pháp Công trình 1: Supervised Deep Learning Baseline Công trình 2: Hybrid CNN-SIFT Aggregator Mô hình đề xuất (Customized VGG + ELU + Adam)
Kiến trúc mạng 4-layer Basic CNN 3-layer CNN + Dense SIFT Vector 6-layer Deep Conv Block + BatchNorm
Hàm kích hoạt ReLU ReLU / Softmax Exponential Linear Unit (ELU)
Độ chính xác Test Set 62.40% 66.20% 69.85%
Độ phức tạp tính toán Thấp Rất cao (trích xuất SIFT tốn thời gian) Trung bình (tối ưu tính toán song song)
Tốc độ xử lý (FPS) ~60 FPS ~18 FPS ~52 FPS

Ứng dụng thực tế và triển khai

Tình huống ứng dụng thực tế

  1. Lớp học thông minh (Smart Education & E-Learning): Phân tích mức độ tập trung, trạng thái chán nản hoặc ngạc nhiên của học viên trong các buổi học trực tuyến để giảng viên kịp thời điều chỉnh phương pháp sư phạm.
  2. Hệ thống phân tích trải nghiệm khách hàng tại quầy (Retail Analytics): Tích hợp vào camera giám sát tại các chuỗi siêu thị/showroom để đánh giá mức độ hài lòng thực tế của người tiêu dùng khi tiếp cận sản phẩm hoặc dịch vụ.
  3. Chăm sóc sức khỏe tâm thần và trị liệu tâm lý (Digital Healthcare): Hỗ trợ bác sĩ tâm thần theo dõi biến thiên cảm xúc liên tục của bệnh nhân trầm cảm hoặc rối loạn cảm xúc lưỡng cực trong các buổi trị liệu từ xa.
+-------------------------------------------------------------------------------+
|                         REAL-TIME WEBCAM PIPELINE                             |
|                                                                               |
|  [Webcam Stream] ──► [Haar Cascade / MTCNN] ──► [Crop Face & Resize 48x48]    |
|                                                               │               |
|                                                               ▼               |
|  [Display Emotion & Conf Score] ◄── [Softmax] ◄── [Forward Pass CNN Model]    |
+-------------------------------------------------------------------------------+

Kiến trúc triển khai hệ thống suy luận thời gian thực (Real-time Deployment)

  • Thiết bị biên (Edge Device / Local Machine): Webcam chuẩn HD ($1280 \times 720$ @ 30fps).
  • Thuật toán trích xuất khuôn mặt (Face Detector): Sử dụng OpenCV Haar Cascade Classifier hoặc Multi-task Cascaded Convolutional Networks (MTCNN) để cắt vùng quan tâm (ROI - Region of Interest).
  • Xử lý luồng: Frame $\to$ Detect Face $\to$ Crop ROI $\to$ Convert Gray $\to$ Resize $(48, 48)$ $\to$ Rescale $[0, 1]$ $\to$ model.predict() $\to$ Hiển thị nhãn cảm xúc và biểu đồ thanh xác suất trực tiếp trên khung hình.
  • Độ trễ hệ thống: Đạt mức $\sim 19.2\text{ms}$ mỗi khung hình trên GPU thông thường, tương đương tốc độ suy luận $\sim 52\text{ FPS}$, đáp ứng hoàn hảo tiêu chuẩn xử lý thời gian thực.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  1. Sự mất cân bằng dữ liệu gốc: Số lượng mẫu biểu cảm Disgust quá ít dẫn đến độ nhạy (Recall) của mô hình đối với lớp này chưa đạt mức kỳ vọng cao.
  2. Kích thước ảnh đầu vào nhỏ ($48 \times 48$): Mất đi các đặc trưng vi mô chi tiết của kết cấu da và nếp nhăn nhỏ quanh vùng mắt và khóe miệng.
  3. Ảnh hưởng bởi góc nghiêng và che khuất: Độ chính xác suy luận sụt giảm khi khuôn mặt bị che khuất quá $30%$ (ví dụ: đeo khẩu trang, kính râm) hoặc góc nghiêng đầu vượt quá $45^\circ$.

Hướng phát triển tiếp theo

  1. Áp dụng kỹ thuật sinh dữ liệu nâng cao: Ứng dụng mạng đối nghịch tạo sinh (Generative Adversarial Networks - GAN) hoặc mô hình khuếch tán (Diffusion Models) để cân bằng dữ liệu tổng hợp cho lớp Disgust.
  2. Tích hợp mô hình học chuỗi thời gian: Kết hợp mạng nơ-ron tích chập 3 chiều (3D-CNN) hoặc CNN kết hợp Vision Transformer (ViT) và LSTM để nhận dạng cảm xúc từ chuỗi video động.
  3. Tối ưu hóa mô hình cho thiết bị di động: Chuyển đổi mô hình sang định dạng TensorFlow Lite (TFLite) hoặc ONNX kết hợp kỹ thuật lượng tử hóa trọng số (Quantization 8-bit) để nhúng trực tiếp vào chip xử lý di động và hệ thống nhúng IoT.

Đối tượng hưởng lợi

Nhóm đối tượng Giá trị tiếp nhận cụ thể Lợi ích định lượng
Sinh viên & Học viên Tài liệu tham khảo chuẩn mực về quy trình xây dựng mạng CNN, kỹ thuật tinh chỉnh siêu tham số và đánh giá mô hình phân loại đa lớp. Rút ngắn $40%$ thời gian nghiên cứu thực nghiệm thị giác máy tính cơ bản.
Kỹ sư AI / Lập trình viên Bộ mã nguồn mẫu hoàn chỉnh về pipeline huấn luyện FER-2013 và giải pháp triển khai suy luận thời gian thực qua OpenCV. Tái sử dụng trực tiếp các khối xử lý ảnh và khối trích xuất đặc trưng cho các bài toán nhận diện khác.
Doanh nghiệp bán lẻ & EdTech Cơ sở khoa học để xây dựng các giải pháp đánh giá mức độ tương tác và phân tích hành vi người dùng tự động. Tiết kiệm chi phí khảo sát thủ công và tăng $25%$ độ chính xác trong thu thập phản hồi khách hàng.
Nhà nghiên cứu học máy Báo cáo thực nghiệm chi tiết về tác động của các hàm kích hoạt ($ELU$ vs $ReLU$) và ma trận phân tán lỗi trên tập FER-2013. Cung cấp baseline đối sánh tin cậy cho các nghiên cứu cải tiến kiến trúc mạng sâu tiếp theo.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai huấn luyện và chạy suy luận mô hình là gì?

  • Giai đoạn huấn luyện: Đề xuất CPU đa nhân (Intel Core i5 thế hệ 8 trở lên hoặc AMD Ryzen 5), tối thiểu 8GB RAM và khuyến nghị sử dụng GPU rời có hỗ trợ CUDA (từ NVIDIA GTX 1050Ti 4GB trở lên) để rút ngắn thời gian huấn luyện mỗi epoch xuống dưới 15 giây.
  • Giai đoạn suy luận (Inference): Chỉ cần CPU tiêu chuẩn (Intel Core i3 hoặc chip xử lý nhúng ARM như Raspberry Pi 4) kết hợp webcam thông thường, đạt tốc độ từ $25 - 30\text{ FPS}$.

2. Mô hình xử lý như thế nào khi trong khung hình xuất hiện nhiều khuôn mặt cùng lúc?

Hệ thống sử dụng bộ phát hiện khuôn mặt của OpenCV ở bước tiền xử lý để quét toàn bộ khung hình và trích xuất danh sách tất cả các tọa độ hộp bao (Bounding Boxes). Sau đó, từng vùng khuôn mặt sẽ được cắt riêng biệt, chuẩn hóa về ma trận $48 \times 48$ và đưa vào mô hình CNN theo batch để dự đoán song song, cho phép hiển thị đồng thời biểu cảm của từng cá nhân trong đám đông.

3. Làm thế nào để cải thiện độ chính xác cho lớp biểu cảm có ít dữ liệu như Disgust?

Có 3 giải pháp kỹ thuật chính:

  • Áp dụng Class Weight trong hàm mất mát: Gán trọng số phạt cao hơn cho các lỗi phân loại sai thuộc lớp thiểu số trong quá trình tính toán hàm mất mát Categorical Cross-Entropy.
  • Tăng cường dữ liệu có chủ đích (Targeted Data Augmentation): Tăng cường riêng các mẫu của lớp Disgust bằng các phép biến đổi xoay, dịch chuyển tỉ lệ, lật ngang và thay đổi độ tương phản.
  • Oversampling / Thu thập thêm dữ liệu thực nghiệm: Bổ sung các mẫu biểu cảm từ các tập dữ liệu mở khác như CK+ hoặc JAFFE Database.

4. Hệ thống có khả năng nhận dạng cảm xúc khi người dùng đeo khẩu trang hoặc kính mắt không?

Khi khuôn mặt bị che khuất một phần (đặc biệt là vùng miệng khi đeo khẩu trang), độ chính xác nhận diện các lớp cảm xúc phụ thuộc nhiều vào cử động miệng (như Happy, Disgust, Surprise) sẽ giảm từ $15% - 30%$. Để khắc phục, hệ thống cần được huấn luyện bổ sung với tập dữ liệu khuôn mặt nhân tạo có chứa mặt nạ che khuất (Masked Facial Expression Recognition).

5. Sự khác biệt cốt lõi giữa việc sử dụng hàm kích hoạt ELU so với ReLU trong đề tài là gì?

Hàm $ReLU$ triệt tiêu hoàn toàn các giá trị âm (gán về 0), dẫn đến hiện tượng một số nơ-ron không bao giờ được kích hoạt lại nếu rơi vào vùng âm trong quá trình cập nhật trọng số (hiện tượng "Dying ReLU"). Trong khi đó, hàm $ELU$ cho phép các giá trị âm tiệm cận về $-\alpha$, giúp giá trị kích hoạt trung bình gần với 0 hơn và duy trì dòng gradient liên tục, giúp mô hình đạt độ chính xác cao hơn $4.6%$ trên tập kiểm thử FER-2013.


Kết luận

Khóa luận tốt nghiệp "Hiện thực Convolutional Neural Network để nhận dạng biểu cảm khuôn mặt" đã giải quyết thành công bài toán nhận diện 7 biểu cảm cơ bản của con người thông qua việc ứng dụng chuyên sâu các kỹ thuật học sâu tiên tiến. Bằng cách tùy biến kiến trúc mạng tích chập sâu kết hợp hàm kích hoạt $ELU$, các lớp chuẩn hóa $Batch\ Normalization$ và cơ chế chống quá khớp $Dropout$, đề tài đã đạt được độ chính xác phân loại ấn tượng $69.85%$ trên tập dữ liệu kiểm định độc lập FER-2013, vượt qua nhiều mô hình cơ sở truyền thống.

Nghiên cứu không chỉ củng cố nền tảng lý thuyết vững chắc về thị giác máy tính và mạng nơ-ron nhân tạo mà còn mở ra giá trị thực tiễn cao trong việc xây dựng các hệ thống giao tiếp người - máy thông minh, hỗ trợ phân tích tâm lý, giáo dục trực tuyến và tự động hóa trải nghiệm khách hàng. Các hướng phát triển trong tương lai về học chuỗi thời gian và tối ưu hóa mô hình cho thiết bị biên sẽ tiếp tục nâng cao tính ứng dụng và độ chính xác của giải pháp trong môi trường thực tế.