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ẽ.