YOLOv6-3.0 против YOLOv7: глубокое погружение в индустриальную скорость и точность
Выбор оптимальной модели для detectирования объектов является критически важным решением, которое зависит от баланса между скоростью inference, точностью и вычислительной эффективностью. В этом техническом сравнении рассматриваются различия между YOLOv6-3.0, фреймворком, ориентированным на промышленность, и YOLOv7, моделью, разработанной для расширения границ точности с использованием обучаемых "мешков с бесплатными дополнениями". Анализируя их архитектуры, эталонные показатели и идеальные варианты использования, разработчики могут определить, какое решение лучше всего соответствует их конкретным ограничениям развертывания.
YOLOv6-3.0: Разработан для промышленной эффективности
YOLOv6-3.0 представляет собой значительную эволюцию в серии YOLO, специально разработанную для промышленных приложений, где скорость в реальном времени и эффективность оборудования являются обязательными условиями. Эта версия, разработанная компанией Meituan, фокусируется на оптимизации компромисса между задержкой и точностью, что делает ее отличным выбором для периферийных вычислений и сред с высокой пропускной способностью.
Авторы: Чуйи Ли, Лулу Ли, Ифэй Генг, Хунлян Цзян, Мэн Чэн, Бо Чжан, Зайдан Ке, Сяомин Сюй и Сянсян Чу
Организация: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 построена вокруг концепции проектирования, ориентированного на аппаратное обеспечение. Она использует re-parameterizable backbone (EfficientRep), который позволяет модели использовать сложные структуры во время обучения для лучшего изучения признаков, при этом сворачиваясь в более простые, быстрые структуры во время вывода. Этот метод значительно снижает затраты на доступ к памяти и улучшает задержку при выводе.
Ключевые архитектурные инновации включают:
- Двунаправленное объединение (BiC): Этот модуль повышает точность локализации за счет улучшения распространения признаков.
- Обучение с использованием якорей (AAT): Стратегия, сочетающая преимущества anchor-based и детекторов anchor-free для стабилизации обучения и повышения производительности.
- Самодистилляция: YOLOv6-3.0 использует методы самодистилляции, где модель-ученик учится на предсказаниях своей собственной модели-учителя, повышая точность без необходимости использования внешних больших моделей.
Сильные и слабые стороны
Основная сила YOLOv6-3.0 заключается в ее скорости вывода. Как показывают тесты, небольшие варианты (например, YOLOv6-3.0n) исключительно быстры на оборудовании GPU, что делает их идеальными для конвейеров видеоаналитики, которые должны обрабатывать высокую частоту кадров. Кроме того, поддержка моделью квантования моделей облегчает развертывание на оборудовании с ограниченными ресурсами.
Однако более ранние версии YOLOv6 были в основном ограничены detectией объектов, не хватало встроенной универсальности, имеющейся в более полных фреймворках, которые поддерживают segmentацию или оценку позы из коробки. Кроме того, хотя поддержка экосистемы и очень эффективна, она не так обширна, как у других проектов, управляемых сообществом.
Идеальные варианты использования
YOLOv6-3.0 превосходен в таких сценариях, как:
- Производственные линии: Где требуется высокоскоростной detect дефектов на конвейерных лентах.
- Аналитика розничной торговли: Для управления очередями и отслеживания запасов, где вычислительные ресурсы ограничены.
- Embedded systems: развертывание на устройствах, таких как серия NVIDIA Jetson.
YOLOv7: Оптимизация обучаемого Bag-of-Freebies
YOLOv7 использует другой подход, уделяя большое внимание архитектурным реформам для максимального увеличения точности без увеличения стоимости вывода. Авторы представили «обучаемые бесплатные улучшения» — методы оптимизации, которые улучшают производительность модели во время обучения, но не изменяют архитектуру или скорость вывода.
Авторы: Чен-Яо Ван, Алексей Бочковский и Хун-Юань Марк Ляо
Организация:Институт информатики, 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 Network). Эта архитектура позволяет модели изучать более разнообразные признаки, контролируя кратчайшие и длиннейшие пути градиента, обеспечивая эффективную сходимость сети.
Основные характеристики включают:
- Масштабирование модели: В отличие от предыдущих методов, которые масштабировали только глубину или ширину, YOLOv7 предлагает составной метод масштабирования, который объединяет слои, а не просто изменяет их размер, сохраняя свойства оптимизации модели.
- Обучение со вспомогательной головой: Модель использует вспомогательную голову во время обучения, чтобы помочь ведущей голове. Этот метод глубокого контроля улучшает обучение промежуточных слоев, но удаляется во время инференции для поддержания скорости.
- Запланированная повторно параметризованная свертка: Специализированное применение повторной параметризации, которое позволяет избежать идентичных соединений в определенных слоях, чтобы предотвратить ухудшение производительности.
Сильные и слабые стороны
YOLOv7 славится своей высокой точностью, достигая впечатляющих показателей средней точности (mAP) на наборе данных COCO. Он эффективно устраняет разрыв между ограничениями реального времени и потребностью в высокоточных детекциях.
С другой стороны, сложность архитектуры и использование вспомогательных голов могут сделать процесс обучения более требовательным к памяти по сравнению с более простыми архитектурами. Будучи эффективной во время инференса, фаза обучения требует значительного объема памяти GPU, особенно для более крупных вариантов "E6E".
Идеальные варианты использования
YOLOv7 особенно хорошо подходит для:
- Детальное наблюдение: Идентификация мелких объектов или незначительных действий на сложных кадрах видеонаблюдения.
- Автономное вождение: Где точность имеет решающее значение для безопасности и навигации.
- Научные исследования: Приложения, требующие высоких метрик AP, такие как медицинская визуализация или биологические исследования.
Сравнение производительности: Метрики и анализ
В следующей таблице сравнивается производительность YOLOv6-3.0 и вариантов YOLOv7 на COCO validation dataset. В ней освещаются компромиссы между размером модели, вычислительной нагрузкой (FLOPs) и скоростью.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Интерпретация сравнительных тестов
В то время как YOLOv7x достигает наивысшей точности (53.1% mAP), он требует значительно больше параметров (71.3M) и FLOPs (189.9B). В отличие от этого, YOLOv6-3.0n оптимизирован для экстремальной скорости, достигая 1.17 ms inference на T4 GPU, что делает его примерно в 10 раз быстрее, чем самый большой вариант YOLOv7, хотя и с меньшей точностью.
Данные показывают четкое различие: YOLOv6-3.0 доминирует в средах с низкой задержкой, тогда как YOLOv7 превосходит, когда приоритетом является максимальное качество обнаружения и аппаратные ресурсы более обильны.
Преимущество Ultralytics: Больше, чем просто метрики
Хотя YOLOv6 и YOLOv7 предлагают широкие возможности, ландшафт компьютерного зрения быстро развивается. Для разработчиков и исследователей, ищущих перспективное, универсальное и удобное решение, Ultralytics YOLO11 и YOLOv8 предоставляют убедительные преимущества, которые выходят за рамки простых эталонных тестов.
Простота использования и экосистема
Одним из наиболее существенных препятствий на пути внедрения передовых моделей ИИ является сложность реализации. Модели Ultralytics известны своим оптимизированным пользовательским интерфейсом. Благодаря простому Python API и CLI пользователи могут обучать, проверять и развертывать модели всего в несколько строк кода. Это контрастирует с репозиториями, ориентированными на исследования, которые часто требуют сложной настройки среды и корректировки конфигурации.
from ultralytics import YOLO
# Load a model (YOLO11n recommended for speed/accuracy balance)
model = YOLO("yolo11n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Универсальность в различных задачах
В отличие от более ранних версий YOLO, которые были в основном предназначены исключительно для detect, модели Ultralytics изначально являются мультимодальными. Единый фреймворк поддерживает:
- Обнаружение объектов: Идентификация объектов и их местоположения.
- Сегментация экземпляров: Маскирование объектов на уровне пикселей.
- Оценка позы: Идентификация скелетных ключевых точек.
- Классификация: Категоризация целых изображений.
- Oriented Bounding Box (OBB): Обнаружение объектов под углом (например, аэрофотосъемка).
Баланс производительности и эффективность
Модели Ultralytics, такие как YOLO11, разработаны для обеспечения оптимального баланса между скоростью и точностью. Они часто достигают более высокого mAP, чем YOLOv7, сохраняя при этом скорости логического вывода, связанные с эффективными архитектурами, такими как YOLOv6. Кроме того, модели Ultralytics разработаны для эффективности обучения, требуя меньшего использования памяти GPU по сравнению с моделями на основе трансформеров (такими как RT-DETR), что ускоряет циклы экспериментов и снижает затраты на облачные вычисления.
Хорошо поддерживаемая экосистема
Выбор модели Ultralytics означает приобретение поддерживаемой экосистемы. Это включает в себя:
- Частые обновления: Регулярные улучшения архитектуры и весов.
- Broad Export Support: Беспроблемный экспорт в ONNX, TensorRT, CoreML и TFLite для развертывания на любом устройстве.
- Сообщество: Огромное сообщество разработчиков и обширная документация гарантируют, что помощь всегда доступна.
Заключение
И YOLOv6-3.0, и YOLOv7 внесли значительный вклад в область компьютерного зрения. YOLOv6-3.0 — это оптимальный выбор для промышленных приложений, требующих сверхбыстрого вывода и поддержки квантования. YOLOv7 остается сильным претендентом для сценариев, где точность detect имеет первостепенное значение, а аппаратные ограничения являются гибкими.
Однако для целостного решения, которое сочетает в себе передовую производительность с непревзойденной простотой использования, универсальностью и гибкостью развертывания, Ultralytics YOLO11 выделяется как превосходный выбор для современной разработки ИИ. Независимо от того, развертываете ли вы решение на периферии или масштабируете его в облаке, экосистема Ultralytics предоставляет инструменты, необходимые для достижения успеха.
Для дальнейшего чтения рассмотрите наши сравнения по YOLOX или просмотрите возможности RT-DETR для обнаружения на основе трансформеров.