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), особенно на небольших и закрытых объектах. Это отличный выбор для исследований и сценариев, где точность имеет первостепенное значение. Однако его сложная архитектура, в значительной степени основанная на конкатенации слоев, может приводить к увеличению потребления памяти в процессе обучения по сравнению с упрощенными промышленными моделями.
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, как правило, предлагает более высокую скорость при схожих уровнях точности, в то время как YOLOv7 достигает предела точности обнаружения.
| Модель | размер (пиксели) | 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 |
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.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?
- Непревзойденная простота использования: В отличие от многих моделей с открытым исходным кодом, требующих сложного клонирования репозитория и настройки среды, модели Ultralytics доступны с помощью простой установки pip. Дизайн API на Python интуитивно понятен, что позволяет проводить обучение и делать выводы всего в нескольких строках кода.
- Баланс производительности: YOLO11 опирается на архитектурный опыт YOLOv6 и YOLOv7. В нем используется усовершенствованная архитектура, позволяющая достичь самой высокой точности при сохранении скорости вывода, необходимой для приложений реального времени.
- Универсальность: Одно из самых сильных преимуществ экосистемы Ultralytics - поддержка множества задач. В то время как YOLOv6 и YOLOv7 сосредоточены в основном на обнаружении, YOLO11 поддерживает сегментацию объектов, оценку позы, классификацию и ориентированное обнаружение объектов (OBB).
- Эффективность обучения: Модели Ultralytics оптимизированы для ускорения сходимости и снижения потребления памяти во время обучения. Такое эффективное управление ресурсами позволяет проводить обучение на графических процессорах потребительского класса без огромных нагрузок на память CUDA , часто связанных со старыми архитектурами, использующими трансформаторы или конкатенацию.
- Хорошо поддерживаемая экосистема: Благодаря частым обновлениям, обширной документации и активному сообществу 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: анализ стратегий обнаружения без якорей и с якорями.