Bắt đầu nhanh với YOLOv5 🚀

Bắt đầu hành trình của bạn vào thế giới năng động của object detection thời gian thực với Ultralytics YOLOv5! Hướng dẫn này được soạn thảo như một điểm khởi đầu toàn diện cho những người đam mê AI và các chuyên gia đang hướng tới việc làm chủ YOLOv5. Từ thiết lập ban đầu cho đến các kỹ thuật huấn luyện nâng cao, chúng tôi đã chuẩn bị đầy đủ cho bạn. Đến cuối hướng dẫn này, bạn sẽ có kiến thức để tự tin triển khai YOLOv5 vào các dự án của mình bằng cách sử dụng các phương pháp deep learning hiện đại nhất. Hãy khởi động động cơ và bay cùng YOLOv5!

Cài đặt

Chuẩn bị khởi chạy bằng cách clone YOLOv5 repository và thiết lập môi trường. Điều này đảm bảo tất cả các requirements cần thiết đều đã được cài đặt. Kiểm tra xem bạn đã sẵn sàng với Python>=3.8.0PyTorch>=1.8 để cất cánh chưa. Những công cụ nền tảng này rất quan trọng để chạy YOLOv5 hiệu quả.

git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependencies

Inference với PyTorch Hub

Trải nghiệm sự đơn giản của việc inference YOLOv5 qua PyTorch Hub, nơi các models được tải xuống liền mạch từ release mới nhất của YOLOv5. Phương pháp này tận dụng sức mạnh của PyTorch để tải và thực thi model dễ dàng, giúp việc lấy kết quả dự đoán trở nên đơn giản.

import torch

# Model loading
model = torch.hub.load("ultralytics/yolov5", "yolov5s")  # Can be 'yolov5n' - 'yolov5x6', or 'custom'

# Inference on images
img = "https://ultralytics.com/images/zidane.jpg"  # Can be a file, Path, PIL, OpenCV, numpy, or list of images

# Run inference
results = model(img)

# Display results
results.print()  # Other options: .show(), .save(), .crop(), .pandas(), etc. Explore these in the Predict mode documentation.

Inference với detect.py

Sử dụng detect.py cho các tác vụ inference đa năng trên nhiều nguồn dữ liệu khác nhau. Script này tự động lấy các models từ release mới nhất của YOLOv5 và lưu kết quả một cách dễ dàng. Script này lý tưởng cho việc sử dụng trên dòng lệnh (command-line) và tích hợp YOLOv5 vào các hệ thống lớn hơn, hỗ trợ đầu vào như hình ảnh, video, thư mục, webcam và thậm chí là live streams.

python detect.py --weights yolov5s.pt --source 0                              # webcam
python detect.py --weights yolov5s.pt --source image.jpg                      # image
python detect.py --weights yolov5s.pt --source video.mp4                      # video
python detect.py --weights yolov5s.pt --source screen                         # screenshot
python detect.py --weights yolov5s.pt --source path/                          # directory
python detect.py --weights yolov5s.pt --source list.txt                       # list of images
python detect.py --weights yolov5s.pt --source list.streams                   # list of streams
python detect.py --weights yolov5s.pt --source 'path/*.jpg'                   # glob pattern
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # YouTube video
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream

Training

Tái tạo các benchmark trên COCO dataset của YOLOv5 bằng cách làm theo các hướng dẫn huấn luyện dưới đây. Các modelsdatasets cần thiết (như coco128.yaml hoặc coco.yaml đầy đủ) được lấy trực tiếp từ release mới nhất của YOLOv5. Việc huấn luyện YOLOv5n/s/m/l/x trên một GPU V100 thường sẽ mất lần lượt 1/2/4/6/8 ngày (lưu ý rằng các thiết lập huấn luyện Multi-GPU sẽ hoạt động nhanh hơn). Tối đa hóa hiệu suất bằng cách sử dụng --batch-size cao nhất có thể hoặc sử dụng --batch-size -1 cho tính năng AutoBatch của YOLOv5, tính năng này tự động tìm ra batch size tối ưu. Các batch size sau đây là lý tưởng cho GPU V100-16GB. Tham khảo hướng dẫn cấu hình của chúng tôi để biết chi tiết về các file cấu hình model (*.yaml).

# Train YOLOv5n on COCO128 for 3 epochs
python train.py --data coco128.yaml --epochs 3 --weights yolov5n.pt --batch-size 128

# Train YOLOv5s on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64

# Train YOLOv5m on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40

# Train YOLOv5l on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24

# Train YOLOv5x on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
YOLOv5 training curves for COCO dataset

Tóm lại, YOLOv5 không chỉ là một công cụ hiện đại cho object detection mà còn là minh chứng cho sức mạnh của machine learning trong việc thay đổi cách chúng ta tương tác với thế giới thông qua khả năng hiểu hình ảnh. Khi bạn tiến bộ qua hướng dẫn này và bắt đầu áp dụng YOLOv5 vào các dự án của mình, hãy nhớ rằng bạn đang đi đầu trong một cuộc cách mạng công nghệ, có khả năng đạt được những kỳ tích đáng kinh ngạc trong computer vision. Nếu bạn cần thêm thông tin chi tiết hoặc hỗ trợ từ những người cùng chí hướng, bạn được chào đón tại GitHub repository, nơi tập trung cộng đồng các nhà phát triển và nghiên cứu. Khám phá thêm các tài nguyên như Ultralytics Platform để quản lý dataset và huấn luyện model không cần code, hoặc xem trang Solutions của chúng tôi để biết các ứng dụng thực tế và lấy cảm hứng. Hãy tiếp tục khám phá, tiếp tục đổi mới và tận hưởng những điều kỳ diệu của YOLOv5. Chúc bạn phát hiện thành công! 🌠🔍

Bình luận