Краткое руководство по 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 — это не только передовой инструмент для обнаружения объектов, но и убедительное свидетельство того, что машинное обучение способно преобразить наше взаимодействие с миром благодаря визуальному пониманию. Продвигаясь по этому руководству и начиная применять 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, описанный в кратком руководстве.