YOLOv9: новый шаг в развитии технологий обнаружения объектов#
YOLOv9 — значительный шаг вперёд в обнаружении объектов в реальном времени. Модель представляет инновационные методы, такие как программируемая градиентная информация (PGI) и обобщённая эффективная сеть агрегации слоёв (GELAN). Она демонстрирует заметные улучшения эффективности, точности и адаптивности, устанавливая новые рекорды на наборе данных MS COCO. Проект YOLOv9, разработанный отдельной командой специалистов по открытому ПО, опирается на надёжную кодовую базу, предоставленную Ultralytics YOLOv5, и служит примером сотрудничества в сообществе исследователей ИИ.
Смотри: Обучение YOLOv9 на пользовательских данных с помощью Ultralytics | Датасет промышленных упаковок

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

Результаты тестирования YOLOv9#
Тестирование YOLOv9 с помощью Ultralytics предполагает оценку обученной и прошедшей валидацию модели в реальных условиях. Этот процесс включает:
- Оценка производительности: оценка скорости и точности модели.
- Форматы экспорта: проверка модели в разных форматах экспорта, чтобы убедиться, что она соответствует необходимым требованиям и хорошо работает в различных средах.
- Поддержка фреймворка: комплексный фреймворк в пакете Ultralytics для проведения этих оценок и обеспечения стабильных и надёжных результатов.
Тестирование позволяет убедиться, что модель хорошо работает не только в контролируемых условиях, но и в реальных приложениях.
Смотри: Как провести бенчмарк модели YOLOv9 с помощью пакета Ultralytics Python
Производительность на наборе данных 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 и подчёркивают повышение эффективности модели без ущерба для точности, необходимой при обнаружении объектов в реальном времени. Модель не только устанавливает новые ориентиры по метрикам производительности, но и подчёркивает важность эффективного использования вычислительных ресурсов, что делает её важным достижением в области компьютерного зрения.
Заключение#
Выпущенная в феврале 2024 года YOLOv9 стала важным этапом в развитии обнаружения объектов в реальном времени и значительно улучшила эффективность, точность и адаптивность. Благодаря инновационным решениям, таким как PGI и GELAN, YOLOv9 решила ключевые проблемы и установила новые ориентиры на момент своего выпуска. Позднее появились более новые модели, например YOLO11 и YOLO26, обладающие дополнительными улучшениями, однако архитектурные инновации YOLOv9 продолжают влиять на развитие этой области.
Примеры использования#
В этом примере показаны базовые сценарии обучения и инференса YOLOv9. Полную документацию по этим и другим режимам смотри на страницах документации: Predict, Train, Val и Export.
Предобученные модели *.pt на базе PyTorch, а также файлы конфигурации *.yaml можно передать классу YOLO(), чтобы создать экземпляр модели в Python:
from ultralytics import YOLO
# Создаём модель YOLOv9c с нуля
model = YOLO("yolov9c.yaml")
# Создаём модель YOLOv9c из предварительно обученных весов
model = YOLO("yolov9c.pt")
# Показать информацию о модели (необязательно)
model.info()
# Обучить модель на демонстрационном наборе данных COCO8 в течение 100 эпох
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Выполняем инференс с моделью YOLOv9c на изображении 'bus.jpg'
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 # Создаём модель YOLOv9c из предварительно обученных весов и запускаем обучение 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 подходит для самых разных приложений компьютерного зрения в реальном времени. Подробнее смотри в разделе Поддерживаемые задачи и режимы.