Computer Vision với OpenCV và Python: Nhận dạng hình ảnh

Computer Vision là gì?

Computer Vision cho phép máy tính "nhìn" và hiểu hình ảnh. Ứng dụng: nhận dạng khuôn mặt, xe tự lái, kiểm tra chất lượng sản phẩm, AR/VR.

OpenCV — Thư viện xử lý ảnh

import cv2
import numpy as np

# Đọc và hiển thị ảnh
img = cv2.imread("photo.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Resize
resized = cv2.resize(img, (300, 300))

# Blur và edge detection
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blurred, 50, 150)

cv2.imwrite("edges.jpg", edges)

Nhận dạng khuôn mặt

face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + 'haarcascade_frontalface_default.xml'
)

img = cv2.imread("group_photo.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.1, 4)
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

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

Image Classification với CNN

from tensorflow.keras import layers, models

cnn = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 3)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(10, activation='softmax')
])

Kết hợp OpenCV + Deep Learning tạo ra những ứng dụng Computer Vision cực kỳ mạnh mẽ.

Chia sẻ bài viết: