Approfondimento sui trasformatori per il rilevamento di oggetti (DETR)

 | Intelligenza-Artificiale

Approfondimento e spiegazioni chiare sul documento “Rilevamento end-to-end con trasformatori”

fotografato da Aditya Vyas SU Unsplash

Nota: questo articolo approfondisce l’intricato mondo della visione artificiale, concentrandosi in particolare sui trasformatori e sul meccanismo di attenzione. Si consiglia di conoscere i concetti chiave dell’articolo “L’attenzione è tutto ciò di cui hai bisogno.”

DETRCorto per DItezione TRansformer, ha aperto la strada a una nuova ondata di rilevamento di oggetti su idea di Nicolas Carion e del team di Ricerca sull’intelligenza artificiale di Facebook nel 2020.

Pur non avendo attualmente lo status SOTA (State Of The Art), la riformulazione innovativa del DETR dei compiti di rilevamento degli oggetti ha influenzato in modo significativo i modelli successivi, come CO-DETR, che rappresenta l’attuale stato dell’arte in Rilevamento oggetti E Segmentazione delle istanze.

Allontanandosi dallo scenario convenzionale del problema uno-a-molti, in cui ogni verità fondamentale corrisponde a una miriade di candidati ancoraggi, DETR introduce una nuova prospettiva considerando il rilevamento degli oggetti come un impostare il problema della previsionecon una corrispondenza uno a uno tra previsioni e verità di base, eliminando così la necessità di determinate tecniche di post-elaborazione.

Il rilevamento degli oggetti è un dominio della visione artificiale che si concentra sull’identificazione e la localizzazione degli oggetti all’interno di immagini o fotogrammi video. Oltre a classificare semplicemente un oggetto, fornisce un riquadro di delimitazione, che indica la posizione dell’oggetto nell’immagine, consentendo così ai sistemi di comprendere il contesto spaziale e il posizionamento dei vari oggetti identificati.

Segmentazione video Yolo5, fonte

Il rilevamento degli oggetti è di per sé molto utile, ad esempio nella guida autonoma, ma è anche un compito preliminare segmentazione delle istanzedove proviamo a cercare un contorno più preciso degli oggetti, pur essendo in grado di differenziare tra istanze diverse (a differenza della segmentazione semantica).

Soppressione non massima, immagine dell’autore

Soppressione non massima (NMS) è stato a lungo la pietra angolare degli algoritmi di rilevamento degli oggetti, svolgendo un ruolo indispensabile nella post-elaborazione per perfezionare i risultati della previsione. Nelle strutture tradizionali di rilevamento degli oggetti, il modello propone una serie di riquadri di delimitazione attorno alle potenziali regioni degli oggetti, alcuni dei quali mostrano invariabilmente una sostanziale sovrapposizione (come mostrato nell’immagine sopra).

NMS affronta questo problema preservando il riquadro di delimitazione con il massimo punteggio di oggettività previstoe sopprimendo contemporaneamente i riquadri vicini che manifestano un elevato grado di sovrapposizione, quantificato dalla metrica Intersection over Union (IoU). Nello specifico, data una soglia IoU prestabilita, NMS seleziona iterativamente il riquadro di delimitazione con il punteggio di confidenza più alto e annulla quelli con IoU che supera questa soglia, garantendo una previsione singolare e altamente sicura per oggetto

Nonostante la sua ubiquità, DETR (DEtection TRansformer) elude audacemente il convenzionale NMS, reinventando il rilevamento degli oggetti mediante formulandolo come un problema di previsione insiemistica.

Sfruttando i trasformatori, DETR prevede direttamente un insieme di riquadri di delimitazione di dimensione fissa e ovvia alla necessità del tradizionale NMS, in modo notevole semplificando la pipeline di rilevamento degli oggetti preservando, se non migliorando, le prestazioni del modello.

Nel quadro di alto livello, DETR lo è

  • Un codificatore di immagini (in realtà è un doppio codificatore di immagini perché innanzitutto c’è a La spina dorsale della CNN seguito da a Trasformatore Codificatore per una maggiore espressività)
  • UN Decodificatore del trasformatore che produce i riquadri di delimitazione dalla codifica dell’immagine.
Architettura DETR, immagine da articolo

Andiamo più nel dettaglio in ogni parte:

  1. Spina dorsale:

Partiamo da un’immagine iniziale con 3 canali colore:

E questa immagine viene immessa in una spina dorsale che è una rete neurale convoluzionale

I valori tipici che utilizziamo sono C = 2048 E H = L = H0 = L0 = 32

2. Codificatore del trasformatore:

Il Transformer Encoder teoricamente non è obbligatorio ma aggiunge più espressività alla dorsale e gli studi di ablazione mostrano prestazioni migliorate.

Innanzitutto, una convoluzione 1×1 riduce la dimensione del canale della mappa di attivazione di alto livello F da C ad una dimensione più piccola D.

Dopo la Convoluzione

Ma come sai, i Transformer mappano una sequenza di vettori in input su una sequenza di vettori in output, quindi dobbiamo comprimere la dimensione spaziale:

Dopo aver fatto crollare la dimensione spaziale

Ora siamo pronti per trasmetterlo al Transformer Encoder.

È importante notare che il Transformer Encoder utilizza solo il meccanismo di auto-attenzione.

Questo è tutto per il Parte di codifica delle immagini!

Maggiori dettagli sul Decoder, Immagine da articolo

3. Decodificatore del trasformatore:

Questa parte è la più difficile da capire, aspetta un attimo, se capisci questo, capirai la maggior parte dell’articolo.

