Перейти к содержанию

YOLOv7 YOLOX: подробное изучение архитектур обнаружения объектов в реальном времени

В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха. Двумя важными вехами на этом пути являются YOLOv7 и YOLOX. Хотя обе архитектуры расширили границы скорости и точности после своего выпуска, они использовали принципиально разные подходы к решению проблемы обнаружения. В этом руководстве представлено подробное техническое сравнение, которое поможет разработчикам, исследователям и инженерам принять обоснованные решения для своих конкретных случаев использования.

Обзор модели и истоки

Понимание происхождения этих моделей позволяет понять контекст архитектурных решений, лежащих в их основе.

YOLOv7: Мощный инструмент «Bag-of-Freebies»

Выпущенный в июле 2022 года, YOLOv7 разработан как самый быстрый и точный детектор объектов в реальном времени на тот момент. Основное внимание уделялось архитектурным оптимизациям, таким как E-ELAN (Extended Efficient Layer Aggregation Networks) и обучаемый «bag-of-freebies», чтобы повысить точность без увеличения затрат на вывод.

Узнайте больше о YOLOv7

YOLOX: Эволюция Anchor-Free

YOLOX, выпущенный Megvii в 2021 году, стал значительным сдвигом, отказавшись от механизма на основе якорей, который доминировал YOLO предыдущих YOLO (таких как YOLOv3 и YOLOv5). Благодаря использованию развязанной головки и конструкции без якорей YOLOX упростил процесс обучения и улучшил производительность, сократив разрыв между исследованиями и промышленным применением.

Сравнение технических характеристик

В следующей таблице представлены показатели производительности сопоставимых моделей на COCO .

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Ключевые архитектурные различия

  1. Анкерные механизмы:

    • YOLOv7: использует подход на основе анкоров. Требует заранее определенных анкорных рамок, которые могут быть чувствительны к настройке гиперпараметров, но часто демонстрируют стабильную работу на стандартных наборах данных, таких как MS COCO.
    • YOLOX: Применен дизайн без якорей. Это устраняет необходимость в кластеризации якорных ящиков (таких как K-means) и сокращает количество параметров дизайна, упрощая конфигурацию модели.
  2. Проектирование сети:

    • YOLOv7: Использует архитектуру E-ELAN, которая направляет градиентные пути для эффективного обучения разнообразных функций. Также использует «планируемую перепараметризацию» для объединения слоев во время вывода, что повышает скорость без ущерба для точности обучения.
    • YOLOX: использует развязанную головку, разделяя задачи классификации и регрессии. Это обычно приводит к более быстрой конвергенции и лучшей точности, но может немного увеличить количество параметров по сравнению с связанной головкой.
  3. Назначение этикеток:

    • YOLOv7: использует стратегию присвоения меток от грубого к тонкому.
    • YOLOX: Внедрена SimOTA (Simplified Optimal Transport Assignment) — стратегия динамического присвоения меток, которая рассматривает задачу присвоения как задачу оптимальной транспортировки, улучшая стабильность обучения.

Современный стандарт: YOLO26

Хотя YOLOv7 YOLOX были революционными, в этой области произошли дальнейшие изменения. Новая версия YOLO26, выпущенная в январе 2026 года, сочетает в себе лучшие черты обеих версий. Она отличается нативной сквозной конструкцией NMS (подобно философии YOLOX без анкеров, но в более развитом виде) и устраняет распределенную фокальную потерю (DFL), что позволяет ускорить CPU до 43 %.

Узнайте больше о YOLO26

Обучение и экосистема

Опыт разработчика часто бывает не менее важен, чем показатели производительности. Именно в этом аспекте Ultralytics значительно выделяется на фоне других решений.

Простота использования и интеграция

Обучение YOLOX обычно требует навигации по кодовой базе Megvii, которая, несмотря на свою надежность, может представлять собой более сложную задачу для пользователей, привыкших к высокоуровневым API. Напротив, запуск YOLOv7 Ultralytics беспроблемную работу.

Python Ultralytics унифицирует рабочий процесс. Вы можете переключаться между YOLOv7, YOLOv10или даже YOLO11 , просто изменив строку имени модели. Такая гибкость жизненно важна для быстрого прототипирования и тестирования.

