Object Detection
Il rilevamento di oggetti individua ogni oggetto in un'immagine e restituisce per ciascuno un riquadro di delimitazione, un'etichetta di classe e un punteggio di confidenza. Scopri come funzionano e vengono valutati i rilevatori.
Il rilevamento di oggetti è un'attività di visione artificiale che consiste nell'individuare ogni istanza di un insieme di classi note in un'immagine o in un fotogramma video e nel segnalare dove si trova. Per ogni oggetto restituisce un riquadro di delimitazione, un'etichetta di classe e un punteggio di confidenza, trasformando così una foto di strada in un elenco di riquadri etichettati, uno per ogni auto, persona o semaforo. Questo elenco è l'input per il conteggio, la misurazione, il tracciamento e il controllo dei robot.
Cosa restituisce un rilevatore#
Ogni rilevamento ha tre componenti. Il riquadro viene memorizzato come coordinate degli angoli (x1, y1, x2, y2) oppure come punto centrale con larghezza e altezza, in pixel o normalizzate rispetto alle dimensioni dell'immagine. La classe è un indice nell'insieme di etichette del modello, ad esempio una delle 80 categorie del dataset COCO. Il punteggio, compreso tra 0 e 1, indica la probabilità che il riquadro contenga quella classe; le applicazioni mantengono solo i rilevamenti che superano una soglia di confidenza, bilanciando gli oggetti non rilevati e i falsi allarmi.
from ultralytics import YOLO
# Load a YOLO26 nano detector pretrained on the 80 COCO classes
model = YOLO("yolo26n.pt")
# Run detection on one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Each detection carries a class, a confidence score, and a box in pixels
for box in result.boxes:
name = result.names[int(box.cls)]
corners = box.xyxy[0].int().tolist()
print(f"{name} {box.conf.item():.2f} {corners}")Ogni riga stampata corrisponde a un oggetto rilevato: il nome della classe, la confidenza e le coordinate in pixel degli angoli superiore sinistro e inferiore destro.
Come funzionano i rilevatori di oggetti#
I rilevatori moderni sono reti neurali composte da tre fasi. Un backbone, solitamente una rete convoluzionale o un vision transformer, trasforma l'immagine in mappe di caratteristiche. Un neck, come una rete piramidale delle caratteristiche, unisce queste mappe a diverse scale, così da rappresentare sia gli oggetti piccoli sia quelli grandi. Una testa di rilevamento predice quindi i punteggi di classe e le coordinate dei riquadri in migliaia di posizioni. Le posizioni vicine si attivano per lo stesso oggetto, quindi l'output grezzo contiene molti candidati sovrapposti; la maggior parte delle pipeline elimina i riquadri con punteggi bassi e applica la soppressione dei massimi non locali (NMS) per mantenere un solo riquadro per oggetto. I rilevatori end-to-end, come DETR, vengono addestrati per generare esattamente una predizione per oggetto, quindi saltano questo passaggio.
I rilevatori differiscono nel modo in cui individuano i candidati. I rilevatori a due stadi, come Faster R-CNN, propongono prima le regioni che potrebbero contenere un oggetto, quindi classificano e perfezionano ciascuna regione. I rilevatori a uno stadio, come YOLO, introdotto nel 2015, predicono tutti i riquadri e le classi in un unico passaggio, rendendo pratico il rilevamento in tempo reale. I primi modelli a uno stadio regredivano gli scostamenti rispetto a riquadri ancora predefiniti, mentre i rilevatori senza ancore predicono direttamente le distanze da un punto della griglia ai quattro bordi del riquadro. YOLO26 è un rilevatore a uno stadio senza ancore che applica NMS per impostazione predefinita; passare nms=False lo commuta a una testa one-to-one che restituisce i riquadri finali senza passare per NMS.
Addestramento e valutazione#
I rilevatori apprendono da immagini annotate con un riquadro e una classe per ogni oggetto. Durante l'addestramento, una fase di assegnazione delle etichette decide quali predizioni sono responsabili di ciascun oggetto annotato, mentre la funzione di perdita combina un termine di classificazione e uno di regressione dei riquadri, solitamente basato sull'intersezione sull'unione (IoU), cioè la sovrapposizione tra un riquadro predetto e uno annotato. Anche la valutazione usa IoU: un rilevamento è considerato corretto quando la classe corrisponde e la sua IoU con un riquadro annotato raggiunge una soglia. La precisione media (mAP) riassume quindi precisione e richiamo a ogni livello di confidenza e per ogni classe. COCO riporta mAP50, calcolata con una IoU di 0,5, e usa mAP50-95, calcolata come media su dieci soglie IoU da 0,50 a 0,95, come metrica principale.
Applicazioni nel mondo reale#
- Guida autonoma: i sistemi di assistenza alla guida e di guida autonoma rilevano veicoli, pedoni, ciclisti e segnali stradali in ogni fotogramma della videocamera; il tracciamento e la pianificazione del movimento agiscono poi su quei riquadri.
- Vendita al dettaglio: le videocamere sugli scaffali rilevano i prodotti e gli spazi vuoti per segnalare gli articoli esauriti, mentre i sistemi di pagamento automatico rilevano gli articoli messi alla cassa.
- Ispezione manifatturiera: le videocamere delle linee di produzione rilevano graffi, ammaccature e componenti mancanti, così i pezzi difettosi vengono scartati al loro passaggio.
Rilevamento di oggetti a confronto con attività correlate#
- Classificazione delle immagini assegna un'unica etichetta all'intera immagine senza indicare la posizione.
- Segmentazione di istanze traccia il contorno di ogni oggetto rilevato con una maschera di pixel che ne segue la forma esatta.
- Riquadri di delimitazione orientati aggiungono un angolo di rotazione a ogni riquadro, in modo che si adatti agli oggetti inclinati, come navi e veicoli nelle immagini aeree.
- Tracciamento degli oggetti collega i rilevamenti dello stesso oggetto nei diversi fotogrammi video e assegna a ciascuno un ID persistente.
- Rilevamento 3D degli oggetti predice un riquadro nello spazio 3D, descritto dal centro, dalla lunghezza, dalla larghezza e dall'altezza in metri e dall'angolo di direzione.










