Ultralytics YOLO27:

YOLOv9: новый шаг в развитии технологий обнаружения объектов#

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



Смотри: Обучение YOLOv9 на пользовательских данных с помощью Ultralytics | Датасет промышленных упаковок

Сравнение производительности YOLOv9

Введение в 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#

Тестирование YOLOv9 с помощью Ultralytics предполагает оценку обученной и прошедшей валидацию модели в реальных условиях. Этот процесс включает:

  • Оценка производительности: оценка скорости и точности модели.
  • Форматы экспорта: проверка модели в разных форматах экспорта, чтобы убедиться, что она соответствует необходимым требованиям и хорошо работает в различных средах.
  • Поддержка фреймворка: комплексный фреймворк в пакете Ultralytics для проведения этих оценок и обеспечения стабильных и надёжных результатов.

Тестирование позволяет убедиться, что модель хорошо работает не только в контролируемых условиях, но и в реальных приложениях.



Смотри: Как провести бенчмарк модели YOLOv9 с помощью пакета Ultralytics Python

Производительность на наборе данных MS COCO#

Результаты YOLOv9 на наборе данных COCO демонстрируют значительный прогресс в обнаружении объектов в реальном времени и устанавливают новые рекорды для моделей разных размеров. В таблице 1 представлено подробное сравнение современных детекторов объектов реального времени, наглядно показывающее превосходство YOLOv9 по эффективности и точности.

Производительность
Модельразмер
(пиксели)
mAPval
50-95
mAPval
50
параметры
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

Модели 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 входит несколько моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Модели рассчитаны на разные требования к вычислительным ресурсам и точности, поэтому подходят для самых разных приложений.

МодельИмена файловЗадачиОбучениеВалидацияИнференсЭкспорт
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptОбнаружение объектов✅✅✅✅
YOLOv9-segyolov9c-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 подходит для самых разных приложений компьютерного зрения в реальном времени. Подробнее смотри в разделе Поддерживаемые задачи и режимы.

Комментарии