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

Trong lĩnh vực thị giác máy tính (Computer Vision) và xử lý ảnh số, bài toán nhận dạng khuôn mặt người đã được nghiên cứu từ đầu những năm 1990 và tiếp tục là chủ đề mở thu hút sự quan tâm của nhiều lĩnh vực như nhận dạng mẫu (Pattern Recognition), học máy (Machine Learning), thống kê và sinh trắc học (Biometrics). So với các phương thức nhận dạng sinh trắc học truyền thống như dấu vân tay, mống mắt hay dáng đi, nhận dạng khuôn mặt sở hữu ưu điểm vượt trội: không đòi hỏi sự tiếp xúc hay tương tác vật lý trực tiếp giữa đối tượng và thiết bị thu nhận; việc thu thập dữ liệu hình ảnh khuôn mặt dễ dàng triển khai trên quy mô lớn nhờ sự phổ biến của hệ thống camera giám sát và mạng xã hội; đồng thời hình ảnh khuôn mặt còn cung cấp nhiều thông tin mở rộng như giới tính, độ tuổi, cảm xúc và hướng nhìn.

Trước đây, việc nhận dạng đối tượng chủ yếu dựa vào quan sát và đánh giá thủ công của con người, dễ dẫn đến sai sót do các yếu tố chủ quan. Sự phát triển của các hệ thống tự động hóa xử lý ảnh trên máy tính giúp gia tăng độ chính xác và độ tin cậy trong công tác giám sát, an ninh và quản lý. Xuất phát từ ý tưởng tích hợp công nghệ thị giác máy tính vào hệ thống điều khiển và giám sát trong mô hình ngôi nhà thông minh, tác giả đã lựa chọn và thực hiện đề tài "Ứng dụng xử lý ảnh trong nhận diện khuôn mặt".

Về tính cấp thiết và mức độ phổ biến, công nghệ nhận dạng khuôn mặt đang được triển khai rộng rãi trong nhiều bài toán thực tiễn:

  • Xây dựng giao diện tương tác người - máy (Human-Computer Interaction), hỗ trợ người khiếm khuyết giao tiếp thông qua cử chỉ tay (hand gesture) hoặc chuyển động mắt.
  • Phục vụ công tác an ninh, giám sát công cộng, quản lý dân số và hỗ trợ cơ quan chức năng nhận diện đối tượng truy nã trong điều kiện ánh sáng tiêu chuẩn hoặc ban đêm (sử dụng camera hồng ngoại).
  • Giám sát an ninh và kiểm soát giao dịch tại các cây rút tiền tự động (ATM) nhằm xác thực danh tính chủ thẻ, ngăn chặn tình trạng giả mạo hoặc gian lận thẻ ngân hàng.
  • Kiểm soát ra vào tại các cơ quan, văn phòng, trụ sở làm việc hoặc xác thực đăng nhập máy tính cá nhân thay thế mật khẩu truyền thống.
  • Tìm kiếm, lập chỉ mục và phân loại dữ liệu đa phương tiện quy mô lớn trên môi trường mạng Internet và cơ sở dữ liệu truyền hình.

Trong môi trường thực tế, việc xây dựng một hệ thống nhận dạng tự động đạt độ chính xác cao đối mặt với nhiều thách thức lớn:

  • Sự biến động của điều kiện chiếu sáng (light conditions) giữa các môi trường chụp khác nhau.
  • Sự thay đổi hình thái khuôn mặt theo thời gian và tuổi tác (aging changes).
  • Góc chụp và hướng mặt (pose variations), trong đó các góc nghiêng lớn hơn 45° gây suy giảm đáng kể tỷ lệ nhận dạng chính xác.
  • Biến dạng các đặc trưng hình học (mắt, mũi, miệng) do sự biểu cảm đa dạng của khuôn mặt (cười, tức giận, sợ hãi).
  • Hiện tượng che khuất (occlusion) một phần khuôn mặt do vật cản hoặc phụ kiện (kính mắt, khẩu trang, khăn quàng).

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

  1. Nghiên cứu và xây dựng hoàn chỉnh hệ thống nhận dạng khuôn mặt với dữ liệu đầu vào là ảnh chụp mặt người từ webcam hoặc tập dữ liệu lưu trữ.
  2. Ứng dụng thuật toán Viola-Jones để thực hiện tác vụ phát hiện khuôn mặt (Face Detection) tự động.
  3. Nghiên cứu và ứng dụng lý thuyết biểu diễn thưa thớt (Sparse Representation) kết hợp mô hình hồi quy tuyến tính và tối ưu hóa chuẩn $\ell_1$ ($\ell_1$-minimization) để phân loại và nhận diện danh tính khuôn mặt (Face Recognition).
  4. Thiết kế giao diện đồ họa người dùng (GUI) trên môi trường MATLAB để trực quan hóa toàn bộ quy trình từ thu nhận ảnh, tiền xử lý, huấn luyện đến xuất kết quả nhận dạng.

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

  • Đối tượng nghiên cứu: Dữ liệu ảnh khuôn mặt người 2D thu nhận trực tiếp từ webcam hoặc từ tệp dữ liệu kiểm thử (định dạng ảnh số RGB, ảnh xám), thuật toán phát hiện đối tượng Viola-Jones và thuật toán phân loại dựa trên biểu diễn thưa thớt (SRC - Sparse Representation Classification).
  • Phạm vi và giới hạn: Đề tài tập trung triển khai thử nghiệm trên phần mềm MATLAB; tập trung xử lý trường hợp ảnh chụp một khuôn mặt đơn lẻ ở góc nhìn chính diện; chưa tích hợp trực tiếp lên phần cứng nhúng độc lập.

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

Khung lý thuyết và các hướng tiếp cận nhận dạng khuôn mặt

Hệ thống nhận dạng mặt người trong đồ án được phân định thành hai bài toán nghiệp vụ chính: bài toán xác định danh tính (Face Identification - dạng 1-N, tìm danh tính tương ứng trong tập $N$ mẫu đã biết) và bài toán xác thực danh tính (Face Verification - dạng 1-1, kiểm tra hai ảnh có cùng một người hay không). Về mặt học thuật, tác giả tổng quan 4 hướng tiếp cận chính trong bài toán xác định khuôn mặt:

Hướng tiếp cận Cơ chế hoạt động Ưu điểm Hạn chế
Dựa trên tri thức (Knowledge-based) Tiếp cận từ trên xuống (Top-down); dựa trên các quy luật do con người thiết lập về vị trí tương đối và tính đối xứng của các bộ phận (mắt, mũi, miệng). Đơn giản, trực quan, dễ mô tả các luật hình học cơ bản. Khó lượng hóa tri thức thành quy tắc tổng quát; dễ nhận diện nhầm hoặc bỏ sót khi tư thế thay đổi.
Dựa trên đặc trưng không đổi (Feature-based) Tiếp cận từ dưới lên (Bottom-up); trích xuất các đặc trưng biên, góc, hình thái của lông mày, mắt, mũi, miệng, màu da và kết cấu khuôn mặt. Tận dụng được các thuộc tính bất biến của khuôn mặt trong không gian ảnh. Nhạy cảm với nhiễu, bóng đổ, điều kiện chiếu sáng và hiện tượng che khuất.
Dựa trên so khớp mẫu (Template matching) So sánh độ tương quan giữa ảnh đầu vào với các mẫu khuôn mặt chuẩn (thường là góc chụp thẳng) được lưu trữ từ trước. Dễ cài đặt và thực thi thuật toán. Hiệu quả kém khi tỷ lệ kích thước, tư thế và hình dạng khuôn mặt có sự biến đổi lớn.
Dựa trên diện mạo (Appearance-based) Mô hình học máy; học các biểu diễn đặc trưng từ tập ảnh huấn luyện và tổng hợp thành các vector đặc trưng trong không gian toán học. Khả năng tổng quát hóa cao, thích ứng tốt với dữ liệu thực tế. Đòi hỏi tập dữ liệu huấn luyện lớn và thuật toán phân loại tối ưu.

