Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Deformable Attention

Деформируемое внимание позволяет каждому запросу учитывать несколько обучаемых точек выборки вокруг опорной позиции, а не каждую позицию на карте признаков.

Деформируемое внимание — это механизм внимания для компьютерного зрения, при котором каждый запрос обращается к небольшому фиксированному количеству точек выборки вокруг опорной позиции, а не ко всем позициям карты признаков. Сам запрос предсказывает положение этих точек — как смещения относительно опорной позиции — и вес каждой из них, поэтому вычислительные затраты растут с количеством запросов и точек, а не с разрешением изображения. Xizhou Zhu, Jifeng Dai и их коллеги из SenseTime, Университета науки и технологий Китая и Китайского университета Гонконга представили этот метод в Deformable DETR, статье, удостоенной устного доклада на ICLR 2021. Метод устранил два недостатка исходного детекционного Transformer DETR: полное внимание ограничивало его низким разрешением признаков, а обучение занимало 500 эпох. Deformable DETR требовал в 10 раз меньше эпох и лучше обнаруживал мелкие объекты.

Как работает деформируемое внимание#

Эта идея развивает деформируемую свёртку, которую также совместно разработал Dai и которая обучает смещения для позиций ядра свёртки. Для каждого запроса с опорной точкой каждая голова внимания применяет к признакам запроса два линейных слоя: один предсказывает K смещений точек выборки, а другой — K весов внимания, нормализованных с помощью softmax. Значения признаков в каждой смещённой точке считываются билинейной интерполяцией, поскольку смещения могут быть дробными, а затем голова возвращает их взвешенную сумму. В статье используются 8 голов и K = 4 точки, поэтому запрос считывает 32 позиции на каждой карте признаков, тогда как стандартное самовнимание оценивало бы каждый пиксель. Версия с одной головой и одним масштабом реализуется всего в нескольких строках PyTorch:

import torch
import torch.nn.functional as F

torch.manual_seed(0)
dim, n_points, n_queries = 32, 4, 100
value = torch.randn(1, dim, 64, 64)  # a 64x64 feature map: 4,096 positions
query = torch.randn(n_queries, dim)
ref = torch.rand(n_queries, 2) * 2 - 1  # reference points in grid_sample's [-1, 1] coordinates

# Each query predicts where to look (offsets) and how much each sample counts (weights)
to_offsets, to_weights = torch.nn.Linear(dim, n_points * 2), torch.nn.Linear(dim, n_points)
offsets = 0.1 * to_offsets(query).view(n_queries, n_points, 2)
weights = to_weights(query).softmax(dim=-1)

# Bilinearly sample the value map at reference + offset, then take the weighted sum
grid = (ref[:, None] + offsets)[None]  # (1, n_queries, n_points, 2)
sampled = F.grid_sample(value, grid, align_corners=False)[0]  # (dim, n_queries, n_points)
out = (sampled * weights).sum(dim=-1).T  # (n_queries, dim)
print(f"Output {tuple(out.shape)} from {n_queries * n_points} samples, not {n_queries * 64 * 64:,} dense scores")

Код выводит Output (100, 32) from 400 samples, not 409,600 dense scores: каждый из 100 запросов считывает 4 из 4096 позиций. Во время обучения корректируются слои смещений и весов, поэтому точки перемещаются к тем частям изображения, которые важны для задачи.

Деформируемое внимание с несколькими масштабами#

Объекты бывают очень разного размера, поэтому Deformable DETR одновременно выбирает точки на нескольких картах признаков. При L уровнях каждая голова берёт K точек на каждом уровне и нормализует веса сразу по всем L × K точкам. Так за один шаг объединяются признаки высокого и низкого разрешения; в энкодере это заменило пирамиду признаков (FPN). В энкодере этот механизм применяется как самовнимание, где запросом служит каждый пиксель каждого уровня, а в декодере — как перекрёстное внимание между запросами объектов и признаками изображения.

RT-DETR — трансформер для детекции в реальном времени от Baidu, доступный в пакете Ultralytics, — использует деформируемое внимание с несколькими масштабами в качестве перекрёстного внимания шести слоёв декодера: каждый из 300 запросов объектов выбирает по 4 точки на каждой из 8 голов на картах признаков с шагом 8, 16 и 32 — всего 96 позиций. Для полного перекрёстного внимания к этим картам изображения размером 640 пикселей пришлось бы оценить 8400 позиций.

Применение#

  • Обнаружение объектов: преемники Deformable DETR, включая DINO и RT-DETR, сохраняют деформируемое перекрёстное внимание в декодерах, что позволяет им считывать признаки высокого разрешения для мелких объектов.
  • Автономные автомобили: BEVFormer преобразует изображения с нескольких автомобильных камер в сетку вида сверху, где каждая ячейка выбирает деформируемые точки на тех изображениях с камер, на которых она видна.
  • Паноптическая сегментация: Mask2Former формирует многомасштабные пиксельные признаки с помощью деформируемого внимания, а затем предсказывает маски.
  • Внимание со скользящим окном: обращается к фиксированному соседству, заданному положением и одинаковому для каждого входного примера.
  • Разреженное внимание: оценивает заранее выбранное фиксированное подмножество пар токенов.
  • Flash Attention: ускоряет обычное плотное внимание, разбивая вычисления на блоки во внутрикристальной памяти GPU, и даёт тот же результат, что и стандартное внимание.
  • Внимание визуального трансформера (ViT): сравнивает каждый фрагмент изображения со всеми остальными, поэтому вычислительные затраты растут пропорционально квадрату количества фрагментов.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения