YOLOX против YOLOv7: подробное техническое сравнение
Навигация по ландшафту моделей обнаружения объектов требует глубокого понимания архитектурных нюансов и компромиссов в производительности. Это руководство предоставляет всестороннее техническое сравнение между YOLOX и YOLOv7, двумя влиятельными архитектурами, которые в значительной степени сформировали область компьютерного зрения. Мы исследуем их структурные инновации, эталонные показатели и практическое применение, чтобы помочь вам определить, что лучше всего подходит для ваших проектов. В то время как обе модели представляли собой передовые достижения на момент их запуска, современные разработчики часто обращаются к экосистеме Ultralytics для унифицированных рабочих процессов и передовой производительности.
Прямое сравнение производительности
При выборе модели баланс между средней точностью (mAP) и задержкой вывода часто является решающим фактором. YOLOX предлагает масштабируемое семейство моделей от Nano до X, подчеркивая простоту благодаря своей конструкции без якорей. И наоборот, YOLOv7 фокусируется на максимизации компромисса между скоростью и точностью для приложений реального времени, используя передовые архитектурные оптимизации.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Данные иллюстрируют различные сильные стороны. YOLOXnano невероятно легкий, что делает его идеальным для сред с крайне ограниченными ресурсами. Однако для высокопроизводительных сценариев YOLOv7x демонстрирует превосходную точность (53,1% mAP) и эффективность, обеспечивая более высокую точность, чем YOLOXx, со значительно меньшим количеством операций с плавающей запятой (FLOPs) и более быстрым временем инференса на T4 GPU.
YOLOX: Простота благодаря дизайну Anchor-Free
YOLOX ознаменовал собой смену парадигмы в серии YOLO, отказавшись от anchor-based механизма в пользу anchor-free подхода. Этот выбор дизайна упрощает процесс обучения и устраняет необходимость в ручной настройке anchor box, которая часто требует эвристической оптимизации для конкретной области.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
Архитектура и Ключевые Инновации
YOLOX интегрирует структуру decoupled head, разделяя задачи классификации и регрессии. Это разделение позволяет модели изучать различные признаки для распознавания того, что представляет собой объект, и где он расположен, что приводит к более быстрой сходимости и повышению точности. Кроме того, YOLOX использует SimOTA, продвинутую стратегию назначения меток, которая динамически сопоставляет положительные примеры с объектами ground truth, улучшая устойчивость модели в переполненных сценах.
Без якорей и на основе якорей
Традиционные модели YOLO (до YOLOX) использовали предопределенные "anchor boxes" для прогнозирования размеров объектов. Anchor-free метод YOLOX предсказывает ограничивающие рамки непосредственно из местоположений пикселей, уменьшая количество гиперпараметров и делая модель более обобщаемой для различных наборов данных.
Варианты использования и ограничения
YOLOX превосходен в сценариях, где развертывание модели должно быть оптимизировано на различных аппаратных платформах без обширной настройки гиперпараметров. Его облегченные варианты (Nano/Tiny) популярны для мобильных приложений. Однако его пиковая производительность в более крупных масштабах была превзойдена новыми архитектурами, такими как YOLOv7 и YOLO11, которые используют более сложные сети агрегации признаков.
YOLOv7: Мощность "Bag-of-Freebies"
Выпущенная через год после YOLOX, YOLOv7 представила набор архитектурных реформ, направленных на оптимизацию процесса обучения для повышения результатов инференса исключительно за счет «обучаемых бесплатных улучшений» (trainable bag-of-freebies).
- Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
- Организация: Институт информатики, Academia Sinica
- Дата: 06.07.2022
- Arxiv:https://arxiv.org/abs/2207.02696
- GitHub:https://github.com/WongKinYiu/yolov7
Архитектура и Ключевые Инновации
Основой YOLOv7 является Extended Efficient Layer Aggregation Network (E-ELAN). Эта архитектура позволяет сети изучать более разнообразные признаки, контролируя кратчайшие и длиннейшие градиентные пути, обеспечивая эффективную сходимость для очень глубоких сетей. Кроме того, YOLOv7 использует методы масштабирования модели, специально разработанные для моделей на основе конкатенации, гарантируя, что увеличение глубины и ширины модели линейно преобразуется в прирост производительности без уменьшения отдачи.
YOLOv7 также эффективно использует вспомогательные головы во время обучения для обеспечения контроля от грубого к точному, метод, который повышает точность основной головы обнаружения без увеличения вычислительных затрат во время развертывания.
Варианты использования и ограничения
Благодаря исключительному соотношению скорости и точности, YOLOv7 является одним из лидеров для видеоаналитики в реальном времени и задач периферийных вычислений, где важна каждая миллисекунда. Она расширила границы возможного на стандартном оборудовании GPU (например, V100 и T4). Однако сложность ее архитектуры может затруднить модификацию или точную настройку для пользовательских задач, выходящих за рамки стандартного обнаружения объектов.
Преимущество Ultralytics: Зачем модернизировать?
В то время как YOLOX и YOLOv7 остаются способными инструментами, область компьютерного зрения развивается стремительными темпами. Современные разработчики и исследователи все чаще предпочитают экосистему Ultralytics с такими моделями, как YOLO11 и YOLOv8, благодаря их всесторонней поддержке, унифицированному дизайну и простоте использования.
Оптимизированный опыт разработки
Одной из самых больших проблем со старыми моделями является фрагментация кодовых баз. Ultralytics решает эту проблему, предоставляя унифицированный API python и CLI, который стабильно работает со всеми версиями моделей. Вы можете переключаться между задачами detect, segment или classify с помощью одной строки кода.
from ultralytics import YOLO
# Load a model (YOLO11 or YOLOv8)
model = YOLO("yolo11n.pt") # or "yolov8n.pt"
# Run inference on an image
results = model("path/to/image.jpg")
# Export to ONNX for deployment
model.export(format="onnx")
Основные преимущества моделей Ultralytics
- Универсальность: В отличие от YOLOX и YOLOv7, которые в основном ориентированы на обнаружение, модели Ultralytics «из коробки» поддерживают сегментацию экземпляров, оценку позы, классификацию и обнаружение ориентированных объектов (OBB).
- Хорошо поддерживаемая экосистема: Частые обновления обеспечивают совместимость с последними версиями PyTorch, CUDA и Python. Активное сообщество и подробная документация сокращают время, затрачиваемое на отладку проблем с окружением.
- Баланс производительности: Такие модели, как YOLO11, представляют собой новейший уровень развития, предлагая превосходную точность и меньшую задержку по сравнению с YOLOX и YOLOv7. Они оптимизированы для вывода в реальном времени на различном оборудовании, от периферийных устройств до облачных серверов.
- Эффективность обучения: Модели Ultralytics разработаны для более быстрой сходимости, что экономит ценные часы работы GPU. Предварительно обученные веса легко доступны для различных задач, что упрощает передачу обучения.
- Требования к памяти: Эти модели разработаны для эффективности, обычно требуя меньше VRAM во время обучения и инференса по сравнению с альтернативами на основе transformer (такими как RT-DETR), что делает их доступными на оборудовании потребительского класса.
Заключение
И YOLOX, и YOLOv7 заслужили свое место в истории компьютерного зрения. YOLOX демократизировал подход без привязки к якорям, предложив упрощенный конвейер, который легко понять и развернуть на небольших устройствах. YOLOv7 расширил границы производительности, доказав, что эффективный архитектурный дизайн может принести огромные выгоды в скорости и точности.
Однако, для тех, кто сегодня создает AI-системы производственного уровня, рекомендация склоняется в сторону семейства Ultralytics YOLO. С YOLO11 вы получаете доступ к универсальной, надежной и удобной платформе, которая справляется со сложностями MLOps, позволяя вам сосредоточиться на решении реальных проблем.
Изучите другие сравнения
Чтобы получить больше информации для выбора модели, рассмотрите возможность изучения этих связанных сравнений:
- YOLOX в сравнении с YOLOv8
- YOLOv7 против YOLOv8
- RT-DETR против YOLOv7
- YOLOv5 против YOLOX
- YOLOv6 против YOLOv7