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

Trong sự phát triển của công nghệ thông tin và trí tuệ nhân tạo (AI), thị giác máy tính (Computer Vision) đã trở thành một nhánh nghiên cứu quan trọng với khả năng tự động hóa các tác vụ thu nhận, xử lý và phân tích hình ảnh tương tự hệ thống thị giác con người. Các ứng dụng của thị giác máy tính hiện diện sâu rộng trong nhiều lĩnh vực như giám sát an ninh, y tế, giao thông thông minh và giáo dục. Trong đó, bài toán dò tìm và nhận dạng khuôn mặt (Face Detection & Face Recognition) là một trong những bài toán nền tảng, đóng vai trò then chốt trong việc xác thực danh tính và theo dõi đối tượng.

Tuy nhiên, sự gia tăng của các thiết bị ghi hình cùng việc chia sẻ rộng rãi dữ liệu hình ảnh, video trên không gian số kéo theo nhiều nguy cơ về xâm phạm quyền riêng tư và lộ lọt thông tin cá nhân. Nhằm giải quyết yêu cầu kỹ thuật vừa phát hiện chính xác khuôn mặt, vừa bảo vệ tính ẩn danh của các đối tượng trong khung hình, đề tài "Tìm hiểu về thị giác máy tính và xây dựng chương trình dò tìm vị trí khuôn mặt trong ảnh, video và làm mờ" được tác giả Nguyễn Công Minh thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Hải Phòng (năm 2024), dưới sự hướng dẫn của ThS. Nguyễn Thị Lanh.

Nội dung nghiên cứu của đồ án tập trung vào các nhiệm vụ và mục tiêu cụ thể:

  1. Phát triển một hệ thống tự động có khả năng phát hiện và nhận dạng vị trí khuôn mặt người trong cả ảnh tĩnh và chuỗi khung hình video.
  2. Tối ưu hóa hiệu suất hoạt động của chương trình để hướng tới khả năng xử lý dữ liệu trong thời gian thực (real-time) hoặc gần thời gian thực.
  3. Phát triển và tích hợp tính năng làm mờ khuôn mặt tự động dựa trên thuật toán lọc không gian, phục vụ mục đích bảo vệ dữ liệu cá nhân và bảo đảm quyền riêng tư khi chia sẻ truyền thông.

Đối tượng và phạm vi nghiên cứu của đồ án được xác định rõ ràng:

  • Đối tượng nghiên cứu: Các thuật toán, mô hình máy học và thị giác máy tính; hình ảnh và video chứa khuôn mặt con người; các công nghệ xử lý ảnh số bao gồm các phương pháp định vị khuôn mặt và thuật toán làm mờ.
  • Phạm vi nghiên cứu: Khảo sát, so sánh và thực nghiệm các thuật toán phát hiện khuôn mặt phổ biến (Haar Cascade, HOG, Deep Learning); triển khai kỹ thuật làm mờ Gaussian Blur cục bộ trên vùng khuôn mặt phát hiện được; xây dựng và đánh giá ứng dụng phần mềm có giao diện người dùng trên máy tính cá nhân.

Ý nghĩa thực tiễn của đề tài được thể hiện ở hai khía cạnh: phục vụ công tác giám sát an ninh thông qua nhận diện tự động và bảo đảm an toàn thông tin thông qua việc che mờ khuôn mặt tự động trước khi công bố dữ liệu đa phương tiện.


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

Đồ án xây dựng nền tảng lý thuyết dựa trên các nguyên lý cốt lõi của thị giác máy tính, mạng nơ-ron học sâu và các thuật toán xử lý ảnh số:

Khung lý thuyết và mô hình xử lý

  • Mạng nơ-ron tích chập (CNN) và Mạng nơ-ron tái phát (RNN): CNN được sử dụng làm nền tảng trích xuất đặc trưng không gian (các đường biên, cạnh, hình khối) phục vụ phân loại và định vị đối tượng trên ảnh đơn lẻ; trong khi RNN được ứng dụng để liên kết và phân tích chuỗi khung hình trong dữ liệu video.
  • Quy trình nhận dạng khuôn mặt chuẩn: Hệ thống hóa bài toán nhận dạng khuôn mặt qua 4 giai đoạn kỹ thuật:
    1. Phát hiện khuôn mặt (Face detection): Định vị và tách vùng chứa khuôn mặt trong một khung cảnh.
    2. Phân tích khuôn mặt (Face analysis): Trích xuất các điểm mốc hình học 2D (khoảng cách hai mắt, độ sâu hốc mắt, tỷ lệ trán - cằm, cấu trúc xương gò má, đường viền môi, tai).
    3. Chuyển đổi hình ảnh thành dữ liệu (Converting image to data): Mã hóa đặc trưng sinh trắc học thành vector toán học đại diện (faceprint).
    4. So khớp (Finding a match): Đối sánh vector đặc trưng với cơ sở dữ liệu đã lưu trữ.
  • Thuật toán làm mờ Gaussian Blur: Sử dụng bộ lọc tích chập phi tuyến tính dựa trên hàm phân phối chuẩn Gaussian 2 chiều để làm mịn ảnh và giảm nhiễu tần số cao. Bộ lọc thực hiện gán trọng số lớn nhất cho điểm ảnh trung tâm và giảm dần theo khoảng cách hình chuông, điều khiển bởi kích thước ma trận nhân ($ksize$ là số lẻ dương) cùng các hệ số độ lệch chuẩn $\sigma_x$, $\sigma_y$.
Phương pháp làm mờ Nguyên lý xử lý Đặc tính và phạm vi ứng dụng
Gaussian Blur Tích chập với ma trận trọng số phân phối Gauss Làm mịn tự nhiên, triệt tiêu nhiễu tốt, kiểm soát được độ mờ theo tham số $\sigma$
Mean Blur Lấy trung bình cộng đơn giản toàn bộ pixel trong kernel Thuật toán đơn giản, tốc độ nhanh, nhưng làm giảm độ sắc nét và mờ không đều
Median Blur Lấy giá trị trung vị của các điểm ảnh lân cận Giữ biên cạnh tốt hơn Mean Blur, khử nhiễu muối tiêu (salt-and-pepper) hiệu quả
Bilateral Blur Kết hợp làm mờ theo khoảng cách không gian và độ chênh lệch cường độ sáng Bảo toàn tối đa các đường biên sắc nét, nhưng chi phí tính toán cao
Motion Blur Làm mờ định hướng theo một vector chuyển động Mô phỏng hiệu ứng chuyển động của đối tượng trong không gian

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp nghiên cứu: Nghiên cứu lý thuyết kết hợp thực nghiệm so sánh đa mô hình; thiết kế hệ thống phần mềm hướng đối tượng; phân tích hiệu năng dựa trên độ chính xác và tốc độ xử lý khung hình.
  • Dữ liệu và chuẩn tham chiếu: Khảo sát các mô hình đã được huấn luyện trên tập dữ liệu chuẩn LFW (Labeled Faces in the Wild) với độ chính xác nhận dạng đạt 99,38%; sử dụng nguồn cấp dữ liệu ảnh tĩnh và luồng video trực tiếp từ máy ảnh/webcam để kiểm thử chương trình.

Thiết kế và triển khai

Hệ thống được thiết kế dưới dạng ứng dụng máy tính độc lập (Desktop Application), tích hợp luồng xử lý thị giác máy tính với giao diện tương tác người dùng.

[Ảnh/Video đầu vào] 
[Trích xuất vùng ROI (Khuôn mặt)]
[Ghép trả ROI vào khung hình gốc]
[Hiển thị kết quả trên Tkinter GUI]

Kiến trúc công nghệ

  • Ngôn ngữ lập trình: Python (phiên bản 3.8), tận dụng tính đa nền tảng, cú pháp rõ ràng và khả năng liên kết mạnh mẽ với các thư viện xử lý số học, thị giác cấp thấp viết bằng C/C++.
  • Thư viện thị giác máy tính OpenCV (cv2): Đóng vai trò đọc/ghi khung hình, tiền xử lý, chuyển đổi không gian màu, cắt ghép ma trận ảnh và thực thi hàm cv2.GaussianBlur().
  • Thư viện Face Recognition (dựa trên Dlib C++): Đảm nhiệm vai trò phát hiện vị trí khuôn mặt trong khung hình thông qua các mô hình học sâu đã tối ưu hóa.
  • Thư viện giao diện Tkinter: Xây dựng cửa sổ đồ họa cho người dùng với hệ thống điều khiển tương tác (hỗ trợ 19 loại widget chuẩn như Button, Canvas, Checkbutton, Entry, Frame, Label, Listbox, Menubutton, Menu, Message, Radiobutton, Scale, Scrollbar, Text, Toplevel, Spinbox, PanedWindow, LabelFrame, tkMessageBox).

Quy trình thiết lập môi trường và cấu hình

