Краткое руководство по YOLOv5 🚀
Это руководство поможет начать работу с обнаружением объектов в реальном времени с помощью Ultralytics YOLOv5. В нём рассматриваются установка, инференс с помощью PyTorch Hub и detect.py, а также обучение, чтобы ты мог применять эту модель глубокого обучения в собственных проектах.
Установка#
Клонируй репозиторий YOLOv5 и установи его зависимости в среде с Python>=3.8.0 и PyTorch>=1.8.
git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependenciesИнференс с PyTorch Hub#
Запусти инференс YOLOv5 через PyTorch Hub: он автоматически скачивает модели из последнего релиза YOLOv5. Этот способ использует PyTorch для загрузки и выполнения модели, поэтому получить предсказания просто.
import torch
# Загрузка модели
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Может быть 'yolov5n' - 'yolov5x6' или 'custom'
# Инференс на изображениях
img = "https://ultralytics.com/images/zidane.jpg" # Может быть файл, Path, PIL, OpenCV, numpy или список изображений
# Выполнить инференс
results = model(img)
# Отобразить результаты
results.print() # или .show(), .save(), .crop(), .pandas() и т. д.Инференс с detect.py#
Используй detect.py для инференса на множестве источников. Скрипт автоматически загружает модели из последнего релиза YOLOv5 и сохраняет результаты в runs/detect. Скрипт подходит для работы из командной строки и интеграции YOLOv5 в более крупные системы. Он поддерживает изображения, видео, каталоги, веб-камеры и даже прямые трансляции.
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Обучение#
Повтори результаты бенчмарков YOLOv5 на наборе данных COCO, следуя приведенным ниже инструкциям по обучению. Необходимые модели и наборы данных (например, coco128.yaml или полный coco.yaml) загружаются напрямую из последнего релиза YOLOv5. Обучение YOLOv5n/s/m/l/x на V100 GPU обычно занимает соответственно 1/2/4/6/8 дней (учти, что конфигурации с обучением на нескольких GPU работают быстрее). Добейся максимальной производительности, используя максимально возможный --batch-size, или задействуй --batch-size -1 для функции YOLOv5 AutoBatch, которая автоматически подбирает оптимальный размер пакета. Для GPU V100-16GB подходят следующие размеры пакетов. Подробности о файлах конфигурации моделей (*.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 в проектах компьютерного зрения, обращайся в репозиторий GitHub, чтобы задавать вопросы и делиться результатами с другими разработчиками и исследователями. Также ты можешь использовать платформу Ultralytics для управления наборами данных и обучения моделей без кода или изучить страницу Решения с примерами реальных приложений.
Часто задаваемые вопросы#
Для инференса — нет. PyTorch Hub загружает код и веса по запросу с помощью
torch.hub.load("ultralytics/yolov5", "yolov5s"). Чтобы запускать скриптыtrain.py,val.py,detect.pyиexport.py, репозиторий нужно клонировать.yolov5s.ptобеспечивает оптимальный баланс скорости и точности для большинства проектов. Используйyolov5n.ptдля периферийных устройств,yolov5m.pt–yolov5x.pt, если точность важнее скорости, а варианты P6, напримерyolov5s6.pt, — для обучения на изображениях размером 1280 пикселей. Полный список см. в таблице предварительно обученных контрольных точек.Помести изображения и метки в формате YOLO в параллельные каталоги
images/иlabels/, опиши их в файлеdataset.yamlи запустиpython train.py --data dataset.yaml --weights yolov5s.pt. В руководстве Обучение на пользовательских данных разобран каждый этап.YOLOv5 — стабильная модель, поддержка которой в отдельном репозитории продолжается в полном объёме, но она больше не является новейшей. Для новых проектов выбирай YOLO26 из пакета
ultralytics: эта модель быстрее, точнее и экспортируется сквозным образом без NMS, используя тот же рабочий процессpip install ultralytics, который описан в кратком руководстве.
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.