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: новый подход к самообучению внимания, эффективно обрабатывающий большие рецептивные поля. Он разделяет карты признаков на l областей одинакового размера (по умолчанию 4) по горизонтали или вертикали, избегая сложных операций и сохраняя большое эффективное рецептивное поле. Это значительно снижает вычислительные затраты по сравнению со стандартным самообучением внимания.
- Сети эффективной агрегации остаточных слоев (R-ELAN): улучшенный модуль агрегации признаков на основе ELAN, предназначенный для решения проблем оптимизации, особенно в более крупных моделях на основе внимания. R-ELAN добавляет:
- Остаточные соединения на уровне блоков с масштабированием (аналогично масштабированию слоев).
- Переработанный метод агрегации признаков, создающий структуру типа «бутылочного горлышка».
- Оптимизированная архитектура внимания: YOLO12 упрощает стандартный механизм внимания для повышения эффективности и совместимости с фреймворком YOLO. Это включает:
- Использование FlashAttention для минимизации накладных расходов на доступ к памяти.
- Удаление позиционного кодирования для создания более простой и быстрой модели.
- Настройку коэффициента MLP (с обычного значения 4 до 1.2 или 2) для более сбалансированного распределения вычислений между слоями внимания и прямого распространения.
- Уменьшение глубины объединенных в стек блоков для улучшения оптимизации.
- Использование сверточных операций (где это уместно) благодаря их вычислительной эффективности.
- Добавление разделимой свертки 7x7 («position perceiver») в механизм внимания для неявного кодирования позиционной информации.
- Комплексная поддержка задач: 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.
| Тип модели | Задача | Предварительно обученные веса | Обучение | Валидация | Вывод | Экспорт |
|---|---|---|---|---|---|---|
| YOLO12 | Обнаружение | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Сегментация | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Классификация | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Поза | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Все архитектуры YOLO12 поддерживают каждый режим после создания обученной контрольной точки. Столбец Pretrained Weights показывает только, публикует ли Ultralytics официальную предварительно обученную .pt на ultralytics/assets: для сегментации, оценки позы, классификации и OBB тебе нужно обучить собственную контрольную точку на основе соответствующей .yaml, прежде чем запускать вывод, валидацию или экспорт.
Метрики производительности#
YOLO12 демонстрирует значительное повышение точности во всех масштабах моделей с некоторыми компромиссами по скорости по сравнению с самыми быстрыми предыдущими моделями YOLO. Ниже приведены количественные результаты для обнаружения объектов на валидационном наборе данных COCO:
Производительность обнаружения (COCO val2017)#
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT (мс) | параметры (M) | FLOPs (B) | Сравнение (mAP/скорость) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 7.5 | +2.1%/-9% (по сравнению с YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0.1%/+42% (по сравнению с RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1.0%/-3% (по сравнению с YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0.4%/-8% (по сравнению с YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0.6%/-4% (по сравнению с YOLO11x) |
- Скорость вывода измерена на GPU NVIDIA T4 с точностью TensorRT FP16 точностью.
- Сравнения показывают относительное улучшение mAP и процентное изменение скорости (положительное значение означает ускорение, отрицательное — замедление). Сравнение проводится с опубликованными результатами для YOLOv10, YOLO11 и RT-DETR, если такие результаты доступны.
Примеры использования#
В этом разделе приведены примеры обучения и вывода с YOLO12. Более подробную документацию по этим и другим режимам (включая валидацию и экспорт) смотри на специализированных страницах 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.
-
Инновации в оптимизации:
- Остаточные соединения: добавляет остаточные соединения с масштабированием для стабилизации обучения, особенно в крупных моделях.
- Улучшенная интеграция признаков: реализует усовершенствованный метод интеграции признаков в R-ELAN.
- FlashAttention: использует FlashAttention для снижения накладных расходов на доступ к памяти.
-
Эффективность архитектуры:
- Уменьшенное количество параметров: обеспечивает меньшее количество параметров при сохранении или повышении точности по сравнению со многими предыдущими моделями.
- Упрощенное внимание: использует упрощенную реализацию внимания, исключающую позиционное кодирование.
- Оптимизированные коэффициенты MLP: настраивает коэффициенты MLP для более эффективного распределения вычислительных ресурсов.
Требования#
Реализация 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)
Цитирование и благодарности#
Если ты используешь YOLO12 в своих исследованиях, пожалуйста, процитируй оригинальную работу Университета Буффало и Университета Китайской академии наук:
@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.
Часто задаваемые вопросы#
YOLO12 включает несколько ключевых инноваций для достижения баланса между скоростью и точностью. Механизм внимания Area эффективно обрабатывает большие рецептивные поля, снижая вычислительные затраты по сравнению со стандартным самообучением внимания. Сети эффективной агрегации остаточных слоев (R-ELAN) улучшают агрегацию признаков и решают проблемы оптимизации в более крупных моделях на основе внимания. Оптимизированная архитектура внимания, включая использование FlashAttention и удаление позиционного кодирования, дополнительно повышает эффективность. Благодаря этим особенностям YOLO12 достигает точности уровня современных решений, сохраняя скорость вывода в реальном времени, критически важную для многих приложений.
YOLO12 — универсальная модель, поддерживающая широкий спектр основных задач компьютерного зрения. Она эффективно решает задачи обнаружения объектов, сегментации экземпляров, классификации изображений, оценки позы и обнаружения ориентированных объектов (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: GPU Turing (например, T4, серия Quadro RTX), GPU Ampere (например, серия RTX30, A30/40/100), GPU Ada Lovelace (например, серия RTX40) или GPU Hopper (например, H100/H200). Такая гибкость позволяет использовать преимущества FlashAttention, если аппаратные ресурсы это позволяют.
На этой странице приведены базовые примеры использования для обучения и вывода. Полную документацию по этим и другим режимам, включая валидацию и экспорт, смотри на специализированных страницах Predict и Train. Информацию по отдельным задачам (сегментации, классификации, оценке позы и обнаружению ориентированных объектов) смотри в соответствующей документации: Segment, Classify, Pose и OBB. Эти ресурсы содержат подробные рекомендации по эффективному использованию YOLO12 в различных сценариях.