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

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

Модель Имена файлов Задача Инференс Валидация Обучение Экспорт
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt Обнаружение
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt Сегментация экземпляров
YOLOv8-pose yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt Поза/Ключевые точки
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt Ориентированное обнаружение
YOLOv8-cls yolov8n-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)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8

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

Модель размер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n 640 18.4 142.4 1.21 3.5 10.5
YOLOv8s 640 27.7 183.1 1.40 11.4 29.7
YOLOv8m 640 33.6 408.5 2.26 26.2 80.6
YOLOv8l 640 34.9 596.9 2.43 44.1 167.4
YOLOv8x 640 36.3 860.6 3.56 68.7 260.6

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

Модель размер
(пиксели)
mAPbox
50-95
mAPmask
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

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

Модель размер
(пиксели)
acc
top1
acc
top5
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B) при 224
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 0.5
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 1.7
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 5.3
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 12.3
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 19.0

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

Модель размер
(пиксели)
mAPpose
50-95
mAPpose
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

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

Модель размер
(пиксели)
mAPtest
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n-obb 1024 78.0 204.77 3.57 3.1 23.3
YOLOv8s-obb 1024 79.5 424.88 4.07 11.4 76.3
YOLOv8m-obb 1024 80.5 763.48 7.61 26.4 208.6
YOLOv8l-obb 1024 80.7 1278.42 11.83 44.5 433.8
YOLOv8x-obb 1024 81.36 1759.10 13.23 69.5 676.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

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



📅 Создано 1 год назад ✏️ Обновлено 3 месяца назад

Комментарии