YOLOv9: Шаг вперёд в технологии обнаружения объектов#
YOLOv9 знаменует собой значительный прогресс в обнаружении объектов в реальном времени, представляя такие новаторские методы, как программируемая градиентная информация (PGI) и обобщенная эффективная сеть агрегации слоев (GELAN). Эта модель демонстрирует заметные улучшения в эффективности, точности и адаптивности, устанавливая новые стандарты на наборе данных MS COCO. Проект YOLOv9, разработанный отдельной командой разработчиков открытого исходного кода, опирается на надежную кодовую базу, предоставленную Ultralytics YOLOv5, демонстрируя дух сотрудничества исследовательского сообщества ИИ.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Введение в YOLOv9#
В стремлении к оптимальному обнаружению объектов в реальном времени YOLOv9 выделяется своим инновационным подходом к преодолению проблем потери информации, присущих глубоким нейронным сетям. Интегрируя PGI и универсальную архитектуру GELAN, YOLOv9 не только повышает обучаемость модели, но и обеспечивает сохранение важнейшей информации на протяжении всего процесса обнаружения, достигая тем самым исключительной точности и производительности.
Ключевые инновации YOLOv9#
Достижения YOLOv9 глубоко укоренены в решении проблем, вызванных потерей информации в глубоких нейронных сетях. Принцип информационного узкого места (Information Bottleneck Principle) и инновационное использование обратимых функций (Reversible Functions) являются центральными элементами его дизайна, гарантируя, что YOLOv9 сохраняет высокую эффективность и точность.
Принцип информационного узкого места#
Принцип информационного узкого места раскрывает фундаментальную проблему глубокого обучения: по мере прохождения данных через последовательные слои сети потенциал потери информации возрастает. Это явление математически выражается как:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))где I обозначает взаимную информацию, а f и g представляют функции преобразования с параметрами theta и phi соответственно. YOLOv9 борется с этой проблемой путем внедрения программируемой градиентной информации (PGI), которая помогает сохранять важные данные по всей глубине сети, обеспечивая более надежную генерацию градиентов и, как следствие, лучшую сходимость и производительность модели.
Обратимые функции#
Концепция обратимых функций — еще один краеугольный камень дизайна YOLOv9. Функция считается обратимой, если её можно инвертировать без потери информации, как выражено в:
X = v_zeta(r_psi(X))с psi и zeta в качестве параметров для обратимой функции и ее обратной функции соответственно. Это свойство имеет решающее значение для архитектур глубокого обучения, так как оно позволяет сети сохранять полный поток информации, обеспечивая тем самым более точные обновления параметров модели. YOLOv9 включает обратимые функции в свою архитектуру, чтобы снизить риск деградации информации, особенно в более глубоких слоях, обеспечивая сохранение критически важных данных для задач обнаружения объектов.
Влияние на легковесные модели#
Борьба с потерей информации особенно важна для легковесных моделей, которые часто недостаточно параметризованы и склонны к потере значительной части информации в процессе прямого прохода. Архитектура YOLOv9 благодаря использованию PGI и обратимых функций гарантирует, что даже в компактной модели важная информация, необходимая для точного обнаружения объектов, сохраняется и эффективно используется.
Programmable Gradient Information (PGI)#
PGI — это новая концепция, представленная в YOLOv9 для борьбы с проблемой информационного узкого места, обеспечивающая сохранение важных данных на всех слоях глубокой сети. Это позволяет генерировать надежные градиенты, способствуя точному обновлению модели и повышая общую производительность обнаружения.
Generalized Efficient Layer Aggregation Network (GELAN)#
GELAN представляет собой стратегическое архитектурное достижение, позволяющее YOLOv9 достичь превосходного использования параметров и вычислительной эффективности. Его конструкция допускает гибкую интеграцию различных вычислительных блоков, делая YOLOv9 адаптируемым к широкому спектру приложений без ущерба для скорости или точности.

