YOLO12: Объектное обнаружение с акцентом на внимание
Обзор
YOLO12 представляет архитектуру, ориентированную на внимание, которая отходит от традиционных подходов на основе CNN, используемых в предыдущих моделях YOLO, но при этом сохраняет скорость инференса в реальном времени, необходимую для многих приложений. Эта модель достигает современной точности обнаружения объектов благодаря новым методологическим инновациям в механизмах внимания и общей архитектуре сети, сохраняя при этом производительность в реальном времени.
Смотреть: Как использовать YOLO12 для обнаружения объектов с помощью пакета Ultralytics | YOLO12 — это быстро или медленно? 🚀
Основные характеристики
- Механизм Area Attention: Новый подход к самообслуживанию, который эффективно обрабатывает большие рецептивные поля. Он делит карты признаков на l областей одинакового размера (по умолчанию 4) по горизонтали или вертикали, избегая сложных операций и сохраняя большое эффективное рецептивное поле. Это значительно снижает вычислительные затраты по сравнению со стандартным самообслуживанием.
- Residual Efficient Layer Aggregation Networks (R-ELAN): Улучшенный модуль агрегации признаков на основе ELAN, предназначенный для решения задач оптимизации, особенно в более масштабных моделях, ориентированных на внимание. R-ELAN представляет собой:
- Остаточные соединения на уровне блоков с масштабированием (аналогично масштабированию слоев).
- Переработанный метод агрегирования признаков, создающий структуру, похожую на узкое место.
- Оптимизированная архитектура внимания: YOLO12 оптимизирует стандартный механизм внимания для большей эффективности и совместимости с фреймворком YOLO. Это включает в себя:
- Использование FlashAttention для минимизации накладных расходов на доступ к памяти.
- Удаление позиционного кодирования для более чистой и быстрой модели.
- Регулировка коэффициента MLP (от типичного 4 до 1,2 или 2) для лучшего баланса вычислений между вниманием и слоями прямой связи.
- Уменьшение глубины стековых блоков для улучшения оптимизации.
- Использование операций свертки (где это уместно) для их вычислительной эффективности.
- Добавление 7x7 разделимой свертки («воспринимающий позицию») в механизм внимания для неявного кодирования позиционной информации.
- Комплексная поддержка задач: YOLO12 поддерживает ряд основных задач компьютерного зрения: обнаружение объектов, сегментация экземпляров, классификация изображений, оценка позы и обнаружение ориентированных объектов (OBB).
- Повышенная эффективность: Достигает более высокой точности с меньшим количеством параметров по сравнению со многими предыдущими моделями, демонстрируя улучшенный баланс между скоростью и точностью.
- Гибкое развертывание: Разработано для развертывания на различных платформах, от периферийных устройств до облачной инфраструктуры.
Поддерживаемые задачи и режимы
YOLO12 поддерживает различные задачи компьютерного зрения. В таблице ниже показана поддержка задач и операционные режимы (Inference, Validation, Training и Export), включенные для каждой из них:
Тип модели | Задача | Инференс | Валидация | Обучение | Экспорт |
---|---|---|---|---|---|
YOLO12 | Обнаружение | ✅ | ✅ | ✅ | ✅ |
YOLO12-seg | Сегментация | ✅ | ✅ | ✅ | ✅ |
YOLO12-pose | Поза | ✅ | ✅ | ✅ | ✅ |
YOLO12-cls | Классификация | ✅ | ✅ | ✅ | ✅ |
YOLO12-obb | OBB | ✅ | ✅ | ✅ | ✅ |
Метрики производительности
YOLO12 демонстрирует значительные улучшения точности для всех масштабов моделей, с некоторыми компромиссами в скорости по сравнению с самыми быстрыми предыдущими моделями YOLO. Ниже представлены количественные результаты обнаружения объектов на наборе данных COCO validation:
Производительность обнаружения (COCO val2017)
Производительность
Модель | размер (пиксели) |
mAPval 50-95 |
Скорость CPU ONNX (мс) |
Скорость T4 TensorRT (мс) |
параметры (M) |
FLOPs (B) |
Сравнение (mAP/Скорость) |
---|---|---|---|---|---|---|---|
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) |
- Скорость инференса, измеренная на NVIDIA T4 GPU с TensorRT FP16 точностью.
- Сравнения показывают относительное улучшение mAP и процентное изменение скорости (положительное значение указывает на более высокую скорость; отрицательное значение указывает на более низкую скорость). Сравнения проводятся с опубликованными результатами для YOLO10, YOLO11 и RT-DETR, где это возможно.
Примеры использования
В этом разделе приведены примеры обучения и инференса с использованием YOLO12. Для получения более полной документации по этим и другим режимам (включая Валидацию и Экспорт), обратитесь к специализированным страницам Predict и Train.
Примеры ниже посвящены моделям YOLO12 Detect (для обнаружения объектов). Для других поддерживаемых задач (сегментация, классификация, обнаружение ориентированных объектов и оценка позы) обратитесь к соответствующей документации по конкретным задачам: Segment, Classify, OBB и Pose.
Пример
Предварительно обученный *.pt
моделей (используя PyTorch) и конфигурация *.yaml
файлы могут быть переданы в YOLO()
class для создания экземпляра модели в 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
Основные улучшения
-
Улучшенное извлечение признаков:
- Area Attention: Эффективно обрабатывает большие рецептивные поля, снижая вычислительные затраты.
- Оптимизированный баланс: Улучшен баланс между вычислениями внимания и прямой нейронной сети.
- R-ELAN: Улучшает агрегацию признаков с использованием архитектуры R-ELAN.
-
Инновации в оптимизации:
- Остаточные соединения: Вводит остаточные соединения с масштабированием для стабилизации обучения, особенно в больших моделях.
- Улучшенная интеграция функций: Реализует улучшенный метод интеграции функций в R-ELAN.
- FlashAttention: Включает FlashAttention для снижения накладных расходов на доступ к памяти.
-
Архитектурная эффективность:
- Уменьшенное количество параметров: Достигает меньшего количества параметров, сохраняя или улучшая точность по сравнению со многими предыдущими моделями.
- Оптимизированный механизм внимания: Использует упрощенную реализацию механизма внимания, избегая позиционного кодирования.
- Оптимизированные коэффициенты MLP: Регулирует коэффициенты MLP для более эффективного распределения вычислительных ресурсов.
Требования
Реализация Ultralytics YOLO12 по умолчанию не требует FlashAttention. Однако FlashAttention можно дополнительно скомпилировать и использовать с YOLO12. Для компиляции FlashAttention необходим один из следующих графических процессоров NVIDIA:
- GPU Turing (например, T4, Quadro RTX series)
- GPU Ampere (например, серия RTX30, A30/40/100)
- GPU Ada Lovelace (например, серия RTX40)
- GPU Hopper (например, H100/H200)
Цитирование и благодарности
Если вы используете YOLO12 в своих исследованиях, пожалуйста, сошлитесь на оригинальную работу University at Buffalo и University of Chinese Academy of Sciences:
@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 mechanism эффективно обрабатывает большие рецептивные поля, снижая вычислительные затраты по сравнению со стандартным self-attention. Residual Efficient Layer Aggregation Networks (R-ELAN) улучшают агрегацию признаков, решая проблемы оптимизации в более крупных моделях, ориентированных на внимание. Оптимизированная архитектура внимания, включая использование FlashAttention и удаление позиционного кодирования, еще больше повышает эффективность. Эти функции позволяют YOLO12 достичь современной точности, сохраняя при этом скорость инференса в реальном времени, что имеет решающее значение для многих приложений.
Какие задачи компьютерного зрения поддерживает YOLO12?
YOLO12 — это универсальная модель, поддерживающая широкий спектр основных задач компьютерного зрения. Она превосходно справляется с обнаружением объектов, сегментацией экземпляров, классификацией изображений, оценкой позы и обнаружением ориентированных объектов (OBB) (см. подробности). Эта комплексная поддержка задач делает YOLO12 мощным инструментом для различных приложений, от робототехники и автономного вождения до медицинской визуализации и промышленного контроля. Каждую из этих задач можно выполнить в режимах Inference, Validation, Training и Export.
Как 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: Turing GPU (например, T4, Quadro RTX series), Ampere GPU (например, RTX30 series, A30/40/100), Ada Lovelace GPU (например, RTX40 series) или Hopper GPU (например, H100/H200). Эта гибкость позволяет пользователям использовать преимущества FlashAttention, когда позволяют аппаратные ресурсы.
Где я могу найти примеры использования и более подробную документацию для YOLO12?
На этой странице представлены основные примеры использования для обучения и логического вывода. Для получения исчерпывающей документации по этим и другим режимам, включая Валидацию и Экспорт, обратитесь к специальным страницам Predict и Train. Для получения информации, специфичной для конкретной задачи (сегментация, классификация, обнаружение ориентированных объектов и оценка позы), обратитесь к соответствующей документации: Segment, Classify, OBB и Pose. Эти ресурсы содержат подробные инструкции по эффективному использованию YOLO12 в различных сценариях.