中文 | 한국어 | 日本語 | Русский | немецкий | Французский | испанский | Португальский | тюркче | Тианг Вьет | عربية
YOLOv5 ? — это самый любимый в мире искусственный интеллект для видения, представляющий исследование Ultralytics с открытым исходным кодом в области методов искусственного интеллекта для видения будущего, включающее извлеченные уроки и лучшие практики, разработанные в течение тысяч часов исследований и разработок.
Мы надеемся, что представленные здесь ресурсы помогут вам максимально эффективно использовать YOLOv5. Пожалуйста, просмотрите документацию YOLOv5 для получения подробной информации, поднимите вопрос на GitHub для получения поддержки и присоединяйтесь к нашему сообществу Discord для вопросов и обсуждений!
Чтобы запросить корпоративную лицензию, заполните форму на сайте Ultralytics Licensing.
ЙОЛО11 ? НОВЫЙ
Мы рады представить выпуск Ultralytics YOLO11?, последнего достижения в наших современных (SOTA) моделях машинного зрения! Доступный сейчас на GitHub , YOLO11 основан на нашем наследии скорости, точности и простоты использования. Независимо от того, занимаетесь ли вы обнаружением объектов, сегментацией или классификацией изображений, YOLO11 обеспечивает производительность и универсальность, необходимые для достижения успеха в различных приложениях.
Начните сегодня и раскройте весь потенциал YOLO11! Посетите документацию Ultralytics для получения подробных руководств и ресурсов:
pip install ультралитики
Документация
См. документацию YOLOv5 для получения полной документации по обучению, тестированию и развертыванию. Ниже приведены примеры быстрого запуска.
Клонируйте репозиторий и установите файл require.txt в среде Python>=3.8.0 , включая PyTorch>=1.8 .
git clone https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r требования.txt # установить
Вывод YOLOv5 PyTorch Hub. Модели загружаются автоматически из последней версии YOLOv5.
import torch# Modelmodel = torch.hub.load("ultralytics/yolov5", "yolov5s") # или yolov5n - yolov5x6, custom# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # или файл, Path, PIL, OpenCV, numpy, list# Inferenceresults = model(img)#Resultsresults.print() # или .show(), .save(), .crop(), .pandas() и т. д.
detect.py
выполняет логические выводы из различных источников, автоматически загружая модели из последней версии YOLOv5 и сохраняя результаты в runs/detect
.
pythonDetect.py --weights yolov5s.pt --source 0 # веб-камера img.jpg # изображение vid.mp4 #видео экран # скриншот путь/# каталог list.txt # список изображений list.streams # список потоков 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # поток RTSP, RTMP, HTTP
Команды ниже воспроизводят результаты YOLOv5 COCO. Модели и наборы данных загружаются автоматически из последней версии YOLOv5. Время обучения для YOLOv5n/s/m/l/x составляет 1/2/4/6/8 дней на графическом процессоре V100 (на нескольких графических процессорах в разы быстрее). Используйте максимально возможный --batch-size
или передайте --batch-size -1
для YOLOv5 AutoBatch. Размеры пакетов указаны для V100–16 ГБ.
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 йолов5с 64 йолов5м 40 yolov5l 24 йолов5x 16
Обучить пользовательские данные? РЕКОМЕНДУЕТСЯ
Советы для достижения наилучших результатов тренировок ☘️
Обучение работе с несколькими графическими процессорами
PyTorch-хаб? НОВЫЙ
Экспорт TFLite, ONNX, CoreML, TensorRT?
Развертывание платформы NVIDIA Jetson? НОВЫЙ
Увеличение времени тестирования (TTA)
Модельный ансамбль
Сокращение модели/разреженность
Эволюция гиперпараметров
Перенос обучения с замороженными слоями
Резюме архитектуры? НОВЫЙ
Ultralytics HUB для обучения и развертывания YOLO? РЕКОМЕНДУЕТСЯ
Ведение журнала ClearML
YOLOv5 с Deepsparse от Neural Magic
Запись кометы? НОВЫЙ
Интеграции
Наши ключевые интеграции с ведущими платформами искусственного интеллекта расширяют функциональность предложений Ultralytics, улучшая такие задачи, как маркировка наборов данных, обучение, визуализация и управление моделями. Узнайте, как Ultralytics в сотрудничестве с W&B, Comet, Roboflow и OpenVINO может оптимизировать ваш рабочий процесс с искусственным интеллектом.
Ультралитики ХАБ ? | В&Б | Комета ⭐ НОВИНКА | Нейронная магия |
---|---|---|---|
Оптимизируйте рабочие процессы YOLO: легко маркируйте, обучайте и развертывайте с помощью Ultralytics HUB. Попробуйте сейчас! | Отслеживайте эксперименты, гиперпараметры и результаты с помощью Weights & Biases | Бесплатная навсегда Comet позволяет сохранять модели YOLOv5, возобновлять обучение, а также интерактивно визуализировать и отлаживать прогнозы. | Выполняйте вывод YOLO11 до 6 раз быстрее с помощью Neural Magic DeepSparse |
Ультралитики ХАБ
Испытайте безупречный искусственный интеллект с помощью Ultralytics HUB ⭐, универсального решения для визуализации данных, YOLOv5 и YOLOv8? обучение и развертывание модели без какого-либо кодирования. Превратите изображения в полезную информацию и с легкостью воплотите свои идеи искусственного интеллекта в жизнь с помощью нашей передовой платформы и удобного приложения Ultralytics. Начните свое путешествие бесплатно прямо сейчас!
Почему YOLOv5
YOLOv5 был разработан так, чтобы его было очень легко начать и легко освоить. Мы отдаем предпочтение реальным результатам.
COCO AP val обозначает метрику mAP@0,5:0,95, измеренную на наборе данных COCO val2017 из 5000 изображений при различных размерах вывода от 256 до 1536.
Скорость графического процессора измеряет среднее время вывода каждого изображения в наборе данных COCO val2017 с использованием экземпляра AWS p3.2xlarge V100 с размером пакета 32.
Данные EfficientDet из google/automl с размером пакета 8.
Воспроизведение с помощью python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
Модель | размер (пикселей) | значение карты 50-95 | значение карты 50 | Скорость ЦП b1 (РС) | Скорость В100 б1 (РС) | Скорость В100 б32 (РС) | параметры (М) | Флопы @640 (Б) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28,0 | 45,7 | 45 | 6.3 | 0,6 | 1,9 | 4,5 |
YOLOv5s | 640 | 37,4 | 56,8 | 98 | 6.4 | 0,9 | 7.2 | 16,5 |
YOLOv5m | 640 | 45,4 | 64,1 | 224 | 8.2 | 1,7 | 21.2 | 49,0 |
YOLOv5l | 640 | 49,0 | 67,3 | 430 | 10.1 | 2.7 | 46,5 | 109,1 |
YOLOv5x | 640 | 50,7 | 68,9 | 766 | 12.1 | 4,8 | 86,7 | 205,7 |
YOLOv5n6 | 1280 | 36,0 | 54,4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
YOLOv5s6 | 1280 | 44,8 | 63,7 | 385 | 8.2 | 3.6 | 12,6 | 16,8 |
YOLOv5m6 | 1280 | 51,3 | 69,3 | 887 | 11.1 | 6,8 | 35,7 | 50,0 |
YOLOv5l6 | 1280 | 53,7 | 71,3 | 1784 г. | 15,8 | 10,5 | 76,8 | 111,4 |
YOLOv5x6 + ТТА | 1280 1536 | 55,0 55,8 | 72,7 72,7 | 3136 - | 26.2 - | 19,4 - | 140,7 - | 209,8 - |
Все контрольные точки обучены до 300 эпох с настройками по умолчанию. Модели Nano и Small используют hyp.scratch-low.yaml, все остальные используют hyp.scratch-high.yaml.
Значения mAP val указаны для одной модели и одного масштаба в наборе данных COCO val2017.
Воспроизведение с помощью python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
Скорость усреднена по изображениям COCO val с использованием экземпляра AWS p3.2xlarge. Время NMS (~1 мс/изображение) не включено.
Воспроизведение с помощью python val.py --data coco.yaml --img 640 --task speed --batch 1
Увеличение времени тестирования TTA включает в себя увеличение отражения и масштабирования.
Воспроизвести с помощью python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
Сегментация
Наши новые модели сегментации экземпляров версии YOLOv5 v7.0 являются самыми быстрыми и точными в мире, превосходя все текущие тесты SOTA. Мы сделали их очень простыми в обучении, проверке и развертывании. Подробную информацию см. в наших примечаниях к выпуску и посетите наш блокнот Colab по сегментации YOLOv5, где можно найти краткие руководства.
Мы обучили модели сегментации YOLOv5 на COCO в течение 300 эпох при размере изображения 640 с использованием графических процессоров A100. Мы экспортировали все модели в ONNX FP32 для тестов скорости процессора и в TensorRT FP16 для тестов скорости графического процессора. Мы провели все тесты скорости на ноутбуках Google Colab Pro, чтобы их можно было легко воспроизвести.
Модель | размер (пикселей) | картографический блок 50-95 | маска карты 50-95 | Время поезда 300 эпох А100 (часы) | Скорость Процессор ONNX (РС) | Скорость ТРТ А100 (РС) | параметры (М) | Флопы @640 (Б) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-сег | 640 | 27,6 | 23,4 | 80:17 | 62,7 | 1.2 | 2.0 | 7.1 |
YOLOv5s-сег | 640 | 37,6 | 31,7 | 88:16 | 173,3 | 1,4 | 7,6 | 26,4 |
YOLOv5м-сег | 640 | 45,0 | 37,1 | 108:36 | 427,0 | 2.2 | 22,0 | 70,8 |
YOLOv5l-сег | 640 | 49,0 | 39,9 | 66:43 (2 раза) | 857,4 | 2,9 | 47,9 | 147,7 |
YOLOv5x-сегмент | 640 | 50,7 | 41,4 | 62:56 (3 раза) | 1579,2 | 4,5 | 88,8 | 265,7 |
Все контрольные точки обучены до 300 эпох с помощью оптимизатора SGD с lr0=0.01
и weight_decay=5e-5
при размере изображения 640 и всех настройках по умолчанию.
Запуски зарегистрированы на https://wandb.ai/glenn-jocher/YOLOv5_v70_official.
Значения точности указаны для одной модели и одного масштаба в наборе данных 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
Обучение сегментации YOLOv5 поддерживает автоматическую загрузку набора данных сегментации COCO128-seg с аргументом --data coco128-seg.yaml
и загрузку набора данных COCO-сегментов вручную с помощью bash data/scripts/get_coco.sh --train --val --segments
, а затем python train.py --data coco.yaml
.
# Одночиповый сегмент Python/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# Многочиповый DDPpython -m torch.distributed.run --nproc_per_node 4 --master_port 1 сегмент /train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3
Проверьте карту маски YOLOv5s-seg в наборе данных COCO:
bash data/scripts/get_coco.sh --val --segments # скачать COCO val сегменты, разделенные (780 МБ, 5000 изображений)python сегмент/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # подтвердить
Используйте предварительно обученный YOLOv5m-seg.pt для прогнозирования bus.jpg:
python сегмент/predict.py --weights yolov5m-seg.pt --source 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
Классификация
Версия YOLOv5 v6.2 обеспечивает поддержку обучения, проверки и развертывания модели классификации! Подробную информацию см. в наших примечаниях к выпуску и посетите наш блокнот Colab по классификации YOLOv5, где можно найти краткие руководства.
Мы обучили модели классификации YOLOv5-cls в ImageNet для 90 эпох, используя экземпляр 4xA100, а также обучили модели ResNet и EfficientNet вместе с теми же настройками обучения по умолчанию для сравнения. Мы экспортировали все модели в ONNX FP32 для тестов скорости процессора и в TensorRT FP16 для тестов скорости графического процессора. Мы провели все тесты скорости в Google Colab Pro для удобства воспроизводимости.
Модель | размер (пикселей) | соотв. топ1 | соотв. топ5 | Обучение 90 эпох 4xA100 (часы) | Скорость Процессор ONNX (РС) | Скорость ТензорРТ В100 (РС) | параметры (М) | Флопы @224 (Б) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-cls | 224 | 64,6 | 85,4 | 7:59 | 3.3 | 0,5 | 2,5 | 0,5 |
YOLOv5s-cls | 224 | 71,5 | 90,2 | 8:09 | 6.6 | 0,6 | 5.4 | 1,4 |
YOLOv5m-cls | 224 | 75,9 | 92,9 | 10:06 | 15,5 | 0,9 | 12,9 | 3,9 |
YOLOv5l-cls | 224 | 78,0 | 94,0 | 11:56 | 26,9 | 1,4 | 26,5 | 8,5 |
YOLOv5x-cls | 224 | 79,0 | 94,4 | 15:04 | 54,3 | 1,8 | 48,1 | 15,9 |
Реснет18 | 224 | 70,3 | 89,5 | 6:47 | 11.2 | 0,5 | 11,7 | 3.7 |
Реснет34 | 224 | 73,9 | 91,8 | 8:33 | 20,6 | 0,9 | 21,8 | 7.4 |
Реснет50 | 224 | 76,8 | 93,4 | 11:10 | 23,4 | 1.0 | 25,6 | 8,5 |
Реснет101 | 224 | 78,5 | 94,3 | 17:10 | 42,1 | 1,9 | 44,5 | 15,9 |
EfficientNet_b0 | 224 | 75,1 | 92,4 | 13:03 | 12,5 | 1.3 | 5.3 | 1.0 |
ЭффективнаяСеть_b1 | 224 | 76,4 | 93,2 | 17:04 | 14,9 | 1,6 | 7,8 | 1,5 |
ЭффективнаяСеть_b2 | 224 | 76,6 | 93,4 | 17:10 | 15,9 | 1,6 | 9.1 | 1,7 |
ЭффективнаяСеть_b3 | 224 | 77,7 | 94,0 | 19:19 | 18,9 | 1,9 | 12.2 | 2.4 |
Все контрольные точки обучены до 90 эпох с помощью оптимизатора SGD с lr0=0.001
и weight_decay=5e-5
при размере изображения 224 и всех настройках по умолчанию.
Запуски зарегистрированы на https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2.
Значения точности указаны для одной модели и одного масштаба в наборе данных ImageNet-1k.
Воспроизвести с помощью python classify/val.py --data ../datasets/imagenet --img 224
Скорость составила в среднем более 100 изображений вывода с использованием экземпляра Google Colab Pro V100 High-RAM.
Воспроизвести с помощью python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
Экспорт в ONNX в FP32 и TensorRT в FP16 выполняется с помощью export.py
.
Воспроизвести с помощью python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
Обучение классификации YOLOv5 поддерживает автоматическую загрузку наборов данных MNIST, Fashion-MNIST, CIFAR10, CIFAR100, Imagenette, Imagewoof и ImageNet с аргументом --data
. Например, чтобы начать обучение MNIST, используйте --data mnist
.
# Single-GPUpython classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# Multi-GPU DDPpython -m torch.distributed.run --nproc_per_node 4 - -master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
Проверьте точность YOLOv5m-cls на наборе данных ImageNet-1k:
bash data/scripts/get_imagenet.sh --val # скачать ImageNet val Split (6.3G, 50 000 изображений)python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # подтвердить
Используйте предварительно обученный YOLOv5s-cls.pt для прогнозирования bus.jpg:
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # загрузка из PyTorch Hub
Экспортируйте группу обученных моделей YOLOv5s-cls, ResNet и EfficientNet в ONNX и TensorRT:
python Export.py --weights yolov5s-cls.pt resnet50.pt effectnet_b0.pt --include onnx engine --img 224
Окружающая среда
Начните работу за считанные секунды с нашими проверенными средами. Нажмите на каждый значок ниже, чтобы получить подробную информацию.
Способствовать
Нам нравится ваш вклад! Мы хотим сделать участие в YOLOv5 максимально простым и прозрачным. Пожалуйста, ознакомьтесь с нашим Руководством для участников, чтобы начать работу, и заполните опрос YOLOv5, чтобы отправить нам отзыв о своем опыте. Спасибо всем нашим участникам!
Лицензия
Ultralytics предлагает два варианта лицензирования для различных вариантов использования:
Лицензия AGPL-3.0 : эта лицензия с открытым исходным кодом, одобренная OSI, идеально подходит для студентов и энтузиастов, способствуя открытому сотрудничеству и обмену знаниями. Дополнительные сведения см. в файле ЛИЦЕНЗИИ.
Лицензия Enterprise . Разработанная для коммерческого использования, эта лицензия обеспечивает плавную интеграцию программного обеспечения Ultralytics и моделей искусственного интеллекта в коммерческие товары и услуги, минуя требования AGPL-3.0 к открытому исходному коду. Если ваш сценарий предполагает встраивание наших решений в коммерческое предложение, обратитесь в службу лицензирования Ultralytics.
Контакт
Чтобы получить отчеты об ошибках YOLOv5 и запросы на новые функции, посетите GitHub Issues и присоединяйтесь к нашему сообществу Discord, чтобы задать вопросы и обсудить!