Che cos’è R-CNN? Una breve panoramica
Scopri come funziona R-CNN: dalla ricerca selettiva e dall’estrazione di caratteristiche con CNN alla classificazione SVM e alla NMS, e come ha aperto la strada a Fast R-CNN e YOLO.
Abirami Vina9 min di lettura
Il rilevamento degli oggetti è un’attività di computer vision che consente di riconoscere e localizzare oggetti in immagini o video per applicazioni come la guida autonoma, la videosorveglianza e l'imaging medico. I primi metodi di rilevamento degli oggetti, come il rilevatore Viola-Jones e l’istogramma dei gradienti orientati (HOG) con macchine a vettori di supporto (SVM), si basavano su caratteristiche definite manualmente e finestre scorrevoli. Questi metodi spesso faticavano a rilevare con precisione gli oggetti in scene complesse con più oggetti di forme e dimensioni diverse.
Le reti neurali convoluzionali basate su regioni (R-CNN) hanno cambiato il modo di affrontare il rilevamento degli oggetti. Sono una tappa fondamentale 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 R-CNN genera proposte di regioni, estrae caratteristiche con una rete neurale convoluzionale (CNN) preaddestrata, classifica gli oggetti e perfeziona i riquadri di delimitazione. Può sembrare complicato, ma al termine dell’articolo avrai una chiara comprensione del funzionamento di R-CNN e del motivo per cui ha avuto un impatto così importante.
Come funziona R-CNN?#
Il processo di rilevamento degli oggetti del modello R-CNN prevede tre passaggi principali: generare proposte di regioni, estrarre caratteristiche e classificare gli oggetti perfezionandone i riquadri di delimitazione. Vediamo ogni passaggio.

Fig 1. Come funziona R-CNN.
Proposte di regioni: la base di RCNN#
Nel primo passaggio, il modello R-CNN analizza l'immagine per generare numerose proposte di regioni. Le proposte di regioni sono aree potenziali che potrebbero contenere oggetti. Metodi come Selective Search esaminano diversi aspetti dell'immagine, come colore, texture e forma, suddividendola in parti distinte. Selective Search inizia dividendo l'immagine in parti più piccole, poi unisce quelle simili per formare aree di interesse più grandi. Il processo continua fino a generare circa 2.000 proposte di regioni.

Fig 2. Come funziona Selective Search.
Queste proposte di regioni aiutano a identificare tutti i punti possibili in cui potrebbe trovarsi un oggetto. Nei passaggi successivi, il modello può elaborare in modo efficiente le aree più pertinenti, concentrandosi su queste zone specifiche anziché sull'intera immagine. L'uso delle proposte di regioni bilancia completezza ed efficienza computazionale.
Estrazione delle caratteristiche dell'immagine: acquisire i dettagli#
Il passaggio successivo nel processo di rilevamento degli oggetti del modello R-CNN consiste nell'estrarre caratteristiche dalle proposte di regioni. Ogni proposta di regione viene ridimensionata a una dimensione uniforme prevista dalla CNN, ad esempio 224x224 pixel. Il ridimensionamento aiuta la CNN a elaborare ogni proposta in modo efficiente. Prima della deformazione, le dimensioni di ogni proposta di regione vengono leggermente aumentate per includere 16 pixel di contesto aggiuntivo attorno alla regione, così da fornire più informazioni circostanti e migliorare l'estrazione delle caratteristiche.
Una volta ridimensionate, le proposte di regioni vengono fornite a una CNN come AlexNet, solitamente preaddestrata su un grande dataset come ImageNet. La CNN elabora ogni regione per estrarre vettori di caratteristiche ad alta dimensionalità che catturano dettagli importanti, come bordi, texture e schemi. Questi vettori condensano le informazioni essenziali delle regioni e trasformano i dati grezzi dell'immagine in un formato utilizzabile dal modello per analisi successive. La conversione accurata delle informazioni visive in dati significativi è fondamentale per classificare e localizzare correttamente gli oggetti nelle fasi successive.

