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

YOLOv8 и EfficientDet: глубокое погружение в архитектуры detect объектов

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

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

Прямое сравнение производительности: скорость, точность и эффективность

Сравнение YOLOv8 и EfficientDet подчеркивает фундаментальный сдвиг в философии проектирования. EfficientDet уделяет большое внимание минимизации FLOPs (операций с плавающей запятой) и количества параметров, что теоретически делает его очень эффективным. В отличие от этого, YOLOv8 разработан для максимального увеличения пропускной способности на современном оборудовании, используя параллелизм GPU для обеспечения превосходной скорости инференса без ущерба для точности.

Модельразмер
(пиксели)
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
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0

Основные выводы из тестов производительности

  • Превосходство по задержке GPU: Модели YOLOv8 значительно быстрее на оборудовании GPU. Например, YOLOv8x достигает более высокого mAP (53.9), чем EfficientDet-d7 (53.7), и при этом работает примерно в 9 раз быстрее на GPU T4 (14.37 мс против 128.07 мс). Это делает YOLOv8 предпочтительным выбором для приложений inference в реальном времени.
  • Точность vs. Параметры: Хотя EfficientDet славится своей эффективностью по параметрам, YOLOv8 обеспечивает конкурентоспособную точность с моделями, которые легче оптимизировать. YOLOv8m превосходит EfficientDet-d4 по точности (50,2 против 49,7 mAP) со значительно более высокой скоростью инференса, несмотря на различия в FLOPs.
  • Эффективность архитектуры: Более низкое количество FLOP у EfficientDet не всегда приводит к более низкой задержке, особенно на GPU, где затраты на доступ к памяти и параллелизм важнее, чем количество необработанных операций. Архитектура YOLOv8 адаптирована для максимального использования аппаратного обеспечения.

Оптимизация оборудования

Всегда тестируйте модели на целевом оборудовании. Теоретические FLOP являются полезным показателем сложности, но часто не позволяют предсказать фактическую задержку на GPU или NPU, где пропускная способность памяти и возможности параллелизации играют большую роль. Используйте режим тестирования YOLO для проверки производительности на вашей конкретной конфигурации.

Ultralytics YOLOv8 Обзор

YOLOv8 — это последняя основная итерация в серии YOLO (You Only Look Once), выпущенная Ultralytics и разработанная как унифицированный фреймворк для обнаружения объектов, сегментации экземпляров и классификации изображений.

  • Авторы: Гленн Джокер, Аюш Чаурасия и Цзин Цю
  • Организация:Ultralytics
  • Дата: 10 января 2023 г.
  • GitHub:ultralytics/ultralytics

YOLOv8 представляет ключевые архитектурные улучшения, в том числе детектирующий слой без anchor boxes, который упрощает процесс обучения и улучшает обобщение для различных форм объектов. Она также использует новую магистральную сеть и сеть агрегации путей (PAN-FPN), предназначенную для более насыщенной интеграции признаков.

Узнайте больше о YOLOv8

Сильные стороны YOLOv8

  • Современная производительность: Обеспечивает исключительный баланс скорости и точности, устанавливая эталонные показатели на наборе данныхCOCO .
  • Удобная для разработчиков экосистема: Параметр ultralytics python пакет предлагает оптимизированный API, который объединяет обучение, валидацию и развертывание.
  • Универсальность: Поддерживает несколько задач (Detection, Segmentation, Pose, OBB, Classification) в рамках одного репозитория.
  • Эффективность обучения: Используя такие методы, как аугментация Mosaic, модели YOLOv8 сходятся быстрее и часто требуют меньше обучающих данных для достижения высокой точности.

Обзор Google EfficientDet

EfficientDet, разработанный командой Google Brain, представляет собой семейство моделей detect object, которые представили концепцию compound scaling для detect object. Он масштабирует разрешение, глубину и ширину сети одновременно для достижения оптимальной производительности.

EfficientDet построен на основе EfficientNet и представляет BiFPN (Bidirectional Feature Pyramid Network), которая обеспечивает простое и быстрое многомасштабное слияние признаков.

Узнайте больше об EfficientDet

