One-Stage Object Detectors
I rilevatori di oggetti a singolo stadio prevedono tutti i box e le classi in un unico passaggio della rete, senza una fase di generazione di proposte di regioni. Scopri come funzionano, i modelli principali e i compromessi.
I rilevatori di oggetti a uno stadio sono modelli di rilevamento di oggetti che predicono i riquadri di delimitazione e le etichette di classe di tutti gli oggetti in un'immagine con un unico passaggio in avanti di una sola rete, valutando contemporaneamente una griglia densa di posizioni candidate. Non prevedono una fase separata di generazione di proposte di regioni: i rilevatori di oggetti a due stadi propongono prima le regioni che probabilmente contengono un oggetto, quindi eseguono una seconda testa su ciascuna regione. L'eliminazione di questo passaggio ha reso i rilevatori a uno stadio la base del rilevamento in tempo reale, da YOLO, il cui modello base raggiungeva 45 fotogrammi al secondo nel 2015, ai modelli attuali.
Come funzionano i rilevatori a uno stadio#
Un backbone trasforma l'immagine in mappe di caratteristiche, un neck le unisce a diverse scale e una testa di rilevamento densa predice i punteggi di classe e un riquadro in ogni posizione di ogni scala. I primi modelli a uno stadio, come SSD, YOLOv2 e RetinaNet, predicevano gli scostamenti rispetto a diversi riquadri ancora per posizione; a partire da FCOS nel 2019, la maggior parte predice le distanze da ogni posizione ai quattro bordi del riquadro, secondo il design dei rilevatori senza ancore. Il risultato sono migliaia di riquadri candidati, che una soglia di confidenza e la soppressione dei massimi non locali (NMS) riducono a un riquadro per oggetto; in alternativa, una testa addestrata con corrispondenza one-to-one li restituisce direttamente.
Per eseguire un rilevatore a uno stadio basta una chiamata; la scomposizione dei tempi mostra un unico passaggio della rete:
from ultralytics import YOLO
# Load YOLO26n, a one-stage detector pretrained on the 80 COCO classes
model = YOLO("yolo26n.pt")
# One forward pass predicts the box and class of every object in the image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
print(f"{len(result.boxes)} objects: {[result.names[int(c)] for c in result.boxes.cls]}")
# Milliseconds for resizing the image, the single network pass, and NMS
print(result.speed)result.speed elenca tre fasi — preelaborazione, inferenza e postelaborazione — e l'unico passaggio di inferenza copre tutti gli oggetti nell'immagine.
Rilevatori a uno stadio e a due stadi a confronto#
Entrambe le architetture condividono backbone e neck. Un rilevatore a due stadi esegue quindi una rete di generazione di proposte di regioni, che seleziona alcune centinaia di regioni candidate, ritaglia le caratteristiche di ciascuna regione e passa ogni ritaglio a una seconda testa che lo classifica e lo perfeziona. Un rilevatore a uno stadio sostituisce questi passaggi con un'unica testa densa applicata a ogni posizione della griglia.
La famiglia R-CNN ha guidato per anni l'accuratezza del rilevamento: Faster R-CNN perfeziona circa 300 proposte per immagine e raggiungeva 5 FPS con un backbone VGG-16. I rilevatori a uno stadio erano molto più veloci, ma meno accurati, finché nel 2017 RetinaNet non ha ricondotto il divario allo squilibrio tra classi positive e negative: un rilevatore denso valuta circa 100.000 posizioni candidate per immagine, quasi tutte di sfondo, e questi esempi negativi facili dominano una funzione di perdita standard. La sua funzione di perdita focal riduce il peso di questi esempi; RetinaNet ha così eguagliato la velocità dei precedenti rilevatori a uno stadio, superando al contempo l'accuratezza dei rilevatori a due stadi dell'epoca. Anche i rilevatori Transformer, come DETR e RT-DETR, funzionano come un'unica rete e predicono un insieme di dimensioni fisse di riquadri con corrispondenza one-to-one.
Applicazioni nel mondo reale#
- Analisi del traffico e dei video: i rilevatori elaborano ogni fotogramma di ogni flusso video per contare i veicoli, misurare il flusso e alimentare i tracker di oggetti.
- Ispezione manifatturiera: le videocamere delle linee di produzione rilevano difetti e componenti mancanti sui pezzi che passano davanti alla videocamera in una frazione di secondo.
- Droni e dispositivi integrati: una singola rete di piccole dimensioni rientra nei limiti di calcolo e consumo energetico di un drone, uno smartphone o una videocamera intelligente.
Idee alla base dei moderni rilevatori a uno stadio#
- Reti piramidali delle caratteristiche (FPN): predire a diverse risoluzioni permette alle mappe dettagliate di individuare gli oggetti piccoli e a quelle più grossolane di individuare gli oggetti grandi.
- Funzione di perdita focal: ridurre il peso dei candidati di sfondo facili ha risolto lo squilibrio tra classi che penalizzava i primi rilevatori densi.
- Assegnazione delle etichette: metodi come SimOTA e l'assegnazione allineata al task selezionano, durante l'addestramento e a partire dalle predizioni stesse, le posizioni positive per ogni oggetto.
- Teste senza NMS: una testa addestrata con corrispondenza one-to-one restituisce un riquadro per oggetto, eliminando una fase di postelaborazione il cui costo aumenta con il numero di candidati.
YOLO26 è un rilevatore one-stage senza anchor con entrambi i tipi di head: applica NMS per impostazione predefinita, mentre nms=False attiva la head one-to-one. YOLO26n raggiunge 40.9 mAP50-95 su COCO con NMS e 40.1 senza, in 1,7 ms per immagine su una GPU NVIDIA T4 con TensorRT.










