Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và công nghiệp 4.0, giao tiếp người - máy (Human-Computer Interaction - HCI) đang dịch chuyển mạnh mẽ từ các thiết bị ngoại vi truyền thống (bàn phím, chuột, màn hình cảm ứng) sang các phương thức tương tác tự nhiên (Natural User Interface - NUI) như giọng nói, ánh mắt và cử chỉ cơ thể. Theo các báo cáo thị trường công nghệ toàn cầu, thị trường nhận dạng cử chỉ không chạm (Touchless Gesture Recognition) đạt tốc độ tăng trưởng kép hàng năm (CAGR) trên 28%, được ứng dụng rộng rãi từ thiết bị gia dụng thông minh (Smart TV), điều khiển cánh tay robot công nghiệp, hệ thống hỗ trợ y tế vô trùng, đến công nghệ thực tế ảo (Virtual Reality - VR) và hệ thống hỗ trợ người khiếm thính qua ngôn ngữ ký hiệu.

Tuy nhiên, bài toán nhận dạng cử chỉ bàn tay dựa trên thị giác máy tính (Computer Vision) đặt ra nhiều thách thức kỹ thuật lớn:

  • Bùng nổ chiều dữ liệu (Curse of Dimensionality): Ảnh thu nhận từ camera có độ phân giải cao (ví dụ: $2938 \times 2203$ pixels) chứa hàng triệu điểm ảnh, tạo ra không gian vector khổng lồ khiến chi phí tính toán tăng vọt, gây nghẽn cổ chai (bottleneck) trong các hệ thống thời gian thực.
  • Nhiễu môi trường và biến thiên ánh sáng: Sự thay đổi cường độ sáng, bóng đổ và hậu cảnh phức tạp làm suy giảm độ chính xác khi phân đoạn đối tượng bàn tay.
  • Độ trễ và tài nguyên tính toán: Các mô hình học sâu (Deep Learning) đòi hỏi phần cứng GPU đắt đỏ, không phù hợp cho các thiết bị nhúng hay hệ thống máy tính cấu hình giới hạn.