Пример кода: согласованный интерфейс

Вот как можно обучить YOLOv7 с помощью Ultralytics . Точно такая же структура кода работает для более новых моделей, таких как YOLO26.

from ultralytics import YOLO

# Load a YOLOv7 model (or swap to "yolo26n.pt" for the latest)
model = YOLO("yolov7.pt")

# Train on a custom dataset
# Ultralytics automatically handles data augmentation and logging
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

Память и эффективность

Ultralytics славятся эффективным использованием ресурсов.

  • Эффективность обучения: YOLOv7 Ultralytics оптимизирован для использования меньшего CUDA по сравнению с исходными реализациями или моделями на основе трансформаторов, такими как RT-DETR, что позволяет использовать более крупные пакеты данных на потребительском оборудовании.
  • Развертывание: Экспорт моделей в производственные форматы осуществляется с помощью одной команды. Независимо от того, на что нацелены ONNX, TensorRT, или CoreML, Ultralyticstralytics export режим обрабатывает сложность преобразования графа.

Идеальные варианты использования

Выбор между этими моделями часто зависит от конкретных ограничений вашей среды развертывания.

Когда выбирать YOLOv7

YOLOv7 сильным конкурентом для высокопроизводительных GPU , где требуется максимальная точность.

  • Высококачественное наблюдение: идеально подходит для систем охранной сигнализации, где важно обнаружение небольших объектов на расстоянии.
  • Промышленная инспекция: благодаря надежной функции извлечения признаков, она подходит для сложных производственных задач, таких как обнаружение дефектов на сборочных линиях.
  • GPU на границеGPU: устройства, такие как серия NVIDIA Orin, могут эффективно использовать перепараметризованную архитектуру YOLOv7.

Когда следует выбирать YOLOX

YOLOX часто предпочитают использовать в исследовательских условиях или в определенных сценариях с устаревшим оборудованием.

  • Академические исследования: Конструкция без якорей и чистый код делают YOLOX отличной базой для исследователей, экспериментирующих с новыми головками обнаружения или стратегиями назначения.
  • Мобильное развертывание (Nano/Tiny): Варианты YOLOX-Nano и Tiny высоко оптимизированы для мобильных процессоров, аналогично целям эффективности YOLOv6 Lite.
  • Устаревшие кодовые базы: команды, уже глубоко интегрированные в MegEngine или определенные PyTorch , могут счесть YOLOX более простым в обслуживании.

Будущее: переход на YOLO26

В то время как YOLOv7 YOLOX выполняют свои задачи, YOLO26 представляет собой следующий шаг вперед. Он устраняет ограничения обоих предшественников:

  1. NMS: в отличие от YOLOv7 который требует NMS) и YOLOX (который упростил анкоры, но по-прежнему использует NMS), YOLO26 использует нативную сквозную архитектуру. Это полностью устраняет задержку, связанную с постобработкой.
  2. Оптимизатор MuSGD: вдохновленный обучением LLM, этот оптимизатор стабилизирует обучение для задач компьютерного зрения, превосходя стандартный SGD в более старых YOLO .
  3. Универсальность задач: в то время как YOLOX в основном ориентирован на обнаружение, YOLO26 предлагает передовые возможности в области сегментации экземпляров, оценки позы и ориентированных ограничительных рамок (OBB).

Заключение

Как YOLOv7 YOLOX внесли значительный вклад в развитие технологии обнаружения объектов. YOLOv7 доказал, что методы на основе якорей по-прежнему могут превосходить другие методы по точности благодаря умной архитектуре, такой как E-ELAN. YOLOX успешно бросил вызов существующему положению дел, популяризировав обнаружение без якорей в YOLO .

Для разработчиков, начинающих сегодня новые проекты, использование Ultralytics является наиболее стратегическим выбором. Она предоставляет доступ к YOLOv7 сравнения с устаревшими версиями, одновременно предлагая прямой путь к превосходной скорости и точности YOLO26. Простота переключения моделей в сочетании с исчерпывающей документацией и поддержкой сообщества гарантирует, что ваши проекты в области компьютерного зрения будут актуальны и в будущем.

Дополнительная литература


Комментарии