Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Deformable Attention

L'attenzione deformabile consente a ogni query di prestare attenzione a pochi punti di campionamento appresi attorno a una posizione di riferimento, anziché a ogni posizione di una mappa delle caratteristiche.

L'attenzione deformabile è un meccanismo di attenzione per la visione artificiale in cui ogni query presta attenzione a un numero ridotto e fisso di punti di campionamento attorno a una posizione di riferimento, invece che a ogni posizione di una mappa delle caratteristiche. La query prevede la posizione di questi punti come offset rispetto al riferimento e il peso da assegnare a ciascuno, quindi il costo cresce in base al numero di query e di punti, non alla risoluzione dell'immagine. Xizhou Zhu, Jifeng Dai e i colleghi di SenseTime, della University of Science and Technology of China e della Chinese University of Hong Kong l'hanno introdotta in Deformable DETR, un articolo presentato oralmente a ICLR 2021. Il metodo ha risolto i due punti deboli del Transformer di rilevamento DETR originale: l'attenzione completa lo limitava a caratteristiche a bassa risoluzione e l'addestramento richiedeva 500 epoche. Deformable DETR ha richiesto 10 volte meno epoche e ha rilevato meglio gli oggetti piccoli.

Come funziona l'attenzione deformabile#

L'idea estende la convoluzione deformabile, sviluppata anche da Dai, che apprende gli offset delle posizioni del kernel convoluzionale. Per ogni query con un punto di riferimento, ciascuna testa di attenzione applica due livelli lineari alle caratteristiche della query: uno prevede K offset di campionamento e l'altro K pesi di attenzione, normalizzati con una softmax. Le caratteristiche dei valori in ciascun punto spostato vengono lette tramite interpolazione bilineare, poiché gli offset sono frazionari, e la testa ne restituisce la somma ponderata. Il paper usa 8 teste e K = 4 punti, quindi ogni query legge 32 posizioni per mappa delle caratteristiche, mentre la self-attention standard assegnerebbe un punteggio a ogni pixel. Una versione a testa singola e scala singola può essere implementata in poche righe di 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")

Stampa Output (100, 32) from 400 samples, not 409,600 dense scores: ciascuna delle 100 query legge 4 delle 4.096 posizioni. L'addestramento modifica i livelli degli offset e dei pesi, così i punti si spostano verso le parti dell'immagine utili per il task.

Attenzione deformabile multiscala#

Gli oggetti hanno dimensioni molto diverse, quindi Deformable DETR campiona punti contemporaneamente su più mappe delle caratteristiche. Con L livelli, ogni testa prende K punti per livello e normalizza insieme i pesi su tutti gli L × K punti; in un solo passaggio combina così caratteristiche fini e grossolane, sostituendo la rete piramidale delle caratteristiche (FPN) del suo encoder. L'encoder la applica come self-attention, usando ogni pixel di ogni livello come query, mentre il decoder la applica come cross-attention dalle query degli oggetti alle caratteristiche dell'immagine.

RT-DETR, il Transformer di rilevamento in tempo reale di Baidu disponibile nel pacchetto Ultralytics, usa l'attenzione deformabile multiscala come cross-attention nei suoi sei livelli del decoder: ciascuna delle 300 query degli oggetti campiona 4 punti per testa in 8 teste sulle mappe delle caratteristiche stride-8, stride-16 e stride-32, per un totale di 96 posizioni; la cross-attention completa su quelle mappe di un'immagine da 640 pixel assegnerebbe invece un punteggio a 8.400 posizioni.

Applicazioni#

  • Rilevamento degli oggetti: i successori di Deformable DETR, tra cui DINO e RT-DETR, mantengono la cross-attention deformabile nei decoder, che consente loro di leggere caratteristiche ad alta risoluzione per gli oggetti piccoli.
  • Veicoli autonomi: BEVFormer proietta le immagini di più telecamere dell'auto in una griglia con vista dall'alto; ogni cella della griglia campiona punti deformabili nelle viste delle telecamere che la inquadrano.
  • Segmentazione panottica: Mask2Former crea le proprie caratteristiche pixel multiscala con l'attenzione deformabile prima di prevedere le maschere.
  • Attenzione a finestra scorrevole: presta attenzione a un insieme fisso di elementi vicini determinato dalla posizione, identico per ogni input.
  • Attenzione sparsa: assegna punteggi a un sottoinsieme fisso di coppie di token selezionato in anticipo.
  • FlashAttention: calcola più rapidamente l'attenzione densa ordinaria suddividendola in blocchi nella memoria GPU integrata, con lo stesso risultato dell'attenzione standard.
  • Attenzione dei Transformer per la visione (ViT): confronta ogni patch dell'immagine con tutte le altre, quindi il costo cresce con il quadrato del numero di patch.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning