Link to this sectionYOLOv9: Шаг вперёд в технологии Object Detection#
YOLOv9 знаменует собой значительный прогресс в обнаружении объектов в реальном времени, внедряя такие прорывные методы, как Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). Эта модель демонстрирует заметные улучшения в эффективности, точности и адаптивности, устанавливая новые стандарты на наборе данных MS COCO. Проект YOLOv9, хотя и был разработан отдельной командой с открытым исходным кодом, опирается на надежную кодовую базу, предоставленную Ultralytics YOLOv5, что демонстрирует дух сотрудничества в сообществе исследователей ИИ.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

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

Link to this sectionБенчмарки YOLOv9#
Тестирование производительности в YOLOv9 с использованием Ultralytics предполагает оценку работы твоей обученной и валидированной модели в реальных условиях. Этот процесс включает в себя:
- Оценка производительности: Оценка скорости и точности модели.
- Форматы экспорта: Тестирование модели в различных форматах экспорта, чтобы убедиться, что она соответствует необходимым стандартам и хорошо работает в различных средах.
- Поддержка фреймворков: Предоставление комплексного фреймворка внутри Ultralytics YOLOv8 для содействия этим оценкам и обеспечения согласованных и надежных результатов.
Проводя бенчмаркинг, ты можешь убедиться, что твоя модель не только хорошо работает в контролируемых тестовых средах, но и сохраняет высокую производительность в практических, реальных приложениях.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Link to this sectionПроизводительность на наборе данных MS COCO#
Производительность YOLOv9 на COCO dataset демонстрирует значительные успехи в обнаружении объектов в реальном времени, устанавливая новые стандарты для моделей различных размеров. В таблице 1 представлено всестороннее сравнение современных детекторов объектов реального времени, иллюстрирующее превосходную эффективность и accuracy YOLOv9.
Итерации YOLOv9, варьирующиеся от крошечного варианта t до обширной модели e, демонстрируют улучшения не только в точности (метрики mAP), но и в эффективности при меньшем количестве параметров и вычислительных потребностей (FLOPs). Эта таблица подчеркивает способность YOLOv9 обеспечивать высокую precision при сохранении или снижении вычислительных затрат по сравнению с предыдущими версиями и конкурирующими моделями.
Сравнительно, 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 в дизайне моделей, подчеркивая повышенную эффективность без ущерба для точности, необходимой для задач обнаружения объектов в реальном времени. Модель не только расширяет границы метрик производительности, но и подчеркивает важность вычислительной эффективности, что делает её ключевой разработкой в области computer vision.
Link to this sectionЗаключение#
YOLOv9, выпущенная в феврале 2024 года, стала ключевой разработкой в области обнаружения объектов в реальном времени, предложив значительные улучшения в плане эффективности, точности и адаптивности. Решая критические задачи с помощью инновационных решений, таких как PGI и GELAN, YOLOv9 установила новые стандарты на момент своего выпуска. Хотя с тех пор были выпущены более новые модели, такие как YOLO11 и YOLO26, имеющие дополнительные улучшения, архитектурные инновации YOLOv9 продолжают влиять на эту область.
Link to this sectionПримеры использования#
В этом примере приведены простые примеры обучения и инференса 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")Link to this sectionПоддерживаемые задачи и режимы#
Серия YOLOv9 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного Object Detection. Эти модели удовлетворяют различные вычислительные потребности и требования к точности, что делает их универсальными для широкого круга задач.
| Модель | Имена файлов | Задачи | Inference | Validation | Training | Экспорт |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Instance Segmentation | ✅ | ✅ | ✅ | ✅ |
Эта таблица представляет собой подробный обзор вариантов модели YOLOv9, освещая их возможности в задачах обнаружения объектов и совместимость с различными операционными режимами, такими как Inference, Validation, Training и Export. Эта всесторонняя поддержка гарантирует, что ты сможешь в полной мере использовать возможности моделей YOLOv9 в широком спектре сценариев обнаружения объектов.
Обучение моделей YOLOv9 потребует больше ресурсов и займет больше времени, чем обучение модели YOLOv8 аналогичного размера.
Link to this sectionЦитирование и благодарности#
Мы хотели бы выразить признательность авторам 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. Мы ценим их вклад в развитие этой области и доступность их работы для широкого сообщества.
Link to this sectionFAQ#
Link to this sectionКакие инновации внедряет YOLOv9 для обнаружения объектов в реальном времени?#
YOLOv9 представляет такие прорывные методы, как Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). Эти инновации решают проблемы потери информации в глубоких нейронных сетях, обеспечивая высокую эффективность, точность и адаптивность. PGI сохраняет важные данные на слоях сети, в то время как GELAN оптимизирует использование параметров и вычислительную эффективность. Узнай больше о ключевых инновациях YOLOv9, которые установили новые стандарты на наборе данных MS COCO.
Link to this sectionКак YOLOv9 показывает себя на наборе данных MS COCO по сравнению с другими моделями?#
YOLOv9 превосходит современные детекторы объектов реального времени, достигая более высокой точности и эффективности. На наборе COCO dataset модели YOLOv9 демонстрируют превосходные показатели mAP для различных размеров моделей, сохраняя или уменьшая вычислительные затраты. Например, YOLOv9c достигает сопоставимой точности при использовании на 42% меньшего количества параметров и на 21% меньших вычислительных затратах, чем YOLOv7 AF. Изучи сравнения производительности для получения подробных метрик.
Link to this sectionКак я могу обучить модель YOLOv9 с помощью Python и CLI?#
Ты можешь обучить модель 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Узнай больше о примерах использования для обучения и инференса.
Link to this sectionКаковы преимущества использования Ultralytics YOLOv9 для легковесных моделей?#
YOLOv9 спроектирован для уменьшения потери информации, что особенно важно для легковесных моделей, часто подверженных значительной потере информации. Интегрируя Programmable Gradient Information (PGI) и обратимые функции, YOLOv9 обеспечивает сохранение важных данных, повышая точность и эффективность модели. Это делает его крайне подходящим для приложений, требующих компактных моделей с высокой производительностью. Более подробную информацию см. в разделе влияния YOLOv9 на легковесные модели.
Link to this sectionКакие задачи и режимы поддерживает YOLOv9?#
YOLOv9 поддерживает различные задачи, включая обнаружение объектов и instance segmentation. Он совместим с несколькими операционными режимами, такими как инференс, валидация, обучение и экспорт. Эта универсальность делает YOLOv9 адаптируемым к разнообразным приложениям компьютерного зрения в реальном времени. Обратись к разделу поддерживаемых задач и режимов для получения дополнительной информации.