Перейти к содержимому

YOLOv9: скачок вперед в технологии обнаружения объектов

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

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

Влияние на легкие модели

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

Программируемая информация о градиенте (PGI)

PGI - это новая концепция, представленная в YOLOv9 для борьбы с проблемой информационного узкого места, обеспечивающая сохранение важных данных на глубоких сетевых слоях. Это позволяет генерировать надежные градиенты, способствуя точному обновлению модели и улучшая общую производительность обнаружения.

Обобщенная эффективная сеть агрегирования уровней (GELAN)

GELAN представляет собой стратегическое архитектурное достижение, позволяющее YOLOv9 добиться превосходного использования параметров и вычислительной эффективности. Его дизайн позволяет гибко интегрировать различные вычислительные блоки, делая YOLOv9 адаптируемым к широкому спектру приложений без ущерба для скорости и точности.

Сравнение архитектуры YOLOv9

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

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

Таблица 1. Сравнение современных детекторов объектов в реальном времени

Когда появятся другие масштабы моделей?

Несмотря на все метрики, представленные для различных масштабов модели в таблице ниже, только конфигурации для YOLOv9c и YOLOv9e уже опубликованы. Команда Ultralytics будет оперативно добавлять другие конфигурации по мере их появления, так что не забудь регулярно заглядывать сюда за обновлениями.

Производительность

Модель Размер
(пикселей)
mAPval
50-95
mAPval
50
params
(M)
FLOPs
(B)
YOLOv9t 640 38.3 53.1 2.0 7.7
YOLOv9s 640 46.8 63.4 7.2 26.7
YOLOv9m 640 51.4 68.1 20.1 76.8
YOLOv9c 640 53.0 70.2 25.5 102.8
YOLOv9e 640 55.6 72.8 58.1 192.5
Модель Размер
(пикселей)
mAPbox
50-95
mAPmask
50-95
params
(M)
FLOPs
(B)
YOLOv9c-seg 640 52.4 42.2 27.9 159.4
YOLOv9e-seg 640 55.1 44.3 60.5 248.4

Итерации 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а также на 1,7% улучшила AP.

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

Заключение

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

Примеры использования

В этом примере приведены простые примеры обучения и вывода YOLOv9. Полную документацию по этим и другим режимам можно найти на страницах Predict, Train, Val и Export docs.

Пример

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')

CLI Для непосредственного запуска моделей доступны команды:

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg

Поддерживаемые задачи и режимы

Серия YOLOv9 предлагает ряд моделей, каждая из которых оптимизирована для высокопроизводительного обнаружения объектов. Эти модели отвечают различным вычислительным потребностям и требованиям к точности, что делает их универсальными для широкого спектра приложений.

Модель Имена файлов Задания Заключение Валидация Тренировка Экспорт
YOLOv9 yolov9c.pt yolov9e.pt Обнаружение объектов
YOLOv9-seg yolov9c-seg.pt yolov9e-seg.pt Сегментация экземпляров

В этой таблице представлен подробный обзор вариантов моделей YOLOv9, выделены их возможности в задачах обнаружения объектов и совместимость с различными рабочими режимами, такими как Inference, Validation, Training и Export. Такая всесторонняя поддержка гарантирует, что пользователи смогут полностью использовать возможности моделей YOLOv9 в широком спектре сценариев обнаружения объектов.

Примечание

Обучение моделей YOLOv9 потребует больше ресурсов и займет больше времени, чем обучение моделей эквивалентного размера YOLOv8 .

Цитаты и благодарности

Мы хотели бы поблагодарить авторов YOLOv9 за их значительный вклад в область обнаружения объектов в реальном времени:

@article{wang2024yolov9,
  title={{YOLOv9}: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao  and Liao, Hong-Yuan Mark},
  booktitle={arXiv preprint arXiv:2402.13616},
  year={2024}
}

Оригинальную статью YOLOv9 можно найти на arXiv. Авторы сделали свою работу общедоступной, а кодовую базу можно найти на GitHub. Мы ценим их усилия, направленные на развитие области и обеспечение доступности их работы для широкой общественности.



Создано 2024-02-26, Обновлено 2024-04-17
Авторы: glenn-jocher (4), Burhan-Q (2), Laughing-q (1)

Комментарии