Do thư viện Face Recognition và Dlib yêu cầu tương thích môi trường nghiêm ngặt, tác giả triển khai quy trình khởi tạo môi trường thông qua Anaconda:

# 1. Khởi tạo môi trường ảo Python 3.8
conda create -n evn_face_two python=3.8

# 2. Kích hoạt môi trường thực thi
conda activate evn_face_two

# 3. Cài đặt thư viện Face Recognition từ kênh conda-forge
conda install -c conda-forge face_recognition

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

Mở đầu và Phần 1: Giới thiệu về đề tài

Trình bày tổng quan về sự phát triển của trí tuệ nhân tạo và vai trò của thị giác máy tính trong thời đại số. Tác giả nêu bật mâu thuẫn giữa tính tiện ích của các công nghệ giám sát/nhận diện khuôn mặt và nguy cơ xâm phạm quyền riêng tư của cá nhân. Từ đó, xác lập mục tiêu, đối tượng, phạm vi và bố cục gồm 4 phần chính của đồ án tốt nghiệp.

Phần 2: Giới thiệu bài toán

Cung cấp bức tranh toàn cảnh về lịch sử phát triển của thị giác máy tính từ các thí nghiệm sinh lý học thần kinh năm 1959, sự ra đời của quét ảnh số (1963), nhận dạng ký tự quang học OCR (1974), mô hình phân cấp thị giác David Marr và mạng Neocognitron (1982), đến các mốc son học sâu như bộ dữ liệu ImageNet (2010) và mạng CNN AlexNet (2012).

Chương này phân tích các tác vụ thị giác tiêu chuẩn (phân loại ảnh, phát hiện đối tượng, theo dõi đối tượng, truy xuất ảnh theo nội dung) cùng các ứng dụng thực tế trong công nghiệp (IBM Watson, Google Dịch, xe tự lái). Tiếp đó, tác giả phân tích chi tiết cơ chế hoạt động 4 bước của nhận dạng khuôn mặt và khảo sát chuyên sâu thuật toán làm mờ Gaussian Blur, các kỹ thuật làm mịn ảnh trong OpenCV (cv2.blur, cv2.medianBlur, cv2.GaussianBlur), các thông số hạt nhân ($ksize$), độ lệch chuẩn ($\sigma_x, \sigma_y$) và kiểu biên (borderType).

Phần 3: Giải bài toán nhận dạng khuôn mặt với thư viện Face Recognition

Tác giả tiến hành phân tích, đánh giá ưu điểm và hạn chế của 5 phương pháp phát hiện khuôn mặt phổ biến trước khi lựa chọn giải pháp thư viện Face Recognition:

Phương pháp Nền tảng cốt lõi Ưu điểm chính Hạn chế chính
OpenCV Haar Cascade Bộ phân loại tầng Haar Cascade (2001) Tốc độ tính toán nhanh, chạy mượt mà trên CPU Kém chính xác khi mặt nghiêng hoặc bị che khuất; dễ dương tính giả
Dlib HoG Histogram of Oriented Gradients + Linear SVM (5 bộ lọc hướng) Xử lý được góc mặt hơi nghiêng/xoay; chạy thời gian thực trên CPU Không nhận diện được mặt nghiêng góc lớn; không phát hiện khuôn mặt < 80x80 pixel; bounding box cắt mất cằm/trán
OpenCV Deep Learning Kiến trúc ResNet-10 kết hợp SSD (bổ sung từ OpenCV 3.3) Độ chính xác cao, phát hiện khuôn mặt đa tỷ lệ, chịu được góc nghiêng và khẩu trang Yêu cầu tài nguyên phần cứng lớn hơn các thuật toán truyền thống
Dlib Deep Learning Mạng CNN dựa trên phương pháp MMOD (Maximum-Margin Object Detection) Độ chính xác rất cao, ổn định trước thay đổi ánh sáng và góc nhìn Rất chậm trên CPU (cần GPU NVIDIA để tối ưu); giới hạn kích thước tối thiểu 80x80 pixel
MediaPipe Deep Learning Mô hình BlazeFace (dựa trên SSD & MobileNetv2) Tốc độ cực nhanh (200 - 1000+ FPS), trả về 6 điểm mốc chính xác trên mặt Có thể giảm hiệu năng trên các luồng video phân giải rất cao nếu thiếu tài nguyên
Thư viện Face Recognition Tích hợp thuật toán học sâu từ Dlib (C++) Độ chính xác 99,38% trên tập dữ liệu LFW; API ngắn gọn, dễ triển khai Phụ thuộc vào dữ liệu mẫu chuẩn; chiếm dụng tài nguyên tính toán khi xử lý hàng loạt

Phần 4: Cài đặt và thử nghiệm hệ thống

Chi tiết hóa việc lựa chọn hệ sinh thái ngôn ngữ Python, phân tích các đặc trưng hướng đối tượng, cú pháp và các giai đoạn phát triển của Python từ 1990 đến nay. Đánh giá tính năng của thư viện OpenCV và phân loại hệ thống 19 widget trong thư viện Tkinter. Tác giả trình bày từng bước thiết lập môi trường bằng Anaconda Prompt và xây dựng giao diện hoàn chỉnh, cho phép người dùng nạp ảnh tĩnh hoặc video, kích hoạt mô-đun phát hiện khuôn mặt và hiển thị kết quả làm mờ trực quan trên màn hình.


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

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

  • Về mặt kỹ thuyết: Tổng hợp có hệ thống cơ sở lý luận về thị giác máy tính, lịch sử phát triển các mô hình xử lý ảnh từ năm 1959 đến các mạng học sâu hiện đại; phân tích chi tiết quy trình 4 bước của bài toán nhận dạng khuôn mặt và cơ chế toán học của bộ lọc Gaussian Blur.
  • Về mặt thực nghiệm so sánh: Phân tích định tính toàn diện ưu nhược điểm của 5 giải pháp phát hiện khuôn mặt phổ biến (OpenCV Haar Cascade, Dlib HoG, OpenCV ResNet-10 SSD, Dlib MMOD, MediaPipe BlazeFace) và kiểm chứng hiệu năng của thư viện Face Recognition (mô hình học sâu Dlib đạt độ chính xác 99,38% trên tập dữ liệu LFW).
  • Về mặt ứng dụng phần mềm: Xây dựng thành công chương trình ứng dụng hoàn chỉnh bằng ngôn ngữ Python, tích hợp giao diện đồ họa người dùng bằng Tkinter, cho phép thực hiện tự động hóa việc phát hiện tọa độ khuôn mặt và làm mờ bảo vệ riêng tư trên dữ liệu ảnh và video.

Đóng góp của đồ án

  • Đề xuất quy trình tích hợp kết hợp giữa mô hình nhận diện dựa trên học sâu chính xác cao (Face Recognition/Dlib) và kỹ thuật xử lý ảnh không gian cục bộ (Gaussian Blur trong OpenCV) nhằm giải quyết bài toán bảo mật dữ liệu thị giác.
  • Cung cấp tài liệu hướng dẫn kỹ thuật chi tiết về cấu hình, đóng gói môi trường ảo Python 3.8 thông qua Anaconda để khắc phục các lỗi xung đột phụ thuộc thường gặp khi cài đặt thư viện Dlib và Face Recognition trên hệ điều hành Windows.

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

Hạn chế

  • Yêu cầu tài nguyên xử lý: Việc sử dụng các mô hình học sâu trong Face Recognition đòi hỏi năng lực tính toán đáng kể; hiệu suất xử lý trên môi trường thuần CPU còn hạn chế khi xử lý video độ phân giải cao so với khi có hỗ trợ của phần cứng GPU chuyên dụng.
  • Giới hạn kích thước và góc quay: Tương tự các thuật toán dựa trên Dlib, mô hình gặp khó khăn nhất định khi xử lý các khuôn mặt có kích thước quá nhỏ (dưới ngưỡng 80x80 pixel) hoặc các góc quay nghiêng cực đại nằm ngoài vùng nhận diện của bộ lọc.
  • Hiện tượng suy giảm chi tiết biên: Khi áp dụng hệ số làm mờ với kích thước kernel lớn để che phủ hoàn toàn đặc trưng nhận dạng, vùng biên bao quanh khuôn mặt có thể bị mờ lan ra vùng tóc và nền lân cận.

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

  • Tối ưu hóa thuật toán để tăng tốc độ xử lý luồng khung hình thời gian thực (real-time FPS) trên các thiết bị phần cứng có tài nguyên hạn chế hoặc các thiết bị nhúng.
  • Nghiên cứu tích hợp các giải pháp dò tìm siêu nhẹ như MediaPipe BlazeFace hoặc các mạng SSD tinh giản để tăng cường khả năng bám bắt khuôn mặt ở các góc nghiêng phức tạp và điều kiện ánh sáng yếu.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn đối với sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Khoa học dữ liệu:

  • Tham khảo về thuật toán: Cung cấp cái nhìn tổng quan và bảng so sánh chi tiết giữa các thế hệ thuật toán phát hiện khuôn mặt từ truyền thống (Haar Cascade, HoG) đến học sâu (ResNet-SSD, MMOD, BlazeFace).
  • Tham khảo về kỹ thuật lập trình: Hướng dẫn trực quan cách kết hợp OpenCV, Dlib, Face Recognition và thư viện đồ họa Tkinter trong môi trường Python để xây dựng một ứng dụng thị giác máy tính hoàn chỉnh.
  • Tham khảo về xử lý ảnh ứng dụng: Cung cấp các công thức, hàm xử lý và tham số cụ thể của các bộ lọc không gian (Mean, Median, Gaussian Blur) áp dụng trực tiếp cho bài toán bảo mật thông tin cá nhân.

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

1. Thư viện Face Recognition được xây dựng trên nền tảng nào và đạt độ chính xác bao nhiêu?

Thư viện Face Recognition được phát triển dựa trên bộ công cụ Dlib (viết bằng C++). Bằng việc áp dụng các mô hình học sâu tiên tiến nhất của Dlib, thư viện đạt độ chính xác nhận dạng lên tới 99,38% trên tập dữ liệu chuẩn quốc tế LFW (Labeled Faces in the Wild).

2. Phương pháp phát hiện khuôn mặt của OpenCV Deep Learning sử dụng kiến trúc mạng nào?

Từ phiên bản 3.3 (phát hành tháng 8/2017), OpenCV Deep Learning đã tích hợp mô hình học sâu dựa trên kiến trúc ResNet-10 kết hợp với bộ phát hiện đơn pha SSD (Single Shot MultiBox Detector), cho phép phát hiện nhiều khuôn mặt ở các tỷ lệ khác nhau trong một lần truyền dữ liệu qua mạng.

3. Phương pháp MediaPipe Deep Learning sử dụng mô hình gì và trả về những điểm mốc nào?

MediaPipe sử dụng mô hình BlazeFace – một công cụ dò tìm khuôn mặt nhẹ được thiết kế tối ưu từ SSD và MobileNetv2, có thể đạt tốc độ 200 đến hơn 1000 FPS. Mô hình vẽ khung bao và định vị chính xác 6 điểm mốc giải phẫu trên khuôn mặt gồm: mắt phải, mắt trái, đầu mũi, trung tâm miệng, tai phải và tai trái.

4. Tại sao phương pháp Dlib HoG phải sử dụng tới 5 bộ lọc khác nhau?

Do kỹ thuật trích xuất đặc trưng HoG (Histogram of Oriented Gradients) kết hợp bộ phân loại SVM không có tính chất bất biến đối với các thay đổi về góc quay của khuôn mặt, mô hình của Dlib phải sử dụng đồng thời 5 bộ lọc định hướng riêng biệt: mặt trước, mặt nhìn sang phải, mặt nhìn sang trái, mặt trước xoay phải và mặt trước xoay trái.

5. Thuật toán Gaussian Blur khác biệt như thế nào so với Mean Blur và Median Blur?

Mean Blur chỉ tính trung bình số học đơn giản và gán đều cho tất cả pixel lân cận khiến ảnh dễ bị mờ không tự nhiên. Median Blur lấy giá trị trung vị, hiệu quả nhất khi khử nhiễu muối tiêu và giữ đường biên. Trong khi đó, Gaussian Blur sử dụng ma trận trọng số phân phối chuẩn hình chuông (pixel gần tâm có trọng số cao nhất), tạo ra hiệu ứng làm mịn tự nhiên, mềm mại và cho phép kiểm soát mức độ làm mờ chính xác thông qua kích thước kernel và độ lệch chuẩn sigma.


Kết luận

Đồ án tốt nghiệp của tác giả Nguyễn Công Minh đã hệ thống hóa thành công cơ sở lý thuyết về thị giác máy tính và các thuật toán phát hiện, nhận dạng khuôn mặt hiện đại. Bằng việc kết hợp sức mạnh xử lý của thư viện Face Recognition (Dlib) với kỹ thuật làm mờ Gaussian Blur trong OpenCV, công trình đã xây dựng được một ứng dụng Python có giao diện đồ họa trực quan, đáp ứng hiệu quả yêu cầu tự động định vị và ẩn danh khuôn mặt trên ảnh và video. Đề tài mang lại giá trị tham khảo thiết thực cho các nghiên cứu và ứng dụng bảo vệ quyền riêng tư trong lĩnh vực xử lý dữ liệu đa phương tiện.