YOLOv7 против YOLOv9: технический глубокий анализ современного обнаружения объектов
Ландшафт обнаружения объектов в реальном времени быстро развивается, и каждая новая итерация расширяет границы возможного как на периферийных устройствах, так и на облачных серверах. Оценивая архитектуры для проектов компьютерного зрения, разработчики часто сравнивают устоявшиеся бенчмарки с новыми инновациями. В этом подробном руководстве сравниваются две ключевые вехи в семействе YOLO: YOLOv7 и YOLOv9.
Мы проанализируем их архитектурные прорывы, метрики производительности и идеальные сценарии развертывания, чтобы помочь тебе выбрать подходящую модель для твоего приложения. Мы также рассмотрим, как Ultralytics Platform объединяет эти модели, упрощая их обучение, валидацию и развертывание.
Происхождение моделей и технические спецификации
Понимание происхождения и философии проектирования этих моделей дает важный контекст для оценки их возможностей. Обе модели имеют общее исследовательское происхождение, но нацелены на устранение различных архитектурных «узких мест».
YOLOv7: первопроходец «набора бесплатных инструментов»
Выпущенная в середине 2022 года, YOLOv7 зарекомендовала себя как высоконадежная и тщательно оптимизированная архитектура. Она представила структурную репараметризацию и подход «набор инструментов обучения» (trainable bag-of-freebies) для поддержания высокой скорости вывода без ущерба для средней точности (mAP).
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информационных наук, Academia Sinica, Тайвань
- Дата: 6 июля 2022 г.
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Архитектурные инновации: YOLOv7 использует сеть Extended Efficient Layer Aggregation Network (E-ELAN), которая позволяет модели изучать более разнообразные признаки путем расширения, перетасовки и объединения кардинальности. Эта конструкция обеспечивает превосходное использование GPU и задержку вывода. Однако она может требовать значительного объема памяти во время сложных циклов обучения по сравнению с современными итерациями.
YOLOv9: решение проблемы информационного «бутылочного горлышка»
Представленная в начале 2024 года той же исследовательской группой, YOLOv9 устраняет «информационное узкое место», присущее глубоким нейронным сетям. По мере прохождения данных через глубокие слои часто теряются важные детали. YOLOv9 смягчает эту проблему за счет принципиально новых конструкций слоев.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информационных наук, Academia Sinica, Тайвань
- Дата: 21 февраля 2024 г.
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Архитектурные инновации: YOLOv9 внедряет Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). PGI гарантирует, что надежные градиенты сохраняются и возвращаются для точного обновления весов. GELAN максимизирует эффективность параметров, позволяя YOLOv9 достигать высокой точности со значительно меньшим количеством FLOPs, чем у ее предшественников.
Анализ производительности
При выборе между архитектурами инженерам по ИИ приходится балансировать между точностью, скоростью вывода и вычислительными затратами. В таблице ниже показаны различия в производительности этих моделей на стандартном наборе данных COCO.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Основные выводы
- Эффективность параметров: YOLOv9m соответствует точности YOLOv7l (51.4% mAP), используя при этом почти на 45% меньше параметров (20.0M против 36.9M). Такое радикальное сокращение делает YOLOv9m намного проще для развертывания на устройствах Edge AI с ограниченным объемом памяти.
- Микро-развертывания: Представление варианта YOLOv9t (tiny) обеспечивает невероятную скорость (2.3 мс на T4 TensorRT) для сред, где критически важна работа в реальном времени.
- Максимальная точность: Для приложений, где точность имеет первостепенное значение, YOLOv9e доводит точность обнаружения до 55.6% mAP, значительно превосходя YOLOv7x.
Хотя YOLOv7 и YOLOv9 являются мощными инструментами, недавно выпущенная YOLO26 представляет собой окончательный качественный скачок вперед. YOLO26 внедряет нативную end-to-end конструкцию без NMS, устраняя сложную постобработку и увеличивая скорость вывода на CPU до 43%. Используя новый оптимизатор MuSGD и улучшенные функции потерь ProgLoss + STAL, YOLO26 обеспечивает непревзойденную стабильность обучения и точность обнаружения мелких объектов.
Преимущество Ultralytics
Выбор архитектуры модели — это только первый шаг. Программная экосистема вокруг модели определяет, как быстро ты сможешь перейти от прототипа к производству. Интеграция этих моделей через Python API от Ultralytics дает значительные преимущества для разработчиков и исследователей.
Простота использования и эффективность обучения
Исторически обучение YOLOv7 требовало сложной подготовки данных и сильно кастомизированных скриптов. Фреймворк Ultralytics абстрагирует эти сложности глубокого обучения. Разработчики могут легко переключаться между архитектурами, экспериментировать с настройкой гиперпараметров и использовать интеллектуальные конвейеры аугментации данных с минимумом кода.
Более того, Ultralytics оптимизирует использование памяти во время обучения и вывода. В отличие от тяжелых моделей Transformer (таких как RT-DETR), архитектуры Ultralytics YOLO обучаются значительно быстрее и требуют гораздо меньше памяти CUDA, что делает их идеальными для потребительских GPU.
Пример кода: Упрощенное обучение
Обучение передовых моделей в экосистеме Ultralytics происходит бесшовно. Вот полностью рабочий пример, демонстрирующий, как обучить и проверить модель YOLOv9:
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Непревзойденная универсальность для разных задач
Хорошо поддерживаемая экосистема означает доступ к разнообразным задачам компьютерного зрения. В то время как YOLOv7 была создана в основном для обнаружения объектов (с последующими экспериментальными форками для других задач), современные модели Ultralytics изначально созданы для универсальности. Из коробки ты можешь легко выполнять сегментацию экземпляров, оценку позы, классификацию изображений и обнаружение ориентированных ограничивающих рамок (OBB).
Идеальные варианты использования и приложения
Решение между YOLOv7 и YOLOv9 часто зависит от твоих специфических отраслевых ограничений и наличия оборудования.
Когда использовать YOLOv7
- Устаревшие периферийные развертывания: Для аппаратных сред, уже сильно настроенных и оптимизированных под архитектуру E-ELAN модели YOLOv7, она остается надежным выбором для промышленного IoT.
- Мониторинг трафика: Высокая частота кадров и доказанная стабильность YOLOv7 делают ее отличным выбором для инфраструктуры «умного города» и управления трафиком в реальном времени.
- Интеграция в робототехнику: Навигация в динамических средах требует обработки с низкой задержкой — сценарий, в котором варианты YOLOv7 были тщательно протестированы.
Когда использовать YOLOv9
- Медицинская визуализация: Архитектура PGI в YOLOv9 исключительно хорошо сохраняет мелкозернистые детали через глубокие слои, что критически важно при анализе задач медицинского анализа изображений, таких как обнаружение опухолей.
- Плотная аналитика розничной торговли: Для отслеживания и подсчета плотно расположенных товаров на полках магазинов интеграция признаков в YOLOv9 обеспечивает превосходную точность и снижает количество ложноотрицательных срабатываний.
- Аэрофотосъемка и дроны: Эффективность параметров YOLOv9m позволяет обрабатывать изображения высокого разрешения на дронах, помогая в охране дикой природы и сельскохозяйственном мониторинге без быстрой разрядки аккумулятора.
Заключение
Как YOLOv7, так и YOLOv9 заняли свое место в истории компьютерного зрения. YOLOv7 представила важные оптимизации для обработки в реальном времени, в то время как YOLOv9 решила структурные проблемы глубокого обучения для максимизации эффективности параметров.
Однако для разработчиков, начинающих новые проекты сегодня, использование экосистемы Ultralytics — в частности, моделей следующего поколения, таких как YOLO11 и YOLO26 — предлагает наиболее выгодный компромисс между скоростью, точностью и удобством для разработчика. Благодаря таким инновациям, как оптимизатор MuSGD и удаление Distribution Focal Loss (DFL) для более широкой совместимости с оборудованием, Ultralytics продолжает предоставлять самые доступные и мощные инструменты для профессионалов в области зрения ИИ.