Lý thuyết xử lý ảnh số và không gian màu

Hệ thống xử lý ảnh tiếp nhận tín hiệu từ camera, tiến hành số hóa (lấy mẫu và lượng tử hóa) để tạo ra ma trận ảnh số hai chiều $F(i,j)$. Các khái niệm và mô hình biểu diễn chính bao gồm:

  • Biểu diễn điểm ảnh và độ sâu bit: Ảnh nhị phân sử dụng 1 bit/pixel; ảnh xám (Grayscale) sử dụng 8 bit/pixel với 256 mức độ sáng từ 0 (đen) đến 255 (trắng); ảnh màu chuẩn RGB sử dụng 24 bit/pixel (mỗi kênh màu Red, Green, Blue chiếm 8 bit).
  • Chuyển đổi không gian màu: Để giảm thiểu độ phức tạp tính toán của thuật toán nhận dạng mà vẫn giữ được thông tin cường độ sáng then chốt, ảnh màu được chuyển đổi về ảnh xám. Công thức chuyển đổi lý thuyết chuẩn được đề cập: $$R_{Gray} = 0.072 \times G + \dots$$ Trong cấu hình xử lý thực nghiệm trên hệ thống, mức xám của từng điểm ảnh được tính trung bình cộng giá trị của ba kênh màu: $$Gray = \frac{Red + Green + Blue}{3}$$
  • Kỹ thuật phân ngưỡng ảnh (Thresholding): Phân chia điểm ảnh thành đối tượng và nền:
    • Ngưỡng toàn cục (Global Thresholding): Sử dụng một giá trị ngưỡng cố định $Z$ cho toàn bộ ảnh: $$O(i, j) = \begin{cases} 0 & \text{nếu } I(i, j) \in Z \ 1 & \text{còn lại} \end{cases}$$
    • Ngưỡng thích nghi (Adaptive Thresholding): Xác định ngưỡng động cục bộ cho từng vùng lân cận điểm ảnh dựa trên giá trị trung bình ($mean$), trung vị ($median$), công thức $(min + max)/2$ hoặc $mean - C$ nhằm thích ứng với sự thay đổi độ rọi ánh sáng không đồng đều.

Phương pháp phát hiện khuôn mặt bằng thuật toán Viola - Jones

Thuật toán Viola - Jones (Paul Viola và Michael Jones, 2001) được sử dụng để xác định vị trí và kích thước khuôn mặt trong ảnh với tốc độ thời gian thực. Thuật toán tích hợp 3 thành phần cốt lõi:

  1. Ảnh tích phân (Integral Image - The scale invariant detector): Cho phép tính toán cực nhanh tổng giá trị điểm ảnh trong bất kỳ vùng chữ nhật nào mà chỉ cần tra cứu 4 điểm góc tọa độ theo công thức: $$Sum = D - (B + C) + A$$
  2. Hệ đặc trưng Haar-like: Sử dụng 4 mẫu đặc trưng cơ bản chia thành 3 nhóm: đặc trưng cạnh (Edge features), đặc trưng đường (Line features) và đặc trưng xung quanh tâm (Center-surround features). Giá trị đặc trưng được tính bằng độ chênh lệch giữa tổng giá trị các điểm ảnh trong vùng chữ nhật màu đen và vùng chữ nhật màu trắng.
  3. Thuật toán AdaBoost sửa đổi (Modified AdaBoost) và Bộ phân loại phân tầng (Cascaded classifier): AdaBoost lựa chọn các đặc trưng Haar-like quan trọng và kết hợp nhiều bộ phân loại yếu (weak classifiers) thành các bộ phân loại mạnh (strong classifiers). Các bộ phân loại được sắp xếp theo cấu trúc phân tầng (cascade) hình cây để loại bỏ nhanh các vùng không chứa khuôn mặt ngay từ các tầng đầu, giúp tối ưu hóa thời gian tính toán.

Phương pháp phân loại dựa trên biểu diễn thưa thớt (SRC)

Lý thuyết lấy mẫu tập trung (Compressed Sensing - CS của Donoho, Baraniuk) chỉ ra rằng một tín hiệu thưa thớt có thể được tái tạo chính xác từ số lượng phép đo ít hơn nhiều so với giới hạn định lý lấy mẫu Shannon (SST) hay luật lấy mẫu Nyquist (NSL).

Trong bài toán phân loại khuôn mặt, giả sử tập huấn luyện gồm $k$ đối tượng, mỗi đối tượng có $n_i$ mẫu ảnh đã được chuẩn hóa thành ma trận $A_i = [v_{i,1}, v_{i,2}, \dots, v_{i,n_i}] \in \mathbb{R}^{m \times n_i}$. Tập dữ liệu huấn luyện tổng hợp được biểu diễn dưới dạng ma trận: $$A = [A_1, A_2, \dots, A_k] \in \mathbb{R}^{m \times n}$$ Một ảnh kiểm tra $y \in \mathbb{R}^m$ thuộc lớp thứ $i$ sẽ được biểu diễn tuyến tính qua các mẫu huấn luyện của chính lớp đó cộng với sai số thưa thớt do che khuất hoặc biến đổi ánh sáng: $$y = A x_0$$ Trong đó $x_0 = [0, \dots, \alpha_{i,1}, \dots, \alpha_{i,n_i}, \dots, 0]^T \in \mathbb{R}^n$ là vector hệ số thưa thớt. Bài toán nhận dạng được quy về bài toán tối ưu hóa chuẩn $\ell_1$: $$\hat{x}_1 = \arg\min_x |x|_1 \quad \text{thỏa mãn} \quad Ax = y \quad (\text{hoặc } |Ax - y|_2 \le \varepsilon)$$ Sau khi tìm được nghiệm $\hat{x}_1$, hệ thống tính toán sai số dư (residual) tương ứng với từng lớp đối tượng: $$r_i(y) = |y - A \delta_i(\hat{x}_1)|_2 \quad (i = 1, \dots, k)$$ Trong đó $\delta_i(\hat{x}_1)$ là toán tử chọn lọc giữ lại các hệ số thuộc lớp $i$ và gán bằng 0 cho các vị trí còn lại. Danh tính của ảnh kiểm tra được gán cho lớp có giá trị sai số dư $r_i(y)$ nhỏ nhất (hoặc trọng số tương quan cao nhất).


Thiết kế và triển khai

Hệ thống nhận dạng khuôn mặt được thiết kế hoàn chỉnh theo sơ đồ khối xử lý tuần tự trên nền tảng phần mềm MATLAB.

[Khối Ảnh (Webcam/File)] 
[Khối Tiền Xử Lý (Grayscale & Down-sampling)]
[Khối Phát Hiện Khuôn Mặt (Viola-Jones)]

Chức năng chi tiết của các khối kỹ thuật

Tên khối Đầu vào Thuật toán / Công cụ xử lý Đầu ra
Khối ảnh Đối tượng thực tế hoặc tệp lưu trữ Webcam máy tính / Hộp thoại uigetfile Ảnh màu ban đầu
Tiền xử lý Ảnh màu RGB Công thức chuyển mức xám rgb2gray, hàm giảm mẫu imresize([m1 n1]) Vector ảnh xám chuẩn hóa kích thước
Dò tìm khuôn mặt Ảnh sau tiền xử lý Thuật toán Viola-Jones (Ảnh tích phân, Haar-like, AdaBoost phân tầng) Vùng ảnh chứa khuôn mặt đã cắt (crop)
Cơ sở dữ liệu & Huấn luyện Tập ảnh khuôn mặt mẫu Trích xuất đặc trưng, xây dựng ma trận thưa thớt $A$ Ma trận cơ sở dữ liệu ImportDatabase
Nhận dạng Vector ảnh kiểm tra $y$ và ma trận $A$ Giải bài toán tối ưu chuẩn $\ell_1$ qua quy hoạch tuyến tính linprog Danh tính đối tượng trùng khớp nhất

Thiết kế giao diện đồ họa người dùng (MATLAB GUI)

Giao diện được xây dựng bằng công cụ Graphical User Interface Development Environment (GUIDE) của MATLAB thông qua tệp giao diện gui.fig và mã nguồn điều khiển gui.m. Các thành phần điều khiển bao gồm:

  • Khung hiển thị hình ảnh (Axes): Gồm handles.imgLoad hiển thị ảnh đầu vào cần kiểm tra và handles.imgRecog hiển thị ảnh kết quả sau khi nhận dạng.
  • Nút nhấn điều khiển (Push Button):
    • Nút btnAdd thực hiện gọi lệnh run('test.m') và nạp lại cơ sở dữ liệu ImportDatabase.
    • Nút btnChoose kích hoạt hộp thoại uigetfile('*.tif', 'Select a Test Image') cho phép người dùng nạp ảnh kiểm tra từ thư mục, sao chép vào tệp tạm thời test.jpg và vẽ lên imgLoad.
    • Nút btnRecon thực hiện quy trình nhận dạng tự động: đọc ảnh test.jpg, kiểm tra số chiều để chuyển thành ảnh xám bằng rgb2gray, hạ kích thước mẫu theo ma trận [m1 n1], biến đổi ảnh thành vector cột y = Test_Image_Down_Sampled(:) và giải bài toán $\ell_1$-minimization bằng hàm linprog:
      n = size(A, 2);
      f = ones(2*n, 1);
      Aeq = [A -A];
      lb = zeros(2*n, 1);
      x1 = linprog(f, [], [], Aeq, y, lb, [], [], []);
      

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

Chương 1: Tổng quan

Trình bày bối cảnh nghiên cứu về xử lý ảnh và thị giác máy tính trong nước và quốc tế. Phân tích tính cấp thiết và tính ứng dụng của bài toán nhận dạng khuôn mặt trong các hệ thống an ninh, kiểm soát giao dịch ATM, giám sát ra vào và quản lý dữ liệu số. Xác định rõ mục tiêu xây dựng chương trình nhận diện khuôn mặt kết hợp giữa thuật toán phát hiện Viola-Jones và mô hình biểu diễn thưa thớt trên MATLAB, đồng thời giới hạn phạm vi nghiên cứu ở mức độ thử nghiệm thuật toán và xây dựng phần mềm trên máy tính cá nhân.

Chương 2: Cơ sở lý thuyết liên quan

Hệ thống hóa các lý thuyết nền tảng về nhận dạng mặt người:

  • Phân tích các yếu tố ảnh hưởng trực tiếp đến độ chính xác (ánh sáng, tuổi tác, góc chụp, biểu cảm, sự che khuất).
  • Phân loại 4 nhóm tiếp cận chính: dựa trên tri thức, dựa trên đặc trưng không đổi, dựa trên so khớp mẫu và dựa trên diện mạo.
  • Trình bày kiến thức cơ bản về ảnh số, cấu trúc ma trận điểm ảnh $F(i,j)$, các không gian biểu diễn màu (RGB, YUV, TLS, XYZ), nguyên lý chuyển đổi không gian màu xám và các phương pháp phân ngưỡng toàn cục, phân ngưỡng thích nghi.

Chương 3: Phương pháp đề nghị

Đi sâu vào nguyên lý chi tiết của hai giải thuật cốt lõi:

  • Thuật toán Viola-Jones: Phân tích kỹ thuật chuyển đổi ảnh tích phân để tính tổng vùng chữ nhật với 4 phép tra cứu; mô tả chi tiết 3 nhóm đặc trưng Haar-like (cạnh, đường, tâm); cấu trúc phân tầng kết hợp các bộ phân loại yếu AdaBoost để tối ưu hóa thời gian phát hiện.
  • Biểu diễn thưa thớt (Sparse Representation): Trình bày cơ sở toán học của lý thuyết lấy mẫu tập trung (Compressed Sensing), phân loại các kỹ thuật biểu diễn thưa thớt (dựa trên mẫu nguyên sơ, từ điển học, xấp xỉ tham lam, tối ưu hóa khoảng cách), và thuật toán phân loại SRC giải bài toán giảm thiểu chuẩn $\ell_1$ để xác định danh tính khuôn mặt qua cơ sở dữ liệu mẫu chuẩn AR (gồm 700 ảnh từ 100 cá nhân).

Chương 4: Thiết kế hệ thống

Xây dựng kiến trúc tổng thể của hệ thống nhận dạng:

  • Thiết lập sơ đồ khối chức năng và lưu đồ thuật toán từ khâu thu thập ảnh đến nhận dạng kết quả.
  • Chi tiết hóa thuật toán tiền xử lý chuyển đổi màu sang mức xám và trích xuất đặc trưng hạ mẫu (down-sampling).
  • Thiết kế giao diện đồ họa người dùng MATLAB GUI với đầy đủ các khối chức năng (Push Button, Axes, Slider, Radio Button, Edit Text).

Chương 5: Kết quả thực hiện

Trình bày các kết quả thực nghiệm đạt được trên phần mềm:

  • Thực hiện hai phương thức tạo dữ liệu ảnh đầu vào: (1) Chụp ảnh trực tiếp từ webcam/camera hiển thị ngay trên giao diện; (2) Chạy thuật toán phát hiện và lưu một loạt ảnh đã cắt vào thư mục cơ sở dữ liệu.
  • Minh chứng quá trình quét ảnh kiểm tra, giải thuật toán phân loại và xuất kết quả ảnh nhận dạng chính xác tương ứng trên giao diện đồ họa.

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

Đánh giá tổng kết các kết quả đạt được về mặt thuật toán và giao diện phần mềm; chỉ ra các điểm còn hạn chế trong việc quản lý tệp tin và phạm vi ứng dụng thực tế; đề xuất các hướng nghiên cứu hoàn thiện trong tương lai.


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

Kết quả nghiên cứu chính

  • Xây dựng thành công ứng dụng nhận dạng khuôn mặt hoàn chỉnh trên môi trường MATLAB GUI, tích hợp liên hoàn các khâu từ thu nhận ảnh, phát hiện khuôn mặt, tiền xử lý đến phân loại danh tính.
  • Ứng dụng hiệu quả thuật toán Viola-Jones cho phép phát hiện chính xác vị trí khuôn mặt trong khung hình thông qua các đặc trưng Haar-like và cấu trúc phân tầng AdaBoost.
  • Triển khai thành công thuật toán phân loại dựa trên biểu diễn thưa thớt (SRC), giải bài toán tối ưu hóa chuẩn $\ell_1$ bằng hàm quy hoạch tuyến tính linprog trong MATLAB, cho phép so khớp và nhận dạng chính xác khuôn mặt từ cơ sở dữ liệu huấn luyện.
  • Cung cấp hai cơ chế thu thập dữ liệu đầu vào linh hoạt: chụp ảnh trực tiếp tại chỗ qua webcam và nạp tệp ảnh kiểm tra định dạng .tif / .jpg từ bộ nhớ máy tính.

Đóng góp về mặt học thuật và kỹ thuật

  • Hệ thống hóa toàn diện cơ sở toán học của lý thuyết lấy mẫu tập trung (Compressed Sensing) và biểu diễn thưa thớt, chứng minh tính ưu việt của phương pháp tối ưu hóa chuẩn $\ell_1$ so với các định lý lấy mẫu cổ điển (Shannon, Nyquist) trong bài toán phân loại ảnh khuôn mặt bị biến đổi hoặc nhiễu.
  • Hiện thực hóa lý thuyết toán học phức tạp thành module chương trình cụ thể, có giao diện đồ họa trực quan giúp đơn giản hóa quá trình kiểm thử và đánh giá thuật toán.

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

