Перейти к содержанию

YOLO12: обнаружение объектов, ориентированных на внимание

Обзор

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



Смотреть: Как использовать YOLO12 для обнаружения объектов с помощью пакета Ultralytics | Быстрый или медленный YOLO12? 🚀

Основные характеристики

  • Механизм зонального внимания: Новый подход к самовниманию, который эффективно обрабатывает большие рецептивные поля. Он делит карты признаков на l равных по размеру областей (по умолчанию 4) по горизонтали или вертикали, избегая сложных операций и сохраняя большое эффективное рецептивное поле. Это значительно снижает вычислительные затраты по сравнению со стандартным самовниманием.
  • Агрегационные сети с эффективным остаточным уровнем (R-ELAN): Улучшенный модуль агрегирования признаков на основе ELAN, разработанный для решения проблем оптимизации, особенно в крупномасштабных моделях, ориентированных на внимание. R-ELAN представляет:
    • Остаточные связи на уровне блоков с масштабированием (аналогично масштабированию слоев).
    • Переработанный метод агрегирования признаков, создающий структуру, подобную узкому месту.
  • Оптимизированная архитектура внимания: YOLO12 оптимизирует стандартный механизм внимания для большей эффективности и совместимости с фреймворком YOLO . Это включает в себя:
    • Использование FlashAttention для минимизации накладных расходов на доступ к памяти.
    • Удаление позиционного кодирования для более чистой и быстрой модели.
    • Регулировка соотношения MLP (с обычных 4 до 1,2 или 2) для лучшего баланса вычислений между слоями внимания и feed-forward.
    • Уменьшение глубины укладки блоков для улучшения оптимизации.
    • Использование операций свертки (там, где это необходимо) для повышения эффективности вычислений.
    • Добавление к механизму внимания 7x7 сепарабельной свертки ("восприниматель положения") для неявного кодирования позиционной информации.
  • Всесторонняя поддержка задач: YOLO12 поддерживает ряд основных задач компьютерного зрения: обнаружение объектов, сегментация объектов, классификация изображений, оценка положения и ориентированное обнаружение объектов (OBB).
  • Повышенная эффективность: Достигается более высокая точность при меньшем количестве параметров по сравнению со многими предыдущими моделями, демонстрируя улучшенный баланс между скоростью и точностью.
  • Гибкость развертывания: Предназначен для развертывания на различных платформах, от граничных устройств до облачной инфраструктуры.

Визуализация сравнения YOLO12

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

YOLO12 поддерживает множество задач компьютерного зрения. В таблице ниже показана поддержка задач и режимы работы (вывод, проверка, обучение и экспорт), включенные для каждой из них:

Тип модели Задание Заключение Валидация Обучение Экспорт
YOLO12 Обнаружение
YOLO12-seg Сегментация
YOLO12-поза Поза
YOLO12-cls Классификация
YOLO12-obb OBB

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

YOLO12 демонстрирует значительное повышение точности во всех масштабах модели, но при этом имеет некоторый компромисс в скорости по сравнению с самыми быстрыми предыдущими моделями YOLO . Ниже приведены количественные результаты обнаружения объектов на проверочном наборе данных COCO:

Эффективность обнаружения (COCO val2017)

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

Модель размер
(пикселей)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT
(мс)
params
(M)
FLOPs
(B)
Сравнение
(mAP/Speed)
YOLO12n 640 40.6 - 1.64 2.6 6.5 +2,1%/-9% (по сравнению с YOLOv10n)
YOLO12s 640 48.0 - 2.61 9.3 21.4 +0,1%/+42% (по сравнению с RT-DETRv2)
YOLO12m 640 52.5 - 4.86 20.2 67.5 +1,0%/-3% (по сравнению с YOLO11m)
YOLO12l 640 53.7 - 6.77 26.4 88.9 +0,4%/-8% (по сравнению с YOLO11l)
YOLO12x 640 55.2 - 11.79 59.1 199.0 +0,6%/-4% (по сравнению с YOLO11x)
  • Скорость вычислений измерялась на GPU NVIDIA T4 с точностью TensorRT FP16.
  • Сравнение показывает относительное улучшение mAP и процентное изменение скорости (положительный результат означает ускорение, отрицательный - замедление). Сравнение проводится с опубликованными результатами для YOLOv10, YOLO11 и RT-DETR , если таковые имеются.

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

В этом разделе приведены примеры обучения и вывода с помощью YOLO12. Более подробную документацию по этим и другим режимам (включая проверку и экспорт) можно найти на специальных страницах Predict и Train.

Приведенные ниже примеры посвящены моделям YOLO12 Detect (для обнаружения объектов). Для других поддерживаемых задач (сегментация, классификация, ориентированное обнаружение объектов и оценка позы) обратитесь к документации по конкретным задачам: Segment, Classify, OBB и Pose.

Пример

Предварительно обученный *.pt модели (с использованием PyTorch) и конфигурация *.yaml файлы могут быть переданы в YOLO() класс для создания экземпляра модели в Python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLO12n model
model = YOLO("yolo12n.pt")

# 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 YOLO12n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Также доступны команды интерфейса командной строкиCLI):

# Load a COCO-pretrained YOLO12n model and train on the COCO8 example dataset for 100 epochs
yolo train model=yolo12n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLO12n model and run inference on the 'bus.jpg' image
yolo predict model=yolo12n.pt source=path/to/bus.jpg

Основные усовершенствования

  1. Улучшенное извлечение признаков:

    • Зональное внимание: Эффективно обрабатывает большие рецептивные поля, снижая затраты на вычисления.
    • Оптимизированный баланс: Улучшенный баланс между вниманием и вычислениями в сети feed-forward.
    • R-ELAN: улучшает агрегацию функций с помощью архитектуры R-ELAN.
  2. Оптимизационные инновации:

    • Остаточные связи: Внедряет остаточные связи с масштабированием для стабилизации обучения, особенно в больших моделях.
    • Усовершенствованная интеграция функций: Реализует улучшенный метод интеграции функций в R-ELAN.
    • FlashAttention: Включает FlashAttention для снижения накладных расходов на доступ к памяти.
  3. Архитектурная эффективность:

    • Уменьшение количества параметров: Достигается меньшее количество параметров при сохранении или повышении точности по сравнению со многими предыдущими моделями.
    • Упрощенное внимание: Используется упрощенная реализация внимания, исключающая позиционное кодирование.
    • Оптимизированные коэффициенты MLP: Регулирует коэффициенты MLP для более эффективного распределения вычислительных ресурсов.

Требования

Реализация Ultralytics YOLO12 по умолчанию не требует FlashAttention. Однако FlashAttention может быть скомпилирован и использоваться с YOLO12 по желанию. Для компиляции FlashAttention необходим один из следующих графических процессоров NVIDIA :

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

Если вы используете YOLO12 в своих исследованиях, пожалуйста, ссылайтесь на оригинальную работу Университета Буффало и Университета Китайской академии наук:

@article{tian2025yolov12,
  title={YOLOv12: Attention-Centric Real-Time Object Detectors},
  author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
  journal={arXiv preprint arXiv:2502.12524},
  year={2025}
}

@software{yolo12,
  author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
  title = {YOLOv12: Attention-Centric Real-Time Object Detectors},
  year = {2025},
  url = {https://github.com/sunsmarterjie/yolov12},
  license = {AGPL-3.0}
}

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Как YOLO12 обеспечивает обнаружение объектов в режиме реального времени, сохраняя при этом высокую точность?

В YOLO12 реализовано несколько ключевых инноваций, позволяющих сбалансировать скорость и точность. Механизм Area Attention эффективно обрабатывает большие рецептивные поля, снижая вычислительные затраты по сравнению со стандартным самовниманием. Сети агрегирования остаточных эффективных слоев (R-ELAN) улучшают агрегирование признаков, решая проблемы оптимизации в больших моделях, ориентированных на внимание. Оптимизированная архитектура внимания, включая использование FlashAttention и удаление позиционного кодирования, еще больше повышает эффективность. Эти особенности позволяют YOLO12 достигать самой высокой точности, сохраняя при этом скорость вывода в реальном времени, необходимую для многих приложений.

Какие задачи компьютерного зрения поддерживает YOLO12?

YOLO12 - это универсальная модель, поддерживающая широкий спектр основных задач компьютерного зрения. Она отлично справляется с обнаружением объектов, сегментацией объектов, классификацией изображений, оценкой позы и ориентированным обнаружением объектов (OBB)(см. подробнее). Такая комплексная поддержка задач делает YOLO12 мощным инструментом для различных приложений, от робототехники и автономного вождения до медицинской визуализации и промышленного контроля. Каждая из этих задач может быть выполнена в режимах "Вывод", "Проверка", "Обучение" и "Экспорт".

Чем YOLO12 отличается от других моделей YOLO и конкурентов, таких как RT-DETR?

YOLO12 демонстрирует значительное повышение точности во всех масштабах модели по сравнению с предыдущими моделями YOLO , такими как YOLOv10 и YOLO11, при этом скорость работы несколько снижается по сравнению с самыми быстрыми предыдущими моделями. Например, YOLO12n достигает +2,1 % улучшения mAP по сравнению с YOLOv10n и +1,2 % по сравнению с YOLO11n на наборе данных COCO val2017. По сравнению с такими моделями, как RT-DETRYOLO12s предлагает улучшение на +1,5 % по mAP и значительное увеличение скорости на +42 %. Эти показатели подчеркивают сильный баланс между точностью и эффективностью YOLO12. Подробные сравнения приведены в разделе "Показатели производительности".

Каковы требования к аппаратному обеспечению для работы YOLO12, особенно для использования FlashAttention?

По умолчанию реализация Ultralytics YOLO12 не требует использования FlashAttention. Однако FlashAttention можно скомпилировать и использовать с YOLO12, чтобы минимизировать накладные расходы на доступ к памяти. Для компиляции FlashAttention необходим один из следующих графических процессоров NVIDIA : GPU Turing (например, T4, серия Quadro RTX), GPU Ampere (например, серия RTX30, A30/40/100), Ada Lovelace GPU (например, серия RTX40) или Hopper GPU (например, H100/H200). Такая гибкость позволяет пользователям использовать преимущества FlashAttention, если позволяют аппаратные ресурсы.

Где можно найти примеры использования и более подробную документацию по YOLO12?

На этой странице приведены основные примеры использования обучения и вывода. Для получения полной документации по этим и другим режимам, включая проверку и экспорт, обратитесь к специальным страницам Predict и Train. Для получения информации по конкретным задачам (сегментация, классификация, обнаружение ориентированных объектов и оценка позы) обратитесь к соответствующей документации: Segment, Classify, OBB и Pose. Эти ресурсы содержат подробное руководство по эффективному использованию YOLO12 в различных сценариях.

📅 Создано 1 месяц назад ✏️ Обновлено 25 дней назад

Комментарии