YOLOv7 против YOLOX: подробное техническое сравнение
В быстро развивающемся мире компьютерного зрения семейство моделей YOLO (You Only Look Once) последовательно устанавливает стандарты для обнаружения объектов в реальном времени. Двумя важными вехами в этой истории являются YOLOv7 и YOLOX. Хотя обе модели стремятся сбалансировать скорость и точность, они существенно расходятся в своих архитектурных философиях — особенно в отношении методологий, основанных на якорях, и методологий, не использующих якоря.
В этом руководстве представлено углубленное техническое сравнение, чтобы помочь исследователям и инженерам выбрать правильный инструмент для их конкретных приложений компьютерного зрения. Мы проанализируем их архитектуры, оценим производительность и рассмотрим, почему современные альтернативы, такие как Ultralytics YOLO11, часто обеспечивают превосходный опыт разработки.
Метрики производительности: Скорость и точность
При оценке детекторов объектов первостепенное значение имеет компромисс между задержкой вывода и средней точностью (mAP). В таблице ниже представлено прямое сравнение вариантов YOLOv7 и YOLOX на наборе данных COCO.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Анализ результатов
Данные подчеркивают явные преимущества для каждого семейства моделей в зависимости от ограничений развертывания. YOLOv7 демонстрирует исключительную эффективность в высокопроизводительном сегменте. Например, YOLOv7l достигает 51,4% mAP всего с 36,9M параметрами, превосходя YOLOXx (51,1% mAP, 99,1M параметров), используя при этом значительно меньше вычислительных ресурсов. Это делает YOLOv7 сильным кандидатом для сценариев, где эффективность GPU имеет решающее значение, но память ограничена.
И наоборот, YOLOX превосходно проявляет себя в категории легковесных моделей. Модель YOLOX-Nano (0.91M параметров) предлагает жизнеспособное решение для сверхмаломощных периферийных устройств, где даже самые маленькие стандартные модели YOLO могут оказаться слишком тяжелыми. Ее масштабируемые множители глубины и ширины позволяют выполнять точную настройку для широкого спектра аппаратных профилей.
YOLOv7: оптимизированный Bag-of-Freebies
Выпущенный в июле 2022 года, YOLOv7 представил несколько архитектурных инноваций, призванных оптимизировать процесс обучения без затрат на выводы.
- Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
- Организация: Institute of Information Science, Academia Sinica, Taiwan
- Дата: 06.07.2022
- Статья:Ссылка на Arxiv
- GitHub:Репозиторий YOLOv7
Архитектурные особенности
YOLOv7 фокусируется на «обучаемых бесплатных улучшениях» — методах оптимизации, которые повышают точность во время обучения, но удаляются или объединяются во время вывода. Ключевые особенности включают:
- E-ELAN (Extended Efficient Layer Aggregation Network): Улучшенная структура backbone, которая повышает способность модели изучать разнообразные функции, контролируя кратчайшие и длиннейшие градиентные пути.
- Масштабирование модели: Вместо простого масштабирования глубины или ширины, YOLOv7 использует составной метод масштабирования для моделей на основе конкатенации, поддерживая оптимальную структуру во время масштабирования.
- Вспомогательная голова Coarse-to-Fine: Вспомогательная голова потерь используется во время обучения для помощи в контроле, которая затем повторно параметризуется в основную голову для инференции.
Репараметризация
YOLOv7 использует запланированную репараметризацию, где отдельные модули обучения математически объединяются в один сверточный слой для инференса. Это значительно снижает задержку инференса без ущерба для возможности изучения признаков, полученной во время обучения.
YOLOX: Эволюция Anchor-Free
YOLOX, выпущенный в 2021 году, представил собой сдвиг в парадигме YOLO, отказавшись от anchor boxes в пользу механизма anchor-free, аналогичного подходам семантической сегментации.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: Megvii
- Дата: 18.07.2021
- Статья:Ссылка на Arxiv
- GitHub:Репозиторий YOLOX
Узнайте больше о сравнении YOLOX
Архитектурные особенности
YOLOX упростил конвейер detect, устранив необходимость ручной настройки якорных фреймов, что было распространенной проблемой в предыдущих версиях, таких как YOLOv4 и YOLOv5.
- Механизм без Anchor: Прогнозируя центр объектов напрямую, YOLOX устраняет сложные гиперпараметры, связанные с anchor, улучшая обобщение на различных наборах данных.
- Разделенная голова (Decoupled Head): В отличие от предыдущих версий YOLO, в которых классификация и локализация были объединены в одной голове, YOLOX разделяет их. Это приводит к более быстрой сходимости и повышению точности.
- SimOTA: Продвинутая стратегия назначения меток, которая динамически назначает положительные примеры ground truth с наименьшей стоимостью, эффективно балансируя потери классификации и регрессии.
Почему модели Ultralytics являются предпочтительным выбором
В то время как YOLOv7 и YOLOX различаются по архитектуре, обе они превзойдены по удобству использования и поддержке экосистемы современными моделями Ultralytics YOLO. Для разработчиков, ищущих надежное, перспективное решение, переход на YOLO11 предлагает явные преимущества.
1. Унифицированная экосистема и простота использования
YOLOv7 и YOLOX часто требуют клонирования определенных репозиториев GitHub, управления сложными требованиями к зависимостям и использования разрозненных форматов для данных. В отличие от этого, Ultralytics предлагает устанавливаемый через pip пакет, который объединяет все задачи.
from ultralytics import YOLO
# Load a model (YOLO11n recommended for speed)
model = YOLO("yolo11n.pt")
# Train on a custom dataset with a single line
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
2. Превосходный баланс производительности
Как показано в бенчмарках, современные модели Ultralytics достигают лучшего компромисса между скоростью и точностью. YOLO11 использует оптимизированную архитектуру без привязки к якорям, которая учится на достижениях как YOLOX (дизайн без якорей), так и YOLOv7 (оптимизация градиентного пути). Это приводит к созданию моделей, которые не только быстрее при выводе на CPU, но и требуют меньше памяти CUDA во время обучения, что делает их доступными на более широком спектре оборудования.
3. Универсальность в различных задачах
YOLOv7 и YOLOX в первую очередь предназначены для обнаружения объектов. Модели Ultralytics расширяют эту возможность изначально до набора задач компьютерного зрения без изменения API:
- Сегментация экземпляров: Понимание объектов на уровне пикселей.
- Оценка позы: Обнаружение ключевых точек на телах людей.
- Обнаружение ориентированных объектов (OBB): Обнаружение повернутых объектов (например, аэрофотосъемка).
- Классификация: Присвоение метки класса всему изображению.
4. Простая развертка и MLOps
Перевод модели из стадии исследований в производство является сложной задачей при использовании устаревших фреймворков. Экосистема Ultralytics включает встроенные режимы экспорта для ONNX, TensorRT, CoreML и OpenVINO, упрощая развертывание моделей. Кроме того, интеграция с Ultralytics HUB позволяет управлять наборами данных через веб-интерфейс, проводить удаленное обучение и развертывать модели на периферийных устройствах в один клик.
Заключение
И YOLOv7, и YOLOX внесли значительный вклад в область компьютерного зрения. YOLOv7 оптимизировал архитектуру для достижения максимальной производительности на GPU, максимизируя эффективность подхода "мешка бесплатных улучшений". YOLOX успешно продемонстрировал жизнеспособность detect без привязки к якорям, упростив конвейер и улучшив обобщение.
Однако, для современных рабочих процессов разработки Ultralytics YOLO11 выделяется как превосходный выбор. Он сочетает в себе архитектурные преимущества своих предшественников с непревзойденным Python API, более низкими требованиями к памяти и поддержкой широкого спектра задач компьютерного зрения. Независимо от того, развертываете ли вы его на периферийном устройстве или на облачном сервере, активное сообщество и обширная документация экосистемы Ultralytics обеспечивают более плавный путь к производству.
Изучите другие модели
Если вам интересны дальнейшие технические сравнения, изучите эти ресурсы:
- YOLOv7 vs. YOLOv8: Взгляд на скачок в производительности между поколениями.
- RT-DETR vs. YOLOv7: Сравнение Transformer'ов с CNN.
- YOLO11 vs. YOLOv10: Последние достижения в detect в реальном времени.