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

YOLOv7 против YOLOv6-3.0: всестороннее техническое сравнение

В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха проекта. Двумя важными фреймворками, которые сформировали эту область, являются YOLOv7 и YOLOv6-3.0. Хотя оба они происходят из семейства YOLO (You Only Look Once), они существенно расходятся в своих архитектурных философиях и целях оптимизации.

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

YOLOv7: Архитектура точности

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

Авторы: Чен-Яо Ван, Алексей Бочковский и Хун-Юань Марк Ляо
Организация:Институт информатики, Academia Sinica, Тайвань
Дата: 2022-07-06
Arxiv:https://arxiv.org/abs/2207.02696
GitHub:https://github.com/WongKinYiu/yolov7
Документация:https://docs.ultralytics.com/models/yolov7/

Ключевые архитектурные особенности

YOLOv7 представила «обучаемые бесплатные улучшения» — набор методов оптимизации, которые повышают точность без увеличения стоимости вывода.

  • E-ELAN (Extended-Efficient Layer Aggregation Networks): Эта архитектура улучшает способность сети к обучению, контролируя кратчайшие и длиннейшие градиентные пути. Она позволяет модели изучать более разнообразные функции, расширяя «cardinality» вычислительных блоков.
  • Масштабирование модели: YOLOv7 использует методы составного масштабирования, которые одновременно изменяют глубину и ширину, обеспечивая оптимальную производительность для моделей разных размеров (от Tiny до E6E).
  • Обучение со вспомогательной головой: Модель использует вспомогательную голову во время обучения для обеспечения глубокого контроля, которая затем удаляется во время инференции. Это улучшает сходимость модели глубокого обучения.

Сильные и слабые стороны

YOLOv7 славится своей высокой средней точностью (mAP), особенно на маленьких и заслоненных объектах. Он служит отличным выбором для исследований и сценариев, где точность имеет первостепенное значение. Однако его сложная архитектура, которая в значительной степени полагается на слои на основе конкатенации, может привести к более высокому потреблению памяти во время обучения по сравнению с оптимизированными промышленными моделями.

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

YOLOv6-3.0: Разработан для промышленной скорости

YOLOv6-3.0, разработанная отделом визуальных вычислений компании Meituan, уделяет большое внимание практическим промышленным приложениям. Выпущенная в начале 2023 года, она уделяет приоритетное внимание скорости вывода и эффективности оборудования, что делает ее сильным кандидатом для периферийных вычислений.

Авторы: Чуйи Ли, Лулу Ли, Ифэй Генг, Хунлян Цзян, Мэн Чэн, Бо Чжан, Зайдан Ке, Сяомин Сюй и Сянсян Чу
Организация: Meituan
Дата: 2023-01-13
Arxiv:https://arxiv.org/abs/2301.05586
GitHub:https://github.com/meituan/YOLOv6
Документация:https://docs.ultralytics.com/models/yolov6/

Ключевые архитектурные особенности

YOLOv6-3.0 отличается своей аппаратно-ориентированной конструкцией, специально оптимизированной для пропускной способности GPU и CPU.

  • RepVGG Backbone: Модель использует блоки репараметризации (RepVGG). Во время обучения модель имеет многоветвленную топологию для лучшего обучения, которая математически объединяется в одно-ветвленную структуру для inference. Это приводит к более быстрому выполнению на таком оборудовании, как NVIDIA Jetson.
  • Разделенная голова (Decoupled Head): В отличие от предыдущих версий YOLO, которые использовали общие признаки для классификации и локализации, YOLOv6 использует разделенную голову. Такое разделение улучшает скорость сходимости и точность обнаружения (detect).
  • Поддержка квантования: Архитектура разработана с учетом квантования моделей (например, INT8), что необходимо для развертывания на устройствах с ограниченными ресурсами.

Сильные и слабые стороны

YOLOv6-3.0 превосходен в необработанной пропускной способности. Для линий промышленной автоматизации или робототехники, где важны миллисекунды, его оптимизированный граф inference является значительным преимуществом. Однако его основное внимание уделяется в первую очередь detect, и ему не хватает встроенной универсальности для многозадачности, которая есть в более поздних итерациях, таких как YOLO11.

Узнайте больше о YOLOv6-3.0

Сравнение производительности

