Detection Head
Scopri come una detection head abilita il rilevamento degli oggetti in tempo reale. Esplora il suo ruolo in Ultralytics YOLO26 per prevedere bounding box ed etichette con elevata accuratezza.
Una testa di rilevamento funge da strato decisionale finale nell'architettura di una rete neurale per il rilevamento degli oggetti. Mentre gli strati precedenti del modello sono responsabili della comprensione delle forme, delle texture e delle caratteristiche presenti in un'immagine, la testa di rilevamento è il componente specifico che interpreta queste informazioni per prevedere esattamente quali oggetti sono presenti e dove si trovano. Trasforma i dati astratti e di alto livello prodotti dall'estrattore di caratteristiche in risultati utilizzabili, restituendo in genere un insieme di riquadri di delimitazione che racchiudono gli oggetti identificati, insieme alle relative etichette di classe e ai punteggi di confidenza.
Distinguere la testa dal backbone e dal neck#
Per comprendere appieno la funzione di una testa di rilevamento, è utile immaginare i rilevatori moderni come composti da tre fasi principali, ciascuna con uno scopo distinto nella pipeline di visione artificiale (CV):
- Backbone: è la parte iniziale della rete, spesso una rete neurale convoluzionale (CNN) come ResNet o CSPNet. Elabora l'immagine di input grezza per creare mappe delle caratteristiche che rappresentano i pattern visivi.
- Neck: situato tra il backbone e la testa, il neck perfeziona e combina le caratteristiche provenienti da scale diverse. Architetture come la rete piramidale delle caratteristiche (FPN) assicurano che il modello possa rilevare oggetti di dimensioni variabili aggregando il contesto.
- Testa: il componente finale che utilizza le caratteristiche perfezionate dal neck. Esegue l'attività effettiva di classificazione (che cos'è?) e regressione (dove si trova?).
Evoluzione: basato su ancoraggi e senza ancoraggi#
La progettazione delle teste di rilevamento si è evoluta notevolmente per migliorare velocità e accuratezza, in particolare con il passaggio dai metodi tradizionali ai moderni modelli di inferenza in tempo reale.
- Teste basate su ancoraggi: i tradizionali rilevatori di oggetti a una fase si basavano su riquadri di ancoraggio predefiniti, ovvero forme di riferimento fisse di varie dimensioni. La testa prevedeva di quanto allungare o spostare questi ancoraggi per adattarli all'oggetto. Questo approccio è descritto nella ricerca fondamentale su Faster R-CNN.
- Teste senza ancoraggi: i modelli all'avanguardia, tra cui l'ultimo YOLO26, utilizzano rilevatori senza ancoraggi. Queste teste prevedono direttamente i centri e le dimensioni degli oggetti a partire dai pixel nelle mappe delle caratteristiche, eliminando la necessità di regolare manualmente gli ancoraggi. Ciò semplifica l'architettura e migliora la capacità del modello di generalizzare a forme di oggetti inedite, una tecnica spesso associata al rilevamento di oggetti completamente convoluzionale a una fase (FCOS).
Applicazioni nel mondo reale#
La precisione della testa di rilevamento è fondamentale per implementare l'intelligenza artificiale (AI) in ambienti industriali e critici per la sicurezza. Puoi annotare facilmente i dati e addestrare queste teste specializzate utilizzando la Ultralytics Platform.
- Guida autonoma: nell'AI per il settore automobilistico, la testa di rilevamento è responsabile di distinguere tra pedoni, semafori e altri veicoli in tempo reale. Una testa altamente ottimizzata garantisce che la latenza di inferenza rimanga sufficientemente bassa da consentire al veicolo di reagire immediatamente.
- Diagnostica medica: nell'analisi di immagini mediche, le teste di rilevamento vengono ottimizzate per individuare anomalie come i tumori nelle scansioni MRI. Il ramo di regressione deve essere estremamente accurato per delineare i confini esatti di una lesione, aiutando i medici nelle soluzioni sanitarie.
Esempio di codice#
L'esempio seguente mostra come caricare un modello YOLO26 e analizzare l'output della sua testa di rilevamento. Quando viene eseguita l'inferenza, la testa elabora l'immagine e restituisce il boxes finale contenente coordinate e ID delle classi.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Run inference on an image to utilize the detection head
results = model("https://ultralytics.com/images/bus.jpg")
# The detection head outputs are stored in results[0].boxes
for box in results[0].boxes:
# Print the bounding box coordinates and the predicted class
print(f"Class: {int(box.cls)}, Coordinates: {box.xywh.numpy()}")Questa interazione evidenzia come la testa di rilevamento traduca le complesse attivazioni della rete neurale in dati leggibili che gli sviluppatori possono utilizzare per attività successive come il tracciamento degli oggetti o il conteggio.









