Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Cos'è R-CNN? Una rapida panoramica

Abirami Vina

6 minuti di lettura

7 giugno 2024

Scopri RCNN e il suo impatto sull'object detection. Tratteremo i suoi componenti chiave, le applicazioni e il ruolo nel progresso di tecniche come Fast RCNN e YOLO.

L'object detection è un compito di computer vision in grado di riconoscere e localizzare oggetti in immagini o video per applicazioni come la guida autonoma, la sorveglianza e l'imaging medicale. I primi metodi di object detection, come il rilevatore Viola-Jones e l'Histogram of Oriented Gradients (HOG) con Support Vector Machines (SVM), si basavano su caratteristiche artigianali e finestre scorrevoli. Questi metodi spesso faticavano a rilevare con precisione gli oggetti in scene complesse con più oggetti di varie forme e dimensioni.

Le Reti Neurali Convoluzionali basate su regioni (R-CNN) hanno cambiato il modo in cui affrontiamo il rilevamento di oggetti. È una pietra miliare importante nella storia della computer vision. Per capire come sono nati modelli come YOLOv8 , dobbiamo prima capire modelli come R-CNN. 

Creato da Ross Girshick e dal suo team, l'architettura del modello R-CNN genera proposte di regione, estrae caratteristiche con una rete neurale convoluzionale (CNN) pre-addestrata, classifica gli oggetti e perfeziona i riquadri di delimitazione. Anche se può sembrare scoraggiante, alla fine di questo articolo avrai una chiara comprensione di come funziona R-CNN e perché è così di impatto. Diamo un'occhiata!

Come funziona R-CNN?

Il processo di object detection del modello R-CNN prevede tre fasi principali: generazione di proposte di regione, estrazione di caratteristiche e classificazione degli oggetti, affinando al contempo i loro bounding box. Analizziamo ogni fase.

Fig. 1. Come funziona R-CNN.

Proposte di regione: la spina dorsale di RCNN

Nella prima fase, il modello R-CNN scansiona l'immagine per creare numerose proposte di regione. Le proposte di regione sono aree potenziali che potrebbero contenere oggetti. Metodi come la Selective Search vengono utilizzati per esaminare vari aspetti dell'immagine, come il colore, la texture e la forma, scomponendola in diverse parti. La Selective Search inizia dividendo l'immagine in parti più piccole, quindi unendo quelle simili per formare aree di interesse più grandi. Questo processo continua fino a quando non vengono generate circa 2.000 proposte di regione.

Fig. 2. Come funziona la Selective Search.

Queste proposte di regione aiutano a identificare tutti i possibili punti in cui un oggetto potrebbe essere presente. Nei passaggi successivi, il modello può elaborare in modo efficiente le aree più rilevanti concentrandosi su queste aree specifiche piuttosto che sull'intera immagine. L'uso di proposte di regione bilancia l'accuratezza con l'efficienza computazionale.

Estrazione delle feature delle immagini: catturare i dettagli

Il passo successivo nel processo di object detection del modello R-CNN è estrarre le caratteristiche dalle region proposals. Ogni region proposal viene ridimensionata a una dimensione coerente che la CNN si aspetta (ad esempio, 224x224 pixel). Il ridimensionamento aiuta la CNN a elaborare ogni proposal in modo efficiente. Prima del warping, la dimensione di ogni region proposal viene leggermente ampliata per includere 16 pixel di contesto aggiuntivo attorno alla regione per fornire maggiori informazioni circostanti per una migliore estrazione delle caratteristiche.

Una volta ridimensionate, queste proposte di regione vengono inserite in una CNN come AlexNet, che di solito è pre-addestrata su un ampio dataset come ImageNet. La CNN elabora ogni regione per estrarre vettori di caratteristiche ad alta dimensione che catturano dettagli importanti come bordi, texture e pattern. Questi vettori di caratteristiche condensano le informazioni essenziali dalle regioni. Trasformano i dati grezzi dell'immagine in un formato che il modello può utilizzare per ulteriori analisi. La classificazione e la localizzazione accurate degli oggetti nelle fasi successive dipendono da questa cruciale conversione delle informazioni visive in dati significativi.

