Che cos’è R-CNN? Una rapida panoramica
Scopri RCNN e il suo impatto sul rilevamento degli oggetti. Esamineremo i suoi componenti principali, le applicazioni e il ruolo nel progresso di tecniche come Fast RCNN e YOLO.

Il rilevamento degli oggetti è un'attività di visione artificiale in grado di riconoscere e localizzare oggetti in immagini o video per applicazioni come la guida autonoma, la sorveglianza 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 avevano difficoltà a rilevare con precisione gli oggetti in scene complesse contenenti più oggetti di forme e dimensioni diverse.
Le reti neurali convoluzionali basate su regioni (R-CNN) hanno cambiato il modo in cui affrontiamo il rilevamento degli oggetti. Rappresentano una tappa importante nella storia della visione artificiale. 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 rete neurale convoluzionale preaddestrata (CNN), classifica gli oggetti e perfeziona i riquadri di delimitazione. Anche se può sembrare complesso, alla fine di questo articolo avrai una comprensione chiara del funzionamento di R-CNN e del motivo per cui ha avuto un impatto così significativo. Diamo un'occhiata!
Come funziona R-CNN?#
Il processo di rilevamento degli oggetti del modello R-CNN prevede tre fasi principali: generazione delle proposte di regioni, estrazione delle caratteristiche e classificazione degli oggetti con perfezionamento dei relativi riquadri di delimitazione. Esaminiamo ogni fase.

Fig. 1 Come funziona R-CNN.
Proposte di regioni: la base di RCNN#
Nella prima fase, il modello R-CNN analizza l'immagine per creare numerose proposte di regioni. Le proposte di regioni sono aree potenziali che potrebbero contenere oggetti. Metodi come Selective Search vengono utilizzati per esaminare vari aspetti dell'immagine, come colore, texture e forma, suddividendola in parti diverse. Selective Search inizia dividendo l'immagine in parti più piccole, quindi unisce quelle simili per formare aree di interesse più grandi. Il processo continua finché non vengono generate circa 2.000 proposte di regioni.

Fig. 2 Come funziona Selective Search.
Queste proposte di regioni aiutano a identificare tutti i possibili punti in cui potrebbe essere presente un oggetto. Nelle fasi successive, il modello può elaborare in modo efficiente le aree più rilevanti 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: acquisizione dei dettagli#
La fase successiva del processo di rilevamento degli oggetti del modello R-CNN consiste nell'estrarre le 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, la dimensione di ogni proposta di regione viene leggermente ampliata per includere 16 pixel di contesto aggiuntivo attorno alla regione e fornire così più informazioni circostanti per una migliore estrazione delle caratteristiche.
Dopo il ridimensionamento, queste proposte di regioni vengono fornite a una CNN come AlexNet, generalmente preaddestrata su un dataset di grandi dimensioni come ImageNet. La CNN elabora ogni regione per estrarre vettori di caratteristiche ad alta dimensionalità che catturano dettagli importanti come bordi, texture e pattern. Questi vettori di caratteristiche condensano le informazioni essenziali delle regioni. Trasformano i dati grezzi dell'immagine in un formato utilizzabile dal modello per ulteriori analisi. La classificazione e la localizzazione accurate degli oggetti nelle fasi successive dipendono da questa conversione fondamentale delle informazioni visive in dati significativi.

Fig. 3 Estrazione delle caratteristiche da una proposta di regione usando AlexNet.
Classificazione degli oggetti: identificazione degli oggetti rilevati#
La terza fase consiste nel classificare gli oggetti all'interno di queste regioni. Ciò significa determinare la categoria o la classe di ogni oggetto presente nelle proposte. I vettori di caratteristiche estratti vengono quindi passati a un classificatore di machine learning.
Nel caso di R-CNN, per questo scopo vengono comunemente utilizzate le Macchine a vettori di supporto (SVM). Ogni SVM viene addestrata a riconoscere una specifica classe di oggetti analizzando i vettori di caratteristiche e determinando se una determinata regione contiene un'istanza di quella classe. In sostanza, per ogni categoria di oggetti esiste un classificatore dedicato che verifica ogni proposta di regione alla ricerca di 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 prive dell'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 di delimitazione inizialmente proposti per adattarli meglio ai contorni effettivi degli oggetti. Il modello R-CNN può identificare e localizzare con precisione gli oggetti combinando la classificazione con la regressione dei riquadri di delimitazione.

Fig. 4. Un esempio di regressione dei riquadri di delimitazione. (fonte: towardsdatascience.com)
Assemblare il tutto: perfezionamento dei rilevamenti con NMS#
Dopo le fasi di classificazione e regressione dei riquadri di delimitazione, il modello genera spesso più riquadri di delimitazione sovrapposti per lo stesso oggetto. Per perfezionare questi rilevamenti viene applicata la Soppressione non massima (NMS), mantenendo i riquadri più accurati. Il modello elimina i riquadri ridondanti e sovrapposti applicando NMS e conserva solo i rilevamenti con il livello di confidenza più elevato.
NMS valuta i punteggi di confidenza, che indicano la probabilità che un oggetto rilevato sia effettivamente presente, di tutti i riquadri di delimitazione e sopprime quelli che si sovrappongono in modo significativo a riquadri con punteggi più elevati.

Fig. 5. Un esempio di soppressione non massima. (fonte: towardsdatascience.com)
Ecco una panoramica delle fasi di NMS:
- Ordinamento: i riquadri di delimitazione vengono ordinati in base ai punteggi di confidenza in ordine decrescente.
- Selezione: viene selezionato il riquadro con il punteggio più alto e vengono rimossi tutti i riquadri che si sovrappongono in modo significativo, in base all'Intersezione su unione (IoU), a quello selezionato.
- Iterazione: il processo si ripete per il riquadro con il punteggio successivo più alto e continua finché tutti i riquadri non sono stati elaborati.
In sintesi, il modello R-CNN rileva gli oggetti generando proposte di regioni, estraendo caratteristiche con una CNN, classificando gli oggetti e perfezionandone le posizioni con la regressione dei riquadri di delimitazione, quindi applicando la Soppressione non massima (NMS) per mantenere solo i rilevamenti più accurati.
R-CNN è una pietra miliare 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 accuratezza e prestazioni. Prima di R-CNN, i modelli di rilevamento degli oggetti avevano difficoltà a bilanciare velocità e precisione. Il metodo di R-CNN, basato sulla generazione di proposte di regioni e sull'uso delle CNN per l'estrazione delle caratteristiche, consente di localizzare e identificare con precisione gli 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 efficienza e accuratezza. Combinando il deep learning con l'analisi basata sulle regioni, R-CNN ha stabilito un nuovo standard nel settore e aperto nuove possibilità per diverse applicazioni del mondo reale.
Trasformare l'imaging medico con R-CNN#
Un'interessante applicazione di R-CNN è 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 scansioni TC. L'uso del modello R-CNN nell'imaging medico migliora l'accuratezza diagnostica e aiuta i radiologi a identificare le neoplasie in fase iniziale. 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 usando 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 della retina nelle scansioni oculari e analizzare immagini dei polmoni per individuare condizioni come la polmonite e il COVID-19. Indipendentemente dal problema medico, una diagnosi precoce può portare a risultati migliori per i pazienti. Applicando la precisione di R-CNN nell'identificazione e nella localizzazione delle anomalie, i professionisti dell'assistenza sanitaria possono migliorare l'affidabilità e la rapidità della diagnostica medica. Grazie all'ottimizzazione del processo diagnostico resa possibile dal rilevamento degli oggetti, i pazienti possono beneficiare di piani di trattamento 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 lunghi tempi di inferenza. Questi svantaggi rendono il modello R-CNN inadatto alle applicazioni in tempo reale. Separare le proposte di regioni e la classificazione in fasi distinte può comportare prestazioni meno efficienti.
Nel corso degli anni sono stati sviluppati diversi modelli di rilevamento degli oggetti per affrontare questi problemi. Fast R-CNN combina le proposte di regioni e l'estrazione delle caratteristiche tramite CNN in un'unica fase, velocizzando il processo. Faster R-CNN introduce una rete di proposte di regioni (RPN) per semplificare la generazione delle proposte, mentre Mask R-CNN aggiunge la segmentazione a livello di pixel per ottenere rilevamenti più dettagliati.

Fig. 7. Confronto tra R-CNN, Fast R-CNN, Faster R-CNN e Mask R-CNN.
Nello stesso periodo in cui è stato sviluppato Faster R-CNN, la serie YOLO (You Only Look Once) ha iniziato a portare avanti il rilevamento degli oggetti in tempo reale. I modelli YOLO predicono i riquadri di delimitazione e le probabilità delle classi in un singolo passaggio attraverso la rete. Ad esempio, Ultralytics YOLOv8 offre maggiore accuratezza e velocità con funzionalità avanzate per molte attività di visione artificiale.
Punti chiave#
RCNN ha cambiato radicalmente la visione artificiale, dimostrando come il deep learning possa trasformare il rilevamento degli oggetti. Il suo successo ha ispirato molte nuove idee nel settore. Sebbene siano arrivati modelli più recenti come Faster R-CNN e YOLO per risolvere i difetti di RCNN, il suo contributo rappresenta una pietra miliare enorme e importante da ricordare.
Con il proseguire della ricerca, vedremo modelli di rilevamento degli oggetti ancora migliori e più veloci. Questi progressi non solo miglioreranno il modo in cui le macchine comprendono il mondo, ma porteranno anche sviluppo in molti settori. Il futuro del rilevamento degli oggetti è entusiasmante!
Vuoi continuare a esplorare il mondo dell'AI? Entra a far parte della community di Ultralytics! Esplora il nostro repository GitHub per scoprire le nostre ultime innovazioni nell'intelligenza artificiale. Scopri le nostre soluzioni di AI per diversi settori, come agricoltura e produzione. Unisciti a noi per imparare e fare progressi!