Để giải quyết triệt để các rào cản trên, đồ án tốt nghiệp "Ứng dụng kỹ thuật PCA trong nhận dạng cử chỉ bàn tay" (chuyên ngành Công nghệ Kỹ thuật Điện tử - Truyền thông, Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã nghiên cứu và phát triển giải pháp tích hợp giữa kỹ thuật Phân tích thành phần chính (Principal Component Analysis - PCA) và Mạng nơ-ron nhân tạo lan truyền ngược (Back-Propagation Artificial Neural Network - BP-ANN).

graph LR
    A[Ảnh đầu vào Camera/Webcam] --> B[Phân đoạn màu da & Nhị phân hóa]
    B --> C[Chuẩn hóa kích thước 50x60]
    C --> D[Trích xuất đặc trưng PCA: 3000 -> 300]
    D --> E[Phân loại Mạng Nơ-ron ANN 300-105-5]
    E --> F[Kết quả nhận dạng Cử chỉ 1 - 5 ngón]

Mục tiêu nghiên cứu cụ thể

  1. Xây dựng thuật toán phân đoạn màu da kết hợp quy tắc logic không gian màu để tách lọc chính xác vùng bàn tay từ ảnh gốc.
  2. Ứng dụng kỹ thuật PCA để giảm 90% số chiều vector đặc trưng (từ $3000 \times 1$ xuống $300 \times 1$) mà vẫn bảo toàn lượng phương sai thông tin chủ đạo.
  3. Thiết kế kiến trúc mạng nơ-ron đa tầng truyền thẳng (Feed-forward Multi-layer Perceptron) tối ưu với thuật toán huấn luyện Gradient Descent thích nghi (traingdx), đạt sai số toàn phương trung bình $\text{MSE} < 0.001$.
  4. Hiện thực hóa hệ thống hoàn chỉnh trên môi trường MATLAB hỗ trợ 2 chế độ: Nhận dạng Offline (từ cơ sở dữ liệu ảnh) và Nhận dạng Online (thời gian thực qua Webcam) cho 5 trạng thái cử chỉ (1 ngón, 2 ngón, 3 ngón, 4 ngón và 5 ngón tay).

Phạm vi và giới hạn đề tài

  • Phạm vi đối tượng: Bàn tay người ở trạng thái tĩnh với 5 cử chỉ cơ bản đếm từ 1 đến 5 ngón tay xòe.
  • Giới hạn môi trường: Hậu cảnh tĩnh, độ tương phản tương đối giữa bàn tay và nền, camera trực diện.

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

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

Trước khi đề xuất giải pháp PCA kết hợp ANN, nhóm nghiên cứu đã tiến hành khảo sát và đánh giá so sánh các phương pháp nhận dạng cử chỉ phổ biến trên thị trường:

Phương pháp Ưu điểm Nhược điểm Độ phức tạp tính toán Phù hợp thời gian thực
Khớp mẫu hình học (Template Matching) Dễ cài đặt, không cần huấn luyện phức tạp Nhạy cảm cao với xoay, co giãn tỉ lệ và nhiễu nền $\mathcal{O}(N \times M)$ Thấp
Haar-like Features + AdaBoost Tốc độ phát hiện nhanh Tỉ lệ dương tính giả (False Positive) cao với nền da phức tạp $\mathcal{O}(K \times W \times H)$ Trung bình
Deep Learning (CNN - YOLO/SSD) Độ chính xác cao, tự động trích xuất đặc trưng Đòi hỏi tập dữ liệu cực lớn, cấu hình GPU mạnh Rất cao ($\mathcal{O}(\text{FLOPs})$ hàng tỷ phép tính) Đòi hỏi GPU
Giải pháp đề xuất (PCA + BP-ANN) Giảm chiều dữ liệu mạnh, huấn luyện nhanh, chi phí phần cứng thấp Nhạy với thay đổi góc xoay quá lớn Thấp - Trung bình ($\mathcal{O}(K \cdot N^2)$) Rất cao

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

  • Must Have (Bắt buộc có): Module phân đoạn vùng da bàn tay theo điều kiện ngưỡng quang phổ; Module tính toán ma trận hiệp phương sai và vector riêng PCA; Module mạng nơ-ron phân loại 5 lớp cử chỉ; Giao diện người dùng (GUI) cho nhận dạng Offline và Online.
  • Should Have (Nên có): Cơ chế lưu trữ và nạp ma trận đặc trưng từ bảng tính Excel (.xlsx) để dễ dàng mở rộng tập mẫu.
  • Could Have (Có thể có): Khả năng tự động lọc nhiễu thích nghi khi ánh sáng môi trường thay đổi.
  • Won't Have (Chưa thực hiện): Nhận dạng cử chỉ động dạng chuỗi video (Dynamic Gesture Tracking) và cử chỉ 3D phức tạp.

Thiết kế hệ thống

Kiến trúc hệ thống được phân rã thành 3 phân hệ chính: Phân hệ Tiền xử lý & Phân đoạn ảnh, Phân hệ Giảm chiều đặc trưng PCA, và Phân hệ Phân loại Mạng Nơ-ron.

flowchart TD
    subgraph Preprocessing["1. Tiền xử lý & Tách vùng da"]
        In[Ảnh gốc RGB 2938x2203] --> Skin[Bộ lọc ngưỡng màu da logic]
        Skin --> Bin[Ảnh nhị phân Mask 0-1]
        Bin --> Crop[Cắt bounding box bàn tay]
        Crop --> Resize[Chuẩn hóa kích thước 50x60]
    end

    subgraph PCA_Module["2. Trích xuất đặc trưng PCA"]
        Resize --> Vec[Chuyển đổi Vector 3000x1]
        Vec --> SubMean[Trừ Vector trung bình Psi]
        SubMean --> Proj[Chiếu lên không gian K Vector riêng]
        Proj --> Feat[Vector đặc trưng 300x1]
    end

    subgraph Neural_Network["3. Phân loại Mạng Nơ-ron"]
        Feat --> InLayer[Lớp ngõ vào: 300 nơ-ron]
        InLayer --> Hidden[Lớp ẩn: 105 nơ-ron - Sigmoid]
        Hidden --> OutLayer[Lớp ngõ ra: 5 nơ-ron - Sigmoid]
        OutLayer --> Decision[Kết luận Cử chỉ: 1 - 5 ngón]
    end

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

  • Môi trường phát triển: MATLAB R2016a / R2017a (MathWorks).
  • Thư viện chuyên dụng: MATLAB Image Processing Toolbox, Neural Network Toolbox (nntool).
  • Cơ sở dữ liệu trung gian: Microsoft Excel Engine (XLSX format) lưu trữ ma trận đặc trưng $300 \times 100$ và $300 \times 300$.
  • Phần cứng thu nhận: Webcam tích hợp HD 720p / Camera kỹ thuật số 12.0 MP.

Không gian màu và giải thuật phân đoạn vùng da bàn tay

Để phân tách vùng da tay khỏi hậu cảnh, giải pháp kết hợp phân tích điều kiện biên trên không gian màu RGB với quy tắc lọc thực nghiệm:

$$\begin{cases} R > 95 \quad \text{và} \quad G > 40 \quad \text{và} \quad B > 20 \ \max(R, G, B) - \min(R, G, B) > 15 \ |R - G| > 15 \quad \text{và} \quad R > G \quad \text{và} \quad R > B \end{cases}$$

Vùng ảnh thỏa mãn điều kiện được gán giá trị logic 1 (trắng), các điểm ảnh còn lại gán giá trị 0 (đen). Sau đó, thuật toán tìm đường biên ngoài bao quanh bàn tay, cắt lấy vùng diện tích chứa cử chỉ và thực hiện biến đổi tỉ lệ (resize) về ma trận nhị phân chuẩn $50 \times 60$ pixels.


Phương pháp luận (Methodology)

Dự án áp dụng mô hình phát triển lặp từng bước (Iterative Waterfall Model) kéo dài trong 4 tháng (từ tháng 03/2017 đến tháng 07/2017) với các cột mốc kiểm chuẩn nghiêm ngặt:

gantt
    title Tiến độ triển khai đề tài (03/2017 - 07/2017)
    dateFormat  YYYY-MM-DD
    section Nghiên cứu
    Khảo sát tài liệu & Lý thuyết PCA/ANN :2017-03-10, 2017-04-05
    Thu thập Dataset 300 ảnh mẫu        :2017-04-06, 2017-04-25
    section Xây dựng
    Hiện thực module phân đoạn màu da   :2017-04-26, 2017-05-15
    Lập trình giải thuật PCA & Giảm chiều :2017-05-16, 2017-06-05
    section Huấn luyện & Kiểm thử
    Huấn luyện mạng Nơ-ron & Tối ưu hóa :2017-06-06, 2017-06-25
    Xây dựng GUI & Kiểm thử Online/Offline:2017-06-26, 2017-07-05
    Nghiệm thu và viết báo cáo           :2017-07-06, 2017-07-11

Ma trận quản trị rủi ro kỹ thuật

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Nhiễu biên do điều kiện ánh sáng yếu Cao Bổ sung bộ lọc trung bình (Averaging Filter) và toán tử hình thái học (Morphological Closing)
Hiện tượng quá khớp (Overfitting) ở ANN Trung bình Tích hợp hệ số quán tính $mc = 0.95$ và tỷ lệ học thích nghi (traingdx), dừng huấn luyện khi đạt $\text{MSE} \le 0.001$
Bùng nổ bộ nhớ khi tính ma trận $C$ Cao Áp dụng biến đổi ma trận thay thế $A^T A$ ($M \times M$) thay vì $A A^T$ ($N^2 \times N^2$)

Implementation và kết quả

Quy trình phát triển và chi tiết giải thuật

1. Toán học trích chọn đặc trưng PCA

Giả sử tập huấn luyện gồm $M$ ảnh nhị phân kích thước $N_1 \times N_2 = 50 \times 60 = 3000$ pixels. Mỗi ảnh được trải phẳng thành một vector cột $\Gamma_i \in \mathbb{R}^{3000 \times 1}$.

  • Bước 1: Tính vector trung bình của toàn bộ tập dữ liệu: $$\Psi = \frac{1}{M} \sum_{i=1}^{M} \Gamma_i$$

  • Bước 2: Xác định vector sai lệch: $$\Phi_i = \Gamma_i - \Psi$$ Tạo ma trận sai lệch $A = [\Phi_1, \Phi_2, \dots, \Phi_M] \in \mathbb{R}^{3000 \times M}$.

  • Bước 3: Tối ưu hóa ma trận hiệp phương sai: Ma trận hiệp phương sai đầy đủ $C = \frac{1}{M} A A^T$ có kích thước $3000 \times 3000$. Việc tính toán trực tiếp trị riêng rất nặng. Theo phương pháp Turk và Pentland, ta xét ma trận chuyển vị $L = A^T A \in \mathbb{R}^{M \times M}$. Nếu $v_i$ là vector riêng của $L$ ứng với trị riêng $\lambda_i$, thì $u_i = A v_i$ chính là vector riêng (Eigenface / Eigen-hand) của ma trận $C$.

  • Bước 4: Chiếu ảnh vào không gian đặc trưng: Chọn $K = 300$ vector riêng $u_j$ ứng với $K$ trị riêng lớn nhất. Tọa độ đặc trưng của ảnh thứ $i$ trong không gian mới được xác định bởi: $$\omega_{ij} = u_j^T (\Gamma_i - \Psi) \quad \Rightarrow \quad \Omega_i = [\omega_{i1}, \omega_{i2}, \dots, \omega_{iK}]^T \in \mathbb{R}^{300 \times 1}$$

% --- MATLAB Implementation: Trích chọn đặc trưng PCA ---
function [EigenVectors, MeanHand, FeatureMatrix] = Train_PCA(ImageMatrix, K)
    % ImageMatrix: Ma trận kích thước (3000 x M)
    % K: Số thành phần chính giữ lại (K = 300)
    
    [N, M] = size(ImageMatrix);
    MeanHand = mean(ImageMatrix, 2); % Tính vector trung bình
    
    % Trừ giá trị trung bình
    A = double(ImageMatrix) - repmat(MeanHand, 1, M);
    
    % Tính ma trận hiệp phương sai thu gọn L = A'*A (M x M)
    L = A' * A;
    [V, D] = eig(L); % Tìm vector riêng V và ma trận trị riêng D
    
    % Sắp xếp trị riêng theo thứ tự giảm dần
    [~, idx] = sort(diag(D), 'descend');
    V_sorted = V(:, idx);
    
    % Tính Eigenvectors của ma trận C: U = A * V
    U = A * V_sorted;
    
    % Chuẩn hóa vector riêng về độ dài đơn vị
    for i = 1:M
        U(:, i) = U(:, i) / norm(U(:, i));
    end
    
    % Lấy K vector riêng lớn nhất
    EigenVectors = U(:, 1:K);
    
    % Chiếu toàn bộ tập ảnh vào không gian PCA
    FeatureMatrix = EigenVectors' * A; % Kích thước (K x M)
end

2. Cấu trúc và huấn luyện Mạng Nơ-ron (BP-ANN)

  • Kiến trúc mạng: Sử dụng hàm newff khởi tạo mạng truyền thẳng 3 lớp:
    • Lớp vào (Input Layer): 300 nơ-ron (tương ứng 300 hệ số PCA).
    • Lớp ẩn (Hidden Layer): 105 nơ-ron, hàm kích hoạt phi tuyến Sigmoid (logsig).
    • Lớp ra (Output Layer): 5 nơ-ron, hàm kích hoạt Sigmoid (logsig), tương ứng mã hóa One-Hot cho 5 cử chỉ:
      • 1 ngón: [1 0 0 0 0]'
      • 2 ngón: [0 1 0 0 0]'
      • 3 ngón: [0 0 1 0 0]'
      • 4 ngón: [0 0 0 1 0]'
      • 5 ngón: [0 0 0 0 1]'
% --- MATLAB Implementation: Khởi tạo & Huấn luyện Mạng ANN ---
% Thiết lập cấu hình mạng đa tầng
hiddenLayerSize = 105;
net = newff(minmax(P_train), [hiddenLayerSize, 5], {'logsig', 'logsig'}, 'traingdx');

% Cài đặt tham số huấn luyện
net.trainParam.epochs = 5000;         % Số vòng lặp tối đa
net.trainParam.goal = 0.001;          % Ngưỡng sai số mục tiêu (MSE)
net.trainParam.mc = 0.95;             % Hệ số quán tính (Momentum)
net.trainParam.lr = 0.01;             % Tốc độ học ban đầu
net.trainParam.lr_inc = 1.05;         % Tỉ lệ tăng learning rate
net.trainParam.lr_dec = 0.7;          % Tỉ lệ giảm learning rate
net.trainParam.max_fail = 10;         % Giới hạn số lần validation check fail
net.performFcn = 'mse';               % Hàm đánh giá hiệu năng

% Tiến hành huấn luyện
[net, tr] = train(net, P_train, T_train);

Kiểm thử và đánh giá hiệu năng

Quá trình huấn luyện mạng nơ-ron nhân tạo với tập dữ liệu mẫu 300 ảnh (60 ảnh cho mỗi cử chỉ) cho thấy tốc độ hội tụ vượt trội.

[Huấn luyện ANN]
Epoch 0/5000    --- MSE: 0.2641
Epoch 30/5000   --- MSE: 0.0412
Epoch 70/5000   --- MSE: 0.0083
Epoch 100/5000  --- MSE: 0.0018
Epoch 108/5000  --- MSE: 0.00099838 (ĐẠT MỤC TIÊU < 0.001)
Trạng thái: Hội tụ thành công tại Epoch 108.
xychart-beta
    title "Đường cong hội tụ hàm mất mát MSE theo số Epoch"
    x-axis [0, 20, 40, 60, 80, 100, 108]
    y-axis "Mean Squared Error (MSE)" 0.0001 --> 0.3
    line [0.2641, 0.0820, 0.0245, 0.0110, 0.0039, 0.0018, 0.000998]

Kết quả thử nghiệm nhận dạng Offline và Online

Nhóm cử chỉ Số mẫu thử Offline Nhận dạng đúng Độ chính xác Offline (%) Số mẫu thử Online (Webcam) Nhận dạng đúng Độ chính xác Online (%)
1 ngón 50 48 96.0% 40 33 82.5%
2 ngón 50 49 98.0% 40 34 85.0%
3 ngón 50 47 94.0% 40 31 77.5%
4 ngón 50 46 92.0% 40 30 75.0%
5 ngón 50 50 100.0% 40 36 90.0%
Trung bình 250 240 96.0% 200 164 82.0%

Nhận xét phân tích kết quả:

  1. Chế độ Offline: Độ chính xác trung bình đạt 96.0%. Cử chỉ 5 ngón xòe đạt tỉ lệ chính xác tuyệt đối (100%) do diện tích vùng nhị phân lớn và đặc trưng hình học rõ nét. Cử chỉ 3 và 4 ngón có sự nhầm lẫn nhẹ do khoảng cách giữa các ngón khép sát nhau.
  2. Chế độ Online (Webcam): Độ chính xác đạt 82.0%. Tỉ lệ này thấp hơn do hiện tượng nhòe chuyển động (motion blur), nhiễu cảm biến quang học của webcam và hiện tượng bóng đổ làm biến dạng mặt nạ nhị phân bàn tay.

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

Các cải tiến kỹ thuật nổi bật

  1. Hiệu suất giảm chiều dữ liệu vượt bậc: Hệ thống nén không gian ảnh nhị phân từ 3000 chiều xuống còn 300 chiều thông qua PCA, đạt mức giảm 90% khối lượng dữ liệu đầu vào của mạng nơ-ron mà vẫn bảo tồn hơn 95% phương sai của tập ảnh. Điều này giúp giảm thời gian lan truyền xuôi và lan truyền ngược trong mỗi chu kỳ học xuống dưới $15\text{ms}$.
  2. Tối ưu hóa thuật toán hội tụ mạng BP-ANN: Việc áp dụng giải thuật Gradient Descent kết hợp động lượng quán tính ($mc = 0.95$) và tốc độ học thích nghi (traingdx) giúp mạng nơ-ron tránh rơi vào các điểm cực tiểu cục bộ (local minima), đưa mô hình đạt ngưỡng hội tụ khắt khe ($\text{MSE} = 0.00099838$) chỉ sau 108 epochs.
  3. Mô hình hóa tích hợp linh hoạt: Thiết kế module hóa cho phép lưu trữ và trích xuất dữ liệu ma trận trực tiếp qua các file bảng tính chuẩn, tạo điều kiện thuận lợi cho việc cập nhật cơ sở dữ liệu cử chỉ mới mà không cần biên dịch lại toàn bộ mã nguồn.
graph TD
    subgraph Traditional["Giải pháp truyền thống"]
        T1[Ảnh thô 3000 chiều] --> T2[Mạng Nơ-ron khổng lồ]
        T2 --> T3[Hội tụ chậm: > 2000 Epochs]
        T3 --> T4[Bộ nhớ RAM/GPU lớn]
    end

    subgraph Proposed["Giải pháp Đề tài (PCA + ANN)"]
        P1[Ảnh thô 3000 chiều] --> P2[PCA Giảm 90% số chiều]
        P2 --> P3[Vector 300 đặc trưng cốt lõi]
        P3 --> P4[Mạng Nơ-ron tinh gọn 300-105-5]
        P4 --> P5[Hội tụ siêu nhanh: 108 Epochs]
    end

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

Các kịch bản ứng dụng trong đời sống

  1. Hỗ trợ giao tiếp cho cộng đồng người khiếm thính: Chuyển đổi trực tiếp các cử chỉ ký hiệu bàn tay thành ký tự văn bản hoặc giọng nói nhân tạo thời gian thực, xóa bỏ rào cản giao tiếp xã hội.
  2. Hệ thống điều khiển thiết bị không tiếp xúc trong Y tế: Bác sĩ trong phòng phẫu thuật vô trùng có thể duyệt hồ sơ bệnh án điện tử hoặc phóng to/thu nhỏ ảnh chụp X-quang/CT bằng cử chỉ tay mà không chạm vào màn hình vật lý.
  3. Thiết bị nhà thông minh (Smart Home & Smart TV): Thay thế remote truyền thống bằng cử chỉ tay đơn giản để tăng/giảm âm lượng, chuyển kênh, bật tắt đèn chiếu sáng.
  4. Tương tác trong Môi trường Thực tế ảo (VR/AR) & Đồ họa 3D: Điều hướng góc nhìn và thao tác gắp/thả vật thể 3D trực quan.

Yêu cầu phần cứng và triển khai hệ thống

[Yêu cầu hệ thống tối thiểu]
- CPU: Intel Core i3 2.0 GHz hoặc tương đương
- RAM: 2.0 GB (Khuyến nghị 4.0 GB)
- Ổ cứng khả dụng: 500 MB
- Thiết bị thu hình: Webcam chuẩn USB 2.0, độ phân giải tối thiểu VGA (640x480)
- Nền tảng thực thi: MATLAB Runtime R2016a hoặc ứng dụng độc lập Standalone (.exe)

Ước toán chi phí và hiệu quả đầu tư (ROI)

So với các hệ thống cảm biến chuyên dụng đeo tay (như Microsoft Digits hay găng tay dữ liệu Data Glove có giá từ $500 - $2000), giải pháp xử lý thị giác kết hợp PCA + ANN chỉ tận dụng camera quang học có sẵn (chi phí dưới $20), giúp tiết kiệm hơn 95% chi phí triển khai phần cứng cho các cơ sở giáo dục và doanh nghiệp.


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

Các hạn chế kỹ thuật hiện tại

  • Độ nhạy cảm với ánh sáng môi trường: Giải pháp lọc màu da tĩnh phụ thuộc vào ngưỡng RGB cố định, dễ bị ảnh hưởng khi chuyển đổi giữa môi trường ánh sáng đèn huỳnh quang, ánh sáng vàng và ánh sáng tự nhiên ngoài trời.
  • Hạn chế về góc xoay không gian (In-plane & Out-of-plane Rotation): PCA là phép biến đổi tuyến tính, khi bàn tay bị nghiêng hoặc xoay quá $30^\circ$, vector chiếu đặc trưng bị sai lệch đáng kể.
  • Phạm vi nhận dạng tĩnh: Chưa nhận dạng được các cử chỉ động có yếu tố quỹ đạo thời gian (như vẫy tay, vẽ hình tròn).

Hướng nâng cấp và phát triển

  1. Chuyển đổi thuật toán phân đoạn sang không gian màu $YC_bC_r$ hoặc $HSV$ thích nghi kết hợp mô hình phân bố Gauss (Gaussian Mixture Models - GMM) để nhận dạng màu da tự động dưới mọi điều kiện ánh sáng.
  2. Tích hợp giải thuật trích xuất đặc trưng bất biến với phép biến đổi tỉ lệ và góc xoay như SIFT (Scale-Invariant Feature Transform) hoặc HOG (Histogram of Oriented Gradients).
  3. Nâng cấp mô hình mạng lên Recurrent Neural Network (LSTM / GRU) hoặc 3D-CNN để mở rộng nhận dạng ngôn ngữ ký hiệu động dạng chuỗi video.
  4. Tối ưu hóa mã nguồn sang C++/OpenCV và triển khai trên các kit vi xử lý nhúng như Raspberry Pi 4 hoặc NVIDIA Jetson Nano.

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

mindmap
  root((Hệ sinh thái hưởng lợi))
    Sinh viên & Nghiên cứu sinh
      Học liệu trực quan về PCA & ANN
      Mã nguồn tham khảo chuẩn MATLAB
    Kỹ sư & Lập trình viên
      Kiến trúc giảm chiều dữ liệu thực tế
      Phương pháp tiền xử lý ảnh tối ưu
    Doanh nghiệp & Startup
      Giải pháp NUI chi phí siêu thấp
      Ứng dụng nhanh cho Smart TV & IoT
    Cộng đồng & Xã hội
      Hỗ trợ người khiếm thính hòa nhập
      Tương tác không chạm an toàn dịch tễ
  • Sinh viên ngành Kỹ thuật Điện tử, CNTT, Viễn thông: Nắm vững phương pháp kết hợp giữa đại số tuyến tính ứng dụng (PCA) và giải thuật học máy cổ điển (ANN), có sẵn framework mẫu để làm đồ án chuyên ngành.
  • Kỹ sư thị giác máy tính: Tiếp cận giải pháp nén đặc trưng hiệu quả cho các bài toán xử lý biên (Edge AI) với tài nguyên phần cứng giới hạn.
  • Doanh nghiệp phát triển giải pháp IoT/Smart Home: Tích hợp tính năng điều khiển cử chỉ không chạm vào thiết bị với chi phí sản xuất phần mềm tối thiểu.

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

1. Yêu cầu cấu hình tối thiểu để triển khai giải pháp này là gì?

Hệ thống cực kỳ nhẹ, chỉ yêu cầu máy tính trang bị CPU 2 nhân (từ Intel Core i3 thế hệ 2 trở lên), RAM 2GB, camera/webcam độ phân giải chuẩn $640 \times 480$ pixels và cài đặt môi trường MATLAB Runtime (hoặc file .exe đóng gói độc lập). Hệ thống không yêu cầu card đồ họa rời (GPU).

2. Giới hạn mở rộng số lượng cử chỉ của hệ thống là bao nhiêu?

Mô hình hiện tại phân loại 5 cử chỉ cơ bản với 5 nơ-ron ngõ ra. Để mở rộng lên $N$ cử chỉ (ví dụ: toàn bộ 26 chữ cái ngôn ngữ ký hiệu), cần tăng số vector riêng PCA $K$ (từ 300 lên khoảng 500 - 800) và mở rộng số nơ-ron lớp ẩn (từ 105 lên 200 - 300), đồng thời bổ sung tập dữ liệu mẫu tương ứng.

3. Tại sao PCA lại giúp tăng tốc độ huấn luyện của Mạng Nơ-ron?

Nếu đưa trực tiếp ảnh $50 \times 60$ ($3000$ pixels) vào mạng, lớp vào cần 3000 nơ-ron, dẫn đến số trọng số liên kết với 105 nơ-ron ẩn là $3000 \times 105 = 315,000$ liên kết. Khi dùng PCA giảm xuống 300 đặc trưng, số trọng số chỉ còn $300 \times 105 = 31,500$ liên kết (giảm 90% số tham số cần cập nhật), giúp giải thuật lan truyền ngược hội tụ cực nhanh chỉ sau 108 chu kỳ.

4. Hệ thống xử lý thế nào nếu người dùng đeo đồng hồ hoặc có vật thể màu da ở hậu cảnh?

Mô hình hiện tại dựa trên giải thuật tách biên lấy vùng liên thông có diện tích lớn nhất (Largest Connected Component). Nếu vùng hậu cảnh có diện tích màu da nhỏ hơn bàn tay, thuật toán sẽ tự động loại bỏ. Tuy nhiên, để hệ thống hoạt động ổn định nhất, khuyến nghị người dùng thực hiện thao tác trước phông nền đơn sắc và hạn chế để khuôn mặt lọt vào khung quét.

5. Chi phí triển khai và khả năng thương mại hóa của đề tài như thế nào?

Giải pháp có chi phí phần mềm gần như bằng 0 (nếu chuyển đổi sang nền tảng mã nguồn mở C++/Python OpenCV). Thời gian đáp ứng của hệ thống đạt dưới $80\text{ms}$ mỗi khung hình, hoàn toàn đủ điều kiện thương mại hóa tích hợp vào các sản phẩm hộp điều khiển Set-top-box, kiosk tương tác công cộng và thiết bị y tế chuyên dụng.


Kết luận

Đồ án tốt nghiệp "Ứng dụng kỹ thuật PCA trong nhận dạng cử chỉ bàn tay" đã giải quyết thành công bài toán nhận dạng cử chỉ người - máy thông qua việc kết hợp tối ưu giữa giải thuật giảm chiều dữ liệu PCA và mạng nơ-ron truyền thẳng đa tầng BP-ANN. Với độ chính xác thực nghiệm đạt 96.0% ở chế độ Offline82.0% ở chế độ Online thời gian thực, cùng khả năng hội tụ nhanh chóng đạt sai số $\text{MSE} < 0.001$ tại epoch 108, đề tài đã chứng minh tính đúng đắn về mặt lý thuyết và khả năng ứng dụng thực tiễn cao trong các hệ thống tương tác không chạm, hỗ trợ người khuyết tật và điều khiển tự động hóa.

Các kỹ sư và nhà nghiên cứu quan tâm có thể ứng dụng trực tiếp mô hình này hoặc mở rộng thuật toán sang các không gian màu thích nghi và mạng học sâu để nâng cao hơn nữa tính năng động và độ chính xác của hệ thống trong môi trường công nghiệp thực tế.