Tips công nghệ

Hướng dẫn train yolov8 để phát hiện xe trên đường cao tốc

Hiện nay, lưu lượng phương tiện tham gia giao thông ngày càng gia tăng, đặc biệt trên các tuyến đường cao tốc. Việc quản lý và giám sát giao thông trở nên cấp thiết, chẳng hạn như đếm số lượng phương tiện theo từng loại xe để phục vụ phân tích, quản lý và tính toán hoàn vốn BOT. Trong bài viết này, Cốc Cốc sẽ hướng dẫn cách train YOLOv8 để phát hiện xe trên cao tốc, mang lại giải pháp hiệu quả và dễ triển khai.

Các bước train yolov8

Bước 1: Cài đặt VS code và Python

Tải xuống và cài đặt Python 3.8.10 (x64)

Cài đặt Visual Studio Code

Bước 2: Cài đặt CUDA và cuDNN

Bạn cần tải về CUDA 12.1 (dung lượng ~3.1 GB)cuDNN v8.9.7 (dung lượng ~1.01 GB). Lưu ý: để tải được cuDNN, bạn phải có tài khoản NVIDIA Developer.

Chi tiết các bước cài đặt, bạn có thể tham khảo trong bài viết: Hướng dẫn cài đặt TensorFlow GPU với CUDA 11.2 trên Windows 10.

Bước 3: Clone repository và cài đặt các package

Cài đặt các thư viện cần thiết bằng các lệnh sau:

pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 –index-url https://download.pytorch.org/whl/cu121

pip install ultralytics

Bước 4: Training

Sau khi đã có tập dữ liệu được gán nhãn, mở file Notebook Yolov8.ipynb để tiến hành huấn luyện mô hình.

Nếu máy có cấu hình yếu hoặc GPU hiệu suất thấp, bạn nên điều chỉnh một số tham số để tránh quá tải:

  • Giảm số epoch xuống (ví dụ 100).
  • Giảm batch size xuống còn 8.
  • Giảm kích thước ảnh (imgsz) xuống 224.
  • Hoặc giảm số lượng worker xuống 1.

Lựa chọn phiên bản YOLOv8 phù hợp

  • YOLOv8n (Nano): nhỏ gọn nhất, chạy nhanh, phù hợp máy yếu, độ chính xác trung bình.
  • YOLOv8s (Small): cân bằng giữa tốc độ và độ chính xác, thích hợp cho dự án nhỏ.
  • YOLOv8m (Medium): chính xác cao hơn, cần nhiều tài nguyên hơn.
  • YOLOv8l (Large): độ chính xác cao, yêu cầu GPU mạnh.
  • YOLOv8x (Extra Large): lớn nhất, chính xác nhất, đòi hỏi phần cứng mạnh.

Bạn có thể tải trực tiếp các mô hình này tại YOLOv8 Models.

Câu lệnh train mẫu:

!yolo train model=yolov8n.pt data=’./datasets/data.yaml’ batch=32 epochs=300 imgsz=640 device=0

buoc training

Sau khi huấn luyện xong, bạn sẽ nhận được file best.pt trong thư mục:

runs/detect/trainXXX/weights/

Trong đó XXX là số thứ tự tăng dần của lần huấn luyện. Đây chính là mô hình tốt nhất được lưu lại trong quá trình training.

Để kiểm tra độ chính xác (validation), bạn chỉ cần chạy lệnh sau và truyền đúng đường dẫn tới file mô hình và file dữ liệu:

!yolo val model=’./runs/detect/train/weights/best.pt’ data=’datasets/data.yaml’

buoc training

Bước 5: Detect

Để chạy dự đoán, sử dụng lệnh sau trong block Predict:

!yolo predict model=’./runs/detect/train/weights/best.pt’ source=’highway.mp4′ device=0

buoc detect

Trong đó:

  • model: đường dẫn tới file mô hình đã huấn luyện (best.pt).
  • source: đường dẫn đến ảnh hoặc video cần phát hiện đối tượng.
  • device: lựa chọn thiết bị chạy, cpu hoặc 0 cho GPU.

Lưu ý:

  • Hãy chắc chắn rằng bạn truyền đúng đường dẫn của mô hình và dữ liệu đầu vào.
  • Kết quả sau khi detect sẽ được lưu tự động trong thư mục: runs/detect/predict/

buoc detectbuoc detect

Lưu ý khi train Yolov8

Kiểm tra và cài đặt Torch với CUDA 12.1

Để sử dụng GPU cùng CUDA 12.1, bạn cần gỡ bỏ phiên bản Torch chạy trên CPU và cài lại phiên bản Torch hỗ trợ CUDA.

Kiểm tra phiên bản Torch hiện tại

Mở CMD (nhấn Windows + R, gõ cmd và Enter), sau đó nhập lệnh:

pip show torch

Nếu kết quả trả về có dòng:

Version: 2.4.0+cu121 nghĩa là Torch đã được cài đặt kèm CUDA.

Nếu chưa đúng phiên bản, tiến hành gỡ và cài đặt lại

pip uninstall torch torchvision torchaudio

Sau đó cài đặt lại phiên bản Torch hỗ trợ CUDA 12.1:

pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 –index-url https://download.pytorch.org/whl/cu121

Tham khảo Yolov8 GitHub và cộng đồng YOLOv8

Để huấn luyện và triển khai YOLOv8 hiệu quả, việc tận dụng tài nguyên có sẵn là rất quan trọng. Trước hết, mã nguồn YOLOv8 được phát hành mở tại GitHub Ultralytics. Repository này cung cấp đầy đủ code, ví dụ minh họa và tài liệu cài đặt giúp bạn dễ dàng bắt đầu.

Bên cạnh đó, Ultralytics Docs là nguồn chính thức, giải thích chi tiết các tham số huấn luyện, cách tùy biến kiến trúc, cùng những mẹo nâng cao. Nếu bạn là người newbie nên đặc biệt tham khảo mục FAQ, ví dụ như hướng dẫn train YOLOv8-pose trên dữ liệu tùy chỉnh.

Cốc Cốc hy vọng qua bài hướng dẫn trên, bạn đã nắm được các bước cơ bản để train YOLOv8 từ chuẩn bị dữ liệu, cài đặt môi trường cho đến huấn luyện và kiểm tra kết quả. Với quy trình này, bạn có thể dễ dàng xây dựng mô hình phát hiện đối tượng phù hợp cho dự án của riêng mình.

Write A Comment