Esplorazione del rilevamento di oggetti con i modelli R-CNN: una guida completa per principianti (Parte 2) |  di Raghav Bali |  Febbraio 2024

 | Intelligenza-Artificiale

Modelli di rilevamento di oggetti

Il rilevamento degli oggetti è un processo coinvolto che aiuta nella localizzazione e classificazione degli oggetti in una determinata immagine. In parte 1abbiamo sviluppato una comprensione dei concetti di base e del quadro generale per il rilevamento degli oggetti. In questo articolo tratteremo brevemente una serie di importanti modelli di rilevamento degli oggetti concentrandoci sulla comprensione dei loro contributi chiave.

Il quadro generale del rilevamento degli oggetti evidenzia il fatto che sono necessari alcuni passaggi intermedi per eseguire il rilevamento degli oggetti. Basandosi sullo stesso processo di pensiero, i ricercatori hanno ideato una serie di architetture innovative che risolvono questo compito di rilevamento degli oggetti. Uno dei modi per separare tali modelli è il modo in cui affrontano il compito assegnato. Modelli di rilevamento di oggetti che sfruttano più modelli e/o passaggi per risolvere questo compito, chiamati rilevatori di oggetti a più fasi. La famiglia di modelli CNN basati sulla regione (RCNN) ne è un ottimo esempio rilevatori di oggetti multistadio. Successivamente, una serie di miglioramenti hanno portato ad architetture di modelli che risolvono questo compito utilizzando un unico modello stesso. Tali modelli sono chiamati come rilevatori di oggetti monostadio. Tratteremo i modelli a stadio singolo in un articolo successivo. Per ora, diamo un’occhiata sotto il cofano di alcuni di questi rilevatori di oggetti multistadio.

Reti neurali convoluzionali basate su regioni

Le reti neurali convoluzionali basate su regioni (R-CNN) sono state inizialmente presentate da Girshick et. al. nel loro articolo intitolato “Ricche gerarchie di funzionalità per il rilevamento accurato degli oggetti e la segmentazione semantica” nel 2013. R-CNN è un modello di rilevamento di oggetti a più fasi che è diventato il punto di partenza per varianti più veloci e sofisticate negli anni successivi. Iniziamo con questa idea di base prima di comprendere i miglioramenti ottenuti attraverso R-CNN veloce E R-CNN più veloce Modelli.

Il modello R-CNN è composto da quattro componenti principali:

  • Proposta della Regione: L’estrazione delle regioni di interesse è il primo passo di questo processo. Il modello R-CNN si avvale di un algoritmo chiamato Ricerca selettiva per proposta regionale. La ricerca selettiva è un avido algoritmo di ricerca proposto da Uijlings et. al. nel 2012. Senza entrare troppo nei dettagli, la ricerca selettiva si avvale di un approccio iterativo multiscala dal basso verso l’alto per identificare le ROI. In ogni iterazione l’algoritmo raggruppa regioni simili finché l’intera immagine diventa una singola regione. La somiglianza tra le regioni viene calcolata in base al colore, alla struttura, alla luminosità, ecc. La ricerca selettiva genera molte ROI false positive (di sfondo) ma ha un richiamo elevato. L’elenco delle ROI viene passato al passaggio successivo per l’elaborazione.
  • Estrazione di caratteristiche: La rete R-CNN fa uso di CNN pre-addestrate come VGG o ResNet per estrarre caratteristiche da ciascuna delle ROI identificate nel passaggio precedente. Prima che le regioni/colture vengano passate come input alla rete pre-addestrata, queste vengono rimodellate o deformate alle dimensioni richieste (ogni rete pre-addestrata richiede input solo in dimensioni specifiche). La rete preaddestrata viene utilizzata senza il livello di classificazione finale. L’output di questa fase è un lungo elenco di tensori, uno per ciascuna ROI della fase precedente.
  • Responsabile della classificazione: Il documento originale della R-CNN utilizzava le Support Vector Machines (SVM) come classificatore per identificare la classe dell’oggetto nella ROI. SVM è un algoritmo supervisionato tradizionale ampiamente utilizzato per scopi di classificazione. L’output di questo passaggio è un’etichetta di classificazione per ogni ROI.
  • Testa di regressione: Questo modulo si occupa dell’aspetto della localizzazione dell’attività di rilevamento degli oggetti. Come discusso nella sezione precedente, i riquadri di delimitazione possono essere identificati in modo univoco utilizzando 4 coordinate (coordinate in alto a sinistra (x, y) insieme a larghezza e altezza del riquadro). Il regressore restituisce questi 4 valori per ogni ROI.

Questa pipeline è visivamente rappresentata nella Figura 1 come riferimento. Come mostrato nella figura, la rete richiede più passaggi in avanti indipendenti (uno per ciascuna ROI) utilizzando la rete preaddestrata. Questo è uno dei motivi principali che rallenta il modello R-CNN, sia per l’addestramento che per l’inferenza. Gli autori dell’articolo affermano che sono necessarie più di 80 ore per addestrare la rete e un’enorme quantità di spazio su disco. Il secondo collo di bottiglia è lo stesso algoritmo di ricerca selettiva.

Figura 1: Componenti del modello R-CNN.  Il componente della proposta regionale si basa sulla ricerca selettiva seguita da una rete preaddestrata come VGG per l'estrazione delle funzionalità.  La testa di classificazione utilizza SVM e una testa di regressione separata
Figura 1: Componenti del modello R-CNN. Il componente della proposta regionale si basa sulla ricerca selettiva seguita da una rete preaddestrata come VGG per l’estrazione delle funzionalità. La testa di classificazione utilizza SVM e una testa di regressione separata. Fonte: Autore

Il modello R-CNN è un buon esempio di come idee diverse possano essere sfruttate come elementi costitutivi per risolvere un problema complesso. Mentre avremo un esercizio pratico dettagliato per vedere il rilevamento degli oggetti nel contesto dell’apprendimento del trasferimento, nella sua configurazione originale la stessa R-CNN utilizza l’apprendimento del trasferimento.

Il modello R-CNN era lento, ma forniva una buona base per i modelli di rilevamento degli oggetti da sviluppare. La fase di estrazione delle caratteristiche, computazionalmente costosa e lenta, è stata affrontata principalmente nel file R-CNN veloce implementazione. IL R-CNN veloce è stato presentato da Ross Grishick nel 2015. Questa implementazione vanta non solo un addestramento e un’inferenza più rapidi, ma anche una migliore mAP su PASCAL VOC 2012 set di dati.

I contributi chiave di R-CNN veloce documento può essere così riassunto:

  • Proposta della Regione: Per il modello R-CNN di base, abbiamo discusso come l’algoritmo di ricerca selettiva viene applicato all’immagine di input per generare migliaia di ROI su cui lavora una rete preaddestrata per estrarre funzionalità. La Fast R-CNN modifica questo passaggio per ottenere il massimo impatto. Invece di applicare la fase di estrazione delle funzionalità utilizzando la rete preaddestrata migliaia di volte, la rete Fast R-CNN lo fa solo una volta. In altre parole, prima elaboriamo l’intera immagine di input attraverso la rete preaddestrata solo una volta. Le caratteristiche di output vengono quindi utilizzate come input per l’algoritmo di ricerca selettiva per l’identificazione delle ROI. Questo cambiamento nell’ordine dei componenti riduce in buona misura i requisiti di calcolo e il collo di bottiglia delle prestazioni.
  • Livello di pooling del ROI: Le ROI identificate nel passaggio precedente possono avere dimensioni arbitrarie (come identificate dall’algoritmo di ricerca selettiva). Ma i livelli completamente connessi dopo che le ROI sono state estratte accettano come input solo mappe di caratteristiche di dimensione fissa. Il livello di pooling delle ROI è quindi un filtro di dimensione fissa (il documento menziona una dimensione di 7×7) che aiuta a trasformare queste ROI di dimensione arbitraria in vettori di output di dimensione fissa. Questo livello funziona dividendo innanzitutto la ROI in sezioni di uguali dimensioni. Quindi trova il valore più grande in ciascuna sezione (simile all’operazione Max-Pooling). L’output rappresenta solo i valori massimi di ciascuna sezione di uguali dimensioni. Il livello di pooling del ROI accelera notevolmente i tempi di inferenza e addestramento.
  • Perdita multitasking: A differenza di due diversi componenti (SVM e regressore del riquadro di delimitazione) nell’implementazione R-CNN, Faster R-CNN utilizza una rete multi-head. Questa configurazione consente alla rete di essere addestrata congiuntamente per entrambi i compiti utilizzando una funzione di perdita multi-task. La perdita multi-task è una somma ponderata delle perdite di classificazione e regressione rispettivamente per le attività di classificazione degli oggetti e di regressione del riquadro di delimitazione. La funzione di perdita è data come:

