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

Nhận diện khuôn mặt (Face Recognition) là một lĩnh vực nghiên cứu trọng tâm thuộc Thị giác máy tính (Computer Vision) và Sinh trắc học (Biometrics), song song với các phương thức nhận dạng sinh trắc học khác như vân tay (Fingerprint Recognition) hay mống mắt (Iris Recognition). Ưu thế vượt trội của nhận dạng khuôn mặt nằm ở nguồn dữ liệu thu thập phong phú (từ hình ảnh tĩnh, luồng video, hệ thống camera giám sát) và khả năng thu nhận dữ liệu đầu vào tự nhiên, không đòi hỏi sự hợp tác hay tương tác có kiểm soát nghiêm ngặt từ người dùng như quét vân tay hay mống mắt.

Về mặt học thuật, các phương pháp nhận dạng khuôn mặt hiện nay được phân loại thành ba hướng tiếp cận chính:

  • Phương pháp tiếp cận toàn cục (Global): Điển hình là Principal Component Analysis (PCA/Eigenfaces) và Linear Discriminant Analysis (LDA/Fisherfaces).
  • Phương pháp tiếp cận dựa trên đặc điểm cục bộ (Local Feature Based): Ứng dụng các thuật toán như Local Binary Patterns (LBP) hoặc Gabor wavelets.
  • Phương pháp tiếp cận lai (Hybrid): Kết hợp đồng thời các đặc trưng toàn cục và đặc trưng cục bộ nhằm tối ưu hóa độ chính xác.

Các ứng dụng thực tế của nhận dạng khuôn mặt được triển khai dựa trên hai mô hình bài toán:

  • Bài toán xác định danh tính (Identification - mô hình 1:N): Đối chiếu một ảnh kiểm tra đầu vào với cơ sở dữ liệu gồm $N$ đối tượng để tìm ra danh tính tương ứng.
  • Bài toán xác thực danh tính (Verification - mô hình 1:1): Kiểm tra xem ảnh đầu vào có khớp với danh tính của một đối tượng cụ thể hay không.

Mặc dù kỹ thuật nhận diện khuôn mặt đã có nhiều bước tiến, đa số các mô hình và thuật toán hiện hành đều được xây dựng, huấn luyện và tối ưu hóa dựa trên tập dữ liệu khuôn mặt không đeo kính. Trong thực tế, tỷ lệ người đeo kính trong cộng đồng chiếm tỷ lệ rất cao. Mắt kính—đặc biệt là các loại gọng dày—che khuất các đặc trưng sinh trắc học quan trọng xung quanh vùng mắt, làm giảm sút đáng kể độ chính xác của hệ thống nhận diện. Do đó, bài toán phát hiện và loại bỏ mắt kính, tái tạo lại vùng khuôn mặt bị che khuất là một bước tiền xử lý thiết yếu nhằm nâng cao hiệu năng nhận dạng.

Khóa luận tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính (chuyên ngành Hệ thống Nhúng và Robotic) của hai tác giả Hoàng Thị Bích Liễu và Phạm Thanh Đạt tại Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM (2021), dưới sự hướng dẫn của TS. Đoàn Duy, tập trung giải quyết trọn vẹn bài toán này.

Mục tiêu tổng quát: Tìm hiểu phương pháp nhận biết và loại bỏ mắt kính trên khuôn mặt, phục vụ cho bài toán nhận dạng khuôn mặt người.

