YOLO12: Детектирование объектов с фокусом на механизмы внимания

Обзор

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

Модель от сообщества

YOLO12 поддерживается преимущественно для бенчмаркинга и исследований. Если тебе нужно стабильное обучение, предсказуемое использование памяти и оптимизированный вывод на CPU, выбирай для развертывания YOLO11 или YOLO26.



Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀

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

  • Механизм Area Attention: новый подход к self-attention, эффективно обрабатывающий большие рецептивные поля. Он разделяет карты признаков на l равных областей (по умолчанию 4), горизонтально или вертикально, избегая сложных операций и сохраняя широкое эффективное рецептивное поле. Это значительно снижает вычислительные затраты по сравнению со стандартным self-attention.
  • Residual Efficient Layer Aggregation Networks (R-ELAN): улучшенный модуль агрегации признаков на основе ELAN, разработанный для решения проблем оптимизации, особенно в крупномасштабных моделях с фокусом на внимание. R-ELAN включает в себя:
    • Поблочные остаточные соединения с масштабированием (по аналогии с масштабированием слоев).
    • Переработанный метод агрегации признаков, создающий структуру, подобную «узкому месту» (bottleneck).
  • Оптимизированная архитектура внимания: YOLO12 упрощает стандартный механизм внимания для большей эффективности и совместимости с фреймворком YOLO. Это включает:
    • Использование FlashAttention для минимизации накладных расходов при доступе к памяти.
    • Удаление позиционного кодирования для получения более простой и быстрой модели.
    • Настройку коэффициента MLP (с типичных 4 до 1.2 или 2) для лучшего баланса вычислений между слоями внимания и полносвязными слоями.
    • Уменьшение глубины стековых блоков для улучшения оптимизации.
    • Использование операций свертки (где это уместно) ради их вычислительной эффективности.
    • Добавление 7x7 сепарабельной свертки («позиционный перцептрон») в механизм внимания для неявного кодирования позиционной информации.
  • Комплексная поддержка задач: YOLO12 поддерживает ряд ключевых задач компьютерного зрения: детектирование объектов, сегментацию экземпляров, классификацию изображений, оценку позы и ориентированное детектирование объектов (OBB).
  • Повышенная эффективность: достигает более высокой точности с меньшим количеством параметров по сравнению со многими предыдущими моделями, демонстрируя улучшенный баланс между скоростью и точностью.
  • Гибкое развертывание: разработана для внедрения на различных платформах, от периферийных устройств до облачной инфраструктуры.

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

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

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

Наличие предобученных весов

Только веса для детектирования (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt) выпущены на ultralytics/assets. Архитектуры для сегментации, классификации, оценки позы и OBB определены в ultralytics/cfg/models/12/, поэтому эти варианты поддерживают обучение с нуля из конфигурации .yaml, но предобученные файлы .pt для них пока отсутствуют. Для получения предобученных чекпоинтов сегментации, позы, классификации или OBB Ultralytics рекомендует использовать YOLO11 или YOLO26.

Тип моделиЗадачаПредобученные весаЛогический выводВалидацияОбучениеЭкспорт (Export)
YOLO12Детекция
YOLO12-segСегментация
YOLO12-poseОценка позы
YOLO12-clsКлассификация
YOLO12-obbOBB

All YOLO12 architectures support every mode once a trained checkpoint is available. The Pretrained Weights column indicates only whether Ultralytics publishes an official pretrained .pt on ultralytics/assets: for segmentation, pose, classification, and OBB, you must train your own checkpoint from the corresponding .yaml before running inference, validation, or export.

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

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

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

Производительность
Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT
(мс)
параметры
(М)
FLOPs
(Б)
Сравнение
(mAP/Скорость)
YOLO12n64040.6-1.642.66.5+2.1%/-9% (vs. YOLOv10n)
YOLO12s64048.0-2.619.321.4+0.1%/+42% (vs. RT-DETRv2)
YOLO12m64052.5-4.8620.267.5+1.0%/-3% (vs. YOLO11m)
YOLO12l64053.7-6.7726.488.9+0.4%/-8% (vs. YOLO11l)
YOLO12x64055.2-11.7959.1199.0+0.6%/-4% (vs. 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")

Ключевые улучшения

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

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

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

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

Требования

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

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

Если ты используешь YOLO12 в своих исследованиях, пожалуйста, процитируй оригинальную работу University at Buffalo и University of Chinese Academy of Sciences:

Цитата
@article{tian2025yolo12,
  title={YOLO12: 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 = {YOLO12: Attention-Centric Real-Time Object Detectors},
  year = {2025},
  url = {https://github.com/sunsmarterjie/yolov12},
  license = {AGPL-3.0}
}

Часто задаваемые вопросы (FAQ)

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

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

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

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

Как YOLO12 соотносится с другими моделями YOLO и конкурентами, такими как RT-DETR?

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

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

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

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

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

Комментарии