YOLOv9 в сравнении с YOLOv5: техническое сравнение
В быстро развивающемся ландшафте компьютерного зрения выбор правильной модели detect объектов имеет решающее значение для успеха проекта. В этом анализе представлено подробное техническое сравнение между YOLOv9, архитектурой, ориентированной на исследования и расширяющей границы точности, и Ultralytics YOLOv5, отраслевой стандартной моделью, известной своей надежностью, скоростью и универсальностью. Мы изучаем их архитектурные различия, эталонные показатели производительности и идеальные варианты использования, чтобы помочь вам принять обоснованное решение.
YOLOv9: Архитектурные инновации для максимальной точности
Выпущенный в начале 2024 года, YOLOv9 стремится к теоретическим пределам обнаружения объектов, решая фундаментальные проблемы информационного потока глубокого обучения. Она предназначена для сценариев, в которых точность имеет первостепенное значение.
Авторы: Чен-Яо Ван, Хун-Юань Марк Ляо
Организация:Институт информатики, Academia Sinica, Тайвань
Дата: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
Документация:Документация YOLOv9
Основная архитектура
YOLOv9 представляет две новаторские концепции: Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). PGI борется с проблемой информационного узкого места, присущей глубоким нейронным сетям, обеспечивая сохранение полной входной информации для функции потерь, улучшая надежность градиента. GELAN оптимизирует эффективность параметров, позволяя модели достигать более высокой точности с меньшим количеством вычислительных ресурсов по сравнению с предыдущими архитектурами, использующими depth-wise convolution.
Сильные и слабые стороны
Основным преимуществом YOLOv9 является ее высочайшая точность на таких бенчмарках, как датасет COCO. Она превосходно справляется с обнаружением маленьких или перекрытых объектов, где другие модели могут потерпеть неудачу. Однако эта ориентация на точность обнаружения имеет свои компромиссы. Процесс обучения может потребовать больше ресурсов, и, хотя она интегрирована в экосистему Ultralytics, поддержка со стороны широкого сообщества и сторонние инструменты все еще развиваются по сравнению с более устоявшимися моделями. Кроме того, основное внимание по-прежнему уделяется обнаружению, в то время как другие модели предлагают более широкую встроенную поддержку многозадачности.
Ultralytics YOLOv5: Универсальный промышленный стандарт
С момента выпуска в 2020 году Ultralytics YOLOv5 определил стандарт для практического AI-развертывания в реальном мире. Он обеспечивает точный баланс между производительностью и удобством использования, что делает его одной из самых широко используемых моделей в истории.
Author: Glenn Jocher
Organization:Ultralytics
Date: 2020-06-26
GitHub:ultralytics/yolov5
Docs:YOLOv5 Documentation
Основная архитектура
YOLOv5 использует усовершенствованную архитектуру, основанную на anchor boxes, с бэкбоном CSPDarknet53 и neck PANet для надежной агрегации признаков. В его конструкции приоритет отдается скорости inference и инженерной оптимизации. Модель поставляется в различных масштабах (от Nano до Extra Large), что позволяет разработчикам идеально адаптировать модель к своим аппаратным ограничениям, от встроенных периферийных устройств до облачных GPU.
Преимущество Ultralytics
В то время как YOLOv9 расширяет академические границы, YOLOv5 превосходит в инженерной практичности.
- Простота использования: YOLOv5 известна своей возможностью «установил и запустил». Оптимизированный Python API и исчерпывающая документация значительно сокращают время разработки.
- Хорошо поддерживаемая экосистема: Поддерживаемый Ultralytics, YOLOv5 пользуется активной поддержкой, огромным сообществом на GitHub и бесшовной интеграцией с инструментами MLOps.
- Универсальность: Помимо detect, YOLOv5 изначально поддерживает instance segmentation и image classification, предлагая унифицированное решение для различных задач компьютерного зрения.
- Эффективность памяти: Модели Ultralytics оптимизированы для снижения объема занимаемой памяти как во время обучения, так и во время инференса, что контрастирует с высокими требованиями альтернатив на основе трансформеров.
Метрики производительности: Скорость в сравнении с точностью
В приведенном ниже сравнении выделены различные роли этих моделей. YOLOv9 обычно достигает более высокого mAP (средняя точность), особенно при больших размерах модели (c и e). Это делает его превосходным для задач, требующих детальной детализации.
И наоборот, YOLOv5 предлагает непревзойденную скорость inference, особенно с вариантами Nano (n) и Small (s). Для приложений реального времени на периферийном оборудовании, таком как NVIDIA Jetson или Raspberry Pi, YOLOv5 остается главным претендентом благодаря своей легкости и зрелости оптимизации TensorRT.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Совет по развертыванию
Для максимальной гибкости развертывания обе модели можно экспортировать в такие форматы, как ONNX, TensorRT и CoreML, используя режим экспорта Ultralytics. Это гарантирует эффективную работу ваших моделей на любом целевом оборудовании.
Обучение и удобство использования
Методологии обучения значительно различаются с точки зрения пользовательского опыта. Ultralytics YOLOv5 разработан для эффективности обучения, предлагая надежные предустановки, которые работают «из коробки» для пользовательских наборов данных. Он включает автоматический расчет якорей, эволюцию гиперпараметров и широкие возможности интеграции ведения журналов.
YOLOv9, хотя и является мощной моделью, может потребовать более тщательной настройки гиперпараметров для достижения стабильности и сходимости, особенно на небольших наборах данных. Однако, благодаря интеграции в ultralytics Благодаря пакету Python разработчики теперь могут обучать YOLOv9, используя тот же простой синтаксис, что и YOLOv5, что устраняет пробелы в удобстве использования.
Пример кода
С библиотекой Ultralytics переключение между этими архитектурами так же просто, как изменение имени модели. Этот фрагмент демонстрирует, как загружать и запускать вывод с обеими моделями:
from ultralytics import YOLO
# Load the established industry standard YOLOv5 (nano version)
model_v5 = YOLO("yolov5nu.pt")
# Run inference on an image
results_v5 = model_v5("path/to/image.jpg")
# Load the high-accuracy YOLOv9 (compact version)
model_v9 = YOLO("yolov9c.pt")
# Run inference on the same image for comparison
results_v9 = model_v9("path/to/image.jpg")
Идеальные варианты использования
Когда следует выбирать YOLOv9
- Высокоточная инспекция: Обнаружение мельчайших дефектов на производственных сборочных линиях, где важен каждый пиксель.
- Передовые исследования: Проекты, изучающие новые архитектуры глубокого обучения, такие как Programmable Gradient Information.
- Сложные условия: Сценарии с высокой степенью перекрытия или беспорядка, где расширенная агрегация признаков GELAN обеспечивает решающее преимущество.
Когда следует выбирать YOLOv5
- Развертывание на периферии: Работа на устройствах с батарейным питанием или микроконтроллерах, где энергопотребление и объем памяти имеют решающее значение.
- Быстрое прототипирование: Когда вам нужно перейти от сбора данных к работающей демонстрации за часы, а не за дни, используя обширные учебные пособия и ресурсы сообщества.
- Системы для нескольких задач: Приложения, требующие оценки позы или классификации наряду с обнаружением в рамках единой кодовой базы.
- Стабильность производства: Корпоративные среды, требующие проверенных в боях решений с многолетней надежностью.
Заключение
Выбор между YOLOv9 и YOLOv5 зависит от ваших конкретных ограничений. YOLOv9 — превосходный выбор для максимальной точности, предлагающий передовые архитектурные улучшения. YOLOv5 остается лидером универсальности и простоты использования, предоставляя надежную, хорошо поддерживаемую экосистему, которая упрощает весь жизненный цикл ИИ.
Для разработчиков, стремящихся к абсолютному лучшему из обоих миров — сочетанию простоты использования YOLOv5 с производительностью, превосходящей YOLOv9, — мы рекомендуем изучить YOLO11. Как последняя итерация от Ultralytics, YOLO11 обеспечивает современную скорость и точность во всех задачах машинного зрения, представляя будущее семейства YOLO.
Изучите другие модели
- YOLO11: Новейшая и самая мощная модель от Ultralytics для обнаружения, сегментации и определения позы.
- YOLOv8: Мощный предшественник YOLO11, предлагающий отличный баланс функций.
- RT-DETR: Детектор на основе трансформера, оптимизированный для работы в реальном времени.