EfficientDet vs. YOLOv7: всестороннее техническое сравнение
В быстро развивающейся области компьютерного зрения выбор правильной архитектуры обнаружения объектов имеет решающее значение для успеха проекта. В этом анализе сравниваются EfficientDet, масштабируемая архитектура, ориентированная на эффективность, и YOLOv7, детектор реального времени, разработанный для скорости и точности на оборудовании GPU. Хотя обе модели представляли современную производительность в своих соответствующих выпусках, понимание их технических нюансов помогает разработчикам принимать обоснованные решения для современных развертываний.
Метрики производительности и анализ
В следующей таблице представлено подробное сравнение ключевых показателей производительности, включая Mean Average Precision (mAP), скорость инференса на различном оборудовании и вычислительную сложность (параметры и FLOPs).
| Модель | размер (пиксели) | 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Основные выводы
- Эффективность vs. Задержка: EfficientDet достигает замечательной эффективности параметров (небольшой размер модели) благодаря своему составному масштабированию. Однако на оборудовании GPU (T4 TensorRT) YOLOv7 демонстрирует превосходную задержку. Например, YOLOv7l достигает 51.4% mAP всего с задержкой 6.84 мс, в то время как EfficientDet-d5 требует 67.86 мс для аналогичного mAP в 51.5%.
- Влияние архитектуры: Depthwise separable convolutions, используемые в EfficientDet, минимизируют FLOPs, но могут быть менее оптимизированы на GPU по сравнению с плотными свертками в YOLOv7, что приводит к наблюдаемым расхождениям в скорости.
Обзор EfficientDet
EfficientDet произвел сдвиг парадигмы в 2019 году, предложив масштабируемую архитектуру, которая одновременно оптимизирует точность и эффективность. Он построен на основе EfficientNet и представляет BiFPN (Bidirectional Feature Pyramid Network).
EfficientDet Details:
Авторы: 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
Основные характеристики архитектуры
Основным нововведением EfficientDet является BiFPN, который обеспечивает простое и быстрое объединение многомасштабных признаков. В отличие от традиционных FPN, BiFPN использует взвешенное объединение признаков, чтобы изучить важность различных входных признаков. В сочетании с Compound Scaling, который равномерно масштабирует разрешение, глубину и ширину, EfficientDet предлагает семейство моделей (от D0 до D7), отвечающих различным ограничениям ресурсов.
Узнайте больше об EfficientDet
Обзор YOLOv7
YOLOv7, выпущенная в 2022 году, расширила границы object detection в реальном времени, сосредоточившись на оптимизации процесса обучения и архитектуры для скорости inference. Она представляет несколько "Bag-of-Freebies", которые повышают точность без увеличения стоимости inference.
YOLOv7 Details:
Authors: Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
Organization: Institute of Information Science, Academia Sinica, Taiwan
Date: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
Основные характеристики архитектуры
YOLOv7 использует E-ELAN (Extended Efficient Layer Aggregation Network), который контролирует кратчайшие и длиннейшие градиентные пути, чтобы позволить сети изучать более разнообразные признаки. Он также использует масштабирование модели для моделей на основе конкатенации, что позволяет ему поддерживать оптимальную структуру для разных размеров. Архитектура специально настроена для эффективности GPU, избегая операций с высокими затратами на доступ к памяти, несмотря на низкое количество FLOP.
Идеальные варианты использования
Выбор между этими архитектурами во многом зависит от оборудования для развертывания и конкретных требований приложения.
Когда следует выбирать EfficientDet
EfficientDet идеально подходит для сред, ограниченных CPU, или периферийных устройств, где пропускная способность памяти и хранилище строго ограничены. Небольшое количество параметров делает его подходящим для:
- Мобильные приложения: Приложения Android/iOS, где размер приложения (размер APK) является критическим ограничением.
- Embedded Systems: Устройства, такие как Raspberry Pi (старые поколения), работающие на CPU.
- Академические исследования: Изучение эффектов составного масштабирования и методов объединения признаков.
Когда следует выбирать YOLOv7
YOLOv7 превосходно работает в высокопроизводительных средах GPU, где низкая задержка является обязательным условием. Это предпочтительный выбор для:
- Наблюдение в реальном времени: Одновременная обработка нескольких видеопотоков на периферийных серверах.
- Автономное вождение: Где миллисекундная задержка может повлиять на безопасность.
- Робототехника: Для быстрого обнаружения объектов и взаимодействия в динамических средах.
Современные альтернативы
Несмотря на то, что EfficientDet и YOLOv7 являются мощными инструментами, область компьютерного зрения продвинулась вперед. Для новых проектов обычно рекомендуется YOLO11. Она сочетает в себе концепции эффективности современных backbones с быстродействием в реальном времени семейства YOLO, часто превосходя обе предшествующие модели по точности и простоте развертывания.
Почему стоит выбрать модели Ultralytics YOLO?
Несмотря на то, что EfficientDet и YOLOv7 остаются значительным вкладом в компьютерное зрение, экосистема Ultralytics, включающая такие модели, как YOLOv8 и передовая YOLO11, предлагает явные преимущества для разработчиков и исследователей.
Простота использования и экосистема
Устаревшие модели часто требуют сложных шагов установки, определенных версий CUDA или фрагментированных кодовых баз. В отличие от этого, Ultralytics фокусируется на унифицированном, оптимизированном пользовательском опыте. С простым pip install ultralytics, пользователи получают доступ к надежному Python API и Команды CLI которые стандартизируют обучение, валидацию и развертывание. The Хорошо поддерживаемая экосистема обеспечивает частые обновления, широкую поддержку оборудования и интеграцию с такими инструментами, как Ultralytics HUB для бесшовного MLOps.
Баланс производительности и эффективность памяти
Модели Ultralytics разработаны для достижения оптимального баланса производительности. Они обеспечивают современную точность, сохраняя при этом исключительную скорость вывода, что делает их подходящими для различных сценариев: от развертывания на периферии до облачных API. Кроме того, требования к памяти для обучения моделям Ultralytics YOLO часто ниже, чем для архитектур на основе transformer или более старых ConvNets, что позволяет эффективно обучать на GPU потребительского уровня.
Универсальность и эффективность обучения
В отличие от многих конкретных детекторов, модели Ultralytics очень универсальны. Единый фреймворк поддерживает:
- Обнаружение объектов
- Сегментация экземпляров
- Классификация изображений
- Оценка позы
- Детектирование ориентированных объектов (OBB)
Эта универсальность в сочетании с эффективностью обучения, благодаря оптимизированным загрузчикам данных и легкодоступным предварительно обученным весам на COCO, значительно сокращает время выхода на рынок решений на основе ИИ.
Пример: Запуск современной YOLO модели
Ниже приведен пример того, как легко современная модель Ultralytics может быть использована для inference, что резко контрастирует с шаблонным кодом, часто требуемым для более старых архитектур.
from ultralytics import YOLO
# Load the latest YOLO11 model (pre-trained on COCO)
model = YOLO("yolo11n.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Process results
for result in results:
result.save() # Save the annotated image to disk
print(f"Detected {len(result.boxes)} objects.")
Заключение
EfficientDet и YOLOv7 представляют две разные философии в истории компьютерного зрения: одна оптимизирует теоретическую эффективность (FLOPs/Params), а другая — практическую задержку оборудования. EfficientDet остается надежным ориентиром для CPU-приложений с ограниченными параметрами, а YOLOv7 хорошо подходит для высокоскоростных GPU-нагрузок.
Однако, для разработчиков, стремящихся к лучшему из обоих миров — скорости, точности и удобству разработки — модели Ultralytics, такие как YOLO11, являются превосходным выбором. Они упрощают сложный конвейер обучения и развертывания, обеспечивая при этом производительность, отвечающую строгим требованиям современных приложений компьютерного зрения.
Сравнения с другими моделями
Изучите больше технических сравнений, чтобы найти лучшую модель для ваших конкретных потребностей:
- EfficientDet в сравнении с YOLOv8
- YOLOv7 против YOLOv8
- EfficientDet в сравнении с YOLOv5
- YOLOv6 против YOLOv7
- RT-DETR vs YOLOv7
- YOLOX против EfficientDet