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

Исследуйте Ultralytics YOLOv8

Обзор

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

Ultralytics YOLOv8



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

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

  • Передовые архитектуры позвоночника и шеи: В YOLOv8 используются самые современные архитектуры позвоночника и шеи, что позволяет повысить эффективность извлечения признаков и обнаружения объектов.
  • Ultralytics Головка без якоря: YOLOv8 использует головку без якоря Ultralytics , что способствует повышению точности и эффективности процесса обнаружения по сравнению с подходами, основанными на якорях.
  • Оптимизация соотношения точности и скорости: благодаря оптимальному балансу между точностью и скоростью, 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
(мс)
params
(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
(мс)
params
(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 предварительно обученных классов, см. в разделе Segmentation Docs.

Модель размер
(пикселей)
mAPbox
50-95
mAPmask
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(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 предварительно обученных классов, см. в разделе Classification Docs.

Модель размер
(пикселей)
acc
top1
акк
топ5
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(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 предварительно обученный класс "человек", см. в Документах по оценке позы.

Модель размер
(пикселей)
mAPpose
50-95
mAPpose
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(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
(мс)
params
(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 docs.

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

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

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

Каковы показатели производительности моделей 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 год назад ✏️ Обновлено 8 дней назад

Комментарии