Ultralytics YOLO27:

YOLOv8 против YOLOv7#

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

Понимание структурных и методологических различий между этими двумя моделями крайне важно для инженеров по машинному обучению, стремящихся оптимизировать свои конвейеры развертывания. Если YOLOv7 внедрила мощный подход «bag-of-freebies», ориентированный на максимальную пропускную способность, то Ultralytics YOLOv8 сосредоточилась на создании целостной и удобной экосистемы, которая сочетает высокую точность с низким потреблением памяти и универсальностью для решения нескольких задач.

Ultralytics YOLOv8: универсальный стандарт экосистемы#

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

Архитектурные инновации#

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

Кроме того, архитектура включает модуль C2f (узкое место с частичной агрегацией на разных этапах и двумя свертками) — структурное улучшение, которое оптимизирует прохождение градиентов и позволяет нейронной сети изучать более насыщенные представления признаков без значительного увеличения вычислительных затрат. Благодаря этому модель работает очень эффективно при выполнении инференса через стандартные фреймворки глубокого обучения, такие как PyTorch.

Эффективность использования памяти

Модели Ultralytics YOLO разработаны для максимально эффективного обучения. Обычно во время обучения им требуется значительно меньше памяти CUDA по сравнению с архитектурами на основе Transformer или более тяжелыми CNN. Это позволяет тебе обучать модели с большими размерами пакета на пользовательском оборудовании, ускоряя цикл разработки.

YOLOv7: подход «Bag-of-Freebies»#

YOLOv7 была представлена в середине 2022 года и быстро стала популярным базовым решением в академических кругах. Она уделяла большое внимание архитектурной репараметризации и оптимизации путей прохождения градиентов, чтобы расширить возможности обнаружения объектов в реальном времени на производительных GPU.

  • Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
  • Организация: Институт информационных наук Academia Sinica, Тайвань
  • Дата: 2022-07-06
  • Arxiv: 2207.02696
  • GitHub: WongKinYiu/yolov7

Архитектурные инновации#

YOLOv7 использует расширенную сеть агрегации эффективных слоев (E-ELAN), которая позволяет модели непрерывно изучать более разнообразные признаки. Она в значительной степени опирается на подход с якорями и внедряет обучаемый «bag-of-freebies» — набор методов оптимизации, повышающих точность без увеличения стоимости инференса.

Хотя YOLOv7 демонстрирует отличные результаты на стандартных академических бенчмарках, таких как датасет MS COCO, ее архитектура сильно оптимизирована под ускорители серверного класса. Экспорт и развертывание этих моделей на периферийных устройствах иногда требуют больше ручной настройки по сравнению с более современными и оптимизированными фреймворками.

Узнай больше о YOLOv7

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

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

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Как видно из данных, YOLOv8x обеспечивает наивысшую абсолютную точность (53.9 mAP), а вариант Nano (YOLOv8n) предлагает исключительно высокую скорость инференса и невероятно малый размер. Благодаря этому YOLOv8 гораздо лучше подходит для сред с ограниченными аппаратными ресурсами.

Преимущество Ultralytics: простота использования и экосистема#

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

Непревзойдённая универсальность#

YOLOv7 — преимущественно модель для обнаружения объектов с экспериментальными ветками для других задач. В отличие от нее, YOLOv8 изначально поддерживает обнаружение объектов, сегментацию экземпляров, классификацию изображений, оценку позы и ориентированные ограничивающие блоки (OBB). Благодаря этому унифицированному подходу команде достаточно изучить один API и использовать его для совершенно разных требований проектов.

Упрощенное развертывание и интеграции#

Экспорт модели для использования в продакшене часто становится узким местом. Пакет Ultralytics позволяет разработчикам экспортировать модели в такие форматы, как ONNX, TensorRT и CoreML, одной строкой кода на Python. Это позволяет избежать проблем с поддержкой операторов, которые иногда возникают при экспорте сложных графов на основе якорей.

Кроме того, YOLOv8 бесшовно интегрируется с инструментами MLOps. Независимо от того, отслеживаешь ли ты эксперименты с помощью Weights & Biases или тестируешь развертывания в Hugging Face Spaces, экосистема Ultralytics берет на себя всю сложную работу.

Пример кода: обучение и экспорт YOLOv8#

В следующем примере кода показана простота Python API Ultralytics. Ты можешь перейти от инициализации модели к ее обучению и экспорту для развертывания на периферийных устройствах менее чем за десять строк кода.

from ultralytics import YOLO

# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")

# Export the trained model to ONNX format for deployment
model.export(format="onnx")
Гибкость развертывания

Использование функции model.export() обеспечивает прямой доступ к высокопроизводительным движкам инференса, позволяя тебе легко интегрировать YOLOv8 в мобильные приложения, встраиваемые системы или облачные серверы с высокой пропускной способностью.

Практические сценарии использования#

Архитектурные различия между двумя моделями определяют сценарии развертывания, для которых они подходят лучше всего.

Когда выбирать YOLOv8:

  • Периферийный ИИ и устройства IoT: наличие сверхбыстрых моделей Nano и Small делает YOLOv8 идеальным выбором для оборудования с ограниченными вычислительными ресурсами, например умных камер или дронов.
  • Проекты с несколькими задачами: если твоему конвейеру требуется одновременно отслеживать суставы человека (оценка позы) и строить карту препятствий (сегментация), YOLOv8 поддерживает это изначально.
  • От быстрого прототипирования до продакшена: обширная документация Ultralytics и удобный Python API позволяют командам быстрее выводить продукты на рынок.

Когда стоит рассмотреть YOLOv7:

  • Академический бенчмаркинг: исследователи, изучающие влияние методов репараметризации, часто используют YOLOv7 как стандартное базовое решение, что подтверждается ее популярностью на Papers With Code.
  • Устаревшие серверные конвейеры: если существующий конвейер с высокими вычислительными требованиями уже строго оптимизирован под конкретные якорные выходы YOLOv7, его сохранение может быть практичным в краткосрочной перспективе.

Взгляд в будущее: следующее поколение#

Хотя YOLOv8 остается универсальным мощным решением, ландшафт ИИ стремительно меняется. Командам, начинающим новые проекты, мы настоятельно рекомендуем изучить последние разработки в линейке Ultralytics.

Новейшее поколение, YOLO26, представляет собой вершину современных технологий ИИ для компьютерного зрения. Оно использует сквозную архитектуру без NMS, устраняя постобработку подавления немаксимумов для более простого и быстрого развертывания. Благодаря отказу от функции потерь для фокусировки на распределении (DFL) и внедрению оптимизатора MuSGD, вдохновленного LLM, YOLO26 обеспечивает более стабильное обучение и до 43% более быстрый инференс на CPU. Продвинутые функции потерь ProgLoss + STAL значительно улучшают распознавание малоразмерных объектов, делая эту модель оптимальным выбором для современных периферийных вычислений и аэрофотосъемки.

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

Комментарии