Cos'è R-CNN? Una rapida panoramica
Scopri R-CNN e il suo impatto sul rilevamento degli oggetti. Analizzeremo i suoi componenti chiave, le applicazioni e il ruolo nel far avanzare tecniche come Fast R-CNN e YOLO.

Object detection è un'attività di visione artificiale in grado di riconoscere e individuare oggetti in immagini o video per applicazioni come la guida autonoma, la sorveglianza e l'imaging medico. I metodi precedenti di object detection, come il rilevatore Viola-Jones e gli istogrammi dei gradienti orientati (HOG) con le Support Vector Machines (SVM), si basavano su caratteristiche realizzate a mano e finestre scorrevoli. Questi metodi spesso incontravano difficoltà nel rilevare accuratamente oggetti in scene complesse con più oggetti di varie forme e dimensioni.
Le Region-based Convolutional Neural Networks (R-CNN) hanno cambiato il modo in cui affrontiamo il rilevamento di oggetti. Si tratta di un traguardo importante nella storia della computer vision. Per capire come sono nati modelli come Ultralytics YOLOv8, dobbiamo prima comprendere modelli come R-CNN.
Creata da Ross Girshick e dal suo team, l'architettura del modello R-CNN genera proposte di regioni, estrae caratteristiche con una Convolutional Neural Network (CNN) preaddestrata, classifica gli oggetti e perfeziona i bounding box. Anche se potrebbe sembrare complesso, alla fine di questo articolo avrai una chiara comprensione di come funziona R-CNN e perché è così importante. Diamo un'occhiata!
Come funziona R-CNN?#
Il processo di object detection del modello R-CNN prevede tre fasi principali: generazione di proposte di regioni, estrazione di caratteristiche e classificazione degli oggetti con rifinitura dei bounding box. Analizziamo ogni fase.

Fig 1. Come funziona R-CNN.
Proposte di regioni: la spina dorsale di RCNN#
Nel primo passaggio, il modello R-CNN scansiona l'immagine per creare numerose proposte di regioni. Le proposte di regioni sono aree potenziali che potrebbero contenere oggetti. Metodi come la Selective Search vengono utilizzati per esaminare vari aspetti dell'immagine, come colore, consistenza e forma, scomponendola in diverse parti. La Selective Search inizia dividendo l'immagine in parti più piccole, per poi unire quelle simili per formare aree di interesse più grandi. Questo processo continua fino a generare circa 2.000 proposte di regioni.

Fig 2. Come funziona la ricerca selettiva.
Queste proposte di regioni aiutano a identificare tutti i possibili punti in cui potrebbe essere presente un oggetto. Nei passaggi successivi, il modello può elaborare in modo efficiente le aree più pertinenti concentrandosi su queste aree specifiche anziché sull'intera immagine. L'utilizzo delle proposte di regioni bilancia accuratezza ed efficienza computazionale.
Estrazione delle caratteristiche dell'immagine: catturare i dettagli#
Il passo successivo nel processo di object detection del modello R-CNN è l'estrazione delle caratteristiche dalle proposte di regioni. Ogni proposta di regione viene ridimensionata a una dimensione coerente prevista dalla CNN (ad esempio, 224x224 pixel). Il ridimensionamento aiuta la CNN a elaborare ogni proposta in modo efficiente. Prima del warping, la dimensione di ciascuna proposta di regione viene leggermente ampliata per includere 16 pixel di contesto aggiuntivo attorno alla regione, fornendo maggiori informazioni circostanti per una migliore estrazione delle caratteristiche.
Una volta ridimensionate, queste proposte di regioni vengono inserite in una CNN come AlexNet, che solitamente è pre-addestrata su un ampio dataset come ImageNet. La CNN elabora ogni regione per estrarre vettori di caratteristiche ad alta dimensionalità che catturano dettagli importanti come bordi, consistenze e motivi. 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 di informazioni visive in dati significativi.

Fig 3. Estrazione di caratteristiche da una proposta di regione utilizzando AlexNet.
Classificazione degli oggetti: identificare gli 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 Support Vector Machines (SVM) sono comunemente usate 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 oggetto, esiste 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:
- Campioni positivi: regioni contenenti l'oggetto target.
- Campioni negativi: regioni senza l'oggetto.
I classificatori imparano a distinguere tra questi campioni. La regressione dei bounding box rifinisce ulteriormente la posizione e la dimensione degli oggetti rilevati, regolando i bounding box inizialmente proposti per adattarli meglio ai bordi effettivi dell'oggetto. Il modello R-CNN può identificare e localizzare accuratamente gli oggetti combinando classificazione e regressione dei bounding box.

Fig 4. Un esempio di regressione dei bounding box. (fonte: towardsdatascience.com)
Mettere tutto insieme: rifinire i rilevamenti con NMS#
Dopo le fasi di classificazione e regressione dei bounding box, il modello genera spesso più bounding box sovrapposti per lo stesso oggetto. La Non-Maximum Suppression (NMS) viene applicata per rifinire questi rilevamenti, mantenendo i box più accurati. Il modello elimina i box ridondanti e sovrapposti applicando NMS e mantiene solo i rilevamenti con il punteggio di confidenza più alto.
NMS funziona valutando i punteggi di confidenza (che indicano quanto è probabile che un oggetto rilevato sia effettivamente presente) di tutti i bounding box e sopprimendo quelli che si sovrappongono in modo significativo ai box con punteggi più alti.

Fig 5. Un esempio di non-maximum suppression. (fonte: towardsdatascience.com)
Ecco una suddivisione dei passaggi in NMS:
- Ordinamento: I bounding box vengono ordinati in base ai loro punteggi di confidenza in ordine decrescente.
- Selezione: Viene selezionato il box con il punteggio più alto e vengono rimossi tutti i box che si sovrappongono significativamente (basato su Intersection over Union, IoU) ad esso.
- Iterazione: Questo processo si ripete per il successivo box con il punteggio più alto e continua finché tutti i box non sono stati elaborati.
Per riassumere, il modello R-CNN rileva gli oggetti generando proposte di regioni, estraendo caratteristiche con una CNN, classificando gli oggetti e rifinendo le loro posizioni con la regressione dei bounding box, e utilizzando la Non-Maximum Suppression (NMS) per mantenere solo i rilevamenti più accurati.
R-CNN è una pietra miliare nell'object detection#
R-CNN è un modello fondamentale nella storia dell'object detection perché ha introdotto un nuovo approccio che ha notevolmente migliorato l'accuratezza e le prestazioni. Prima di R-CNN, i modelli di object detection faticavano a bilanciare velocità e precisione. Il metodo di R-CNN di generare proposte di regioni e utilizzare le CNN per l'estrazione delle caratteristiche consente una localizzazione e un'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 su regioni, R-CNN ha stabilito un nuovo standard nel campo e ha aperto possibilità per varie applicazioni nel mondo reale.
Trasformare l'imaging medico con R-CNN#
Un interessante caso d'uso di R-CNN riguarda l'imaging medico. 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 medico migliora l'accuratezza diagnostica e aiuta i radiologi a identificare le malignità in fase precoce. La capacità di R-CNN di rilevare anche tumori di piccole dimensioni 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 altre attività di imaging medico oltre al rilevamento dei tumori. Ad esempio, può identificare fratture, rilevare malattie retiniche in scansioni oculari e analizzare immagini polmonari per condizioni come polmonite e COVID-19. Indipendentemente dal problema medico, la diagnosi precoce può portare a migliori risultati per i pazienti. Applicando la precisione di R-CNN nell'identificare e localizzare le anomalie, i fornitori di assistenza sanitaria possono migliorare l'affidabilità e la velocità delle diagnosi mediche. Con l'object detection che semplifica il processo di somministrazione della diagnosi, i pazienti possono beneficiare di piani di trattamento tempestivi e accurati.
I limiti di R-CNN e i suoi successori#
Sebbene impressionante, R-CNN presenta alcuni svantaggi, come l'elevata complessità computazionale e i tempi di inferenza lenti. Questi svantaggi rendono il modello R-CNN inadatto per applicazioni in tempo reale. Separare le proposte di regioni e le classificazioni in passaggi distinti può portare a prestazioni meno efficienti.
Nel corso degli anni, sono emersi vari modelli di object detection che hanno affrontato queste preoccupazioni. Fast R-CNN combina le proposte di regioni e l'estrazione di caratteristiche 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.
Più o nello stesso periodo di Faster R-CNN, la serie YOLO (You Only Look Once) ha iniziato a far progredire l'object detection in tempo reale. I modelli YOLO prevedono bounding box e probabilità di classe in un unico passaggio attraverso la rete. Ad esempio, Ultralytics YOLOv8 offre maggiore precisione e velocità con funzionalità avanzate per molte attività di visione artificiale.
Punti chiave#
RCNN ha cambiato le regole del gioco nella computer vision, mostrando come il deep learning possa trasformare l'object detection. Il suo successo ha ispirato molte nuove idee nel campo. Anche se modelli più recenti come Faster R-CNN e YOLO sono emersi per correggere i difetti di RCNN, il suo contributo rimane una pietra miliare enorme che è importante ricordare.
Mentre la ricerca continua, vedremo modelli di object detection 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 dell'object detection sembra entusiasmante!
Vuoi continuare a esplorare l'IA? Entra a far parte della community di Ultralytics! Esplora il nostro repository GitHub per vedere le nostre ultime innovazioni nell'intelligenza artificiale. Scopri le nostre soluzioni di IA che coprono vari settori come l'agricoltura e la produzione. Unisciti a noi per imparare e progredire!