Nhiệm vụ nghiên cứu cụ thể (được đánh số theo văn bản):

  1. Nhận biết mắt kính trên ảnh khuôn mặt người.
  2. Loại bỏ mắt kính trên ảnh khuôn mặt.
  3. Phục hồi ảnh khuôn mặt không có kính.
  4. Xây dựng được mô hình thực nghiệm với ảnh thực thông qua chương trình demo.

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

  • Đối tượng nghiên cứu: Các phương pháp xác định vị trí khuôn mặt người, các giải thuật xử lý ảnh phát hiện và loại bỏ mắt kính, cùng các kỹ thuật phục hồi ảnh khuôn mặt.
  • Phạm vi và giới hạn đề tài:
    • Tập dữ liệu thử nghiệm gồm 500 hình ảnh trực diện khuôn mặt có đeo kính (loại kính cận có viền cỡ vừa màu đen) và khuôn mặt không đeo kính.
    • Tỷ lệ số lượng hình ảnh loại bỏ được viền mắt kính khỏi khuôn mặt người đạt trên 70% trong tổng số 500 ảnh thử nghiệm.
    • Tỷ lệ phục hồi ảnh khuôn mặt người sau khi loại bỏ mắt kính đạt trên 80% so với ảnh khuôn mặt người không đeo kính (đánh giá trên tập dữ liệu ảnh tự chụp).
    • Triển khai xây dựng chương trình thực nghiệm (demo) với giao diện người dùng đơn giản.

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

Tổng quan các công trình nghiên cứu liên quan

Tác giả đã tiến hành khảo cứu có hệ thống các công trình nghiên cứu trong và ngoài nước liên quan đến bài toán:

  • Yuan-Kai Wang (2010): Đề xuất giải pháp loại bỏ kính mắt dựa trên mô hình hình dạng chủ động (Active Appearance Model - AAM) để định vị vùng mắt kính, kết hợp mô hình hình elip để khớp vị trí mắt. Sau đó, tác giả sử dụng phương pháp ngưỡng thích ứng (Adaptive Threshold) để trích xuất chính xác các vùng biên còn sót lại và áp dụng kỹ thuật bù lỗi lặp lại (Iterative Error Compensation) để tổng hợp ảnh khuôn mặt không kính.
  • Chengyu Wu và cộng sự (2004): Xây dựng hệ thống tự động loại bỏ kính mắt qua ba bước: nhận dạng kính mắt bằng bộ phân loại, định vị mắt kính bằng chuỗi Markov Chain Monte Carlo, và tái tạo ảnh bằng phương pháp phân tích thành phần chính (PCA). Tuy nhiên, hạn chế lớn của nghiên cứu này là chỉ áp dụng cho ảnh đen trắng.
  • GiangPham (2019): Công bố giải pháp Glasson ứng dụng cho sản phẩm kính mắt dùng thử ảo. Nghiên cứu thực nghiệm so sánh giữa mô hình mạng nơ-ron Encoder/Decoder (U-Net) và mạng đối nghịch tạo sinh (Generative Adversarial Networks - GAN với Pix2Pix model). Kết quả chỉ ra U-Net kết hợp cấu trúc ResNet và cơ chế Attention mang lại chất lượng phục hồi hình ảnh vượt trội.
  • Các nghiên cứu trong nước: Điển hình là công nghệ nhận diện khuôn mặt khi đeo khẩu trang của Viện Nghiên cứu Trí tuệ Nhân tạo VinAI Research (2020) dựa trên học sâu (Deep Learning), và hệ thống camera chống trộm ứng dụng nhận dạng khuôn mặt của ThS. Mai Xuân Phú (2017). Tác giả nhận định các nghiên cứu trong nước về phát hiện và loại bỏ kính mắt còn rất hạn chế.

Cơ sở lý thuyết xử lý ảnh và các giải thuật sử dụng

Khóa luận vận dụng các thuật toán xử lý ảnh kinh điển tích hợp trong thư viện OpenCV:

  1. Module Haar Cascade: Dựa trên các đặc trưng Haar (Edge Features, Line Features, Four-rectangle Features) và cấu trúc tầng (cascade) để quét qua cửa sổ trượt, tận dụng sự chênh lệch cường độ sáng giữa các vùng đặc trưng trên mặt (như vùng mắt luôn tối hơn vùng má, sống mũi sáng hơn vùng mắt) để xác định tọa độ khuôn mặt.
  2. Chuyển đổi mức xám (Grayscale Convert): Chuyển đổi không gian màu RGB 3 kênh thành ma trận đơn kênh theo công thức chuẩn của Michael Stokes và cộng sự: $$Y = 0.299R + 0.587G + 0.114B$$ Trong OpenCV, thao tác này được thực thi thông qua hàm cvtColor với tham số CV_BGR2GRAY hoặc đọc trực tiếp bằng cờ CV_LOAD_IMAGE_GRAYSCALE.
  3. Kỹ thuật trích xuất vùng quan tâm (ROI - Region Of Interest): Tạo mặt nạ nhị phân để giới hạn phạm vi tính toán, tiết kiệm tài nguyên xử lý.
  4. Phép tích chập 2 chiều (2D Convolution): Cơ chế trượt ma trận kernel kích thước cố định qua từng điểm ảnh để tính toán giá trị mới cho điểm ảnh đích.
  5. Các bộ lọc làm mờ ảnh (Low Pass Filter - LPF): Nhằm khử nhiễu tần số cao trước khi trích xuất cạnh. Đề tài khảo sát 4 bộ lọc:
    • Averaging Filter (Bộ lọc trung bình): Lấy giá trị trung bình các điểm ảnh lân cận trong cửa sổ trượt.
    • Gaussian Filter (Bộ lọc Gauss): Gán trọng số điểm ảnh phụ thuộc vào khoảng cách không gian tới điểm trung tâm thông qua Gaussian kernel và hệ số độ lệch chuẩn $\sigma$.
    • Median Filter (Bộ lọc trung vị): Lấy giá trị trung vị của cửa sổ trượt, có hiệu quả khử nhiễu muối tiêu (salt and pepper noise).
    • Bilateral Filter (Bộ lọc hai chiều): Kết hợp giữa khoảng cách hình học và sự tương đồng mức xám trong không gian màu CIE-Lab, giúp làm mịn ảnh mà không làm nhòe cạnh biên.
  6. Các toán tử trích xuất cạnh biên:
    • Toán tử Laplacian & Laplacian of Gaussian (LoG): Đạo hàm bậc hai đẳng hướng đo độ thay đổi gradient: $$\text{LoG}(x,y) = -\frac{1}{\pi\sigma^4} \left[ 1 - \frac{x^2+y^2}{2\sigma^2} \right] e^{-\frac{x^2+y^2}{2\sigma^2}}$$
    • Toán tử Sobel-Feldman: Sử dụng hai ma trận kernel $3 \times 3$ ($G_x$ và $G_y$) để xấp xỉ đạo hàm theo phương ngang và dọc, tính độ lớn gradient $G = \sqrt{G_x^2 + G_y^2}$ và hướng gradient $\theta = \arctan(G_y / G_x)$.
    • Thuật toán Canny Edge Detection: Giải thuật dò cạnh biên đa bước tối ưu.
    • Phương pháp phát hiện cạnh cắt ngang (Zero-crossing): Định vị các điểm mà giá trị LoG chuyển tiếp qua mức 0 để xác định ranh giới biên độ thay đổi cường độ.
    • Xử lý hình thái học (Morphological Operations): Phép xói mòn (Erosion) và giãn nở (Dilation) để triệt tiêu các đường viền nhỏ gây nhiễu.
  7. Nội suy tuyến tính phục hồi điểm ảnh: Thay thế các điểm ảnh thuộc vùng mắt kính bị loại bỏ bằng công thức nội suy giữa hai điểm cận biên $P_1$ và $P_2$: $$P(i) = P_1 + \frac{i}{n} \times (P_2 - P_1)$$
Thuật toán / Kỹ thuật Vai trò trong quy trình xử lý Đặc tính kỹ thuật chính
Haar Cascade Định vị khuôn mặt người Sử dụng bộ lọc chữ nhật đa tầng, phân tích độ chênh lệch sáng tối
Grayscale Convert Tiền xử lý ảnh Gom 3 kênh màu RGB về ma trận xám đơn kênh ($0.299R + 0.587G + 0.114B$)
Gaussian Blur Khử nhiễu cục bộ trên vùng GCR Bộ lọc thông thấp LPF, làm mờ dựa trên hàm mật độ Gauss
Canny Edge Detection Dò tìm đường biên mắt kính Lọc cạnh biên tối ưu, làm nổi bật đường viền gọng kính
Erosion & Dilation Tinh chỉnh đường bao biên Xóa các đường viền mảnh/nhiễu, làm liền nét đường gọng kính chính
Linear Interpolation Khôi phục màu da tại vùng bị che Quét dọc, nội suy cường độ màu giữa 2 điểm cận biên $P_1$ và $P_2$

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

