Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Thực hiện nhận diện khuôn mặt bằng Haar Cascade
Hướng Dẫn Đồ ÁnLập Trình AI

Thực hiện nhận diện khuôn mặt bằng Haar Cascade

Chia sẻ
Chia sẻ

Nhận diện khuôn mặt là một ứng dụng phổ biến trong lĩnh vực thị giác máy tính và được sử dụng rộng rãi trong các hệ thống an ninh, smartphone và phần mềm quản lý. Với thư viện OpenCV, bạn có thể dễ dàng thực hiện nhận diện khuôn mặt bằng phương pháp Haar Cascade, một kỹ thuật nổi tiếng nhờ tốc độ xử lý nhanh và độ chính xác cao với các bài toán cơ bản.

Trước khi bắt đầu, nếu bạn quan tâm đến các ứng dụng thị giác máy tính khác, hãy xem bài Tách nền ảnh đơn giản bằng OpenCV để biết cách xử lý nền ảnh hoặc bài Tạo mô hình phân loại ảnh chó mèo với TensorFlow để học về phân loại ảnh bằng mạng nơ-ron. Những kiến thức này sẽ giúp bạn có cái nhìn toàn diện hơn khi làm việc với dữ liệu hình ảnh.

Tổng quan bài toán nhận diện khuôn mặt

Bài toán nhận diện khuôn mặt yêu cầu chúng ta xác định các vùng trong hình ảnh có chứa khuôn mặt người. Phương pháp Haar Cascade hoạt động dựa trên việc sử dụng các đặc trưng Haar để tìm kiếm các mẫu đặc trưng của khuôn mặt trong ảnh.

Ưu điểm của phương pháp này là tốc độ xử lý nhanh, phù hợp cho các ứng dụng thời gian thực và không đòi hỏi phần cứng mạnh. Tuy nhiên, Haar Cascade nhạy cảm với góc nhìn và ánh sáng, nên chỉ phù hợp cho các trường hợp khuôn mặt rõ ràng, trực diện.

Trong bài này, chúng ta sẽ sử dụng file Haar Cascade XML có sẵn từ OpenCV, kết hợp với Python để nhận diện khuôn mặt trong ảnh tĩnh. Tất cả các bước sẽ thực hiện trên Google Colab để người mới học có thể dễ dàng thực hành.

Cài đặt và chuẩn bị môi trường làm việc

Google Colab là môi trường lập trình lý tưởng để chạy các đoạn mã Python mà không cần cài đặt phức tạp. Bạn chỉ cần truy cập Google Colab và tạo một notebook mới.

Trước khi bắt đầu, cần cài đặt OpenCV để xử lý hình ảnh. Chạy lệnh sau trên Colab:

# Cài đặt OpenCV
!pip install opencv-python

Sau khi cài đặt, chúng ta sẽ import các thư viện cần thiết:

import cv2
import matplotlib.pyplot as plt

Tải file Haar Cascade và ảnh mẫu

File Haar Cascade XML có thể tải trực tiếp từ GitHub của OpenCV. Đây là file chứa dữ liệu đã huấn luyện để nhận diện khuôn mặt người.

# Link file Haar Cascade
cascade_url = 'https://github.com/opencv/opencv/raw/master/data/haarcascades/haarcascade_frontalface_default.xml'
cascade_file = 'haarcascade_frontalface_default.xml'

# Tải file Haar Cascade
import urllib.request
urllib.request.urlretrieve(cascade_url, cascade_file)

Tiếp theo, tải một ảnh mẫu có khuôn mặt để thử nghiệm. Bạn có thể sử dụng ảnh bất kỳ hoặc tải ảnh mẫu từ internet:

# Tải ảnh mẫu từ internet
img_url = 'https://raw.githubusercontent.com/opencv/opencv/master/samples/data/lena.jpg'
img_file = 'lena.jpg'
urllib.request.urlretrieve(img_url, img_file)

# Đọc ảnh bằng OpenCV
image = cv2.imread(img_file)

Thực hiện nhận diện khuôn mặt

Chuyển ảnh sang thang độ xám để tối ưu hiệu suất, sau đó áp dụng nhận diện bằng Haar Cascade:

# Tải bộ phân loại Haar Cascade
face_cascade = cv2.CascadeClassifier(cascade_file)

# Chuyển ảnh sang grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Phát hiện khuôn mặt
faces = face_cascade.detectMultiScale(
    gray_image, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)
)

print(f"Phát hiện {len(faces)} khuôn mặt")

Vẽ khung quanh các khuôn mặt được phát hiện:

# Vẽ khung quanh khuôn mặt
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

# Hiển thị ảnh kết quả
plt.figure(figsize=(8, 8))
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.title('Nhận diện khuôn mặt bằng Haar Cascade')
plt.show()

Hình ảnh hiển thị sẽ có các khung chữ nhật xanh đánh dấu các khuôn mặt phát hiện được.

Kết luận

Haar Cascade là một phương pháp nhận diện khuôn mặt nhanh chóng, dễ triển khai và rất phù hợp cho người mới học xử lý ảnh với OpenCV. Bài hướng dẫn này đã giúp bạn thực hành từ việc tải dữ liệu, xử lý hình ảnh đến phát hiện và hiển thị kết quả.

Bạn có thể mở rộng ứng dụng này cho video thời gian thực hoặc kết hợp các phương pháp khác để cải thiện độ chính xác trong điều kiện ánh sáng và góc nhìn phức tạp hơn.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!