Esistono diversi approcci di machine learning alle attività di rilevamento degli oggetti. Gli esempi includono il framework Viola-Jones8 e l'istogramma dei gradienti orientati.9 Le recenti attività di ricerca e sviluppo nel rilevamento di oggetti, tuttavia, si sono concentrate in gran parte sulle reti neurali convoluzionali (CNN). Pertanto, questa pagina si concentra su due tipi di CNN più discussi nella ricerca sul rilevamento di oggetti. Si noti che questi modelli vengono testati e confrontati utilizzando set di dati di benchmark, ad esempio il set di dati Microsoft COCO o ImageNet.
R-CNN (Region-based Convolutional Neural Network) è un rilevatore a due stadi che utilizza un metodo chiamato proposte regionali per generare 2.000 previsioni regionali per immagine. R-CNN quindi deforma le regioni estratte a una dimensione uniforme e fa passare quelle regioni attraverso reti separate per l'estrazione e la classificazione delle funzioni. Ogni regione è classificata in base all'affidabilità della sua classificazione. R-CNN respinge quindi le regioni con un determinato IoU che si sovrappongono a una regione selezionata con un punteggio più alto. Le restanti regioni classificate non sovrapposte e di alto livello sono l'output del modello.10 Come previsto, questa architettura è costosa dal punto di vista computazionale e lenta. Fast R-CNN e Faster R-CNN sono modifiche successive che riducono le dimensioni dell'architettura dell'R-CNN e quindi riducono il tempo di elaborazione, aumentando al contempo la precisione.11
YOLO (You Only Look Once) è una famiglia di architetture di rilevamento a fase singola basate su Darknet, un framework open source della CNN. Sviluppata per la prima volta nel 2016, l'architettura YOLO dà priorità alla velocità. In effetti, la velocità di YOLO lo rende preferibile per il rilevamento di oggetti in tempo reale e gli è valsa al qualifica di descrittore comune di rivelatore di oggetti all'avanguardia. YOLO differisce da R-CNN in diversi modi. Mentre R-CNN passa le regioni delle immagini estratte attraverso più reti che estraggono separatamente le funzioni e classificano le immagini, YOLO condensa queste azioni in un'unica rete. In secondo luogo, rispetto alle circa 2000 proposte regionali della R-CNN, YOLO fa meno di 100 previsioni con riquadri delimitanti per immagine. Oltre ad essere più veloce di R-CNN, YOLO produce anche meno falsi positivi in background, sebbene abbia un errore di localizzazione più elevato.12 Ci sono stati molti aggiornamenti a YOLO sin dal suo inizio, generalmente incentrati sulla velocità e sulla precisione.13
Sebbene originariamente sviluppate per il rilevamento di oggetti, le versioni successive di R-CNN e YOLO possono anche addestrare modelli di classificazione e segmentazione. In particolare, Mask R-CNN combina sia il rilevamento che la segmentazione degli oggetti, mentre YOLOv5 può addestrare modelli separati di classificazione, rilevamento e segmentazione.
Naturalmente, oltre a R-CNN e YOLO, esistono molte altre architetture modello. SSD e Retinanet sono due modelli aggiuntivi che utilizzano un'architettura semplificata simile a YOLO.14 DETR è un'altra architettura sviluppata da Facebook (ora Meta) che combina la CNN con un modello di trasformatore e mostra prestazioni paragonabili a Faster R-CNN.15