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-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):
Основные усовершенствования
-
Улучшенное извлечение признаков:
- Зональное внимание: Эффективно обрабатывает большие рецептивные поля, снижая затраты на вычисления.
- Оптимизированный баланс: Улучшенный баланс между вниманием и вычислениями в сети feed-forward.
- R-ELAN: улучшает агрегацию функций с помощью архитектуры R-ELAN.
-
Оптимизационные инновации:
- Остаточные связи: Внедряет остаточные связи с масштабированием для стабилизации обучения, особенно в больших моделях.
- Усовершенствованная интеграция функций: Реализует улучшенный метод интеграции функций в R-ELAN.
- FlashAttention: Включает FlashAttention для снижения накладных расходов на доступ к памяти.
-
Архитектурная эффективность:
- Уменьшение количества параметров: Достигается меньшее количество параметров при сохранении или повышении точности по сравнению со многими предыдущими моделями.
- Упрощенное внимание: Используется упрощенная реализация внимания, исключающая позиционное кодирование.
- Оптимизированные коэффициенты MLP: Регулирует коэффициенты MLP для более эффективного распределения вычислительных ресурсов.
Требования
Реализация Ultralytics YOLO12 по умолчанию не требует FlashAttention. Однако FlashAttention может быть скомпилирован и использоваться с YOLO12 по желанию. Для компиляции FlashAttention необходим один из следующих графических процессоров NVIDIA :
- Графические процессоры Turing (например, T4, серия Quadro RTX)
- Графические процессоры Ampere (например, серия RTX30, A30/40/100)
- Графические процессоры Ada Lovelace (например, серия RTX40)
- Графические процессоры Hopper (например, H100/H200)
Цитаты и благодарности
Если вы используете 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 в различных сценариях.