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,9 М параметров, превосходя YOLOXx (51,1 % mAP, 99,1 М параметров) при значительно меньшем количестве вычислительных ресурсов. Это делает YOLOv7 сильным кандидатом для сценариев, где эффективностьGPU критична, но память ограничена.
И наоборот, YOLOX блистает в категории легких устройств. Модель YOLOX-Nano (0,91 М параметров) предлагает жизнеспособное решение для граничных устройств с ультранизким энергопотреблением, где даже самые маленькие стандартные модели YOLO могут оказаться слишком тяжелыми. Ее масштабируемые множители глубины-ширины позволяют выполнять тонкую настройку в широком диапазоне аппаратных профилей.
YOLOv7: Оптимизированный мешок бесплатных вещей
Выпущенный в июле 2022 года, YOLOv7 представил несколько архитектурных инноваций, призванных оптимизировать процесс обучения без затрат на выводы.
- Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
- Организация: Institute of Information Science, Academia Sinica, Taiwan
- Дата: 06.07.2022
- Бумага:Ссылка на Arxiv
- GitHub:РепозиторийYOLOv7
Архитектурные особенности
YOLOv7 фокусируется на "обучаемом мешке свободных вещей" - методах оптимизации, которые повышают точность во время обучения, но удаляются или объединяются во время вывода. Ключевые особенности включают:
- E-ELAN (Extended Efficient Layer Aggregation Network): Улучшенная магистральная структура, которая повышает способность модели к изучению различных характеристик за счет управления кратчайшими и длинными градиентными путями.
- Масштабирование моделей: Вместо того чтобы просто масштабировать глубину или ширину, YOLOv7 использует метод составного масштабирования для моделей на основе конкатенации, сохраняя оптимальную структуру при масштабировании.
- Вспомогательная головка с грубыми и точными потерями: вспомогательная головка с потерями используется во время обучения для контроля, а затем перепараметризуется в основную головку для вывода.
Перепараметризация
В YOLOv7 используется плановая перепараметризация, при которой отдельные модули обучения математически объединяются в один конволюционный слой для вывода. Это значительно сокращает время ожидания вывода, не жертвуя при этом способностью к изучению признаков, полученной в процессе обучения.
YOLOX: Эволюция без якоря
YOLOX, выпущенный в 2021 году, представлял собой сдвиг в парадигме YOLO , отказавшись от якорных блоков в пользу механизма без якорных блоков, схожего с подходами семантической сегментации.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: Megvii
- Дата: 18.07.2021
- Бумага:Ссылка на Arxiv
- GitHub:Репозиторий YOLOX
Архитектурные особенности
YOLOX упростил конвейер обнаружения, устранив необходимость в ручной настройке якорного блока, что было распространенной проблемой в предыдущих версиях, таких как YOLOv4 и YOLOv5.
- Механизм без якорей: Предсказывая центр объектов напрямую, YOLOX избавляется от сложных гиперпараметров, связанных с якорями, улучшая обобщение на различных наборах данных.
- Разделенная голова: В отличие от предыдущих версий YOLO , в которых классификация и локализация были объединены в одной голове, в YOLOX они разделены. Это приводит к ускорению сходимости и повышению точности.
- SimOTA: усовершенствованная стратегия присвоения меток, которая динамически относит положительные образцы к истинным с наименьшими затратами, эффективно балансируя потери при классификации и регрессии.
Почему модели 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 , максимально повысив эффективность подхода "bag-of-freebies". YOLOX успешно продемонстрировал жизнеспособность безъякорного обнаружения, упростив конвейер и улучшив обобщение.
Однако для современных рабочих процессов разработки, Ultralytics YOLO11 является лучшим выбором. Он сочетает в себе архитектурные достоинства своих предшественников с непревзойденным Python API, меньшими требованиями к памяти и поддержкой широкого спектра задач технического зрения. Вне зависимости от того, развертываете ли вы систему на периферийном устройстве или на облачном сервере, активное сообщество и обширная документация экосистемы Ultralytics обеспечат более легкий путь к производству.
Изучите другие модели
Если вы заинтересованы в дальнейших технических сравнениях, изучите эти ресурсы:
- YOLOv7 против YOLOv8: взгляд на скачок в производительности между поколениями.
- RT-DETR против YOLOv7: сравнение трансформеров с CNN.
- YOLO11 по сравнению с YOLOv10: последние достижения в области обнаружения в режиме реального времени.