Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Deformable Attention

A atenção deformável permite que cada consulta preste atenção a alguns pontos de amostragem aprendidos em torno de um local de referência, em vez de todas as posições de um mapa de características.

A atenção deformável é um mecanismo de atenção para visão computacional em que cada consulta atende a um número pequeno e fixo de pontos de amostragem em torno de uma posição de referência, em vez de atender a todas as posições de um mapa de características. A própria consulta prevê onde ficam esses pontos, como deslocamentos em relação à referência, e qual o peso de cada um; assim, o custo aumenta com o número de consultas e de pontos, e não com a resolução da imagem. Xizhou Zhu, Jifeng Dai e colegas da SenseTime, da University of Science and Technology of China e da Chinese University of Hong Kong introduziram a técnica em Deformable DETR, um artigo apresentado oralmente na ICLR 2021. A técnica resolveu os dois pontos fracos do Transformer de deteção DETR original: a atenção completa limitava-o a características de baixa resolução e o treino demorava 500 épocas. O Deformable DETR precisou de 10 vezes menos épocas e detetou melhor objetos pequenos.

Como funciona a atenção deformável#

A ideia amplia a convolução deformável, também desenvolvida em conjunto por Dai, que aprende deslocamentos para os elementos de um kernel de convolução. Para cada consulta com um ponto de referência, cada cabeça de atenção aplica duas camadas lineares às características da consulta: uma prevê K deslocamentos de amostragem e a outra prevê K pesos de atenção, normalizados com uma softmax. As características de valor em cada ponto deslocado são lidas por interpolação bilinear, uma vez que os deslocamentos podem ser fracionários, e a cabeça devolve a respetiva soma ponderada. O artigo usa 8 cabeças e K = 4 pontos; assim, uma consulta lê 32 posições por mapa de características, enquanto a autoatenção padrão calcularia pontuações para cada píxel. Uma versão com uma única cabeça e escala cabe em poucas linhas de 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")

Imprime Output (100, 32) from 400 samples, not 409,600 dense scores: cada uma das 100 consultas lê 4 das 4.096 posições. O treino ajusta as camadas de deslocamento e de pesos, fazendo com que os pontos se movam em direção às partes da imagem úteis para a tarefa.

Atenção deformável multiescala#

Os objetos aparecem em tamanhos muito diferentes; por isso, o Deformable DETR amostra pontos em vários mapas de características em simultâneo. Com L níveis, cada cabeça usa K pontos em cada nível e normaliza os pesos em conjunto para os L × K pontos, combinando características finas e grosseiras numa única etapa; no codificador, esta abordagem substituiu a rede de pirâmide de características (FPN). O codificador aplica-a como autoatenção, usando cada píxel de cada nível como consulta, e o descodificador aplica-a como atenção cruzada entre as consultas de objetos e as características da imagem.

O RT-DETR, o Transformer de deteção em tempo real da Baidu disponível no pacote Ultralytics, usa atenção deformável multiescala como atenção cruzada nas suas seis camadas de descodificador: cada uma das 300 consultas de objetos amostra 4 pontos por cabeça em 8 cabeças nos mapas de características com strides 8, 16 e 32, ou seja, 96 posições no total, enquanto a atenção cruzada completa sobre esses mapas de uma imagem de 640 píxeis calcularia pontuações para 8.400 posições.

Aplicações#

  • Deteção de objetos: os sucessores do Deformable DETR, incluindo o DINO e o RT-DETR, mantêm a atenção cruzada deformável nos descodificadores, o que lhes permite consultar características de alta resolução para objetos pequenos.
  • Veículos autónomos: o BEVFormer projeta imagens de várias câmaras de um carro numa grelha com vista aérea, na qual cada célula da grelha amostra pontos deformáveis nas vistas das câmaras que a abrangem.
  • Segmentação panótica: o Mask2Former cria as suas características de píxeis multiescala com atenção deformável antes de prever máscaras.
  • Atenção com janela deslizante: atende a uma vizinhança fixa definida pela posição, igual para todas as entradas.
  • Atenção esparsa: calcula pontuações para um subconjunto fixo de pares de tokens, escolhido antecipadamente.
  • Atenção Flash: calcula atenção densa normal mais rapidamente, dividindo-a em blocos na memória integrada ao chip da GPU, com o mesmo resultado da atenção padrão.
  • Atenção do Transformer de visão (ViT): compara cada recorte da imagem com todos os outros, pelo que o custo aumenta com o quadrado do número de recortes.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina