YOLOv8 против EfficientDet: Глубокое погружение в архитектуру обнаружения объектов
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для создания успешных приложений искусственного интеллекта. Двумя известными архитектурами, которые в свое время определили современное состояние дел, являются YOLOv8 от Ultralytics и EfficientDet от Google Research. В этом сравнении рассматриваются технические нюансы, показатели производительности и идеальные сценарии использования обеих моделей, что поможет разработчикам и исследователям принять обоснованное решение для своих проектов.
В то время как EfficientDet с момента своего выпуска представил новаторские концепции масштабирования и эффективности моделей, Ultralytics YOLOv8 представляет собой более современную эволюцию, в которой приоритетными являются скорость получения выводов в реальном времени, простота использования и практические возможности развертывания.
Прямое сравнение производительности: скорость, точность и эффективность
Сравнение YOLOv8 и EfficientDet подчеркивает фундаментальный сдвиг в философии проектирования. EfficientDet в значительной степени сосредоточен на минимизации FLOP (операций с плавающей запятой) и количества параметров, что теоретически делает его высокоэффективным. В отличие от него, YOLOv8 спроектирован так, чтобы максимизировать пропускную способность на современном оборудовании, используя параллелизм GPU для обеспечения превосходной скорости вычислений без ущерба для точности.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
Основные выводы, сделанные на основе контрольных показателей
- Превосходство в задержкахGPU : Модели YOLOv8 значительно быстрее работают на аппаратном обеспечении GPU . Например, YOLOv8x достигает более высокого mAP (53,9), чем EfficientDet-d7 (53,7), и при этом работает примерно в 9 раз быстрее на GPU T4 (14,37 мс против 128,07 мс). Это делает YOLOv8 предпочтительным выбором для приложений, работающих с выводами в реальном времени.
- Точность против параметров: В то время как EfficientDet славится своей параметрической эффективностью, YOLOv8 обеспечивает конкурентоспособную точность с моделями, которые легче оптимизировать. YOLOv8m превосходит EfficientDet-d4 по точности (50,2 против 49,7 mAP) при значительно более высокой скорости вычислений, несмотря на разницу в количестве FLOP.
- Архитектурная эффективность: Меньшее количество FLOP в EfficientDet не всегда приводит к меньшей задержке, особенно на GPU, где стоимость доступа к памяти и параллелизм имеют большее значение, чем количество операций. Архитектура YOLOv8 разработана таким образом, чтобы максимально эффективно использовать аппаратное обеспечение.
Оптимизация аппаратного обеспечения
Всегда проверяйте модели на целевом оборудовании. Теоретические FLOPs являются полезным косвенным показателем сложности, но часто не могут предсказать реальную задержку на GPU или NPU, где пропускная способность памяти и возможности распараллеливания играют большую роль. Используйте режим бенчмаркаYOLO для проверки производительности на конкретной установке.
Обзор Ultralytics YOLOv8
YOLOv8 - это последняя крупная итерация серии YOLO (You Only Look Once), выпущенная компанией Ultralytics, которая представляет собой единый фреймворк для обнаружения объектов, сегментации объектов и классификации изображений.
- Авторы: Гленн Джокер, Аюш Чаурасия и Цзин Цю
- Организация:Ultralytics
- Дата: 10 января 2023 г.
- GitHub:ultralytics
В YOLOv8 реализованы ключевые архитектурные усовершенствования, включая головку обнаружения без якорей, которая упрощает процесс обучения и улучшает обобщение для различных форм объектов. В ней также используется новая магистральная сеть и сеть агрегации путей (PAN-FPN), предназначенная для более глубокой интеграции функций.
Сильные стороны YOLOv8
- Современная производительность: Обеспечивает исключительный баланс скорости и точности, устанавливая эталонные показатели на наборе данныхCOCO .
- Экосистема, удобная для разработчиков: Параметр
ultralyticsПакет python предлагает оптимизированный API, который унифицирует обучение, проверку и развертывание. - Универсальность: Поддержка множества задач (обнаружение, сегментация, позирование, OBB, классификация) в рамках одного репозитория.
- Эффективность обучения: Благодаря использованию таких техник, как расширение Mosaic, модели YOLOv8 сходятся быстрее и часто требуют меньше данных для обучения, чтобы достичь высокой точности.
Обзор Google EfficientDet
EfficientDet, разработанная командой Google Brain, - это семейство моделей обнаружения объектов, в которых реализована концепция составного масштабирования для обнаружения объектов. Она одновременно масштабирует разрешение, глубину и ширину сети для достижения оптимальной производительности.
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация:Google Research
- Дата: 20 ноября 2019 г.
- ArXiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
EfficientDet построен на базе EfficientNet и представляет BiFPN (Bidirectional Feature Pyramid Network), которая позволяет легко и быстро объединять разномасштабные признаки.
Узнайте больше об EfficientDet
Сильные стороны EfficientDet
- Эффективность параметров: Достижение высокой точности при относительно небольшом количестве параметров и FLOP.
- Масштабируемость: Параметр
d0вd7Метод масштабирования обеспечивает систематический способ компромисса между ресурсами и точностью. - BiFPN: Инновационная сеть пирамид признаков эффективно объединяет признаки с разным разрешением.
Сравнение архитектурных решений
Архитектурные различия между YOLOv8 и EfficientDet определяют их характеристики производительности и пригодность для решения различных задач.
Backbone и Feature Fusion
- YOLOv8 использует модифицированную магистраль CSPDarknet с модулем C2f, который заменяет модуль C3 из YOLOv5. Эта конструкция улучшает градиентный поток и хорошо оптимизирована для параллелизма GPU .
- В EfficientDet используется основа EfficientNet в сочетании с BiFPN. BiFPN использует обучаемые веса для объединения признаков с разных уровней, что теоретически эффективно, но предполагает сложные, нерегулярные схемы доступа к памяти, которые могут замедлить вывод на графических процессорах.
Обнаружение Head
- YOLOv8 Использует архитектуру головы с раздельным управлением, разделяя задачи определения объектности, классификации и регрессии. Очень важно, что она не имеет якорей и предсказывает центры объектов напрямую. Это устраняет необходимость в ручной настройке якорных ящиков и уменьшает количество гиперпараметров.
- В EfficientDet используется подход, основанный на якорях. Несмотря на свою эффективность, методы на основе якорей часто требуют тщательной калибровки размеров якорей и соотношения сторон для конкретных наборов данных, что усложняет процесс обучения.
Простота использования и экосистема
Одним из наиболее значимых отличий является экосистема, окружающая модели. Ultralytics уделяет большое внимание демократизации ИИ, обеспечивая доступность YOLOv8 как для новичков, так и для экспертов.
Опыт Ultralytics
APIUltralytics Python позволяет пользователям загружать, обучать и развертывать модели с помощью всего нескольких строк кода. Экосистема включает в себя бесшовные интеграции с такими инструментами, как 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) для обучения на пользовательских наборах данных.
Возможности экспорта
Модели Ultralytics поддерживают экспорт одним щелчком мыши во множество форматов, включая ONNX, TensorRT, CoreML и TFLite. Такая гибкость очень важна для развертывания моделей в различных средах, от облачных серверов до устройств на базе Raspberry Pi.
Идеальные варианты использования
Когда выбирать YOLOv8
YOLOv8 является рекомендуемым выбором для подавляющего большинства приложений компьютерного зрения сегодня благодаря балансу скорости и точности.
- Приложения реального времени: Автономное вождение, видеонаблюдение и робототехника, где задержка является критически важной.
- Развертывание на границе: Работа на NVIDIA Jetson, мобильных устройствах или пограничных вычислительных узлах, где эффективность и скорость имеют первостепенное значение.
- Быстрое прототипирование: Когда вам нужно быстро перейти от набора данных к развернутой модели, используя надежный, хорошо документированный фреймворк.
- Требования к многозадачности: Если ваш проект включает в себя сегментацию или оценку позы, YOLOv8 работает с ними в естественном режиме.
Когда следует выбирать EfficientDet
EfficientDet остается актуальным в нишевых сценариях, особенно в академических исследованиях или в средах с жесткими ограничениями на CPU .
- Теоретические исследования: Изучение эффективных сетевых архитектур и законов масштабирования.
- Специфические процессоры с низким энергопотреблением: В некоторых случаях низкое количество FLOP может привести к увеличению времени автономной работы на процессорах с ограниченными ресурсами, однако рекомендуется использовать бенчмарки.
Заключение
В то время как EfficientDet стал знаковым достижением в области эффективного проектирования нейронных сетей, YOLOv8 и более новый YOLO11 предлагают превосходный пакет для современной разработки ИИ. Безъякорная архитектура YOLOv8, GPU дизайн и надежная экосистемаUltralytics обеспечивают значительное преимущество в скорости разработки, задержке выводов и гибкости развертывания.
Для разработчиков, желающих создавать самые современные решения в области компьютерного зрения, которые будут одновременно быстрыми и точными, модели Ultralytics YOLO - это окончательный выбор.
Изучите другие модели
Если вам интересно сравнить эти архитектуры с другими моделями, загляните на эти страницы:
- YOLOv8 против YOLOv7
- EfficientDet против YOLOv7
- YOLOv8 vs. YOLOv5
- RT-DETR против YOLOv8
- YOLO11 vs. EfficientDet