Detection Head
Impara come un detection head abilita il rilevamento di oggetti in tempo reale. Esplora il suo ruolo in Ultralytics YOLO26 per prevedere bounding box ed etichette con elevata accuratezza.
Una detection head agisce come strato finale decisionale nell'architettura di una rete neurale per il rilevamento di oggetti. Mentre gli strati iniziali del modello sono responsabili della comprensione di forme, texture e caratteristiche all'interno di un'immagine, la detection head è la componente specifica che interpreta queste informazioni per prevedere esattamente quali oggetti siano presenti e dove siano localizzati. Trasforma i dati astratti di alto livello prodotti dall'estrattore di caratteristiche in risultati azionabili, solitamente restituendo un set di bounding boxes che racchiudono gli oggetti identificati insieme alle relative etichette di classe e ai confidence scores.
Link to this sectionDistinguere la Head dal Backbone e dal Neck#
Per comprendere appieno la funzione di una detection head, è utile visualizzare i rilevatori moderni come composti da tre fasi principali, ciascuna delle quali serve a uno scopo distinto nella pipeline di computer vision (CV):
- Backbone: Questa è la parte iniziale della rete, spesso una Convolutional Neural Network (CNN) come ResNet o CSPNet. Elabora l'immagine di input grezza per creare feature maps che rappresentano i pattern visivi.
- Neck: Situato tra il backbone e la head, il neck affina e combina le caratteristiche di diverse scale. Architetture come la Feature Pyramid Network (FPN) assicurano che il modello possa rilevare oggetti di dimensioni variabili aggregando il contesto.
- Head: La componente finale che consuma le caratteristiche affinate dal neck. Esegue il compito effettivo di classificazione (cos'è?) e regressione (dov'è?).
Link to this sectionEvoluzione: Anchor-Based vs. Anchor-Free#
Il design delle detection heads si è evoluto significativamente per migliorare velocità e precisione, in particolare con il passaggio dai metodi tradizionali ai moderni modelli di real-time inference.
- Anchor-Based Heads: I tradizionali one-stage object detectors si basavano su anchor boxes predefinite—forme di riferimento fisse di varie dimensioni. La head prevedeva quanto allungare o spostare queste anchor per adattarle all'oggetto. Questo approccio è dettagliato nella ricerca fondamentale su Faster R-CNN.
- Anchor-Free Heads: I modelli all'avanguardia, incluso l'ultimo YOLO26, utilizzano anchor-free detectors. Queste head prevedono i centri e le dimensioni degli oggetti direttamente dai pixel nelle feature maps, eliminando la necessità di una regolazione manuale delle anchor. Ciò semplifica l'architettura e migliora la capacità del modello di generalizzare verso forme di oggetti nuove, una tecnica spesso associata alla Fully Convolutional One-Stage Object Detection (FCOS).
Link to this sectionApplicazioni nel mondo reale#
La precisione della detection head è fondamentale per implementare l'artificial intelligence (AI) in ambienti industriali e critici per la sicurezza. Puoi facilmente annotare dati e addestrare queste head specializzate utilizzando la Ultralytics Platform.
- Guida Autonoma: Nell'AI for automotive, la detection head è responsabile della distinzione tra pedoni, semafori e altri veicoli in tempo reale. Una head altamente ottimizzata assicura che l'inference latency rimanga sufficientemente bassa affinché il veicolo possa reagire istantaneamente.
- Diagnostica Medica: Nell'medical image analysis, le detection heads vengono messe a punto per localizzare anomalie come tumori nelle scansioni MRI. Il ramo di regressione deve essere estremamente preciso per delineare gli esatti confini di una lesione, assistendo i medici nelle healthcare solutions.
Link to this sectionEsempio di codice#
Il seguente esempio dimostra come caricare un modello YOLO26 e ispezionare l'output della sua detection head. Quando viene eseguita l'inferenza, la head elabora l'immagine e restituisce i boxes finali contenenti coordinate e ID di classe.
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 detection head traduca le complesse attivazioni della rete neurale in dati leggibili che gli sviluppatori possono utilizzare per attività a valle come l'object tracking o il conteggio.