Fig 3. Estrazione di caratteristiche da una proposta di regione con AlexNet.
Classificazione degli oggetti: identificare gli oggetti rilevati#
Il terzo passaggio consiste nel classificare gli oggetti presenti in queste regioni. Significa determinare la categoria o la classe di ciascun oggetto trovato nelle proposte. I vettori di caratteristiche estratti vengono quindi passati a un classificatore di machine learning.
Nel caso di R-CNN, si usano comunemente macchine a vettori di supporto (SVM) a questo scopo. Ogni SVM viene addestrata a riconoscere una specifica classe di oggetti analizzando i vettori di caratteristiche e stabilendo se una determinata regione contiene un'istanza di quella classe. In pratica, per ogni categoria di oggetti esiste un classificatore dedicato che verifica ciascuna proposta di regione alla ricerca di quell'oggetto specifico.
Durante l'addestramento, ai classificatori vengono forniti dati etichettati con campioni positivi e negativi:
- Campioni positivi: regioni che contengono l'oggetto target.
- Campioni negativi: regioni senza l'oggetto.
I classificatori imparano a distinguere tra questi campioni. La regressione dei riquadri di delimitazione perfeziona ulteriormente la posizione e le dimensioni degli oggetti rilevati, modificando i riquadri proposti inizialmente per adattarli meglio ai confini effettivi degli oggetti. Combinando classificazione e regressione dei riquadri di delimitazione, il modello R-CNN può identificare e localizzare gli oggetti con precisione.

Fig 4. Esempio di regressione dei riquadri di delimitazione. (fonte: towardsdatascience.com)
Unire tutti i passaggi: perfezionare i rilevamenti con NMS#
Dopo i passaggi di classificazione e regressione dei riquadri di delimitazione, il modello spesso genera più riquadri sovrapposti per lo stesso oggetto. Per perfezionare questi rilevamenti si applica la soppressione dei non massimi (NMS), mantenendo i riquadri più accurati. Il modello elimina i riquadri ridondanti e sovrapposti applicando la NMS e conserva solo i rilevamenti con il livello di confidenza più alto.
NMS valuta i punteggi di confidenza di tutti i riquadri di delimitazione, che indicano la probabilità che un oggetto rilevato sia effettivamente presente, e sopprime quelli che si sovrappongono in modo significativo a riquadri con punteggi più alti.

