Представляем сегментацию экземпляров в Ultralytics YOLOv5 v7.0
Познакомься с YOLOv5 v7.0 и новыми моделями сегментации экземпляров, превосходящими бенчмарки SOTA по точности и скорости AI. Присоединяйся к нашему сообществу.

YOLOv5 v7.0, последняя версия нашей архитектуры искусственного интеллекта, уже выпущена, и мы рады представить наши новые модели сегментации экземпляров!

Работая над этим последним выпуском, мы уделяли основное внимание двум целям. Первая — наша миссия сделать ИИ доступным, а вторая — наша задача переосмыслить, что на самом деле означает «передовой уровень».
Итак, благодаря значительным улучшениям, исправлениям и обновлениям мы сделали именно это. Сохранив те же простые рабочие процессы, что и в существующих моделях обнаружения объектов Ultralytics YOLOv5, мы сделали обучение, валидацию и развёртывание твоих моделей с YOLOv5 v7.0 ещё проще. Кроме того, мы превзошли все бенчмарки SOTA, фактически сделав YOLOv5 самой быстрой и точной моделью в мире.
Поскольку это наш первый выпуск моделей сегментации, мы безмерно гордимся этим достижением. Мы выражаем огромную благодарность нашему преданному сообществу и участникам разработки, которые помогли сделать этот выпуск возможным.

Итак, давай начнём с примечаний к выпуску YOLOv5 v7.0!
Важные обновления Ultralytics YOLOv5#
Вот что обновилось в YOLOv5 с момента нашего последнего выпуска YOLOv5 v6.2 в августе 2022 года.
- Модели сегментации ⭐ НОВИНКА: модели сегментации SOTA YOLOv5-seg, предварительно обученные на COCO, впервые стали доступны (#9052 от @glenn-jocher, @AyushExel и @Laughing-q)
- Экспорт в PaddlePaddle: экспортируй любую модель YOLOv5 (cls, seg, det) в формат Paddle с помощью python export.py --include paddle #9459 от @glenn-jocher)
- YOLOv5 AutoCache: команда python train.py --cache ram теперь сканирует доступную память и сравнивает её с прогнозируемым использованием RAM датасетом. Это снижает риск при кэшировании и должно способствовать более широкому использованию функции кэширования датасета, которая может значительно ускорить обучение. (#10027 от @glenn-jocher)
- Интеграция журналирования и визуализации Comet: Comet, бесплатный навсегда, позволяет сохранять модели YOLOv5, возобновлять обучение, а также интерактивно визуализировать и отлаживать прогнозы. (#9232 от @DN6)
Новые контрольные точки сегментации#
Мы обучили модели сегментации Ultralytics YOLOv5 на COCO в течение 300 эпох с размером изображения 640, используя GPU A100. Мы экспортировали все модели в ONNX FP32 для тестов скорости на CPU и в TensorRT FP16 для тестов скорости на GPU. Все тесты скорости мы провели в ноутбуках Google Colab Pro, чтобы обеспечить простое воспроизведение результатов.
- Все контрольные точки обучены в течение 300 эпох с оптимизатором SGD, lr0=0.01 и weight_decay=5e-5, при размере изображения 640 и всех настройках по умолчанию. Все запуски записываются в журналы обучения Weights & Biases.
- Значения точности приведены для одной модели и одного масштаба на датасете COCO. Воспроизвести результаты можно с помощью python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- Скорость усреднена по 100 изображениям для инференса с использованием экземпляра Colab Pro A100 High-RAM. Значения показывают только скорость инференса (NMS добавляет около 1 мс на изображение). Воспроизвести результаты можно с помощью python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- Экспорт в ONNX в FP32 и TensorRT в FP16 выполнен с помощью export.py. Воспроизвести результаты можно с помощью python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Новые примеры использования сегментации#
Обучение#
Обучение сегментации Ultralytics YOLOv5 поддерживает автоматическую загрузку датасета сегментации COCO128-seg с аргументом --data coco128-seg.yaml и ручную загрузку датасета COCO-segments с помощью bash data/scripts/get_coco.sh --train --val --segments, а затем python train.py --data coco.yaml.
Один GPU#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
Мульти-GPU DDP#
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3
Валидация#
Проверь точность YOLOv5m-seg на датасете COCO:
bash data/scripts/get_coco.sh --val --segments # загрузить сегменты валидационной выборки COCO (780 МБ, 5000 изображений) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # выполнить валидацию
Предсказание#
Используй предварительно обученную YOLOv5m-seg для предсказания на bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg
model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # загрузить из PyTorch Hub (ПРЕДУПРЕЖДЕНИЕ: инференс пока не поддерживается)

Экспорт#
Экспортируй модель YOLOv5s-seg в ONNX и TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Есть вопросы? Задай их на форуме Ultralytics, создай issue или отправь PR в репозитории. Также ты можешь начать с нашего ноутбука YOLOv5 segmentation для Colab, где есть краткие учебные материалы для быстрого старта.









