YOLOv9 против YOLOv5: техническое сравнение
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха проекта. В данном анализе приводится подробное техническое сравнение между YOLOv9архитектурой, ориентированной на исследования и расширяющей границы точности, и Ultralytics YOLOv5стандартной моделью, известной своей надежностью, скоростью и универсальностью. Мы рассмотрим их архитектурные различия, эталоны производительности и идеальные сценарии использования, чтобы помочь вам принять обоснованное решение.
YOLOv9: архитектурные инновации для максимальной точности
Выпущенный в начале 2024 года, YOLOv9 стремится к теоретическим пределам обнаружения объектов, решая фундаментальные проблемы информационного потока глубокого обучения. Она предназначена для сценариев, в которых точность имеет первостепенное значение.
Авторы: Chien-Yao Wang, Hong-Yuan Mark Liao
Организация:Institute of Information Science, Academia Sinica, Taiwan
Дата: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
Docs:YOLOv9 Documentation
Архитектура ядра
В YOLOv9 представлены две новаторские концепции: Программируемая градиентная информация (PGI) и обобщенная эффективная сеть агрегирования слоев (GELAN). PGI решает проблему "узкого места" в информации, присущую глубоким нейронным сетям, обеспечивая сохранение полной входной информации для функции потерь, что повышает надежность градиента. GELAN оптимизирует эффективность параметров, позволяя модели достигать более высокой точности при меньших вычислительных ресурсах по сравнению с предыдущими архитектурами, использующими свертку по глубине.
Сильные и слабые стороны
Главной сильной стороной YOLOv9 является ее высочайшая точность в таких эталонах, как набор данныхCOCO . Она отлично справляется с обнаружением мелких или закрытых объектов, где другие модели могут потерпеть неудачу. Тем не менее, такой акцент на точности обнаружения имеет свои компромиссы. Процесс обучения может быть более ресурсоемким, и, хотя модель интегрирована в экосистему Ultralytics , более широкая поддержка сообщества и сторонние инструменты еще не созрели по сравнению с давно существующими моделями. Кроме того, основное внимание уделяется обнаружению, в то время как другие модели предлагают более широкую поддержку многозадачности.
Ultralytics YOLOv5: универсальный промышленный стандарт
С момента своего выхода в 2020 году Ultralytics YOLOv5 определила стандарт практического применения ИИ в реальном мире. В ней соблюден точный баланс между производительностью и удобством использования, что делает ее одной из самых широко используемых моделей в истории.
Автор: Гленн Джочер
Организация:Ultralytics
Дата: 2020-06-26
GitHub:yolov5
Docs:YOLOv5 Documentation
Архитектура ядра
В YOLOv5 используется усовершенствованная архитектура на основе якорей, включающая магистраль CSPDarknet53 и горловину PANet для надежной агрегации признаков. В ее дизайне приоритет отдается скорости вывода и инженерной оптимизации. Модель выпускается в различных масштабах (от Nano до Extra Large), что позволяет разработчикам идеально подогнать модель под свои аппаратные ограничения, от встроенных пограничных устройств до облачных GPU.
Преимущество Ultralytics
В то время как YOLOv9 раздвигает академические границы, YOLOv5 превосходит их в инженерной практичности.
- Простота использования: YOLOv5 славится своей "установкой и запуском". Оптимизированный Python API и исчерпывающая документация значительно сокращают время разработки.
- Хорошо поддерживаемая экосистема: YOLOv5 , поддерживаемый Ultralytics, имеет активную поддержку, большое сообщество на GitHub и легкую интеграцию с инструментами MLOps.
- Универсальность: Помимо обнаружения, YOLOv5 поддерживает сегментацию экземпляров и классификацию изображений, предлагая единое решение для различных задач технического зрения.
- Эффективность памяти: Модели Ultralytics оптимизированы для меньшего объема памяти как при обучении, так и при выводах, что отличается от высоких требований альтернатив на основе трансформаторов.
Метрики производительности: Скорость против точности
Приведенное ниже сравнение подчеркивает разные роли этих моделей. YOLOv9 в целом достигает более высокой mAP (средней точности), особенно в моделях больших размеров (c и e). Это делает ее лучшей для задач, требующих детальной проработки.
И наоборот, YOLOv5 предлагает непревзойденную скорость вычислений, особенно в вариантах 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
- Высокоточный контроль: Обнаружение мельчайших дефектов на производственных сборочных линиях, где важен каждый пиксель.
- Передовые исследования: Проекты по изучению новых архитектур глубокого обучения, таких как программируемая градиентная информация.
- Сложные условия: Сценарии с высокой степенью окклюзии или загромождения, в которых расширенное агрегирование признаков GELAN дает решающее преимущество.
Когда выбирать YOLOv5
- Пограничное развертывание: Работа на устройствах с батарейным питанием или микроконтроллерах, для которых критичны энергопотребление и занимаемая память.
- Быстрое прототипирование: Когда вам нужно пройти путь от сбора данных до рабочей демонстрации за несколько часов, а не дней, используя обширные учебные пособия и ресурсы сообщества.
- Многозадачные системы: Приложения, требующие оценки положения или классификации наряду с обнаружением в рамках одной кодовой базы.
- Стабильность производства: Корпоративные среды, требующие проверенных в боях решений с многолетней надежностью.
Заключение
Выбор между YOLOv9 и YOLOv5 зависит от ваших конкретных ограничений. YOLOv9 является лучшим выбором для достижения максимальной точности, предлагая самые современные архитектурные улучшения. YOLOv5 остается чемпионом по универсальности и простоте использования, обеспечивая надежную, хорошо поддерживаемую экосистему, которая упрощает весь жизненный цикл ИИ.
Разработчикам, которые ищут абсолютное лучшее из двух миров - сочетание простоты использования YOLOv5 с производительностью, превосходящей YOLOv9рекомендуем изучить YOLO11. Как последняя итерация от Ultralytics, YOLO11 обеспечивает современную скорость и точность во всех задачах технического зрения, представляя собой будущее семейства YOLO .
Изучите другие модели
- YOLO11: новейшая и самая мощная модель от Ultralytics для обнаружения, сегментации и позирования.
- YOLOv8: мощный предшественник YOLO11 с отличным балансом функций.
- RT-DETR: детектор на основе трансформатора, оптимизированный для работы в режиме реального времени.