YOLOv10 vs EfficientDet: Техническое сравнение
Ландшафт object detection быстро развивался в течение последних нескольких лет, переходя от сложных многоэтапных конвейеров к оптимизированным архитектурам реального времени. В этом сравнении исследуются технические различия между YOLOv10, современной моделью, выпущенной в 2024 году исследователями из Университета Цинхуа, и EfficientDet, новаторской архитектурой, представленной Google в 2019 году.
Несмотря на то, что EfficientDet установила ориентиры для эффективности параметров в свое время, YOLOv10 расширяет границы задержки и точности, представляя парадигму обучения без NMS, которая значительно повышает скорость инференса. В этом руководстве анализируются их архитектуры, показатели производительности и идеальные варианты использования, чтобы помочь вам выбрать правильную модель для ваших проектов в области компьютерного зрения.
YOLOv10: Обнаружение объектов в реальном времени End-to-End
YOLOv10 представляет собой значительный скачок в серии YOLO (You Only Look Once), фокусируясь на устранении этапа постобработки немаксимального подавления (NMS), который часто является узким местом скорости вывода. Благодаря использованию согласованных двойных назначений для обучения без NMS, он достигает конкурентоспособной производительности с меньшей задержкой по сравнению с предыдущими итерациями.
Технические детали:
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация:Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:YOLOv10: Real-Time End-to-End Object Detection
- GitHub:THU-MIG/yolov10
Ключевые архитектурные особенности
YOLOv10 представляет целостный дизайн модели, ориентированный на эффективность и точность. Основное новшество заключается в его dual assignment strategy. Во время обучения модель использует как назначения «один ко многим» (обычные в YOLOv8) для богатого наблюдения, так и назначения «один к одному», чтобы обеспечить сквозное развертывание без NMS.
- Обучение без NMS: Традиционным детекторам требуется NMS для фильтрации дублирующихся ограничивающих рамок, что увеличивает задержку inference. Архитектура YOLOv10 позволяет модели predict ровно одну рамку на объект во время inference, эффективно устраняя эти издержки.
- Дизайн, ориентированный на эффективность: Модель использует облегченные классификационные head и пространственно-канальную развязанную понижающую дискретизацию для снижения вычислительных затрат (FLOPs) и количества параметров.
- Крупноядерные свертки (Large-Kernel Convolutions): Благодаря выборочному использованию глубоких сверток с большими ядрами, YOLOv10 расширяет свое поле восприятия и возможности обнаружения мелких объектов без значительного увеличения вычислительной нагрузки.
Почему важен NMS-Free
Удаление Non-Maximum Suppression (NMS) создает действительно сквозной конвейер. Это имеет решающее значение для приложений edge AI, где важна каждая миллисекунда, например, на устройствах NVIDIA Jetson, что обеспечивает стабильную и предсказуемую задержку.
Сильные стороны
- Превосходная скорость: Оптимизирован для inference в реальном времени, значительно превосходит старые модели на оборудовании GPU.
- Интеграция Ultralytics: Как часть экосистемы Ultralytics, YOLOv10 выигрывает от простого Python API, что делает его невероятно простым в обучении, валидации и развертывании.
- Меньшее использование памяти: Эффективная архитектура требует меньше памяти CUDA во время обучения по сравнению с детекторами на основе трансформеров, такими как RT-DETR.
EfficientDet: Масштабируемая и эффективная архитектура
EfficientDet, разработанный командой Google Brain, был разработан для оптимизации как точности, так и эффективности. Он представил семейство моделей (D0-D7), масштабируемых с использованием метода compound scaling, который равномерно регулирует разрешение, глубину и ширину.
Технические детали:
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация:Google
- Дата: 20.11.2019
- Arxiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
- GitHub:google/automl/efficientdet
Узнайте больше об EfficientDet
Ключевые архитектурные особенности
EfficientDet построен на основе EfficientNet и представляет BiFPN (Bi-directional Feature Pyramid Network).
- BiFPN: В отличие от стандартных FPN, BiFPN обеспечивает двунаправленный поток информации и использует обучаемые веса для объединения признаков из разных масштабов. Это приводит к лучшему представлению многомасштабных признаков с меньшим количеством параметров.
- Compound Scaling: Этот метод гарантирует, что backbone, сеть признаков и сети предсказания box/class масштабируются вместе эффективно. Модель D0 мала и быстра для мобильных устройств, а модель D7 обеспечивает передовую точность для сред с большими ресурсами.
Сильные и слабые стороны
- Эффективность параметров: EfficientDet известен достижением высокого mAP с относительно небольшим количеством параметров и FLOPs.
- Масштабируемость: Диапазон D0-D7 предлагает гибкость для различных вычислительных бюджетов.
- Высокая задержка: Несмотря на низкое количество FLOP, сложные соединения в BiFPN и depth-wise separable convolutions могут приводить к более высокой задержке на GPU по сравнению с оптимизированными CNN-архитектурами моделей YOLO.
- Сложность: Архитектуру сложнее настраивать или оптимизировать по сравнению с простой конструкцией Ultralytics YOLOv8 или YOLOv10.
Анализ производительности: Скорость vs. Эффективность
При сравнении этих двух моделей становится ясным различие между теоретической эффективностью (FLOPs) и практической скоростью (задержкой). EfficientDet превосходно минимизирует FLOPs, но YOLOv10 доминирует в скорости инференса в реальных условиях на современном оборудовании, таком как GPU.
В таблице ниже показано, что, хотя модели EfficientDet компактны, YOLOv10 обеспечивает гораздо лучший компромисс для приложений реального времени. Например, YOLOv10-S обеспечивает конкурентоспособный mAP 46,7% с задержкой всего 2,66 мс на GPU T4, в то время как EfficientDet-d3 (47,5% mAP) почти в 7 раз медленнее — 19,59 мс.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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: YOLOv10 использует аппаратные особенности, которые хорошо отображаются на архитектурах GPU, что приводит к значительно более высокой пропускной способности.
- Паритет в точности: Новые стратегии обучения позволяют YOLOv10 соответствовать или превосходить точность гораздо более медленных вариантов EfficientDet.
- Развертывание: Отсутствие NMS в YOLOv10 упрощает процесс экспорта в такие форматы, как TensorRT и ONNX, снижая сложность конвейера развертывания.
Простота использования и экосистема
Одним из наиболее важных факторов для разработчиков является экосистема, окружающая модель. Здесь Ultralytics предлагает существенное преимущество.
Преимущество Ultralytics
YOLOv10 интегрирован в пакет Ultralytics Python, обеспечивая удобство работы от аннотации данных до развертывания.
- Простой API: Вы можете загружать, обучать и прогнозировать, используя всего несколько строк кода.
- Хорошо поддерживается: Частые обновления, поддержка сообщества и обширная документация гарантируют, что вы не останетесь наедине с отладкой непонятных ошибок.
- Эффективность обучения: Модели Ultralytics оптимизированы для быстрой сходимости. Предварительно обученные веса легко доступны, что позволяет эффективно переносить обучение на пользовательские наборы данных.
Обучение YOLOv10 с Ultralytics
Обучение модели YOLOv10 на наборе данных COCO8 — это простая задача при использовании API Ultralytics.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
В отличие от этого, EfficientDet опирается на более старые репозитории TensorFlow или сторонние реализации PyTorch, которым может не хватать унифицированной поддержки, что затрудняет интеграцию в современные MLOps конвейеры.
Идеальные варианты использования
Выбор между YOLOv10 и EfficientDet зависит от ваших конкретных ограничений.
Когда следует выбирать YOLOv10
YOLOv10 — превосходный выбор для большинства современных приложений компьютерного зрения, особенно:
- Автономные системы: Самоуправляемые автомобили и дроны требуют обнаружения с низкой задержкой для обеспечения безопасности. Скорость YOLOv10 обеспечивает быстрое время реакции.
- Видеоаналитика: Обработка видеопотоков с высокой частотой кадров для охранного видеонаблюдения или мониторинга трафика.
- Развертывание на периферии: Развертывание на встроенных устройствах, таких как Raspberry Pi или NVIDIA Jetson, где ресурсы ограничены, но производительность в реальном времени является обязательным условием.
Когда следует выбирать EfficientDet
EfficientDet остается актуальным в определенных нишевых сценариях:
- Академические исследования: Если цель состоит в изучении законов составного масштабирования или принципов проектирования эффективных нейронных сетей.
- Строгие ограничения FLOPs: В крайне специфических аппаратных средах, где теоретические FLOPs являются жестким узким местом, а не задержка или пропускная способность памяти.
Заключение
Несмотря на то, что EfficientDet была важной вехой в проектировании эффективных моделей, YOLOv10 представляет собой новый стандарт для высокопроизводительного обнаружения объектов. Ее инновационная архитектура без NMS обеспечивает решающее преимущество в скорости инференса без ущерба для точности, что делает ее гораздо более практичной для развертывания в реальных условиях.
Кроме того, надежная экосистема Ultralytics обеспечивает эффективную и удобную для разработчиков работу с YOLOv10. Ultralytics дает вам возможность быстрее воплощать в жизнь ваши проекты в области машинного зрения, начиная с простых опций экспорта и заканчивая исчерпывающими руководствами по управлению наборами данных.
Для тех, кто ищет самые последние достижения в области универсальности и производительности, мы также рекомендуем изучить Ultralytics YOLO11, которая опирается на эти достижения, предлагая самые современные возможности в задачах detectирования, segmentации и оценки позы.