Сильные стороны EfficientDet

  • Эффективность параметров: Достигает высокой точности с относительно небольшим количеством параметров и FLOPs.
  • Масштабируемость: Параметр d0 в d7 метод масштабирования предоставляет систематический способ достижения компромисса между ресурсами и точностью.
  • BiFPN: Инновационная сеть пирамиды признаков эффективно объединяет признаки с разным разрешением.

Архитектурное сравнение

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

Backbone и Feature Fusion

  • YOLOv8 использует модифицированный бэкбон CSPDarknet с модулем C2f, который заменяет модуль C3 из YOLOv5. Эта конструкция улучшает поток градиента и хорошо оптимизирована для параллелизма GPU.
  • EfficientDet использует backbone EfficientNet в сочетании с BiFPN. BiFPN использует обучаемые веса для объединения признаков с разных уровней, что теоретически эффективно, но включает в себя сложные, нерегулярные шаблоны доступа к памяти, которые могут замедлить вывод на GPU.

Обнаружение Head

  • YOLOv8 использует архитектуру decoupled head, разделяющую задачи objectness, классификации и регрессии. Важно отметить, что она anchor-free, предсказывая центры объектов напрямую. Это устраняет необходимость в ручной настройке anchor box и уменьшает количество гиперпараметров.
  • EfficientDet использует подход, основанный на anchor. Хотя anchor-based методы эффективны, они часто требуют тщательной калибровки размеров anchor и соотношений сторон для конкретных наборов данных, что усложняет конвейер обучения.

Простота использования и экосистема

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

Опыт Ultralytics

Ultralytics Python API позволяет пользователям загружать, обучать и развертывать модели всего несколькими строками кода. Экосистема включает в себя интеграцию с такими инструментами, как Weights & Biases для отслеживания экспериментов и Roboflow для управления датасетами.

from ultralytics import YOLO

# Load a YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

В отличие от этого, EfficientDet обычно встречается в репозиториях, ориентированных на исследования (например, в оригинальной реализации TensorFlow). Хотя эти реализации и мощные, они часто требуют больше шаблонного кода, сложных файлов конфигурации и более глубоких знаний базового фреймворка (TensorFlow/Keras) для обучения на пользовательских наборах данных.

Возможности экспорта

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

Идеальные варианты использования

Когда следует выбирать YOLOv8

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

  • Приложения реального времени: Автономное вождение, видеонаблюдение и робототехника, где критически важна задержка.
  • Развертывание на периферии: Работа на NVIDIA Jetson, мобильных устройствах или периферийных вычислительных блоках, где эффективность и скорость имеют первостепенное значение.
  • Быстрое прототипирование: Когда вам нужно быстро перейти от набора данных к развернутой модели, используя надежную, хорошо документированную структуру.
  • Multi-Task Requirements: Если ваш проект включает segment или оценку позы, YOLOv8 обрабатывает их изначально.

Когда следует выбирать EfficientDet

EfficientDet остается актуальным в нишевых сценариях, особенно в рамках академических исследований или в средах CPU с высокой степенью ограничений.

  • Теоретическое исследование: Изучение эффективных сетевых архитектур и законов масштабирования.
  • Специфические маломощные CPU: В некоторых случаях низкое количество FLOP может привести к увеличению времени автономной работы на CPU с крайне ограниченными ресурсами, хотя рекомендуется провести тестирование.

Заключение

Несмотря на то, что EfficientDet была важным достижением в области эффективного проектирования нейронных сетей, YOLOv8 и более новая YOLO11 предлагают превосходный пакет для современной разработки ИИ. Anchor-free архитектура YOLOv8, оптимизированная для GPU конструкция и надежная экосистема Ultralytics обеспечивают значительное преимущество с точки зрения скорости разработки, задержки инференса и гибкости развертывания.

Для разработчиков, стремящихся создавать современные решения компьютерного зрения, которые являются одновременно быстрыми и точными, модели Ultralytics YOLO — это оптимальный выбор.

Изучите другие модели

Если вам интересно сравнить эти архитектуры с другими моделями, ознакомьтесь с этими страницами:


Комментарии