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

YOLOv7 против YOLOv6.0: Всестороннее техническое сравнение

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

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

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

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

Авторы: Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
Organization:Institute of Information Science, Academia Sinica, Taiwan
Date: 2022-07-06
Arxiv:https://arxiv.org/abs/2207.02696
GitHub:https://github.com/WongKinYiu/yolov7
Docsultralytics

Основные архитектурные особенности

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

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

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

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

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

YOLOv6.0: Создан для промышленной скорости

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

Авторы: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu, and Xiangxiang Chu
Organization: Meituan
Дата: 2023-01-13
Arxiv:https://arxiv.org/abs/2301.05586
GitHubYOLOv6
Docsultralytics

Основные архитектурные особенности

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

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

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

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

Узнайте больше о YOLOv6.0

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

Следующая таблица иллюстрирует компромиссы между двумя моделями. YOLOv6.0, как правило, предлагает более высокую скорость при схожих уровнях точности, в то время как YOLOv7 достигает предела точности обнаружения.

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

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

  • Скорость и точность: YOLOv6.0n отличается высокой скоростью, достигая 1,17 мс на графических процессорах T4, что делает его идеальным для высокоскоростной видеоаналитики.
  • Пиковая точность: YOLOv7x достигает более высокого уровня mAP (53,1%) по сравнению с YOLOv6.0l (52,8%), демонстрируя свою силу в обнаружении сложных примеров.
  • Эффективность вычислений: YOLOv6 использует меньшее количество FLOP для достижения сопоставимого уровня производительности, что подтверждает философию проектирования "EfficientRep".

Соображения по развертыванию

Хотя бенчмарки дают базовые показатели, реальная производительность в значительной степени зависит от аппаратных средств развертывания. Перепараметризация YOLOv6 отлично работает на GPU, а архитектура YOLOv7, основанная на конкатенации, надежна, но может занимать много места в памяти.

Преимущество Ultralytics : За пределами сравнения

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

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

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

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

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

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.0 работают в определенных нишах: YOLOv7 для высокоточных исследовательских задач и YOLOv6.0 для промышленной оптимизации скорости. Однако для большинства разработчиков и исследователей Ultralytics YOLO11 обеспечивает наиболее сбалансированное, универсальное и удобное в обслуживании решение. Сочетая высокую производительность с исключительным пользовательским опытом и широкой поддержкой задач, Ultralytics позволяет пользователям сосредоточиться на решении реальных проблем, а не на борьбе с архитектурой моделей.

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

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

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

Комментарии