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 во многом основаны на решении проблем, связанных с потерей информации в глубоких нейронных сетях. Принцип информационного узкого места и инновационное применение обратимых функций лежат в основе его архитектуры, обеспечивая 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 и обратимых функций гарантирует, что даже в компактной модели сохраняется и эффективно используется информация, необходимая для точного обнаружения объектов.
Программируемая информация о градиентах (PGI)#
PGI — новая концепция, представленная в YOLOv9 для борьбы с проблемой информационного узкого места и сохранения важных данных в глубоких слоях сети. Это позволяет вычислять надёжные градиенты, облегчая точное обновление модели и повышая общую производительность обнаружения.
Обобщённая эффективная сеть агрегации слоёв (GELAN)#
GELAN представляет собой стратегическое архитектурное усовершенствование, позволяющее YOLOv9 добиться более эффективного использования параметров и вычислительных ресурсов. Её конструкция обеспечивает гибкую интеграцию различных вычислительных блоков, делая YOLOv9 адаптируемой к широкому спектру приложений без ущерба для скорости или точности.

Бенчмарки YOLOv9#
Бенчмаркинг в YOLOv9 с использованием Ultralytics включает оценку производительности обученной и проверенной тобой модели в реальных сценариях. Этот процесс включает:
- Оценка производительности: оценка скорости и точности модели.
- Форматы экспорта: тестирование модели в разных форматах экспорта, чтобы убедиться, что она соответствует необходимым стандартам и хорошо работает в различных средах.
- Поддержка фреймворка: Предоставление комплексного фреймворка в пакете Ultralytics для упрощения этих оценок и обеспечения стабильных и надежных результатов.
Благодаря бенчмаркингу ты можешь убедиться, что твоя модель не только хорошо работает в контролируемых условиях тестирования, но и сохраняет высокую производительность в практических приложениях реального мира.
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 устанавливает новый стандарт для крупных моделей: по сравнению с YOLOv8x ей требуется на 15% меньше параметров и на 25% меньше вычислений, а AP при этом повышается ещё на 1,7%.
Эти результаты демонстрируют стратегические улучшения в дизайне моделей YOLOv9, подчёркивая повышение эффективности без ущерба для точности, необходимой в задачах обнаружения объектов в реальном времени. Модель не только расширяет границы метрик производительности, но и подчёркивает важность вычислительной эффективности, что делает её значимым достижением в области компьютерного зрения.
Заключение#
YOLOv9, выпущенная в феврале 2024 года, стала важным этапом развития обнаружения объектов в реальном времени, обеспечив значительные улучшения эффективности, точности и адаптивности. Благодаря решению критически важных проблем с помощью таких инноваций, как PGI и GELAN, YOLOv9 установила новые рекорды на момент своего выпуска. Хотя с тех пор были выпущены более новые модели, такие как YOLO11 и YOLO26, архитектурные инновации YOLOv9 продолжают влиять на эту область.
Примеры использования#
В этом примере приведены простые примеры обучения и инференса YOLOv9. Полную документацию по этим и другим режимам смотри на страницах документации Predict, Train, Val и Export.
Предварительно обученные модели *.pt PyTorch, а также файлы конфигурации *.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 включает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели рассчитаны на различные вычислительные потребности и требования к точности, что делает их универсальными для широкого спектра приложений.
| Модель | Имена файлов | Задачи | Обучение | Валидация | Вывод | Экспорт |
|---|---|---|---|---|---|---|
| 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. Мы ценим их усилия по развитию этой области и предоставлению доступа к результатам более широкому сообществу.
Часто задаваемые вопросы#
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 адаптируется к разнообразным приложениям компьютерного зрения, работающим в реальном времени. Дополнительную информацию смотри в разделе поддерживаемых задач и режимов.