Hạn chế kỹ thuật

  • Hệ thống mới dừng lại ở quy mô thử nghiệm thuật toán trên phần mềm máy tính, chưa được đóng gói thành sản phẩm ứng dụng hoàn chỉnh ngoài thực tế.
  • Cơ chế quản lý thư mục dữ liệu còn đơn giản: trong quá trình vận hành, người dùng phải tạo thư mục mới thủ công khi chụp loạt ảnh, nếu không tệp ảnh mới sẽ ghi đè lên tệp ảnh cũ và làm mất dữ liệu huấn luyện trước đó.
  • Khả năng nhận dạng chủ yếu tập trung vào các ảnh chụp đơn khuôn mặt ở góc nhìn chính diện, chưa mở rộng đánh giá đầy đủ trong điều kiện góc nghiêng lớn hoặc có sự biến động phức tạp về biểu cảm và phụ kiện che khuất.

Hướng phát triển đề xuất

  • Nghiên cứu kết hợp thêm các thuật toán nhận dạng hiện đại nhằm nâng cao độ chính xác tổng thể.
  • Mở rộng phạm vi nghiên cứu để tối ưu hóa và chuyển giao chương trình hoạt động trên các kit phần cứng nhúng (Embedded Kits).
  • Hoàn thiện khâu tiền xử lý ảnh thông qua việc ứng dụng các giải thuật dò biên nâng cao và cải tiến bộ lọc khử nhiễu.
  • Nghiên cứu và tích hợp thêm các phương pháp học máy và trí tuệ nhân tạo mới như Máy vector hỗ trợ (SVM - Support Vector Machine) hoặc Mạng nơ-ron lan truyền ngược (Backpropagation Neural Network) để so sánh hiệu năng với phương pháp biểu diễn thưa thớt.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo có giá trị chuyên môn cao đối với:

  • Sinh viên ngành Kỹ thuật Điện tử, Điện tử Công nghiệp, Cơ điện tử và Công nghệ Thông tin: Tham khảo cấu trúc triển khai một đề tài xử lý ảnh ứng dụng, từ thiết lập cơ sở toán học đến lập trình thực nghiệm.
  • Người nghiên cứu về Thị giác máy tính và Học máy: Đáng tham khảo chi tiết tại Chương 3 về nguyên lý chuyển đổi ảnh tích phân trong thuật toán Viola-Jones và mô hình giải bài toán tối ưu chuẩn $\ell_1$ trong biểu diễn thưa thớt (SRC).
  • Lập trình viên MATLAB: Tham khảo mã nguồn tại Chương 4 và Phụ lục về kỹ thuật xây dựng giao diện người dùng GUIDE, kỹ thuật tiền xử lý ma trận ảnh và cú pháp giải quy hoạch tuyến tính với hàm linprog.

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

1. Thuật toán Viola-Jones trong đồ án sử dụng các kỹ thuật nào để tối ưu tốc độ phát hiện khuôn mặt?
Thuật toán Viola-Jones sử dụng 3 kỹ thuật chính: (1) Biến đổi ảnh đầu vào thành "Ảnh tích phân" (Integral Image) giúp tính tổng mức xám của bất kỳ vùng chữ nhật nào chỉ bằng 4 phép cộng/trừ tại các điểm góc; (2) Trích xuất các đặc trưng Haar-like (cạnh, đường, xung quanh tâm); (3) Sử dụng thuật toán AdaBoost kết hợp nhiều bộ phân loại yếu thành bộ phân loại mạnh theo mô hình phân tầng (Cascaded classifier) để loại bỏ nhanh chóng các vùng không chứa khuôn mặt.

