EfficientDet против YOLOv8: техническое сравнение
Выбор подходящей модели обнаружения объектов — это критически важное решение, которое уравновешивает точность, скорость и вычислительные затраты. На этой странице представлено подробное техническое сравнение двух влиятельных архитектур: EfficientDet, разработанной Google, и Ultralytics YOLOv8, современной модели от Ultralytics. В то время как EfficientDet славится своей параметрической и вычислительной эффективностью, YOLOv8 превосходит ее, обеспечивая превосходное сочетание скорости в реальном времени, высокой точности и беспрецедентной универсальности в рамках всеобъемлющей и удобной экосистемы.
EfficientDet: Масштабируемая и эффективная архитектура
Авторы: Mingxing Tan, Ruoming Pang, Quoc V. Le
Организация: Google
Дата: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https://github.com/google/automl/tree/master/efficientdet
Документация: https://github.com/google/automl/tree/master/efficientdet#readme
EfficientDet был представлен командой Google Brain с основной целью создания высокоэффективного и масштабируемого семейства детекторов объектов. Его основные инновации заключаются в его архитектуре и методологии масштабирования.
Архитектура и ключевые особенности
Конструкция EfficientDet основана на двух основных компонентах:
- BiFPN (Bi-directional Feature Pyramid Network): В отличие от традиционных FPN сверху вниз, BiFPN обеспечивает простое и быстрое многомасштабное слияние признаков, вводя обучаемые веса для понимания важности различных входных признаков и применяя соединения как сверху вниз, так и снизу вверх.
- Комплексное масштабирование (Compound Scaling): EfficientDet использует единый составной коэффициент для равномерного масштабирования глубины, ширины и разрешения backbone, сети признаков и сетей предсказания bounding box/класса. Это обеспечивает сбалансированное распределение ресурсов по всей модели.
В архитектуре используется EfficientNet в качестве магистральной сети, которая уже оптимизирована для точности и эффективности FLOP. Эта комбинация приводит к семейству моделей (D0 - D7), которые можно адаптировать к различным вычислительным бюджетам.
Сильные стороны
- Высокая эффективность: Модели EfficientDet разработаны для минимизации количества параметров и FLOPs, что делает их очень эффективными с точки зрения вычислительных ресурсов для заданного уровня точности.
- Масштабируемость: Метод масштабирования позволяет четко масштабировать модель вверх или вниз, что позволяет разработчикам выбирать вариант, соответствующий их конкретным аппаратным ограничениям.
- Высокая точность: Достигает конкурентоспособных показателей mAP, особенно при оценке по сравнению с моделями с аналогичным количеством параметров.
Слабые стороны
- Скорость инференса: Несмотря на эффективность FLOP, EfficientDet часто имеет более высокую задержку инференса по сравнению с моделями, такими как YOLOv8, особенно на оборудовании GPU. Это может сделать его менее подходящим для приложений, требующих инференса в реальном времени.
- Ограниченная универсальность: EfficientDet в основном предназначен для обнаружения объектов. Ему не хватает встроенной поддержки других задач компьютерного зрения, таких как сегментация или оценка позы, которые изначально поддерживаются в фреймворке YOLOv8.
- Экосистема и удобство использования: Оригинальная реализация выполнена в TensorFlow, и, хотя существуют порты PyTorch, она не имеет такого же уровня интегрированных инструментов, документации и активной поддержки сообщества, как экосистема Ultralytics.
Узнайте больше об EfficientDet
Ultralytics YOLOv8: Современный уровень скорости и универсальности
Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
Организация: Ultralytics
Дата: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
Документация: https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8 — это последняя итерация в очень успешной серии YOLO, основанная на многолетних исследованиях и разработках, в результате чего была создана модель, которая является быстрой, точной и невероятно простой в использовании. Она представляет собой значительный скачок вперед как в производительности, так и в дизайне фреймворка.
Архитектура и ключевые особенности
YOLOv8 представляет несколько архитектурных улучшений, включая новую detection head без anchor boxes и новый backbone на основе CSP, известный как C2f. Эти изменения уменьшают количество параметров, сохраняя при этом высокую точность и обеспечивая более быстрый inference. Модель разработана с нуля как комплексная платформа для различных задач компьютерного зрения.
Сильные стороны
- Исключительный баланс производительности: YOLOv8 обеспечивает выдающийся компромисс между скоростью и точностью, что делает его лучшим выбором для приложений реального времени, которые не могут пойти на компромисс в отношении производительности. Как показано в таблице ниже, модели YOLOv8 постоянно обеспечивают более низкую задержку на GPU.
- Беспрецедентная универсальность: В отличие от моделей для одной задачи, YOLOv8 — это многозадачный фреймворк, который нативно поддерживает обнаружение объектов, сегментацию экземпляров, классификацию изображений, оценку позы и отслеживание объектов в рамках единой унифицированной архитектуры.
- Простота использования: YOLOv8 поддерживается надежной экосистемой Ultralytics, которая включает в себя оптимизированный Python API и CLI, обширную документацию и простой пользовательский интерфейс.
- Хорошо поддерживаемая экосистема: Пользователи получают выгоду от активной разработки, сильного open-source сообщества, частых обновлений и бесшовной интеграции с такими инструментами, как Ultralytics HUB, для обучения и развертывания без кода.
- Эффективность обучения: YOLOv8 отличается эффективными процессами обучения, легкодоступными предварительно обученными весами на наборах данных, таких как COCO, и обычно требует меньше памяти CUDA, чем более сложные архитектуры.
- Гибкость развертывания: Фреймворк высоко оптимизирован для экспорта в различные форматы, такие как ONNX и TensorRT, что упрощает развертывание на различном оборудовании, от периферийных устройств до облачных серверов.
Слабые стороны
- FLOPs vs. Latency: Несмотря на то, что YOLOv8 невероятно быстрая на практике, она может иметь более высокие FLOPs, чем модель EfficientDet при аналогичном уровне mAP. Однако ее архитектура лучше оптимизирована для современного GPU оборудования, что приводит к более низкой задержке в реальных условиях.
Анализ производительности: точность в сравнении со скоростью
Ключевое различие между EfficientDet и YOLOv8 становится очевидным при анализе их показателей производительности. EfficientDet был разработан для оптимизации точности на FLOP, в то время как YOLOv8 оптимизирован для высокой пропускной способности и низкой задержки на практическом оборудовании.
Модель | размер (пиксели) |
mAPval 50-95 |
Скорость CPU ONNX (мс) |
Скорость T4 TensorRT10 (мс) |
параметры (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
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 |
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 |
На основании таблицы можно сделать несколько выводов:
- Точность: YOLOv8x достигает самого высокого mAP в 53,9, немного опережая самую большую модель EfficientDet-d7.
- Скорость: Модели YOLOv8 значительно быстрее на GPU (T4 TensorRT10), при этом YOLOv8n более чем в 2,5 раза быстрее, чем EfficientDet-d0. Это преимущество в скорости сохраняется для всех размеров моделей, что делает YOLOv8 явным победителем для приложений реального времени.
- Эффективность: EfficientDet превосходит другие модели по FLOPs и скорости CPU для своих небольших моделей. Например, EfficientDet-d0 имеет самые низкие FLOPs и самое быстрое время инференса на CPU. Однако, YOLOv8n имеет меньше параметров, что делает ее очень легкой.
Заключение: какую модель вам следует выбрать?
EfficientDet остается мощной и актуальной архитектурой, особенно для приложений, где вычислительные ресурсы (FLOPs) и размер модели являются наиболее важными ограничениями. Его масштабируемая конструкция предлагает отличный способ сбалансировать точность и эффективность на устройствах с ограниченной вычислительной мощностью.
Однако, для подавляющего большинства современных приложений компьютерного зрения Ultralytics YOLOv8 является превосходным выбором. Он предлагает лучший общий пакет: современную точность, молниеносную скорость логического вывода и беспрецедентную универсальность. Возможность обрабатывать обнаружение, сегментацию, позу и многое другое в рамках единой, простой в использовании структуры значительно упрощает разработку и развертывание. Хорошо поддерживаемая экосистема, обширная документация и активное сообщество обеспечивают уровень поддержки, который ускоряет любой проект от концепции до производства.
Для разработчиков, ищущих надежное, высокопроизводительное и перспективное решение, YOLOv8 является явной рекомендацией. Для тех, кто ищет самые последние достижения в производительности, новые модели Ultralytics, такие как YOLO11, расширяют границы еще дальше.
Изучите другие модели
Чтобы продолжить свои исследования, рассмотрите возможность изучения других сравнений моделей с участием EfficientDet, YOLOv8 и других ведущих архитектур:
- EfficientDet против YOLOv7
- YOLOv8 vs. YOLOv7
- RT-DETR против YOLOv8
- EfficientDet vs. YOLOv5
- YOLOv8 vs. YOLOv9
- Ознакомьтесь с последними моделями, такими как YOLOv10 и YOLO11.