Chào các bạn , hôm nay mình sẽ tiếp tục hướng dẫn cách train yolov5 để detect vật thể bất kỳ. Ở phần 1 của cách train yolov5 mình đã hướng dẫn các bạn tạo data để train. Trong phần 2 này mình sẽ hướng dẫn các bạn tạo file config và đưa file lên Google Colab để tiến hành train YoloV5.

I. Viết File Config và tải file pretrain

Các bạn tạo cho mình 1 file đuôi .yaml bất kỳ ( ở đây của mình là fanta.yaml)

file config train yolov5

Cấu trúc file yaml như sau:

  • train: đường dẫn đến thư mục chứa ảnh train
  • val : đường dẫn đến thư mục chứa ảnh val
  • nc : số lượng vật thể
  • names: [‘tên vật thể 1’,’tên vật thể 2’….]

Ví dụ Fanta:

train: fanta/images/train 
val: fanta/images/val
nc: 1
names: ['fanta']

Sau đó các bạn dựa vào model bạn muốn train mà tải pretrain phù hợp bỏ vào thư mục yolov5 luôn cho tiện nhé!

Link tải pretrained : https://github.com/ultralytics/yolov5/releases . Mình sài yolov5x nên mình sẽ tải yolov5x

pretrained yolov5

II. Đưa lên Google Driver và Train trên Colab

Đầu tiên , các bạn nén thư mục yolov5 đã chuẩn bị. Và upload lên google driver của mình.

Tải yolov5 lên google driver

Tạo mới 1 google colab và thực hiện từng đoạn code sau :

  • Liên kết Google Driver:
from google.colab import drive
drive.mount('/content/gdrive')
  • Chuyển path làm việc đến Google Driver:
%cd /content/gdrive/MyDrive
code chuyển path trên google colab
  • Giải nén file yolov5.zip đã được upload lên trước đó
!unzip yolov5.zip
unzip yolov5
  • Chuyển path làm việc đến thư mục yolov5 vừa giải nén được và install các thư viện cần thiết.
%cd /content/gdrive/MyDrive/yolov5
!pip install -r requirements.txt 
cài đặt môi trường train yolov5
  • Tiến hành train yolov5

Lưu ý ! Các tham số sau:

–img: kích thuớt đầu vào của ảnh ( khuyên dùng 640)

–data : path file config đã tạo

–batch : số batch size – một lần lấy bao nhiêu ảnh để train

— epochs: Số epoch- số vòng lặp sau khi đã lấy hết ảnh

— weights: path file pretrained đã tải

%cd /content/gdrive/MyDrive/yolov5
!python train.py --img 640 --batch 8 --epochs 200 --data models/fanta.yaml --weights weights/yolov5x.pt
Train yolov5
  • Detect thử vật thể :

Chú ý các tham số:

— weights: đường dẫn file weights vừa train được

–conf : điểm trung bình , nếu vật thể có điểm >= trung bình sẽ được nhận diện là vật thể hợp lệ

— source: đường dẫn ảnh cần detect

%cd /content/gdrive/MyDrive/yolov5
from IPython.display import Image, clear_output
!python detect.py --weights runs/train/exp13/weights/best.pt --img 640 --conf 0.25 --source fanta/images/train/z1863991719690_7d12cf4cadfdff050b235356f1b70a89.jpg
detect with yolov5

Kết thúc detect, chương trình sẽ lưu 1 ảnh mới cùng tên trong thư mục runs/detect/exp. Các bạn chú ý để mở ảnh lên xem!

  • Mở ảnh lên xem detect có đúng không ?
Image(filename='runs/detect/exp4/z1863991719690_7d12cf4cadfdff050b235356f1b70a89.jpg', width=600)
nhận diện vật thể fanta

Các bạn có thể tham khảo colab của mình tại link :https://colab.research.google.com/drive/1GdW9Xs22BGE2NjQQDdf7-JJAjVFDpQSr?usp=sharing

III. Kết Luận

Như vậy quá trình train đã hoàn thành, giờ bạn có thể tải model về và tiến hành detect. Trong phần cuối mình sẽ hướng dẫn lấy file về và custom detect thành web nhé ! Các bạn đón chờ nhé!

Các bạn có thể tham gia group học python cơ bản tại link :https://www.facebook.com/groups/pythoncoban

Hoặc follow mình để biết nhiều project hay tại link facebook:https://www.facebook.com/sonnguyen16032000/

Và cũng có thể tham gia group hongtin để tìm hiểu các project hay hoặc hỏi các vấn đề về code nhé !https://www.facebook.com/groups/164371998723215