Перейти к содержанию

Изучите Ultralytics YOLOv8

Обзор

Ultralytics выпустила YOLOv8 10 января 2023 года, предложив передовую производительность с точки зрения точности и скорости. Основываясь на достижениях предыдущих версий YOLO, YOLOv8 представила новые функции и оптимизации, которые делают ее идеальным выбором для различных задач обнаружения объектов в широком спектре приложений.

Ultralytics YOLOv8



Смотреть: Обзор моделей Ultralytics YOLOv8

Ключевые особенности YOLOv8

  • Передовые архитектуры Backbone и Neck: YOLOv8 использует самые современные архитектуры backbone и neck, что приводит к улучшенному извлечению признаков и производительности обнаружения объектов.
  • Ultralytics Head без привязки к якорям: В YOLOv8 используется Ultralytics Head без привязки к якорям, что способствует повышению точности и эффективности процесса обнаружения по сравнению с подходами, основанными на якорях.
  • Оптимизированный компромисс между точностью и скоростью: Ориентируясь на поддержание оптимального баланса между точностью и скоростью, YOLOv8 подходит для задач обнаружения объектов в реальном времени в различных областях применения.
  • Разнообразие предварительно обученных моделей: YOLOv8 предлагает ряд предварительно обученных моделей для различных задач и требований к производительности, что упрощает поиск подходящей модели для вашего конкретного случая использования.

Поддерживаемые задачи и режимы

Серия YOLOv8 предлагает широкий спектр моделей, каждая из которых специализируется на конкретных задачах в области компьютерного зрения. Эти модели предназначены для удовлетворения различных требований, от обнаружения объектов до более сложных задач, таких как сегментация экземпляров, обнаружение позы/ключевых точек, обнаружение ориентированных объектов и классификация.

Каждый вариант серии YOLOv8 оптимизирован для своей конкретной задачи, что обеспечивает высокую производительность и точность. Кроме того, эти модели совместимы с различными режимами работы, включая вывод, валидацию, обучение и экспорт, что облегчает их использование на различных этапах развертывания и разработки.

МодельИмена файловЗадачаИнференсВалидацияОбучениеЭкспорт
YOLOv8yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.ptОбнаружение
YOLOv8-segyolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.ptСегментация экземпляров
YOLOv8-poseyolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.ptПоза/Ключевые точки
YOLOv8-obbyolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.ptОриентированное обнаружение
YOLOv8-clsyolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.ptКлассификация

В этой таблице представлен обзор вариантов моделей YOLOv8, в котором освещается их применимость в конкретных задачах и их совместимость с различными режимами работы, такими как вывод, валидация, обучение и экспорт. Это демонстрирует универсальность и надежность серии YOLOv8, что делает их подходящими для различных приложений в области компьютерного зрения.

Метрики производительности

Производительность

Примеры использования этих моделей, обученных на COCO, которые включают 80 предварительно обученных классов, см. в документации по обнаружению.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

Примеры использования этих моделей, обученных на Open Image V7, которые включают 600 предварительно обученных классов, см. в документации по обнаружению.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n64018.4142.41.213.510.5
YOLOv8s64027.7183.11.4011.429.7
YOLOv8m64033.6408.52.2626.280.6
YOLOv8l64034.9596.92.4344.1167.4
YOLOv8x64036.3860.63.5668.7260.6

Примеры использования этих моделей, обученных на COCO, которые включают 80 предварительно обученных классов, см. в документации по сегментации.

Модельразмер
(пиксели)
mAPbox
50-95
mAPmask
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n-seg64036.730.596.11.213.412.6
YOLOv8s-seg64044.636.8155.71.4711.842.6
YOLOv8m-seg64049.940.8317.02.1827.3110.2
YOLOv8l-seg64052.342.6572.42.7946.0220.5
YOLOv8x-seg64053.443.4712.14.0271.8344.1

Примеры использования этих моделей, обученных на ImageNet и включающих 1000 предварительно обученных классов, смотрите в документации по классификации.

Модельразмер
(пиксели)
acc
top1
acc
top5
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B) при 224
YOLOv8n-cls22469.088.312.90.312.70.5
YOLOv8s-cls22473.891.723.40.356.41.7
YOLOv8m-cls22476.893.585.40.6217.05.3
YOLOv8l-cls22476.893.5163.00.8737.512.3
YOLOv8x-cls22479.094.6232.01.0157.419.0

Примеры использования этих моделей, обученных на COCO и включающих 1 предварительно обученный класс ('person'), смотрите в документации по оценке позы.

