Backbone
Un backbone è la rete preaddestrata alla base di un modello di visione che trasforma i pixel in mappe di caratteristiche a più scale per il neck e la head.
Un backbone è la parte di una rete neurale che trasforma l'input grezzo in mappe di caratteristiche per il resto del modello. Nella visione artificiale, il backbone è solitamente una rete neurale convoluzionale (CNN) o un Vision Transformer (ViT) preaddestrato su un dataset di grandi dimensioni, come ImageNet. I livelli successivi, in genere un neck e una head specifica per l'attività, convertono le sue caratteristiche in etichette di classe, riquadri di delimitazione, maschere o punti chiave. I termini backbone, encoder ed estrattore di caratteristiche sono spesso usati come sinonimi; nei modelli encoder-decoder, come U-Net, il termine consueto è encoder.
Come funziona un backbone#
Un backbone di visione elabora un'immagine per fasi. Ogni fase applica una sequenza di blocchi di convoluzione o di attenzione, quindi dimezza la risoluzione spaziale e di solito aumenta il numero di canali: un input 640×640 diventa così una mappa 80×80 con stride 8, una mappa 40×40 con stride 16 e una mappa 20×20 con stride 32. Le prime fasi rispondono a bordi, colori e texture. Quelle successive rispondono a parti di oggetti e oggetti interi, perché ciascuna delle loro posizioni di output copre un campo ricettivo più ampio dell'immagine di input. I modelli di rilevamento e segmentazione utilizzano gli ultimi tre stadi e li passano a un neck, come una rete piramidale di caratteristiche (FPN), che consente al modello di individuare oggetti piccoli nella mappa ad alta risoluzione e oggetti grandi in quella a bassa risoluzione.
Backbone a confronto con neck e head#
La maggior parte delle moderne architetture di rilevamento di oggetti è suddivisa in tre parti; i confini tra di esse sono importanti quando si sostituiscono componenti o si congelano livelli.
- Backbone: esegue l'estrazione delle caratteristiche, producendo mappe di caratteristiche a diverse risoluzioni. Contiene conoscenze visive generali trasferibili tra attività e dataset.
- Neck: fonde le scale del backbone, in modo che ogni livello di output contenga sia dettagli spaziali fini sia informazioni di alto livello. FPN aggiunge un percorso dall'alto verso il basso e PANet vi aggiunge un secondo percorso dal basso verso l'alto. I modelli di classificazione di solito non hanno un neck e comprimono lo stadio finale del backbone in un unico vettore.
- Head: trasforma ogni mappa di caratteristiche fusa in output specifici per l'attività. Una head di rilevamento prevede riquadri e punteggi di classe, mentre le head di segmentazione e stima della posa prevedono maschere e punti chiave usando lo stesso tipo di caratteristiche.
Famiglie comuni di backbone#
- ResNet: le connessioni residue consentono al segnale di saltare alcuni blocchi, rendendo addestrabili reti profonde fino a 152 livelli; un ensemble ResNet vinse l'attività di classificazione ILSVRC 2015. ResNet-50 è ancora un backbone di riferimento standard per confrontare i rilevatori.
- CSPNet: le reti Cross Stage Partial fanno passare solo una parte dei canali di ogni stadio attraverso i blocchi dello stadio e riuniscono gli altri alla fine; in questo modo hanno ridotto del 20% il calcolo a parità di accuratezza su ImageNet o con accuratezza superiore. CSPDarknet53, il backbone di YOLOv4, è costruito con questi stadi.
- ConvNeXt: una ResNet modernizzata con scelte progettuali ispirate ai Transformer, come kernel di grandi dimensioni e meno livelli di normalizzazione, che raggiunge un'accuratezza top-1 del 87,8% su ImageNet e supera Swin Transformer nel rilevamento su COCO.
- ViT e Swin Transformer: un ViT standard mantiene un'unica risoluzione dall'inizio alla fine, perciò i modelli di rilevamento spesso usano Swin, che calcola l'attenzione entro finestre locali traslate e produce una gerarchia di stadi simile a quella di una CNN.
- Backbone fondamentali auto-supervisionati: DINOv3 addestra un ViT da 7 miliardi di parametri su 1,7 miliardi di immagini non etichettate; le sue caratteristiche raggiungono ottimi risultati in attività dense come segmentazione e stima della profondità, mantenendo congelato il backbone.
Backbone preaddestrati e apprendimento per trasferimento#
Addestrare un backbone da zero richiede un dataset ampio e un lungo ciclo di addestramento, quindi la maggior parte dei progetti parte da pesi preaddestrati. Questo tipo di apprendimento per trasferimento funziona perché bordi, trame e forme appresi su un dataset sono utili nella maggior parte degli altri. Con un dataset piccolo e simile al dominio di preaddestramento, congelare il backbone preserva queste caratteristiche generali, riduce l'overfitting e limita la memoria necessaria per l'addestramento, perché i livelli congelati non memorizzano gradienti né lo stato dell'ottimizzatore. Con un dataset ampio o un dominio diverso, come le immagini a raggi X o termiche, il fine-tuning anche del backbone consente alle sue caratteristiche di adattarsi. In YOLO26, il backbone comprende i livelli 0–10 (convoluzioni con stride, blocchi C3k2, un blocco di pooling SPPF e un blocco di attenzione C2PSA), e l'argomento di addestramento freeze=11 li congela tutti, così l'addestramento aggiorna solo il neck e la head di rilevamento, una configurazione descritta nel dettaglio nella guida al fine-tuning.
from ultralytics import YOLO
# Carica un modello di rilevamento YOLO26 preaddestrato su COCO
model = YOLO("yolo26n.pt")
# Esegui il fine-tuning su un piccolo dataset mantenendo congelato l'intero backbone (livelli 0-10)
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, freeze=11)Prima della prima epoca, il trainer registra Freezing layer 'model.0.conv.weight' e una riga corrispondente per ogni altro parametro nei livelli 0–10; questi parametri restano fissi mentre il neck e la head apprendono dai nuovi dati.










