YOLOv9: Прорыв в технологии обнаружения объектов
YOLOv9 знаменует собой значительный шаг вперед в области обнаружения объектов в реальном времени, представляя такие новаторские методы, как Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). Эта модель демонстрирует значительные улучшения в эффективности, точности и адаптивности, устанавливая новые стандарты на наборе данных MS COCO. Проект YOLOv9, разработанный отдельной командой open-source, основан на надежной кодовой базе Ultralytics YOLOv5, демонстрируя дух сотрудничества в исследовательском сообществе AI.
Смотреть: Обучение YOLOv9 на пользовательских данных с использованием Ultralytics | Набор промышленных пакетов данных
Введение в YOLOv9
В стремлении к оптимальному обнаружению объектов в реальном времени YOLOv9 выделяется своим инновационным подходом к преодолению проблем потери информации, присущих глубоким нейронным сетям. Благодаря интеграции PGI и универсальной архитектуры GELAN, YOLOv9 не только повышает способность модели к обучению, но и обеспечивает сохранение важной информации на протяжении всего процесса обнаружения, тем самым достигая исключительной точности и производительности.
Основные инновации YOLOv9
Усовершенствования YOLOv9 глубоко укоренены в решении проблем, связанных с потерей информации в глубоких нейронных сетях. Принцип Information Bottleneck и инновационное использование Reversible Functions являются центральными в его конструкции, обеспечивая высокую эффективность и точность YOLOv9.
Принцип информационного узкого места
Принцип Information Bottleneck выявляет фундаментальную проблему в глубоком обучении: по мере прохождения данных через последовательные слои сети вероятность потери информации возрастает. Это явление математически представляется как:
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), которая помогает сохранить важные данные по всей глубине сети, обеспечивая более надежную генерацию градиентов и, следовательно, лучшую сходимость и производительность модели.
Обратимые функции
Концепция Reversible Functions является еще одним краеугольным камнем конструкции YOLOv9. Функция считается обратимой, если ее можно инвертировать без какой-либо потери информации, как выражено:
X = v_zeta(r_psi(X))
с psi
и zeta
в качестве параметров для обратимой и ее обратной функции, соответственно. Это свойство имеет решающее значение для фреймворк глубокого обучения архитектур, поскольку позволяет сети сохранять полный поток информации, тем самым обеспечивая более точные обновления параметров модели. YOLOv9 включает обратимые функции в свою архитектуру, чтобы снизить риск ухудшения информации, особенно в более глубоких слоях, обеспечивая сохранение критически важных данных для задач обнаружения объектов.
Влияние на легкие модели
Решение проблемы потери информации особенно важно для облегченных моделей, которые часто недостаточно параметризованы и склонны к потере значительной информации в процессе прямой передачи. Архитектура YOLOv9, благодаря использованию PGI и обратимых функций, гарантирует, что даже с оптимизированной моделью сохраняется и эффективно используется важная информация, необходимая для точного обнаружения объектов.
Programmable Gradient Information (PGI)
PGI - это новая концепция, представленная в YOLOv9 для борьбы с проблемой Information Bottleneck, обеспечивающая сохранение важных данных в глубоких слоях сети. Это позволяет генерировать надежные градиенты, облегчая точное обновление модели и улучшая общую производительность обнаружения.
Generalized Efficient Layer Aggregation Network (GELAN)
GELAN представляет собой стратегическое архитектурное достижение, позволяющее YOLOv9 достичь превосходного использования параметров и вычислительной эффективности. Его конструкция позволяет гибко интегрировать различные вычислительные блоки, что делает YOLOv9 адаптируемым к широкому спектру приложений без ущерба для скорости или точности.
Бенчмарки YOLOv9
Бенчмаркинг в YOLOv9 с использованием Ultralytics включает в себя оценку производительности вашей обученной и проверенной модели в реальных сценариях. Этот процесс включает в себя:
- Оценка производительности: Оценка скорости и точности модели.
- Форматы экспорта: Тестирование модели в различных форматах экспорта, чтобы убедиться, что она соответствует необходимым стандартам и хорошо работает в различных средах.
- Поддержка фреймворков: Предоставление комплексного фреймворка в Ultralytics YOLOv8 для облегчения этих оценок и обеспечения согласованных и надежных результатов.
Благодаря бенчмаркингу вы можете быть уверены, что ваша модель не только хорошо работает в контролируемых средах тестирования, но и поддерживает высокую производительность в практических, реальных приложениях.
Смотреть: Как провести бенчмаркинг модели YOLOv9 с помощью пакета Ultralytics python
Производительность на наборе данных MS COCO
Производительность YOLOv9 на наборе данных COCO демонстрирует значительные достижения в области обнаружения объектов в реальном времени, устанавливая новые стандарты для различных размеров моделей. В таблице 1 представлено всестороннее сравнение современных детекторов объектов в реальном времени, иллюстрирующее превосходную эффективность и точность YOLOv9.
Производительность
Модель | размер (пиксели) |
mAPval 50-95 |
mAPval 50 |
параметры (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 |
параметры (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 по эффективности параметров и вычислительной нагрузке, достигая при этом улучшения на 0.4∼0.6% в AP.
- Модели от среднего до большого размера: 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.
Пример
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 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt |
Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt |
Сегментация экземпляров | ✅ | ✅ | ✅ | ✅ |
В этой таблице представлен подробный обзор вариантов модели YOLOv9, освещены их возможности в задачах обнаружения объектов и их совместимость с различными режимами работы, такими как инференс, валидация, обучение и экспорт. Эта всесторонняя поддержка гарантирует, что пользователи смогут в полной мере использовать возможности моделей 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. Мы ценим их усилия по продвижению этой области и обеспечению доступности их работы для широкой общественности.
Часто задаваемые вопросы
Какие инновации YOLOv9 представляет для обнаружения объектов в реальном времени?
YOLOv9 представляет новаторские методы, такие как Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). Эти инновации решают проблемы потери информации в глубоких нейронных сетях, обеспечивая высокую эффективность, точность и адаптивность. PGI сохраняет важные данные на всех слоях сети, а GELAN оптимизирует использование параметров и вычислительную эффективность. Узнайте больше об основных инновациях YOLOv9, которые устанавливают новые стандарты в наборе данных MS COCO.
Как YOLOv9 работает на наборе данных MS COCO по сравнению с другими моделями?
YOLOv9 превосходит современные детекторы объектов реального времени, достигая более высокой точности и эффективности. В наборе данных COCO модели YOLOv9 демонстрируют превосходные показатели mAP для различных размеров, сохраняя или уменьшая вычислительные затраты. Например, YOLOv9c достигает сопоставимой точности с на 42% меньшим количеством параметров и на 21% меньшими вычислительными требованиями, чем YOLOv7 AF. Ознакомьтесь со сравнением производительности для получения подробных метрик.
Как я могу обучить модель 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
Узнайте больше о примерах использования для обучения и инференса.
Каковы преимущества использования Ultralytics YOLOv9 для легких моделей?
YOLOv9 разработана для смягчения потери информации, что особенно важно для легких моделей, часто подверженных значительной потере информации. Благодаря интеграции Programmable Gradient Information (PGI) и обратимых функций, YOLOv9 обеспечивает сохранение важных данных, повышая точность и эффективность модели. Это делает ее очень подходящей для приложений, требующих компактных моделей с высокой производительностью. Для получения более подробной информации изучите раздел о влиянии YOLOv9 на легкие модели.
Какие задачи и режимы поддерживает YOLOv9?
YOLOv9 поддерживает различные задачи, включая обнаружение объектов и сегментацию экземпляров. Она совместима с несколькими режимами работы, такими как инференс, валидация, обучение и экспорт. Эта универсальность делает YOLOv9 адаптируемой к различным приложениям компьютерного зрения в реальном времени. Обратитесь к разделу поддерживаемых задач и режимов для получения дополнительной информации.