Бенчмарки YOLOv9#
Бенчмаркинг в YOLOv9 с использованием Ultralytics включает оценку производительности твоей обученной и валидированной модели в реальных сценариях. Этот процесс включает в себя:
- Оценка производительности: Оценка скорости и точности модели.
- Форматы экспорта: Тестирование модели в различных форматах экспорта, чтобы убедиться, что она соответствует необходимым стандартам и хорошо работает в различных средах.
- Поддержка фреймворков: Предоставление комплексного фреймворка внутри Ultralytics YOLOv8 для содействия этим оценкам и обеспечения согласованных и надежных результатов.
Проводя бенчмаркинг, ты можешь убедиться, что твоя модель не только хорошо работает в контролируемых тестовых средах, но и сохраняет высокую производительность в практических, реальных приложениях.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Производительность на наборе данных MS COCO#
Производительность YOLOv9 на наборе данных COCO иллюстрирует значительные достижения в обнаружении объектов в реальном времени, устанавливая новые стандарты для моделей различных размеров. В таблице 1 представлено исчерпывающее сравнение современных детекторов объектов в реальном времени, иллюстрирующее превосходную эффективность и точность YOLOv9.
Итерации YOLOv9, начиная с крошечного варианта t и заканчивая крупной моделью e, демонстрируют улучшения не только в точности (метрики mAP), но и в эффективности с уменьшенным количеством параметров и вычислительных потребностей (FLOPs). Эта таблица подчеркивает способность YOLOv9 обеспечивать высокую прецизионность при сохранении или снижении вычислительных затрат по сравнению с предыдущими версиями и конкурирующими моделями.
Сравнительно, YOLOv9 демонстрирует заметные достижения:
- Легковесные модели: YOLOv9s превосходит YOLO MS-S по параметрической эффективности и вычислительной нагрузке, достигая при этом улучшения AP на 0.4∼0.6%.
- Средние и большие модели: YOLOv9m и YOLOv9e демонстрируют заметные успехи в балансировке компромисса между сложностью модели и производительностью обнаружения, предлагая значительное сокращение параметров и вычислений на фоне повышенной точности.
Модель YOLOv9c, в частности, подчеркивает результативность оптимизаций архитектуры. Она работает с на 42% меньшим количеством параметров и на 21% меньшими вычислительными требованиями, чем YOLOv7 AF, при этом достигая сопоставимой точности, что демонстрирует значительное повышение эффективности YOLOv9. Кроме того, модель YOLOv9e задает новый стандарт для крупных моделей с на 15% меньшим количеством параметров и на 25% меньшими вычислительными потребностями, чем YOLOv8x, наряду с дополнительным улучшением AP на 1,7%.
Эти результаты демонстрируют стратегические достижения YOLOv9 в разработке моделей, подчеркивая их повышенную эффективность без ущерба для прецизионности, необходимой для задач обнаружения объектов в реальном времени. Модель не только расширяет границы показателей производительности, но и подчеркивает важность вычислительной эффективности, делая ее ключевой разработкой в области компьютерного зрения.
Заключение#
YOLOv9, выпущенная в феврале 2024 года, представляла собой ключевую разработку в области обнаружения объектов в реальном времени, предлагая значительные улучшения с точки зрения эффективности, точности и адаптивности. Решая критические проблемы с помощью инновационных решений, таких как PGI и GELAN, YOLOv9 установила новые стандарты на момент своего выпуска. Хотя с тех пор были выпущены более новые модели, такие как YOLO11 и YOLO26, с дополнительными улучшениями, архитектурные инновации YOLOv9 продолжают оказывать влияние на эту область.
Примеры использования#
Этот пример содержит простые примеры обучения и инференса YOLOv9. Полную документацию по этим и другим режимам читай на страницах документации Predict, Train, Val и Export.
Предобученные модели PyTorch *.pt, а также файлы конфигурации *.yaml могут быть переданы в класс YOLO() для создания экземпляра модели в python:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Поддерживаемые задачи и режимы#
Серия YOLOv9 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели удовлетворяют различные вычислительные потребности и требования к точности, что делает их универсальными для широкого спектра применений.
| Модель | Имена файлов | Задачи | Training | Validation | Inference | Экспорт |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Сегментация экземпляров | ✅ | ✅ | ✅ | ✅ |
В этой таблице представлен подробный обзор вариантов моделей YOLOv9, подчеркивающий их возможности в задачах обнаружения объектов и их совместимость с различными рабочими режимами, такими как инференс, валидация, обучение и экспорт. Эта всесторонняя поддержка гарантирует, что ты сможешь в полной мере использовать возможности моделей YOLOv9 в широком спектре сценариев обнаружения объектов.
Обучение моделей YOLOv9 потребует больше ресурсов и займет больше времени, чем обучение модели YOLOv8 аналогичного размера.
Цитирование и благодарности#
Мы хотели бы выразить признательность авторам YOLOv9 за их значительный вклад в область обнаружения объектов в реальном времени:
@inproceedings{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
booktitle={Computer Vision -- ECCV 2024},
pages={1--21},
year={2024},
organization={Springer Nature Switzerland}
}Официальная статья по YOLOv9 была опубликована в материалах конференции Springer ECCV 2024, а препринт доступен на arXiv. Авторы сделали свою работу общедоступной, а кодовая база доступна на GitHub. Мы ценим их усилия по развитию этой области и обеспечению доступности их работы для широкого сообщества.
FAQ#
YOLOv9 представляет новаторские методы, такие как программируемая градиентная информация (PGI) и обобщенная эффективная сеть агрегации слоев (GELAN). Эти инновации решают проблемы потери информации в глубоких нейронных сетях, обеспечивая высокую эффективность, точность и адаптивность. PGI сохраняет важные данные во всех слоях сети, в то время как GELAN оптимизирует использование параметров и вычислительную эффективность. Узнай больше об основных инновациях YOLOv9, которые установили новые стандарты на наборе данных MS COCO.
YOLOv9 превосходит современные детекторы объектов в реальном времени, достигая более высокой точности и эффективности. На наборе данных COCO модели YOLOv9 демонстрируют превосходные оценки mAP для различных размеров при сохранении или снижении вычислительных затрат. Например, YOLOv9c достигает сопоставимой точности с на 42% меньшим количеством параметров и на 21% меньшими вычислительными требованиями, чем YOLOv7 AF. Изучи сравнение производительности для получения подробных метрик.
Ты можешь обучить модель YOLOv9, используя как команды Python, так и CLI. Для Python создай экземпляр модели с помощью класса
YOLOи вызови методtrain:from ultralytics import YOLO # Build a YOLOv9c model from pretrained weights and train model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Для обучения через CLI выполни:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Узнай больше о примерах использования для обучения и инференса.
YOLOv9 разработана для смягчения потери информации, что особенно важно для легковесных моделей, которые часто подвержены потере значительной информации. Интегрируя программируемую градиентную информацию (PGI) и обратимые функции, YOLOv9 обеспечивает сохранение важных данных, повышая точность и эффективность модели. Это делает ее весьма подходящей для приложений, требующих компактных моделей с высокой производительностью. Для получения более подробной информации изучи раздел о влиянии YOLOv9 на легковесные модели.
YOLOv9 поддерживает различные задачи, включая обнаружение объектов и сегментацию экземпляров. Она совместима с несколькими рабочими режимами, такими как инференс, валидация, обучение и экспорт. Такая универсальность делает YOLOv9 применимой для разнообразных задач компьютерного зрения в реальном времени. Обратись к разделу поддерживаемые задачи и режимы для получения дополнительной информации.