Fig 3. Estrazione di caratteristiche da una region proposal tramite AlexNet.

Classificazione degli oggetti: identificazione degli oggetti rilevati

Il terzo passaggio consiste nel classificare gli oggetti all'interno di queste regioni. Ciò significa determinare la categoria o la classe di ciascun oggetto trovato all'interno delle proposte. I vettori di caratteristiche estratti vengono quindi passati attraverso un classificatore di machine learning.

Nel caso di R-CNN, le Macchine a Vettori di Supporto (SVM) sono comunemente utilizzate per questo scopo. Ogni SVM è addestrata a riconoscere una specifica classe di oggetti analizzando i vettori di caratteristiche e decidendo se una particolare regione contiene un'istanza di quella classe. Essenzialmente, per ogni categoria di oggetti, c'è un classificatore dedicato che controlla ogni proposta di regione per quello specifico oggetto.

Durante l'addestramento, ai classificatori vengono forniti dati etichettati con campioni positivi e negativi:

  • Esempi positivi: Regioni contenenti l'oggetto target.
  • Campioni negativi: regioni senza l'oggetto.

I classificatori imparano a distinguere tra questi campioni. La regressione del bounding box perfeziona ulteriormente la posizione e le dimensioni degli oggetti rilevati regolando i bounding box proposti inizialmente per adattarsi meglio ai confini effettivi dell'oggetto. Il modello R-CNN può identificare e localizzare accuratamente gli oggetti combinando la classificazione e la regressione del bounding box.

Fig. 4. Un esempio di regressione del bounding box. (fonte: towardsdatascience.com)

Mettendo tutto insieme: Affinare i rilevamenti con NMS

Dopo le fasi di classificazione e regressione del riquadro di delimitazione, il modello genera spesso più riquadri di delimitazione sovrapposti per lo stesso oggetto. La soppressione non massima (NMS) viene applicata per affinare questi rilevamenti, mantenendo i riquadri più accurati. Il modello elimina i riquadri ridondanti e sovrapposti applicando NMS e mantiene solo i rilevamenti più affidabili. 

NMS funziona valutando i punteggi di confidenza (che indicano la probabilità che un oggetto rilevato sia effettivamente presente) di tutte le bounding box e sopprimendo quelle che si sovrappongono significativamente alle box con punteggi più alti. 

Fig 5. Un esempio di soppressione non massima. (fonte:towardsdatascience.com)

Ecco un'analisi dettagliata dei passaggi in NMS:

  • Ordinamento: I bounding box sono ordinati in ordine decrescente in base ai loro confidence score.
  • Selezione: Viene selezionato il box con il punteggio più alto e vengono rimossi tutti i box che si sovrappongono in modo significativo (in base all'Intersection over Union, IoU) con esso.
  • Iterazione: Questo processo si ripete per la casella con il punteggio più alto successivo e continua fino a quando tutte le caselle non sono state elaborate.

Per mettere insieme il tutto, il modello R-CNN rileva gli oggetti generando proposte di regione, estraendo caratteristiche con una CNN, classificando gli oggetti e perfezionando le loro posizioni con la regressione del riquadro di delimitazione e utilizzando la soppressione non massima (NMS) mantenendo solo i rilevamenti più accurati.

R-CNN è una pietra miliare nel rilevamento oggetti

R-CNN è un modello fondamentale nella storia del rilevamento oggetti perché ha introdotto un nuovo approccio che ha notevolmente migliorato l'accuratezza e le prestazioni. Prima di R-CNN, i modelli di rilevamento oggetti faticavano a bilanciare velocità e precisione. Il metodo di R-CNN di generare proposte di regione e utilizzare CNN per l'estrazione di caratteristiche consente la localizzazione e l'identificazione precise degli oggetti all'interno delle immagini. 

R-CNN ha aperto la strada a modelli come Fast R-CNN, Faster R-CNN e Mask R-CNN, che hanno ulteriormente migliorato l'efficienza e l'accuratezza. Combinando il deep learning con l'analisi basata sulle regioni, R-CNN ha stabilito un nuovo standard nel campo e ha aperto possibilità per varie applicazioni nel mondo reale.

Trasformare l'imaging medicale con R-CNN

Un caso d'uso interessante di R-CNN è nell'imaging medicale. I modelli R-CNN sono stati utilizzati per rilevare e classificare diversi tipi di tumori, come i tumori cerebrali, in scansioni mediche come risonanze magnetiche e TAC. L'utilizzo del modello R-CNN nell'imaging medicale migliora l'accuratezza diagnostica e aiuta i radiologi a identificare le malignità in una fase precoce. La capacità di R-CNN di rilevare anche tumori piccoli e in fase iniziale può fare una differenza significativa nel trattamento e nella prognosi di malattie come il cancro.

Fig. 6. Rilevamento di tumori cerebrali tramite RCNN.

Il modello R-CNN può essere applicato ad altri task di imaging medicale oltre al rilevamento di tumori. Ad esempio, può identificare fratture, rilevare malattie della retina nelle scansioni oculari e analizzare immagini polmonari per condizioni come la polmonite e il COVID-19. Indipendentemente dal problema medico, la diagnosi precoce può portare a migliori risultati per i pazienti. Applicando la precisione di R-CNN nell'identificazione e localizzazione di anomalie, i fornitori di assistenza sanitaria possono migliorare l'affidabilità e la velocità della diagnostica medica. Con il rilevamento di oggetti che semplifica il processo di diagnosi, i pazienti possono beneficiare di piani di trattamento tempestivi e accurati.

I limiti di R-CNN e i suoi successori

Sebbene sia impressionante, R-CNN presenta alcuni inconvenienti, come l'elevata complessità computazionale e i tempi di inferenza lenti. Questi inconvenienti rendono il modello R-CNN inadatto per le applicazioni in tempo reale. La separazione delle proposte di regione e delle classificazioni in fasi distinte può portare a prestazioni meno efficienti.

Nel corso degli anni, sono stati sviluppati diversi modelli di object detection che hanno affrontato queste problematiche. Fast R-CNN combina le region proposal e l'estrazione di feature CNN in un unico passaggio, velocizzando il processo. Faster R-CNN introduce una Region Proposal Network (RPN) per semplificare la generazione di proposte, mentre Mask R-CNN aggiunge la segmentazione a livello di pixel per rilevamenti più dettagliati.

Fig. 7. Confronto tra R-CNN, fast R-CNN, faster R-CNN e mask R-CNN.

Nello stesso periodo di Faster R-CNN, la serie YOLO (You Only Look Once) ha iniziato a far progredire il rilevamento di oggetti in tempo reale. I modelli YOLO prevedono i riquadri di delimitazione e le probabilità di classe in un singolo passaggio attraverso la rete. Ad esempio, Ultralytics YOLOv8 offre una maggiore accuratezza e velocità con funzionalità avanzate per molte attività di computer vision.

Punti chiave

RCNN ha cambiato le regole del gioco nella computer vision, dimostrando come il deep learning può trasformare l'object detection. Il suo successo ha ispirato molte nuove idee nel settore. Anche se modelli più recenti come Faster R-CNN e YOLO sono nati per risolvere i difetti di RCNN, il suo contributo è una pietra miliare fondamentale da ricordare.

Con il proseguire della ricerca, vedremo modelli di rilevamento oggetti ancora migliori e più veloci. Questi progressi non solo miglioreranno il modo in cui le macchine comprendono il mondo, ma porteranno anche a progressi in molti settori. Il futuro del rilevamento oggetti si preannuncia entusiasmante!

Vuoi continuare a esplorare il mondo dell'IA? Entra a far parte della community di Ultralytics! Esplora il nostro repository GitHub per scoprire le nostre ultime innovazioni nel campo dell'intelligenza artificiale. Scopri le nostre soluzioni di IA che abbracciano vari settori come l'agricoltura e la produzione. Unisciti a noi per imparare e crescere!

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis
Link copiato negli appunti