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 computer vision in grado di riconoscere e localizzare oggetti in immagini o video per applicazioni come guida autonoma, sorveglianza e imaging medico. 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 accuratamente gli oggetti in scene complesse con oggetti multipli di varie forme e dimensioni.
Le Region-based Convolutional Neural Networks (R-CNN) hanno cambiato il modo in cui affrontiamo l'object detection. È una pietra miliare importante nella storia della computer vision. Per capire come sono nati modelli come YOLOv8, dobbiamo prima comprendere modelli come R-CNN.
Creato 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) pre-addestrata, classifica gli oggetti e rifinisce i bounding box. Anche se può sembrare scoraggiante, alla fine di questo articolo avrai una chiara comprensione di come funziona R-CNN e perché è così importante. Diamo un'occhiata!
Link to this sectionCome 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.
Link to this sectionProposte 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 Selective Search.
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.
Link to this sectionEstrazione 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 delle caratteristiche da una proposta di regione usando AlexNet.
Link to this sectionClassificazione 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)
Link to this sectionMettere 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.
Link to this sectionR-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.
Link to this sectionTrasformare l'imaging medico con R-CNN#
Un interessante caso d'uso di R-CNN è nell'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 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 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 retiniche in scansioni oculari e analizzare immagini polmonari per condizioni come polmonite e COVID-19. Indipendentemente dal problema medico, il rilevamento precoce può portare a migliori risultati per i pazienti. Applicando la precisione di R-CNN nell'identificare e localizzare anomalie, i fornitori di assistenza sanitaria possono migliorare l'affidabilità e la velocità delle diagnosi mediche. Grazie all'object detection che semplifica il processo diagnostico, i pazienti possono beneficiare di piani di trattamento tempestivi e accurati.
Link to this sectionI 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 meno 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, l'Ultralytics YOLOv8 offre una migliore accuratezza e velocità con funzionalità avanzate per molte attività di computer vision.
Link to this sectionPunti 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 ad esplorare l'AI? Entra a far parte della community di Ultralytics! Esplora il nostro repository GitHub per vedere le nostre ultime innovazioni nell'intelligenza artificiale. Dai un'occhiata alle nostre soluzioni AI che spaziano in vari settori come agricoltura e produzione. Unisciti a noi per imparare e progredire!






