EfficientDet против YOLOv7: всестороннее техническое сравнение
В быстро развивающейся области компьютерного зрения выбор правильной архитектуры обнаружения объектов имеет решающее значение для успеха проекта. В данном анализе сравниваются EfficientDet, масштабируемая архитектура, ориентированная на эффективность, и YOLOv7детектора, работающего в реальном времени и рассчитанного на скорость и точность на аппаратном обеспечении GPU . Несмотря на то, что обе модели представляли собой передовую производительность на момент их выпуска, понимание их технических нюансов помогает разработчикам принимать взвешенные решения для современных развертываний.
Показатели и анализ производительности
В следующей таблице представлено подробное сравнение ключевых показателей производительности, включая среднюю точность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 |
Основные выводы
- Эффективность по сравнению с задержкой: EfficientDet достигает замечательной эффективности по параметрам (малый размер модели) благодаря составному масштабированию. Однако на аппаратном обеспечении GPU (T4 TensorRT), YOLOv7 демонстрирует более высокую задержку. Например, YOLOv7l достигает 51,4 % mAP всего за 6,84 мс, в то время как EfficientDet-d5 требуется 67,86 мс для аналогичного mAP в 51,5 %.
- Влияние на архитектуру: Глубинные сепарабельные свертки, используемые в EfficientDet, минимизируют количество FLOP, но могут быть менее оптимизированы на GPU по сравнению с плотными свертками в YOLOv7, что и приводит к наблюдаемым расхождениям в скорости.
Обзор EfficientDet
В 2019 году EfficientDet изменил парадигму, предложив масштабируемую архитектуру, которая оптимизирует точность и эффективность одновременно. Она опирается на основу EfficientNet и представляет BiFPN (Bidirectional Feature Pyramid Network).
EfficientDet Подробнее:
Авторы: Mingxing Tan, Ruoming Pang, and Quoc V. Le
Организация: Google
Дата: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https:google
Основные моменты архитектуры
Основным новшеством EfficientDet является BiFPN, который позволяет легко и быстро объединять многомасштабные признаки. В отличие от традиционных FPN, BiFPN использует взвешенное слияние признаков для изучения важности различных входных признаков. В сочетании с системой Compound Scaling, которая равномерно масштабирует разрешение, глубину и ширину, EfficientDet предлагает семейство моделей (от D0 до D7), удовлетворяющих различным ограничениям ресурсов.
Узнайте больше об EfficientDet
Обзор YOLOv7
YOLOv7, выпущенная в 2022 году, расширила границы обнаружения объектов в реальном времени, сосредоточившись на оптимизации процесса обучения и архитектуры для повышения скорости вывода. В ней появилось несколько "бесплатных мешков", которые повышают точность без увеличения стоимости вывода.
YOLOv7 Подробнее:
Авторы: Chien-Yao Wang, Алексей Бочковский, и Hong-Yuan Mark Liao
Организация: Институт информационных наук, Academia Sinica, Тайвань
Дата: 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 или граничных устройств, где пропускная способность памяти и объем хранения строго ограничены. Благодаря малому количеству параметров он подходит для:
- Мобильные приложения: Приложения для iOS , для которых размер приложения (размер APK) является критическим ограничением.
- Встраиваемые системы: Устройства типа Raspberry Pi (старших поколений), работающие на CPU.
- Академические исследования: Изучение эффектов комбинированного масштабирования и методов объединения признаков.
Когда выбирать YOLOv7
YOLOv7 превосходно работает в высокопроизводительных средах GPU , где низкая задержка не является обязательным условием. Это предпочтительный выбор для:
- Наблюдение в реальном времени: Обработка нескольких видеопотоков одновременно на пограничных серверах.
- Автономное вождение: Где миллисекундная задержка может повлиять на безопасность.
- Робототехника: Для быстрого обнаружения объектов и взаимодействия в динамических средах.
Современные альтернативы
Несмотря на мощный потенциал EfficientDet и YOLOv7 , в этой области произошли изменения. Для новых проектов, YOLO11 обычно рекомендуется. Он сочетает в себе концепции эффективности современных магистралей и скорость работы в реальном времени семейства YOLO , часто превосходя обоих предшественников по точности и простоте развертывания.
Почему стоит выбрать модели Ultralytics YOLO?
В то время как EfficientDet и YOLOv7 остаются значительным вкладом в компьютерное зрение, экосистема Ultralytics , включающая такие модели, как YOLOv8 и передовая YOLO11-предлагает разработчикам и исследователям явные преимущества.
Простота использования и экосистема
Устаревшие модели часто требуют сложных этапов установки, специальных версий CUDA или фрагментированных кодовых баз. В отличие от них, Ultralytics ориентирована на унифицированный, упрощенный пользовательский опыт. С помощью простого pip install ultralyticsпользователи получают доступ к надежному API на Python и Команды CLI которые стандартизируют обучение, проверку и развертывание. Сайт Хорошо поддерживаемая экосистема Обеспечивает частые обновления, широкую поддержку оборудования и интеграцию с такими инструментами, как Ultralytics HUB для бесперебойной работы MLOps.
Баланс производительности и эффективность памяти
Модели Ultralytics разработаны таким образом, чтобы обеспечить оптимальный баланс производительности. Они обеспечивают современную точность при сохранении исключительной скорости вывода, что позволяет использовать их в различных сценариях - от пограничного развертывания до облачных API. Более того, требования к памяти для обучения моделей Ultralytics YOLO зачастую ниже, чем для архитектур на основе трансформаторов или старых ConvNet, что позволяет эффективно проводить обучение на графических процессорах потребительского класса.
Универсальность и эффективность обучения
В отличие от многих специфических детекторов, модели Ultralytics очень универсальны. Один фреймворк поддерживает:
- Обнаружение объектов
- Сегментация экземпляров
- Классификация изображений
- Оценка позы
- Ориентированное обнаружение объектов (OBB)
Эта универсальность в сочетании с эффективностью обучения - благодаряоптимизированным загрузчикам данных и легкодоступным предварительно обученным весам на COCO-значительно сокращает время вывода решений ИИ на рынок.
Пример: Запуск современной модели YOLO
Ниже приведен пример того, как легко современная модель Ultralytics может быть использована для выводов, что резко контрастирует с шаблонами, которые часто требуются для старых архитектур.
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 против YOLOv7
- YOLOX против EfficientDet