Fig 5. Esempio di soppressione dei non massimi. (fonte: towardsdatascience.com)
Ecco i passaggi di NMS nel dettaglio:
- Ordinamento: i riquadri di delimitazione vengono ordinati in ordine decrescente in base ai punteggi di confidenza.
- Selezione: viene selezionato il riquadro con il punteggio più alto e vengono rimossi tutti i riquadri che si sovrappongono in modo significativo a esso, in base all'intersezione sull'unione (IoU).
- Iterazione: il processo si ripete con il riquadro successivo con il punteggio più alto e continua finché non sono stati elaborati tutti i riquadri.
In sintesi, il modello R-CNN rileva gli oggetti generando proposte di regioni, estraendo caratteristiche con una CNN, classificando gli oggetti e perfezionandone la posizione con la regressione dei riquadri di delimitazione, quindi usa la NMS per conservare solo i rilevamenti più accurati.
R-CNN è una tappa fondamentale nel rilevamento degli oggetti#
R-CNN è un modello fondamentale nella storia del rilevamento degli oggetti, perché ha introdotto un nuovo approccio che ha migliorato notevolmente precisione e prestazioni. Prima di R-CNN, i modelli di rilevamento degli oggetti faticavano a bilanciare velocità e precisione. Il metodo di R-CNN, che genera proposte di regioni e usa CNN per estrarre caratteristiche, consente di localizzare e identificare con precisione gli oggetti nelle immagini.
R-CNN ha aperto la strada a modelli come Fast R-CNN, Faster R-CNN e Mask R-CNN, che hanno ulteriormente migliorato efficienza e precisione. Combinando il deep learning con l’analisi basata su regioni, R-CNN ha stabilito un nuovo standard nel settore e aperto nuove possibilità per diverse applicazioni reali.
Trasformare l'imaging medico con R-CNN#
Un caso d’uso interessante di R-CNN è l’imaging medico. I modelli R-CNN sono stati usati per rilevare e classificare diversi tipi di tumore, come i tumori cerebrali, in scansioni mediche quali risonanze magnetiche e TC. L’uso del modello R-CNN nell’imaging medico migliora la precisione diagnostica e aiuta i radiologi a identificare precocemente le neoplasie. 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 con R-CNN.
Il modello R-CNN può essere applicato ad altre attività di diagnostica per immagini oltre al rilevamento dei tumori. Per esempio, può identificare fratture, rilevare malattie della retina nelle scansioni oculari e analizzare immagini polmonari per individuare condizioni come la polmonite e il COVID-19. Indipendentemente dal problema medico, la diagnosi precoce può portare a esiti migliori per i pazienti. Applicando la precisione di R-CNN nell'identificazione e nella localizzazione delle anomalie, gli operatori sanitari possono migliorare l'affidabilità e la rapidità della diagnostica medica. Poiché il rilevamento degli oggetti rende più efficiente il processo diagnostico, i pazienti possono beneficiare di piani terapeutici tempestivi e accurati.
I limiti di R-CNN e i suoi successori#
Nonostante i risultati notevoli, R-CNN presenta alcuni svantaggi, come l'elevata complessità computazionale e i tempi di inferenza lenti. Questi limiti rendono il modello R-CNN inadatto alle applicazioni in tempo reale. Separare la generazione di proposte di regioni dalla classificazione in passaggi distinti può ridurre l'efficienza delle prestazioni.
Nel corso degli anni sono stati sviluppati diversi modelli di rilevamento degli oggetti per affrontare queste criticità. Fast R-CNN esegue la CNN una sola volta sull'intera immagine e raccoglie le caratteristiche di ogni regione proposta dalla mappa delle caratteristiche condivisa, accelerando il processo. Faster R-CNN introduce una rete di generazione delle regioni candidate (RPN) per rendere più efficiente la generazione delle 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 meno nello stesso periodo di Faster R-CNN, la serie YOLO (You Only Look Once) ha iniziato a far progredire il rilevamento degli oggetti in tempo reale. I modelli YOLO prevedono i riquadri di delimitazione e le probabilità di classe in un unico passaggio attraverso la rete. Per esempio, Ultralytics YOLOv8 offre maggiore precisione e velocità, grazie a funzionalità avanzate per molte attività di computer vision, e i modelli più recenti, come Ultralytics YOLO26, vanno oltre eliminando completamente la NMS.
Punti chiave#
R-CNN ha rappresentato una svolta nella computer vision, dimostrando come il deep learning potesse trasformare il rilevamento degli oggetti. Il suo successo ha ispirato molte nuove idee nel settore. Anche se i modelli più recenti, come Faster R-CNN e YOLO, hanno poi risolto i difetti di R-CNN, il suo contributo rappresenta una tappa fondamentale da ricordare.
Con il proseguire della ricerca, vedremo modelli di rilevamento degli oggetti ancora migliori e più rapidi. Questi progressi non solo miglioreranno la comprensione del mondo da parte delle macchine, ma favoriranno anche lo sviluppo di molti settori.
Vuoi continuare a esplorare l’IA? Entra a far parte della community di Ultralytics! Esplora il nostro repository GitHub per scoprire le ultime innovazioni nell’intelligenza artificiale. Scopri le nostre soluzioni per diversi settori, come l’agricoltura e la manifattura. Unisciti a noi per imparare e progredire!
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










