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 Tạo nhận diện biển số xe bằng YOLO + OpenCV
Hướng Dẫn Đồ ÁnLập Trình AI

Tạo nhận diện biển số xe bằng YOLO + OpenCV

Chia sẻ
Chia sẻ

Trong thời đại AI và giám sát thông minh, việc tự động phát hiện và nhận diện biển số xe từ video hoặc camera giám sát là một ứng dụng cực kỳ thực tế. Các hệ thống như vậy có thể được áp dụng trong quản lý bãi đỗ xe, giao thông thông minh, kiểm soát xe ra vào, hay hỗ trợ lực lượng an ninh.

Một trong những cách hiệu quả nhất để thực hiện điều này là kết hợp YOLOv8 – một mô hình phát hiện đối tượng mạnh mẽ – và OpenCV – thư viện xử lý ảnh phổ biến. Bộ đôi này có thể giúp bạn xây dựng hệ thống nhận diện biển số thời gian thực một cách nhanh chóng.

Nếu bạn từng đọc các bài như Tạo hệ thống nhận diện khuôn mặt thời gian thực bằng OpenCV, Tạo hệ thống cảnh báo nguy hiểm qua camera bằng AI, hoặc Xử lý ảnh y tế với kỹ thuật thresholding, bạn sẽ thấy pipeline sử dụng mô hình học sâu kết hợp OpenCV là một chiến lược hiệu quả và linh hoạt.

Dataset nhận diện biển số xe

Bạn có thể dùng một trong các bộ dữ liệu sau:

Cả hai đều cung cấp ảnh xe và vị trí bounding box của biển số, định dạng tương thích với YOLOv5/v8. Sau khi tải, bạn có thể dùng LabelImg để kiểm tra và chỉnh sửa nhãn nếu cần.

Cài đặt YOLOv8 và OpenCV

Bạn cần cài đặt thư viện ultralytics (YOLOv8 chính thức) và opencv-python:

pip install ultralytics opencv-python

Giả sử bạn đã train mô hình nhận diện biển số (hoặc tải về pretrained), ví dụ:

from ultralytics import YOLO
model = YOLO("best.pt")  # Đường dẫn tới model của bạn

Nhận diện biển số xe thời gian thực từ webcam

Để xử lý ảnh từ camera và vẽ khung nhận diện, bạn cần hiểu 2 điều:

  • YOLO trả về danh sách các bounding box (vị trí), bạn cần vẽ hoặc crop để xử lý tiếp

  • OpenCV sẽ hỗ trợ hiển thị, trích xuất và thao tác ảnh gốc từ camera hoặc video

Dưới đây là ví dụ code đầy đủ để nhận diện biển số từ webcam:

import cv2
from ultralytics import YOLO

model = YOLO("best.pt")  # Mô hình nhận diện biển số
cap = cv2.VideoCapture(0)  # Webcam

while True:
    ret, frame = cap.read()
    if not ret:
        break

    results = model(frame)
    boxes = results[0].boxes
    names = results[0].names

    for box in boxes:
        cls_id = int(box.cls[0])
        label = names[cls_id]
        x1, y1, x2, y2 = map(int, box.xyxy[0])

        # Vẽ khung nhận diện
        cv2.rectangle(frame, (x1, y1), (x2, y2), (0,255,0), 2)
        cv2.putText(frame, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0,255,0), 2)

        # Crop vùng biển số (có thể dùng OCR sau)
        plate_crop = frame[y1:y2, x1:x2]

    cv2.imshow("License Plate Detection", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Nhận diện nội dung biển số bằng OCR

Sau khi nhận diện được vùng biển số, bạn có thể trích xuất nội dung bằng pytesseract (OCR) hoặc easyocr.

Cài đặt pytesseract:

pip install pytesseract

Dùng OCR để đọc chữ từ vùng plate_crop:

import pytesseract

# Resize & chuyển ảnh về đen trắng nếu cần để tăng độ chính xác
gray = cv2.cvtColor(plate_crop, cv2.COLOR_BGR2GRAY)
text = pytesseract.image_to_string(gray, config='--psm 7')
print("Biển số xe:", text)

Bạn nên xử lý thêm bằng threshold hoặc filter để cải thiện kết quả đọc OCR.

Kết luận

Việc kết hợp YOLOv8 và OpenCV mang lại giải pháp hiệu quả cho bài toán nhận diện biển số xe trong thời gian thực. Hệ thống có thể mở rộng thêm OCR để trích xuất nội dung, từ đó phục vụ các bài toán như kiểm soát xe ra vào, phát hiện xe vi phạm, hoặc thống kê lưu lượng phương tiện.

Từ nền tảng này, bạn có thể tiếp tục nâng cấp bằng việc lưu log biển số vào cơ sở dữ liệu, thêm API để kết

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!