Ultralytics YOLO27:

Краткое руководство по YOLOv5 🚀#

Отправляйся в динамичный мир обнаружения объектов в реальном времени с Ultralytics YOLOv5! Это руководство станет подробной отправной точкой для энтузиастов ИИ и профессионалов, стремящихся освоить YOLOv5. От первоначальной настройки до продвинутых методов обучения — здесь ты найдёшь всё необходимое. К концу руководства ты будешь знать, как уверенно внедрять YOLOv5 в свои проекты, используя передовые методы глубокого обучения. Давай заведём двигатели и отправимся в полёт с YOLOv5!

Установка#

Для начала склонируй репозиторий YOLOv5 и настрой окружение. Так ты установишь все необходимые зависимости. Убедись, что у тебя установлены Python>=3.8.0 и PyTorch>=1.8. Эти инструменты необходимы для эффективной работы YOLOv5.

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 и легко сохраняет результаты. Этот скрипт отлично подходит для работы из командной строки и интеграции 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 training curves for COCO dataset

В заключение, YOLOv5 — это не только передовой инструмент для обнаружения объектов, но и убедительное свидетельство того, что машинное обучение способно преобразить наше взаимодействие с миром благодаря визуальному пониманию. Продвигаясь по этому руководству и начиная применять YOLOv5 в своих проектах, помни: ты находишься на переднем крае технологической революции и можешь добиваться впечатляющих результатов в компьютерном зрении. Если тебе понадобятся дополнительные сведения или поддержка единомышленников, заходи в наш репозиторий GitHub, где собрано активное сообщество разработчиков и исследователей. Изучи дополнительные ресурсы, например Ultralytics Platform для управления наборами данных и обучения моделей без кода, или загляни на страницу Решения с примерами применения в реальных условиях и идеями для вдохновения. Продолжай исследовать, продолжай внедрять инновации и наслаждайся чудесами YOLOv5. Удачной детекции! 🌠🔍

Часто задаваемые вопросы#

  • Для инференса — нет. 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, описанный в кратком руководстве.

Комментарии