Il Decodificatore utilizza una combinazione di meccanismi di Auto-Attenzione e di Attenzione Incrociata. È nutrito N query di oggetti e ogni query verrà trasformata in una casella e una classe di output.

Che aspetto ha una previsione a scatola?

In realtà è composto da 2 componenti.

  • Un riquadro di delimitazione ha alcune coordinate (x1, y1, x2, y2) per identificare il riquadro di delimitazione.
  • Una classe (ad esempio seagul, ma può anche essere vuota)

È importante notarlo N è aggiustato. Ciò significa che DETR prevede sempre esattamente N riquadri di delimitazione. Ma alcuni di essi possono essere vuoti. Dobbiamo solo assicurarcene N è abbastanza grande da coprire un numero sufficiente di oggetti nelle immagini.

Quindi il Meccanismo di Attenzione Incrociata può intervenire sulle caratteristiche dell’immagine prodotte dalla parte di Codifica (Backbone + Transformer Encoder).

Se non sei sicuro del meccanismo, questo schema dovrebbe chiarirti le cose:

Meccanismo di attenzione dettagliato, immagine da articolo

Nell’architettura originale del Transformer produciamo un token e poi utilizziamo una combinazione di auto-attenzione e attenzione incrociata per produrre il token successivo e ripetere. Ma qui non abbiamo bisogno di questa formulazione di ricorrenza, possiamo semplicemente produrre tutti gli output contemporaneamente in modo da poter sfruttare il parallelismo.

Come accennato in precedenza, DETR produce esattamente N output (bbox + classe). Ma ogni output corrisponde solo ad una verità fondamentale. Se ricordi bene, questo è il punto, non vogliamo applicare alcuna post-elaborazione per filtrare le caselle sovrapposte.

Corrispondenza bipartita, immagine dell’autore

Vogliamo fondamentalmente associare ogni previsione con la verità più vicina. Quindi stiamo effettivamente cercando una biiezione tra l’insieme di previsione e l’insieme di verità fondamentale, che minimizzi una perdita totale.

Allora come definiamo questa perdita?

1. La perdita corrispondente (perdita a coppie)

Dobbiamo prima definire una perdita corrispondente, che corrisponde alla perdita tra una casella di previsione e una casella di verità:

E questa perdita è divisa e deve tenere conto di 2 componenti:

  • La perdita di classificazione (la classe prevista all’interno del riquadro di delimitazione è uguale alla verità fondamentale)
  • La perdita del riquadro di delimitazione (il riquadro di delimitazione è vicino alla verità fondamentale)
Perdita di corrispondenza

E più precisamente per il componente bounding box ci sono 2 sotto componenti:

  • Intersezione sulla perdita dell’Unione (IOU)
  • Perdita L1 (differenza assoluta tra le coordinate)

2. Perdita totale della biiezione

Per calcolare la perdita totale, sommiamo semplicemente il N istanze:

Quindi fondamentalmente il nostro problema è trovare la biiezione che minimizza la perdita totale:

Riformulazione del problema
Prestazioni di DETR rispetto a RCNN più veloce
  • DETR: Si riferisce al modello originale, che utilizza un trasformatore per il rilevamento degli oggetti e a ResNet-50 come spina dorsale.
  • DETR-R101: Questa è una variante del DETR che impiega a Dorsale ResNet-101 invece di ResNet-50. Qui, “R101” si riferisce a “ResNet-101”.
  • DETR-DC5: Questa versione di DETR utilizza la versione modificata, stadio C5 dilatato nella sua dorsale ResNet-50migliorare le prestazioni del modello su oggetti più piccoli grazie alla maggiore risoluzione delle caratteristiche.
  • DETR-DC5-R101: Questa variante combina entrambe le modifiche. Utilizza un backbone ResNet-101 e include lo stadio C5 dilatato, beneficiando sia della rete più profonda che della maggiore risoluzione delle funzionalità.

DETR supera significativamente le prestazioni delle linee di base su oggetti di grandi dimensioni, il che è molto probabilmente consentito dai calcoli non locali consentiti dal trasformatore. Ma è abbastanza interessante che il DETR raggiunga prestazioni inferiori su oggetti di piccole dimensioni.

Attenzione alle istanze sovrapposte, immagine dall’articolo

Molto interessante, possiamo osservare che nel caso di istanze sovrapposte, il meccanismo di attenzione è in grado di separare correttamente le singole istanze come mostrato nell’immagine sopra.

Meccanismo di attenzione sulle estremità

È anche molto interessante notare che l’attenzione si concentra sulle estremità degli oggetti per produrre il riquadro di delimitazione, che è esattamente ciò che ci aspettiamo.

Il DETR non è semplicemente un modello; si tratta di un cambiamento di paradigma, che trasforma il rilevamento di oggetti da un problema uno-a-molti in un problema di previsione di un insieme, utilizzando in modo efficace i progressi dell’architettura Transformer.

Sin dal suo inizio si sono verificati miglioramenti, con modelli come DETR++ e CO-DETR che ora guidano la nave come stato dell’arte nella segmentazione delle istanze e nel rilevamento degli oggetti sul set di dati COCO.

Grazie per aver letto! Prima che tu vada:

Ydovresti ricevere i miei articoli nella tua casella di posta. Iscriviti qui.

Se desideri avere accesso ad articoli premium su Medium, hai solo bisogno di un abbonamento per $ 5 al mese. Se ti iscrivi con il mio collegamentomi sostieni con una parte del tuo compenso senza costi aggiuntivi.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *