Hiện nay, các phương tiện tham gia giao thông ngày càng nhiều, đặc biệt việc quản lý giao thông trên đường cao tốc càng trở nên quan trọng. Bài viết này hướng cách sử dụng mô hình Yolov8 để phát hiện xe trên đường cao tốc.
Mô hình được chạy trên Windows với GPU NVIDIA RTX 2060.
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
-
Download CUDA 12.1 (3.1 GB) và cuDNN v8.9.7 (1.01 GB). Lưu ý phải đăng ký tài khoản NVIDIA developer. Restart PC sau khi cài đặt.
Bước 3: clone repository và cài đặt package
-
Download source code cuối bài viết
Cài đặt các thư viện bằng lệnh
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
Tập dữ liệu đã được đánh nhãn sẵn, vào Notebook Yolov8.ipynb để train model
Với cấu hình máy yếu, GPU có hiệu suất thấp, cần giảm số lượng epoch xuống (100 epoch), giảm batch size xuống (8 batch), giảm kích thước ảnh xuống (imgzs = 224) hoặc giảm số lượng worker xuống 1
Lựa chọn mô hình YOLOv8 phù hợp:
- YOLOv8n (Nano): Nhẹ nhất, phù hợp cho máy yếu, tốc độ nhanh nhưng độ chính xác thấp.
- 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, yêu cầu nhiều tài nguyên hơn.
- YOLOv8l (Large): Độ chính xác cao, dành cho máy có GPU mạnh.
- YOLOv8x (Extra Large): Lớn nhất, độ chính xác cao nhất, yêu cầu phần cứng mạnh.
Có thể tải các mô hình tại YOLOv8 models
!yolo train model=yolov8n.pt data='./datasets/data.yaml' batch=32 epochs=300 imgsz=640 device=0
Sau khi quá trình huấn luyện hoàn tất, bạn có thể tìm thấy file best.pt trong thư mục runs/detect/trainXXX/weights/, với XXX là số tăng dần. Đây là kết quả của quá trình huấn luyện.
Để kiểm tra độ chính xác, chạy block Val và đảm bảo truyền đúng đường dẫn file model và file data.
!yolo val model='./runs/detect/train/weights/best.pt' data='datasets/data.yaml'
Bước 5: Detect
Chạy lệnh trong block Predict
!yolo predict model='./runs/detect/train/weights/best.pt' source='highway.mp4' device=0
Trong đó, model là đường dẫn đến file model, source là đường dẫn đến hình ảnh hoặc video cần detect, device là thiết bị sẽ được sử dụng: cpu hoặc 0 cho GPU.
Lưu ý cần truyền đúng đường dẫn model và ảnh hoặc video cần detect. Kết quả detect sẽ được lưu vào folder runs/detect/predict/
Source code
Repo Github: https://github.com/thigiacmaytinh/HighwayCounter_YOLOv8
Lưu ý
Để sử dụng GPU và CUDA 12.1 cần xóa torch CPU và tải lại torch 2.4.0+cu121
Để kiểm tra, các bạn mở CMD (bấm Windows+R gõ cmd và nhấn enter) nhập lệnh pip show torch
Nếu kết quả trả về Version: 2.4.0+cu121
là đã có CUDA, nếu không các bạn cần gỡ torch hiện tại và cài lại phiên bản hỗ trợ CUDA
pip uninstall torch torchvision torchaudio
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu121
Chúc các bạn thành công!