Представляем сегментацию экземпляров в Ultralytics YOLOv5 v7.0
Узнай о YOLOv5 v7.0 — выпуске, в котором появились модели YOLOv5 для сегментации экземпляров, — и посмотри примеры обучения, валидации, предсказания и экспорта.
Nuvola Ladi3 мин. чтения
Вышла YOLOv5 v7.0, последняя версия нашей архитектуры ИИ, и мы рады представить новые модели сегментации экземпляров! (Для новых проектов рекомендуем Ultralytics YOLO26, которая также поддерживает сегментацию экземпляров.)

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

Итак, давай ознакомимся с примечаниями к выпуску YOLOv5 v7.0!
Важные обновления Ultralytics YOLOv5#
Вот что изменилось в YOLOv5 со времени нашего предыдущего выпуска YOLOv5 v6.2 в августе 2022 года.
- Модели сегментации ⭐ НОВИНКА: впервые доступны модели YOLOv5-seg для сегментации, предварительно обученные на COCO и обеспечивающие передовые результаты (#9052, авторы: @glenn-jocher, @AyushExel и @Laughing-q)
- Экспорт в PaddlePaddle: экспортируй любую модель YOLOv5 (cls, seg, det) в формат Paddle с помощью
python export.py --include paddle(#9459 от @glenn-jocher) - Автоматическое кэширование YOLOv5:
python train.py --cache ramтеперь сканирует доступную память и сравнивает её с прогнозируемым объёмом оперативной памяти, необходимым для набора данных. Это снижает риск при кэшировании и должно способствовать более широкому использованию кэширования наборов данных, которое может значительно ускорить обучение. (#10027 от @glenn-jocher) - Интеграция журналирования и визуализации Comet: сервис Comet навсегда бесплатен. С его помощью можно сохранять модели YOLOv5, возобновлять обучение, а также интерактивно визуализировать и отлаживать предсказания. (#9232 от @DN6)
Новые контрольные точки сегментации#
Мы обучали модели сегментации Ultralytics YOLOv5 на COCO в течение 300 эпох с размером изображения 640 на GPU A100. Для тестов скорости CPU мы экспортировали все модели в ONNX FP32, а для тестов скорости GPU — в TensorRT FP16. Все тесты скорости мы запускали в блокнотах 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 с большим объёмом оперативной памяти. Указана только скорость инференса (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 segment/train.py --data coco.yaml.
Один GPU#
python segment/train.py --weights 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 --weights yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3Проверка#
Проверь точность YOLOv5s-seg на наборе данных COCO:
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images)
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validateПредсказание#
Используй предварительно обученную YOLOv5m-seg для предсказания на изображении bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpgmodel = 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 в репозитории. Также можешь начать с нашего блокнота Colab по сегментации YOLOv5, где есть краткие руководства.
Автор
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.










