YOLO12: Обнаружение объектов на основе внимания#
Обзор#
YOLO12, выпущенный в начале 2025 года, представляет архитектуру с акцентом на механизм внимания, которая отходит от традиционных подходов на базе CNN, используемых в предыдущих моделях YOLO, но сохраняет скорость инференса в реальном времени, необходимую для многих приложений. Эта модель достигает высокой точности обнаружения объектов благодаря новым методологическим инновациям в механизмах внимания и общей архитектуре сети, сохраняя при этом производительность в реальном времени. Несмотря на эти преимущества, YOLO12 остается релизом для сообщества, который может демонстрировать нестабильность обучения, повышенное потребление памяти и более медленную пропускную способность CPU из-за тяжелых блоков внимания, поэтому Ultralytics рекомендует YOLO11 или YOLO26 для большинства рабочих нагрузок в продакшене.
Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀
Ключевые особенности#
- Механизм пространственного внимания (Area Attention): Новый подход самовнимания, который эффективно обрабатывает большие поля рецепции. Он делит feature maps на l областей равного размера (по умолчанию 4), горизонтально или вертикально, избегая сложных операций и сохраняя большое эффективное поле рецепции. Это значительно снижает вычислительные затраты по сравнению со стандартным самовниманием.
- Residual Efficient Layer Aggregation Networks (R-ELAN): Улучшенный модуль агрегации признаков на основе ELAN, разработанный для решения проблем оптимизации, особенно в крупномасштабных моделях, ориентированных на внимание. R-ELAN внедряет:
- Блочные остаточные (residual) соединения с масштабированием (по аналогии с масштабированием слоев).
- Переработанный метод агрегации признаков, создающий структуру, подобную узкому месту (bottleneck).
- Оптимизированная архитектура внимания: YOLO12 упрощает стандартный механизм внимания для большей эффективности и совместимости с фреймворком YOLO. Сюда входят:
- Использование FlashAttention для минимизации накладных расходов при доступе к памяти.
- Удаление позиционного кодирования для получения более чистого и быстрого вида модели.
- Корректировка коэффициента MLP (с типичных 4 до 1.2 или 2) для лучшего баланса вычислений между механизмами внимания и полносвязными слоями (feed-forward).
- Уменьшение глубины стековых блоков для улучшенной оптимизации.
- Использование сверточных операций (там, где это уместно) из-за их вычислительной эффективности.
- Добавление сепарабельной свертки 7x7 («позиционный перцептор») в механизм внимания для неявного кодирования позиционной информации.
- Комплексная поддержка задач: YOLO12 поддерживает ряд ключевых задач компьютерного зрения: обнаружение объектов, сегментацию экземпляров, классификацию изображений, оценку позы и ориентированное обнаружение объектов (OBB).
- Повышенная эффективность: Достигает более высокой точности при меньшем количестве параметров по сравнению со многими предыдущими моделями, демонстрируя улучшенный баланс между скоростью и точностью.
- Гибкое внедрение: Разработана для развертывания на различных платформах, от периферийных устройств до облачной инфраструктуры.

Поддерживаемые задачи и режимы#
YOLO12 поддерживает разнообразные задачи компьютерного зрения. В таблице ниже показана поддержка задач и операционные режимы (вывод, валидация, обучение и экспорт), доступные для каждой из них:
На ultralytics/assets публикуются только веса обнаружения (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt). Архитектуры сегментации, классификации, позы и OBB определены в ultralytics/cfg/models/12/, поэтому эти варианты поддерживают обучение с нуля на основе конфига .yaml, но предварительно обученные файлы .pt для них в настоящее время недоступны. Для предобученных чекпоинтов сегментации, позы, классификации или OBB Ultralytics рекомендует YOLO11 или YOLO26.
| Тип модели | Задача | Предобученные веса | Training | Validation | Inference | Экспорт |
|---|---|---|---|---|---|---|
| YOLO12 | Детектирование | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Сегментация | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Классификация | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Все архитектуры YOLO12 поддерживают каждый режим, как только становится доступен обученный чекпоинт. Колонка Pretrained Weights указывает только на то, публикует ли Ultralytics официальный предобученный .pt на ultralytics/assets: для сегментации, позы, классификации и OBB тебе нужно обучить собственный чекпоинт из соответствующего .yaml перед запуском инференса, валидации или экспорта.
Метрики производительности#
YOLO12 демонстрирует значительные улучшения accuracy во всех масштабах моделей с некоторыми компромиссами в скорости по сравнению с самыми быстрыми предыдущими моделями YOLO. Ниже приведены количественные результаты для обнаружения объектов на валидационном датасете COCO:
Производительность обнаружения (COCO val2017)#
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT (мс) | параметры (М) | FLOPs (Б) | Сравнение (mAP/Скорость) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 7.6 | +2.1%/-9% (vs. YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.7 | +0.1%/+42% (vs. RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 71.3 | +1.0%/-3% (vs. YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 96.3 | +0.4%/-8% (vs. YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 210.2 | +0.6%/-4% (vs. YOLO11x) |
- Скорость инференса измерена на GPU NVIDIA T4 с точностью TensorRT FP16 precision.
- Сравнения показывают относительное улучшение mAP и процентное изменение скорости (положительное означает быстрее, отрицательное означает медленнее). Сравнения проводятся с опубликованными результатами для YOLOv10, YOLO11 и RT-DETR, где они доступны.
Примеры использования#
В этом разделе приведены примеры обучения и инференса с помощью YOLO12. Более подробную документацию по этим и другим режимам (включая Validation и Export) см. на специализированных страницах Predict и Train.
Примеры ниже сосредоточены на моделях YOLO12 Detect (для обнаружения объектов). О других поддерживаемых задачах (сегментация, классификация, оценка позы и ориентированное обнаружение объектов) читай в соответствующей документации для конкретных задач: Segment, Classify, Pose и OBB.
Предобученные модели *.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")Ключевые улучшения#
-
Улучшенное извлечение признаков:
- Пространственное внимание (Area Attention): Эффективно обрабатывает большие поля рецепции, снижая вычислительные затраты.
- Оптимизированный баланс: Улучшенный баланс между вычислениями внимания и нейронной сети прямого распространения.
- R-ELAN: Улучшает агрегацию признаков с помощью архитектуры R-ELAN.
-
Инновации в оптимизации:
- Остаточные (residual) соединения: Внедряет остаточные соединения с масштабированием для стабилизации обучения, особенно в крупных моделях.
- Уточненная интеграция признаков: Внедряет улучшенный метод интеграции признаков внутри R-ELAN.
- FlashAttention: Включает FlashAttention для снижения накладных расходов при доступе к памяти.
-
Архитектурная эффективность:
- Уменьшенное количество параметров: Достигает меньшего количества параметров при сохранении или улучшении точности по сравнению со многими предыдущими моделями.
- Оптимизированное внимание: Использует упрощенную реализацию внимания, избегая позиционного кодирования.
- Оптимизированные соотношения MLP: Регулирует коэффициенты MLP для более эффективного распределения вычислительных ресурсов.
Требования#
Реализация Ultralytics YOLO12 по умолчанию не требует FlashAttention. Однако FlashAttention может быть опционально скомпилирован и использован с YOLO12. Для компиляции FlashAttention необходим один из следующих GPU NVIDIA:
- Turing GPUs (например, T4, серия Quadro RTX)
- Ampere GPUs (например, серия RTX30, A30/40/100)
- Ada Lovelace GPUs (например, серия RTX40)
- Hopper GPUs (например, H100/H200)
Цитирование и благодарности#
Если ты используешь YOLO12 в своем исследовании, пожалуйста, сошлись на оригинальную работу University at Buffalo и University of Chinese Academy of Sciences:
@inproceedings{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
booktitle={Advances in Neural Information Processing Systems},
volume={38},
pages={78433--78457},
year={2025},
url={https://proceedings.neurips.cc/paper_files/paper/2025/file/7103444259031cc58051f8c9a4868533-Paper-Conference.pdf}
}
@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}
}Статья о YOLO12 была опубликована в материалах NeurIPS 2025, а препринт доступен на arXiv.
FAQ#
YOLO12 включает в себя несколько ключевых инноваций для балансировки скорости и точности. Механизм пространственного внимания Attention mechanism эффективно обрабатывает большие поля рецепции, уменьшая вычислительные затраты по сравнению со стандартным самовниманием. Сети Residual Efficient Layer Aggregation Networks (R-ELAN) улучшают агрегацию признаков, решая проблемы оптимизации в более крупных моделях, ориентированных на внимание. Оптимизированная архитектура внимания, включая использование FlashAttention и удаление позиционного кодирования, дополнительно повышает эффективность. Эти функции позволяют YOLO12 достигать точности современного уровня (state-of-the-art), сохраняя при этом скорость инференса в реальном времени, критически важную для многих приложений.
YOLO12 — это универсальная модель, поддерживающая широкий спектр основных задач компьютерного зрения. Она превосходно справляется с обнаружением detection объектов, сегментацией экземпляров, классификацией изображений, оценкой позы и ориентированным обнаружением объектов (OBB) (см. подробности). Столь всесторонняя поддержка задач делает YOLO12 мощным инструментом для самых разных применений: от робототехники и автономного вождения до медицинской визуализации и промышленного контроля. Обрати внимание, что предобученные веса
.ptв настоящее время публикуются только для обнаружения; архитектуры сегментации, позы, классификации и OBB предоставляются в виде конфигов.yamlдля обучения с нуля.YOLO12 демонстрирует значительное улучшение точности во всех масштабах моделей по сравнению с предыдущими моделями YOLO, такими как YOLOv10 и YOLO11, с некоторой потерей скорости по сравнению с самыми быстрыми предыдущими моделями. Например, YOLO12n достигает улучшения mAP на +2.1% по сравнению с YOLOv10n и на +1.2% по сравнению с YOLO11n на датасете COCO val2017. По сравнению с такими моделями, как RT-DETR, YOLO12s обеспечивает улучшение mAP на +1.5% и существенное увеличение скорости на +42%. Эти метрики подчеркивают отличный баланс YOLO12 между точностью и эффективностью. Подробные сравнения см. в разделе показателей производительности.
По умолчанию реализация Ultralytics YOLO12 не требует FlashAttention. Однако FlashAttention может быть опционально скомпилирован и использован с YOLO12 для минимизации накладных расходов при доступе к памяти. Для компиляции FlashAttention необходим один из следующих GPU NVIDIA: Turing (например, T4, серия Quadro RTX), Ampere (например, серия RTX30, A30/40/100), Ada Lovelace (например, серия RTX40) или Hopper (например, H100/H200). Эта гибкость позволяет пользователям использовать преимущества FlashAttention, когда позволяют аппаратные ресурсы.
На этой странице приведены базовые примеры использования для обучения и инференса. Подробную документацию по этим и другим режимам, включая Validation и Export, см. на специализированных страницах Predict и Train. Информацию по конкретным задачам (сегментация, классификация, оценка позы и ориентированное обнаружение объектов) ищи в соответствующей документации: Segment, Classify, Pose и OBB. Эти ресурсы предоставляют подробные руководства по эффективному использованию YOLO12 в различных сценариях.