Quy trình xử lý giải thuật đề xuất

Giải pháp phát hiện và loại bỏ mắt kính được thiết kế qua một quy trình tuần tự khép kín:

  1. Tiếp nhận ảnh đầu vào và phát hiện khuôn mặt: Hệ thống nhận ảnh đầu vào từ người dùng và kích hoạt module Haar Cascade. Nếu không tìm thấy khuôn mặt, hệ thống trả về thông báo lỗi "không có khuôn mặt người". Nếu phát hiện khuôn mặt, tọa độ vùng mặt được trích xuất.
  2. Chuyển đổi ảnh mức xám: Ảnh khuôn mặt được chuyển về ảnh xám để phục vụ tính toán ma trận đơn kênh.
  3. Xác định vùng nhận dạng mắt kính (Glass Covered Region - GCR): Khuôn mặt đã xác định được chia thành 4 phần bằng nhau theo chiều dọc. Vùng GCR được xác định chính là phần thứ 2 tính từ trên xuống (vùng chứa mắt và kính).
  4. Làm mờ và lọc biên: Vùng GCR được xử lý làm mờ bằng Gaussian Blur để triệt tiêu nhiễu tần số cao, sau đó áp dụng thuật toán Canny Edge Detection để bắt các đường biên cạnh.
  5. Phân loại có/không đeo kính bằng diện tích đường viền (Contour Area): Tính toán diện tích bao quanh các đường biên trong vùng GCR. Dựa trên kết quả thực nghiệm, hệ thống thiết lập ngưỡng phân loại $950\text{ mm}^2$:
    • $\text{Contour Area} \le 950\text{ mm}^2$: Xác định là khuôn mặt không đeo kính.
    • $\text{Contour Area} > 950\text{ mm}^2$: Xác định khuôn mặt có đeo kính và chuyển sang bước xử lý tiếp theo.
  6. Xác định ROI viền mắt kính:
    • Áp dụng kỹ thuật Xói mòn (Erosion) và Giãn nở (Dilation) trên các đường biên Canny để loại bỏ nhiễu đường viền vụn.
    • Tìm kiếm đường viền ngoài (Outer frame) và đường viền trong (Inner frame) của mắt kính.
    • Lấy hiệu số giữa Outer frame và Inner frame để thu được tọa độ chính xác của các điểm ảnh thuộc gọng kính (tạo mặt nạ ROI).
  7. Loại bỏ mắt kính và tái tạo ảnh khuôn mặt:
    • Bước 1: Quét ảnh theo chiều dọc qua vùng ROI để xác định các điểm ảnh cận biên trên ($P_1$) và cận biên dưới ($P_2$) không thuộc mắt kính.
    • Bước 2: Tính toán khoảng cách chênh lệch giữa các cặp điểm $P_1, P_2$ về cường độ sáng và số lượng pixel $n$.
    • Bước 3: Áp dụng công thức nội suy $P(i) = P_1 + \frac{i}{n}(P_2 - P_1)$ để sinh ra các điểm ảnh màu trung gian tương đồng với vùng da xung quanh.
    • Bước 4: Ghi đè các điểm ảnh tính toán được vào vị trí của ROI trên ảnh màu ban đầu.

Môi trường và công nghệ triển khai

  • Hệ điều hành: Microsoft Windows 10.
  • Ngôn ngữ lập trình: C++. Tác giả giải thích ban đầu dự kiến sử dụng Python, nhưng sau đó quyết định lựa chọn C++ do ngôn ngữ này có hiệu năng tính toán cao, tiết kiệm bộ nhớ, hỗ trợ tối ưu các bài toán xử lý ảnh thời gian thực và tương thích sâu với thư viện OpenCV.
  • Công cụ và Thư viện hỗ trợ:
    • OpenCV (sử dụng các module: core, imgproc, highgui, objdetect).
    • Trình biên dịch MinGW (x86_64-w64-mingw32).
    • Hệ thống build tự động CMake.
  • Chương trình thực nghiệm (Demo GUI): Giao diện đồ họa đơn giản được thiết kế trên cửa sổ MainWindow gồm hai khu vực hiển thị hình ảnh (Input và Output), nút chức năng Choose an image (đọc ảnh đầu vào) và nút Execute (thực thi chuỗi giải thuật phát hiện, loại bỏ kính và xuất ảnh kết quả).

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

Chương 1: [Tổng quan và Giới hạn đề tài]

Chương này thiết lập cơ sở khoa học và thực tiễn của đề tài. Tác giả trình bày chi tiết khái niệm nhận diện khuôn mặt trong Computer Vision và Biometrics, đối chiếu ưu - nhược điểm giữa nhận dạng mặt với nhận dạng vân tay và mống mắt. Chương 1 định nghĩa rõ hai bài toán Identification (1:N) và Verification (1:1), chỉ ra điểm nghẽn của các giải pháp hiện tại khi đối mặt với khuôn mặt có kính mắt. Tác giả xác lập rõ 4 nhiệm vụ nghiên cứu, 3 đối tượng nghiên cứu và giới hạn thực nghiệm trên tập 500 ảnh trực diện kính cận gọng đen cỡ vừa với các chỉ tiêu định lượng cụ thể (>70% loại bỏ gọng kính, >80% phục hồi khuôn mặt).

Chương 2: Tình hình nghiên cứu liên quan

Chương 2 tổng hợp bức tranh toàn cảnh về các công trình nghiên cứu trong và ngoài nước:

  • Phân tích chi tiết các kỹ thuật quốc tế: Phương pháp AAM kết hợp Adaptive Threshold và Bù lỗi lặp lại của Yuan-Kai Wang (2010); Mô hình PCA kết hợp Markov Chain Monte Carlo của Chengyu Wu (2004); Mô hình học sâu U-Net, ResNet và GAN Pix2Pix của GiangPham (2019) trong ứng dụng kính mắt ảo Glasson.
  • Khảo sát các nghiên cứu trong nước: Công nghệ nhận diện khuôn mặt khi đeo khẩu trang của VinAI Research (2020) và hệ thống camera an ninh của Mai Xuân Phú (2017).
  • Đúc kết vấn đề còn tồn tại: Các nghiên cứu trước đa phần giới hạn trên ảnh đen trắng, đòi hỏi khắt khe về thời gian đáp ứng (1–5 giây) và độ chính xác (95–99%), trong khi nghiên cứu trong nước về nhận dạng và loại bỏ kính mắt còn bỏ ngỏ.

Chương 3: Nội dung nghiên cứu

Chương 3 là phần trọng tâm mô tả toàn bộ giải pháp kỹ thuật đề xuất của nhóm tác giả:

  • Trình bày lưu đồ giải pháp tổng thể từ ảnh đầu vào đến ảnh đầu ra không kính.
  • Mô tả chi tiết kỹ thuật xác định khuôn mặt bằng Haar Cascade, chuyển đổi sang ảnh xám qua công thức Michael Stokes, và phương pháp chia 4 góc dọc để khoanh vùng GCR ở phần thứ 2.
  • Trình bày quy trình làm mờ GCR bằng Gaussian Blur và dò biên bằng Canny.
  • Công bố kết quả phân tích ngưỡng diện tích đường viền $\text{Contour Area} = 950\text{ mm}^2$ trên tập 500 ảnh.
  • Mô tả kỹ thuật xói mòn/giãn nở để trích xuất Outer frame và Inner frame, tính hiệu số hai viền để lấy ROI tọa độ mắt kính.
  • Trình bày thuật toán quét dọc 4 bước và công thức nội suy tuyến tính $P(i) = P_1 + \frac{i}{n}(P_2 - P_1)$ để thay thế pixel gọng kính.
  • Giới thiệu sơ đồ xây dựng chương trình demo, giao diện đồ họa MainWindow và hướng dẫn cài đặt môi trường C++, CMake, MinGW.

Chương 4: Thư viện xử lý ảnh OpenCV

Chương 4 hệ thống hóa nền tảng lý thuyết toán học và các hàm xử lý ảnh cốt lõi trong OpenCV:

  • Giới thiệu tổng quan OpenCV, giấy phép BSD, các module chức năng chính (core, imgproc, objdetect, calib3d, ml, gpu).
  • Lý do lựa chọn ngôn ngữ C++ (tính gần phần cứng, hiệu năng cao, tối ưu thời gian thực).
  • Phân tích chi tiết module Haar Cascade, cơ chế cửa sổ trượt và các bộ lọc đặc trưng Haar.
  • Trình bày phép biến đổi Grayscale và các phương thức thực thi trong OpenCV (CV_LOAD_IMAGE_GRAYSCALE, cvtColor).
  • Định nghĩa vùng quan tâm (ROI), mặt nạ nhị phân ngưỡng 128 và phép nhân từng phần tử.
  • Lý thuyết tích chập 2D Convolution.
  • So sánh 4 giải thuật làm mờ ảnh (Averaging, Gaussian, Median, Bilateral).
  • Lý thuyết toán học của bộ lọc Laplacian ($\nabla^2 I$), toán tử LoG (Laplacian of Gaussian), phản ứng LoG trên bước cạnh và phương pháp phát hiện cạnh cắt ngang (Zero-crossing).
  • Lý thuyết toán tử Sobel-Feldman: cấu trúc kernel $3 \times 3$, công thức tính độ lớn $G$ và hướng gradient $\theta$, biểu diễn góc gradient trên vòng tròn mức xám.

Chương 5: Kết quả thực nghiệm

Chương 5 trình bày cơ sở dữ liệu và đánh giá kết quả:

  • Thống kê cơ sở dữ liệu thực nghiệm gồm 500 ảnh khuôn mặt trực diện.
  • Đánh giá khả năng xử lý trên các kịch bản đầu vào: trường hợp ảnh có kính nhưng không có khuôn mặt người, trường hợp có khuôn mặt người nhưng không có kính, và trường hợp có cả mặt và kính.
  • Đo đạc tỷ lệ phục hồi hình ảnh vùng mắt sau khi loại bỏ gọng kính.

Chương 6: [Kết luận và] Hướng phát triển của đề tài

Chương 6 tổng kết các kết quả đạt được của đề tài, đánh giá mức độ hoàn thành so với mục tiêu và giới hạn đặt ra ban đầu, đồng thời vạch ra các hướng mở rộng nghiên cứu trong tương lai.


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

Kết quả định lượng và thực nghiệm chính

  • Xác lập ngưỡng nhận diện kính mắt: Qua thực nghiệm trên bộ dữ liệu 500 ảnh, đề tài đã tìm ra và kiểm chứng ngưỡng diện tích đường viền (Contour Area) chuẩn xác ở mức $950\text{ mm}^2$. Giá trị này đóng vai trò là ranh giới phân loại nhị phân đáng tin cậy giữa khuôn mặt có đeo kính ($> 950\text{ mm}^2$) và không đeo kính ($\le 950\text{ mm}^2$).
  • Hiệu quả loại bỏ gọng kính: Hệ thống đáp ứng mục tiêu loại bỏ thành công viền mắt kính trên $70%$ tập dữ liệu thử nghiệm 500 ảnh trực diện đối với loại kính cận viền cỡ vừa màu đen.
  • Chất lượng phục hồi khuôn mặt: Tỷ lệ khôi phục màu sắc và cấu trúc khuôn mặt sau khi xóa bỏ kính đạt trên $80%$ so với ảnh gốc không đeo kính trên tập dữ liệu ảnh tự chụp.
  • Xây dựng hoàn chỉnh phần mềm demo: Ứng dụng độc lập viết bằng C++/OpenCV cho phép nạp ảnh và thực thi tự động quy trình nhận diện, bóc tách và tái tạo vùng mắt với tốc độ xử lý nhanh.