2. Bản chất toán học của thuật toán nhận dạng khuôn mặt dựa trên biểu diễn thưa thớt (SRC) trong đồ án là gì?
Bản chất của SRC là xem ảnh kiểm tra $y$ như một tổ hợp tuyến tính của tất cả các ảnh mẫu trong tập huấn luyện $A$ kết hợp với vector sai số thưa thớt. Thuật toán giải bài toán tối ưu hóa chuẩn $\ell_1$ ($\hat{x}_1 = \arg\min |x|_1$ với điều kiện $Ax = y$) nhằm tìm ra vector hệ số thưa thớt $x_1$. Sau đó, hệ thống tính sai số dư $r_i(y) = |y - A \delta_i(\hat{x}_1)|_2$ cho từng lớp đối tượng; lớp nào có sai số dư nhỏ nhất sẽ được xác định là danh tính của khuôn mặt.

3. Hàm nào trong MATLAB được sử dụng để giải bài toán tối ưu chuẩn $\ell_1$ và cách thiết lập tham số ra sao?
Tác giả sử dụng hàm quy hoạch tuyến tính linprog trong MATLAB để giải bài toán tối ưu $\ell_1$. Trong tệp điều khiển giao diện (gui.m), hàm được thiết lập với các đối số: vector mục tiêu $f = \text{ones}(2n, 1)$, ma trận ràng buộc đẳng thức $Aeq = [A, -A]$, vector vế phải $y$ (là vector ảnh kiểm tra đã hạ mẫu), và chặn dưới $lb = \text{zeros}(2n, 1)$ theo cú pháp: x1 = linprog(f, [], [], Aeq, y, lb, [], [], []);

4. Khâu tiền xử lý dữ liệu ảnh trước khi đưa vào khối nhận dạng bao gồm những bước xử lý cụ thể nào?
Ảnh đầu vào sau khi được chụp từ webcam hoặc nạp từ file sẽ đi qua các bước tiền xử lý: (1) Kiểm tra số chiều dữ liệu, nếu là ảnh màu 3 kênh thì chuyển sang ảnh xám bằng hàm rgb2gray; (2) Hạ kích thước mẫu (down-sampling) về kích thước chuẩn $[m1 \times n1]$ thông qua hàm imresize; (3) Chuyển đổi ma trận ảnh 2 chiều sau khi hạ mẫu thành một vector cột đơn $y = \text{Test_Image_Down_Sampled}(:)$ để làm đầu vào cho bài toán tối ưu.

5. Điểm hạn chế chính của phần mềm trong việc lưu trữ tệp ảnh chụp được tác giả chỉ ra là gì?
Hạn chế của phần mềm là cơ chế quản lý tệp còn đơn giản: trong quá trình chạy, người dùng phải chủ động tạo thư mục mới để lưu ảnh; nếu không tạo thư mục mới thì khi chụp loạt ảnh tiếp theo, chương trình sẽ tự động ghi đè lên các tệp ảnh đã chụp trước đó, dẫn đến việc mất mát các dữ liệu ảnh cũ.


Kết luận

Đồ án tốt nghiệp "Ứng dụng xử lý ảnh trong nhận diện khuôn mặt" của tác giả Bùi Thị Thanh Tuyền đã hoàn thành đầy đủ các mục tiêu nghiên cứu đặt ra về mặt lý thuyết và thực nghiệm kỹ thuật. Tác giả đã kết hợp thành công thuật toán phát hiện đối tượng thời gian thực Viola-Jones với mô hình phân loại biểu diễn thưa thớt (SRC) dựa trên tối ưu hóa chuẩn $\ell_1$. Hệ thống được cài đặt hoàn chỉnh trên môi trường MATLAB với giao diện đồ họa trực quan, cho phép chụp ảnh trực tiếp và nhận diện danh tính khuôn mặt chính xác dựa trên cơ sở dữ liệu huấn luyện. Kết quả nghiên cứu là nền tảng kỹ thuật hữu ích để tiếp tục mở rộng, tối ưu hóa thuật toán và phát triển ứng dụng trên các hệ thống nhúng trong tương lai.