Модельразмер
(пиксели)
mAPpose
50-95
mAPpose
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n-pose64050.480.1131.81.183.39.2
YOLOv8s-pose64060.086.2233.21.4211.630.2
YOLOv8m-pose64065.088.8456.32.0026.481.0
YOLOv8l-pose64067.690.0784.52.5944.4168.6
YOLOv8x-pose64069.290.21607.13.7369.4263.2
YOLOv8x-pose-p6128071.691.24088.710.0499.11066.4

Примеры использования этих моделей, обученных на DOTAv1 и включающих 15 предварительно обученных классов, смотрите в документации по ориентированному обнаружению.

Модельразмер
(пиксели)
mAPtest
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n-obb102478.0204.773.573.123.3
YOLOv8s-obb102479.5424.884.0711.476.3
YOLOv8m-obb102480.5763.487.6126.4208.6
YOLOv8l-obb102480.71278.4211.8344.5433.8
YOLOv8x-obb102481.361759.1013.2369.5676.7

YOLOv8 Примеры использования

В этом примере представлены простые примеры обучения и логического вывода YOLOv8. Полную документацию по этим и другим режимам см. на страницах документации Predict, Train, Val и Export.

Обратите внимание, что приведенный ниже пример предназначен для моделей YOLOv8 Detect для обнаружения объектов. Для получения информации о дополнительных поддерживаемых задачах см. документацию Segment, Classify, OBB и Pose.

Пример

PyTorch предварительно обученные *.pt модели, а также конфигурационные *.yaml файлы могут быть переданы в YOLO() класс для создания экземпляра модели в python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Для непосредственного запуска моделей доступны команды CLI:

# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

Цитирование и благодарности

Публикация Ultralytics YOLOv8

Ultralytics не публиковала официальную исследовательскую статью по YOLOv8 из-за быстро развивающегося характера моделей. Мы сосредоточены на развитии технологий и упрощении их использования, а не на создании статической документации. Для получения самой актуальной информации об архитектуре, функциях и использовании YOLO, пожалуйста, обратитесь к нашему репозиторию GitHub и документации.

Если вы используете модель YOLOv8 или любое другое программное обеспечение из этого репозитория в своей работе, пожалуйста, сошлитесь на него, используя следующий формат:

@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

Обратите внимание, что DOI находится на рассмотрении и будет добавлен в цитату, как только он станет доступен. Модели YOLOv8 предоставляются в соответствии с лицензиями AGPL-3.0 и Enterprise.

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

Что такое YOLOv8 и чем она отличается от предыдущих версий YOLO?

YOLOv8 разработан для улучшения производительности обнаружения объектов в реальном времени с помощью расширенных функций. В отличие от более ранних версий, YOLOv8 включает anchor-free split Ultralytics head, современные архитектуры backbone и neck, а также предлагает оптимизированный компромисс между точностью и скоростью, что делает его идеальным для различных приложений. Для получения более подробной информации ознакомьтесь с разделами «Обзор» и «Ключевые особенности».

Как я могу использовать YOLOv8 для различных задач компьютерного зрения?

YOLOv8 поддерживает широкий спектр задач компьютерного зрения, включая обнаружение объектов, сегментацию экземпляров, обнаружение позы/ключевых точек, обнаружение ориентированных объектов и классификацию. Каждый вариант модели оптимизирован для своей конкретной задачи и совместим с различными режимами работы, такими как Inference, Validation, Training и Export. Обратитесь к разделу Поддерживаемые задачи и режимы для получения дополнительной информации.

Каковы метрики производительности для моделей YOLOv8?

Модели YOLOv8 демонстрируют современную производительность в различных наборах данных для бенчмаркинга. Например, модель YOLOv8n достигает mAP (средняя точность) 37,3 на наборе данных COCO и скорости 0,99 мс на A100 TensorRT. Подробные метрики производительности для каждого варианта модели в различных задачах и наборах данных можно найти в разделе Метрики производительности.

Как обучить модель YOLOv8?

Обучение модели YOLOv8 можно выполнить с помощью Python или CLI. Ниже приведены примеры обучения модели с использованием предварительно обученной на COCO модели YOLOv8 на наборе данных COCO8 в течение 100 эпох:

Пример

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Для получения более подробной информации посетите документацию по Обучению.

Можно ли протестировать модели YOLOv8 для оценки производительности?

Да, модели YOLOv8 можно оценивать на производительность с точки зрения скорости и точности в различных форматах экспорта. Вы можете использовать PyTorch, ONNX, TensorRT и другие форматы для оценки. Ниже приведены примеры команд для оценки с использованием Python и CLI:

Пример

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Для получения дополнительной информации ознакомьтесь с разделом Метрики производительности.



📅 Создано 2 года назад ✏️ Обновлено 22 дня назад
glenn-jocherRizwanMunawarY-T-GLaughing-qLexBaroupderrengerMatthewNoyceUltralyticsAssistantBurhan-QAyushExelfcakyon

Комментарии