Đóng góp học thuật và thực tiễn

  • Đề tài là một trong những công trình nghiên cứu thực nghiệm tiên phong trong nước tập trung chuyên biệt vào bài toán phát hiện và loại bỏ mắt kính trên ảnh khuôn mặt.
  • Cung cấp một quy trình kết hợp giải thuật hình thái học và xử lý ảnh truyền thống (Haar Cascade + Gaussian Blur + Canny Edge + Erosion/Dilation + Linear Interpolation) có cấu trúc mạch lạc, chi phí tính toán thấp, không đòi hỏi phần cứng huấn luyện phức tạp như các mạng học sâu lớn.
  • Mở ra khả năng ứng dụng thực tế trong các hệ thống kiểm soát an ninh công cộng, xác thực truy cập, hệ thống thử kính ảo trong thời trang - bán lẻ và hỗ trợ y tế.

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

Hạn chế của đề tài

  • Phạm vi kiểu dáng mắt kính: Giải thuật chỉ mới thử nghiệm và đạt độ chính xác cao trên loại kính cận có viền cỡ vừa màu đen; chưa xử lý tốt các loại kính không viền, kính gọng kim loại mảnh, kính thời trang nhiều màu sắc hoặc kính râm/kính màu tối che khuất hoàn toàn đồng tử.
  • Góc chụp và tư thế khuôn mặt: Quy trình nhận diện và xác định GCR (chia 4 phần cố định) chỉ áp dụng cho ảnh chụp trực diện khuôn mặt thẳng đứng; chưa thích ứng được với khuôn mặt nghiêng, quay góc lớn hoặc bị che khuất một phần bởi các vật thể khác.
  • Phương pháp phục hồi pixel: Việc sử dụng phương pháp quét dọc kết hợp nội suy tuyến tính giữa 2 điểm cận biên $P_1, P_2$ còn đơn giản, trong một số trường hợp viền kính dày có thể để lại vệt mờ hoặc chưa tái tạo tự nhiên được nếp nhăn và kết cấu da phức tạp quanh bọng mắt.

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

  • Mở rộng thuật toán để nhận dạng và xử lý đa dạng các loại mắt kính (kính gọng trong suốt, gọng kim loại, kính màu, kính có hình dáng gọng phức tạp).
  • Nâng cấp giải thuật định vị vùng kính (GCR) linh hoạt theo các mốc sinh trắc học (Facial Landmarks) thay vì chia tỉ lệ cố định, cho phép xử lý ảnh khuôn mặt ở nhiều góc nghiêng và điều kiện ánh sáng khác nhau.
  • Nghiên cứu tích hợp các mô hình học sâu (Deep Learning) như mạng nơ-ron tích chập (CNN), mạng U-Net kết hợp cơ chế Attention hoặc mạng đối nghịch tạo sinh (GAN) để nâng cao chất lượng tái tạo và nội suy vùng da mắt bị che khuất.

Giá trị tham khảo

Tài liệu khóa luận này là nguồn tham khảo hữu ích cho:

  • Sinh viên và học viên ngành Kỹ thuật Máy tính, Công nghệ Thông tin, Khoa học Máy tính: Đặc biệt là những người bắt đầu nghiên cứu trong lĩnh vực Thị giác máy tính (Computer Vision) và Xử lý ảnh số (Digital Image Processing).
  • Người nghiên cứu các hệ thống Sinh trắc học & Nhận dạng khuôn mặt: Cung cấp tài liệu tham khảo chi tiết về bước tiền xử lý loại bỏ vật cản (occlusion removal) nhằm tối ưu hóa độ chính xác nhận dạng.
  • Lập trình viên C++ và OpenCV: Cung cấp tài liệu tổng hợp rõ ràng, chuẩn xác về mặt toán học và phương thức triển khai thực tế của các giải thuật lọc ảnh (Gaussian, Median, Bilateral), giải thuật phát hiện biên (Sobel, LoG, Canny, Zero-crossing) và cấu hình môi trường phát triển (MinGW, CMake, OpenCV).

Các phần có giá trị tham khảo chuyên sâu nhất trong tài liệu gồm:

  • Toàn bộ nội dung Chương 4 với hệ thống công thức toán học và phân tích chi tiết về các bộ lọc 2D Convolution, Laplacian of Gaussian và toán tử Sobel.
  • Quy trình 4 bước quét dọc và thuật toán nội suy điểm ảnh cận biên trong Chương 3.

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

1. Ngưỡng diện tích đường viền (Contour Area) được xác lập trong khóa luận là bao nhiêu và có ý nghĩa gì?

Khóa luận xác lập ngưỡng diện tích đường viền là $950\text{ mm}^2$ dựa trên kết quả chạy thực nghiệm trên bộ dữ liệu 500 ảnh đầu vào. Ngưỡng này dùng để phân loại trạng thái đeo kính: nếu $\text{Contour Area} > 950\text{ mm}^2$ thì kết luận ảnh có mắt kính; nếu $\text{Contour Area} \le 950\text{ mm}^2$ thì kết luận ảnh không có mắt kính.

2. Vùng nhận dạng mắt kính (GCR - Glass Covered Region) được xác định như thế nào?

Sau khi dùng module Haar Cascade để xác định vị trí khuôn mặt và chuyển sang ảnh mức xám, ảnh khuôn mặt được chia thành 4 phần bằng nhau theo chiều dọc. Vùng GCR được xác định chính là phần thứ 2 tính từ trên xuống, tương ứng với vị trí tự nhiên của mắt và mắt kính trên khuôn mặt.

3. Nguyên lý loại bỏ mắt kính và khôi phục điểm ảnh của nhóm tác giả là gì?

Nhóm tác giả thực hiện quét ảnh theo chiều dọc qua vùng ROI của gọng kính để xác định hai điểm ảnh cận biên ngoài kính là $P_1$ (biên trên) và $P_2$ (biên dưới). Sau đó, các điểm ảnh bị gọng kính che khuất được khôi phục bằng công thức nội suy tuyến tính: $$P(i) = P_1 + \frac{i}{n} \times (P_2 - P_1)$$ với $n$ là khoảng cách pixel giữa $P_1$ và $P_2$.

4. Tại sao nhóm tác giả chuyển đổi từ dự định dùng Python sang lập trình bằng C++?

Ban đầu nhóm dự kiến dùng Python, nhưng sau đó chọn C++ để xây dựng đề tài vì C++ là ngôn ngữ cấp trung gần với phần cứng, cho hiệu năng tính toán cao, tốc độ xử lý nhanh, tiết kiệm bộ nhớ và phù hợp cho việc triển khai các ứng dụng xử lý hình ảnh đòi hỏi yếu tố thời gian thực.

5. Bộ lọc Bilateral Filter có ưu điểm gì vượt trội so với Gaussian Filter được phân tích trong khóa luận?

Trong khi Gaussian Filter chỉ tính toán trọng số dựa trên khoảng cách không gian thuần túy (dẫn đến việc làm nhòe cả các đường biên trong ảnh), Bilateral Filter kết hợp thêm hàm trọng số mức xám và đo đạc màu sắc trong không gian màu CIE-Lab. Nhờ đó, Bilateral Filter vừa loại bỏ được nhiễu vừa bảo toàn nguyên vẹn độ sắc nét của các đường biên cạnh.


Kết luận

Khóa luận tốt nghiệp của Hoàng Thị Bích Liễu và Phạm Thanh Đạt đã xây dựng thành công giải pháp phát hiện và loại bỏ mắt kính trên ảnh khuôn mặt người bằng ngôn ngữ C++ kết hợp thư viện OpenCV. Đề tài đã giải quyết trọn vẹn chuỗi bài toán từ phát hiện khuôn mặt (Haar Cascade), phân vùng GCR, trích xuất biên (Canny, Erosion/Dilation), phân loại bằng ngưỡng diện tích đường viền ($950\text{ mm}^2$) cho đến khôi phục điểm ảnh bằng nội suy tuyến tính. Kết quả thực nghiệm trên tập 500 ảnh đạt tỷ lệ loại bỏ viền kính trên $70%$ và phục hồi khuôn mặt trên $80%$, đóng góp một giải pháp tiền xử lý thiết thực nhằm nâng cao độ chính xác cho các hệ thống nhận dạng khuôn mặt.