В следующей таблице показаны компромиссы между двумя моделями. YOLOv6-3.0 обычно предлагает более высокую скорость для аналогичных уровней точности, в то время как YOLOv7 повышает предел точности detect.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv6-3.0n64037.5-1.174.711.4
YOLOv6-3.0s64045.0-2.6618.545.3
YOLOv6-3.0m64050.0-5.2834.985.8
YOLOv6-3.0l64052.8-8.9559.6150.7

Анализ результатов

  • Скорость vs. Точность: YOLOv6-3.0n выделяется своей экстремальной скоростью, достигая 1.17 мс инференса на GPU T4, что делает его идеальным для высокоскоростной видеоаналитики.
  • Пиковая точность: YOLOv7x достигает более высокого mAP (53,1%) по сравнению с YOLOv6-3.0l (52,8%), демонстрируя свою силу в обнаружении сложных примеров.
  • Вычислительная эффективность: YOLOv6 использует меньше FLOPs для сопоставимых уровней производительности, подтверждая свою философию проектирования "EfficientRep".

Рекомендации по развертыванию

В то время как эталонные тесты обеспечивают базовый уровень, реальная производительность сильно зависит от оборудования развертывания. Re-parameterization YOLOv6 хорошо проявляется на GPU, в то время как архитектура YOLOv7 на основе конкатенации является надежной, но может интенсивно использовать пропускную способность памяти.

Преимущество Ultralytics: Вне сравнения

В то время как YOLOv7 и YOLOv6-3.0 представляют собой значительные достижения в истории компьютерного зрения, эта область быстро развивается. Для разработчиков, ищущих устойчивое, перспективное решение, Ultralytics YOLO11 предлагает комплексную экосистему, которая заменяет ограничения отдельных архитектур моделей.

Почему стоит выбрать Ultralytics YOLO11?

  1. Непревзойденная простота использования: В отличие от многих моделей с открытым исходным кодом, которые требуют сложного клонирования репозитория и настройки среды, модели Ultralytics доступны через простую установку pip. Дизайн Python API интуитивно понятен, что позволяет проводить обучение и inference всего в несколько строк кода.
  2. Баланс производительности: YOLO11 опирается на архитектурные уроки YOLOv6 и YOLOv7. В нем используется усовершенствованная архитектура, которая обеспечивает современную точность, сохраняя при этом скорость инференса, необходимую для приложений реального времени.
  3. Универсальность: Одним из самых сильных преимуществ экосистемы Ultralytics является поддержка нескольких задач. В то время как YOLOv6 и YOLOv7 в основном сосредоточены на detect, YOLO11 изначально поддерживает Instance Segmentation, Pose Estimation, Classification и Oriented Object Detection (OBB).
  4. Эффективность обучения: Модели Ultralytics оптимизированы для более быстрой сходимости и снижения использования памяти во время обучения. Это эффективное управление ресурсами позволяет проводить обучение на GPU потребительского класса без огромных накладных расходов на память CUDA, часто связанных со старыми архитектурами, использующими трансформеры или большое количество конкатенаций.
  5. Хорошо поддерживаемая экосистема: Благодаря частым обновлениям, обширной документации и активному сообществу Ultralytics гарантирует, что ваши проекты останутся совместимыми с последними версиями PyTorch и форматами экспорта, такими как ONNX, TensorRT и CoreML.

Пример реализации

Развертывание современной модели с помощью Ultralytics — простая задача. Вот как легко вы можете реализовать detect объектов:

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Process results
for result in results:
    result.save(filename="output.jpg")  # save to disk

Заключение

И YOLOv7, и YOLOv6-3.0 обслуживают определенные ниши: YOLOv7 для высокоточных исследовательских задач и YOLOv6-3.0 для промышленной оптимизации скорости. Однако, для большинства разработчиков и исследователей, экосистема Ultralytics YOLO11 предоставляет наиболее сбалансированное, универсальное и поддерживаемое решение. Сочетая высокую производительность с исключительным пользовательским опытом и широкой поддержкой задач, Ultralytics позволяет пользователям сосредоточиться на решении реальных проблем, а не на борьбе с архитектурами моделей.

Изучите другие модели

Если вам интересно изучить больше вариантов в области компьютерного зрения, рассмотрите следующие сравнения:

  • YOLOv7 vs. RT-DETR: Сравнение детекторов на основе CNN с архитектурами на основе Transformer.
  • YOLOv6 vs. YOLOv8: Обзор того, как предыдущее поколение моделей Ultralytics соотносится с промышленными стандартами.
  • YOLOv7 vs. YOLOX: Анализ стратегий обнаружения с использованием якорей и без них.

Комментарии