Lₘₜ = Lₒ + 𝛾Lᵣ

dove 𝛾 ≥ 1 se la ROI contiene un oggetto (punteggio di oggettività), 0 altrimenti. La perdita di classificazione è semplicemente una perdita logaritmica negativa mentre la perdita di regressione utilizzata nell’implementazione originale è la perdita L1 uniforme.

Il documento originale descrive in dettaglio una serie di esperimenti che evidenziano miglioramenti delle prestazioni basati su varie combinazioni di iperparametri e livelli ottimizzati nella rete preaddestrata. L’implementazione originale utilizzava VGG-16 preaddestrato come rete di estrazione delle funzionalità. Dall’implementazione originale di Fast R-CNN sono state implementate numerose implementazioni più veloci e migliorate come MobileNet, ResNet, ecc. Queste reti possono anche essere scambiate al posto di VGG-16 per migliorare ulteriormente le prestazioni.

R-CNN più veloce è l’ultimo membro di questa famiglia di rilevatori di oggetti multistadio. Questa è di gran lunga la variante più complessa e veloce di tutte. Nonostante Fast R-CNN abbia migliorato notevolmente i tempi di training e di inferenza, è stata comunque penalizzata a causa dell’algoritmo di ricerca selettiva. Il modello Faster R-CNN presentato nel 2016 da Ren et. al. nel loro articolo intitolato “R-CNN più veloce: verso il rilevamento di oggetti in tempo reale con le reti di proposta regionali” affronta innanzitutto l’aspetto della proposta regionale. Questa rete si basa sulla rete Fast R-CNN introducendo un nuovo componente chiamato Rete di proposte regionali (RPN). La rete R-CNN complessiva più veloce è illustrata nella figura 2 come riferimento.

Figura 2: La R-CNN più veloce è composta da due componenti principali: 1) una Region Proposal Network (RPN) per identificare le ROI e 2) una rete multi-head simile alla R-CNN veloce con livello di pooling della ROI.
Figura 2: La R-CNN più veloce è composta da due componenti principali: 1) una Region Proposal Network (RPN) per identificare le ROI e 2) una rete multi-head simile alla R-CNN veloce con livello di pooling della ROI. Fonte: Autore

RPN è una rete completamente convoluzionale (FCN) che aiuta a generare ROI. Come mostrato nella figura 3.12, RPN è costituito solo da due strati. Il primo è uno strato convoluzionale 3×3 con 512 filtri seguito da due strati convoluzionali paralleli 1×1 (uno ciascuno rispettivamente per la classificazione e la regressione). Il filtro convoluzionale 3×3 viene applicato all’output della mappa delle caratteristiche della rete preaddestrata (il cui input è l’immagine originale). Tieni presente che il livello di classificazione in RPN è un livello di classificazione binario per la determinazione del punteggio di oggettività (non della classe dell’oggetto). La regressione del riquadro di delimitazione viene eseguita utilizzando filtri convoluzionali 1×1 sui riquadri di ancoraggio. La configurazione proposta nel documento utilizza 9 scatole di ancoraggio per finestra, quindi l’RPN genera 18 punteggi di oggettività (2xK) e 36 coordinate di posizione (4xK), dove K=9 è il numero di scatole di ancoraggio. L’uso di RPN (invece della ricerca selettiva) migliora i tempi di addestramento e inferenza di ordini di grandezza.

La rete Faster R-CNN è una rete di rilevamento di oggetti end-to-end. A differenza dei modelli R-CNN base e Fast R-CNN che utilizzavano una serie di componenti indipendenti per l’addestramento, Faster R-CNN può essere addestrato nel suo complesso.

Questo conclude la nostra discussione sulla famiglia di rilevatori di oggetti R-CNN. Abbiamo discusso i contributi chiave per comprendere meglio come funzionano queste reti.

Fonte: towardsdatascience.com

Lascia un commento

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