YOLOv7 против YOLOv9#
Сфера обнаружения объектов в реальном времени развивается стремительно, и каждая новая итерация расширяет границы возможного как на периферийных устройствах, так и на облачных серверах. При оценке архитектур для проектов компьютерного зрения разработчики часто сравнивают проверенные временем бенчмарки с более свежими инновациями. В этом подробном руководстве сравниваются две важнейшие вехи в семействе YOLO: YOLOv7 и YOLOv9.
Мы проанализируем их архитектурные прорывы, метрики производительности и идеальные сценарии развертывания, чтобы помочь тебе выбрать правильную модель для твоего приложения. Мы также рассмотрим, как Ultralytics Platform объединяет эти модели, упрощая их обучение, валидацию и развертывание.
Происхождение моделей и технические спецификации#
Понимание истоков и философии дизайна этих моделей дает необходимый контекст для оценки их возможностей. Обе модели имеют общее исследовательское происхождение, но решают разные архитектурные проблемы.
YOLOv7: Пионер «наборов бесплатных улучшений»#
Выпущенная в середине 2022 года YOLOv7 зарекомендовала себя как крайне надежная и сильно оптимизированная архитектура. В ней были представлены структурная репараметризация и подход «обучаемого набора бесплатных улучшений» (trainable bag-of-freebies) для поддержания высокой скорости инференса без ущерба для средней точности в апогее (mAP).
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Institute of Information Science, Academia Sinica, Taiwan
- Дата: 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
- Организация: Institute of Information Science, Academia Sinica, Taiwan
- Дата: 21 февраля 2024 г.
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Архитектурные инновации: YOLOv9 представляет программируемую градиентную информацию (Programmable Gradient Information, PGI) и обобщенную сеть агрегации эффективных слоев (Generalized Efficient Layer Aggregation Network, GELAN). PGI гарантирует, что надежные градиенты сохраняются и передаются обратно для точного обновления весов. GELAN максимизирует эффективность параметров, позволяя YOLOv9 достигать высокой точности со значительно меньшим количеством FLOPs по сравнению с предшественниками.
Анализ производительности#
Выбирая между архитектурами, AI-инженеры должны соблюдать баланс между точностью, скоростью инференса и вычислительными затратами. В таблице ниже показаны различия в производительности этих моделей на стандартном наборе данных 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 внедряет нативный сквозной дизайн без NMS, устраняя сложную постобработку и повышая скорость инференса на CPU до 43%. За счет использования нового оптимизатора MuSGD и улучшенных функций потерь ProgLoss + STAL, YOLO26 обеспечивает непревзойденную стабильность обучения и точность обнаружения мелких объектов.
Преимущество Ultralytics#
Выбор архитектуры модели — это лишь первый шаг. Окружающая модель программная экосистема определяет, как быстро ты сможешь перейти от прототипа к продакшену. Интеграция этих моделей через Ultralytics Python API дает значительные преимущества разработчикам и исследователям.
Простота использования и эффективность обучения#
Исторически сложилось так, что обучение YOLOv7 требовало сложной подготовки данных и сильно кастомизированных скриптов. Фреймворк Ultralytics абстрагирует эти сложности глубокого обучения. Разработчики могут легко переключаться между архитектурами, экспериментировать с подбором гиперпараметров и использовать интеллектуальные конвейеры аугментации данных с минимальным количеством кода.
Кроме того, Ultralytics оптимизирует использование памяти во время обучения и инференса. В отличие от тяжелых трансформерных моделей (таких как 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 продолжает предоставлять самые доступные и мощные инструменты для профессионалов в области зрения на основе ИИ.