Перейти к содержимому

Ultralytics YOLOv8

Обзор

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

Ultralytics YOLOv8



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

Основные характеристики

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

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

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

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

МодельИмена файловЗаданиеЗаключениеВалидацияТренировкаЭкспорт
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 , подчеркивающий их применимость в конкретных задачах и совместимость с различными рабочими режимами, такими как Inference, Validation, Training и Export. Она демонстрирует универсальность и надежность моделей серии YOLOv8 , что делает их подходящими для различных приложений в области компьютерного зрения.

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

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

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

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

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

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

МодельРазмер
(пикселей)
acc
top1
Акк
топ5
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(M)
FLOPs
(B) в 640
YOLOv8n-cls22469.088.312.90.312.74.3
YOLOv8s-cls22473.891.723.40.356.413.5
YOLOv8m-cls22476.893.585.40.6217.042.7
YOLOv8l-cls22476.893.5163.00.8737.599.7
YOLOv8x-cls22479.094.6232.01.0157.4154.8

Примеры использования этих моделей, обученных на COCO, см. в Pose Estimation Docs, где приводится 1 предварительно обученный класс - "человек".

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

МодельРазмер
(пикселей)
mAPtest
50
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(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 . Полную документацию по этим и другим режимам можно найти на страницах 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 Это последняя итерация серии Ultralytics YOLO , разработанная для улучшения производительности обнаружения объектов в реальном времени с помощью расширенных возможностей. В отличие от предыдущих версий, YOLOv8 включает в себя безъякорную разъемную Ultralytics головку, современные архитектуры позвоночника и шеи, а также предлагает оптимизированный компромисс между точностью и скоростью, что делает его идеальным для различных приложений. Более подробную информацию ты найдешь в разделах "Обзор" и "Ключевые особенности".

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

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

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

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

Как обучить модель 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 год назад ✏️ Обновлено 12 дней назад

Комментарии