Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Anchor Boxes

Le anchor box sono riquadri predefiniti di dimensioni e proporzioni fisse che un rilevatore sposta e ridimensiona per adattarli agli oggetti. Come vengono dimensionati, abbinati e usati.

Le anchor box sono rettangoli predefiniti di dimensioni e proporzioni fisse, disposti in ogni posizione delle mappe di caratteristiche di un rilevatore, che fungono da stime iniziali della posizione e della forma degli oggetti. Un rilevatore basato su anchor assegna a ogni anchor un punteggio per ciascuna classe e prevede piccoli offset che la spostano e ridimensionano per adattarla all'oggetto: è più semplice da apprendere che prevedere una box dal nulla. Faster R-CNN colloca 9 anchor in ogni posizione: tre aree (128², 256² e 512² pixel) per tre proporzioni (1:1, 1:2 e 2:1), per un totale di circa 20.000 anchor in un'immagine da 1000 × 600.

Come vengono definite le anchor#

Un insieme di anchor è un elenco di dimensioni e proporzioni ripetuto in ogni cella di una mappa di caratteristiche; il numero di anchor equivale quindi a celle × forme per cella. I rilevatori con una rete piramidale di caratteristiche (FPN) assegnano anchor piccole ai livelli ad alta risoluzione e anchor grandi ai livelli più grossolani: RetinaNet usa 9 anchor per posizione su ciascuno dei cinque livelli, circa 100.000 per immagine. SSD le chiama box predefinite e SSD300 ne dispone 8.732.

Le forme scelte manualmente si adattano male ad alcuni set di dati, quindi YOLOv2 ha eseguito il clustering k-means sulle larghezze e altezze delle box di addestramento, usando 1 − IoU come distanza, e ha mantenuto 5 centri di cluster come anchor. YOLOv3 ha raggruppato 9 anchor e le ha distribuite equamente tra i tre stride di output, da 10 × 13 pixel al livello con stride 8 a 373 × 326 al livello con stride 32.

Abbinamento delle anchor agli oggetti#

Durante l'addestramento, ogni anchor viene confrontata con tutte le box etichettate usando l'intersezione sull'unione (IoU). Le anchor che si sovrappongono abbastanza a un oggetto diventano campioni positivi e apprendono la classe dell'oggetto e gli offset per la sua bounding box; quelle con scarsa sovrapposizione diventano negative e apprendono «sfondo», mentre quelle intermedie vengono ignorate. La rete di proposte di regioni di Faster R-CNN considera positive le anchor con IoU pari o superiore a 0,7 e negative quelle sotto 0,3; inoltre, rende positiva l'anchor con l'abbinamento migliore per ciascun oggetto, così nessun oggetto rimane senza un'anchor.

import torch
from torchvision.ops import box_iou

# Nine anchors centered on one feature-map cell at (200, 200): 3 sizes x 3 aspect ratios (height / width)
shapes = [(size, ratio) for size in (64, 128, 256) for ratio in (0.5, 1.0, 2.0)]
anchors = []
for size, ratio in shapes:
    w, h = size / ratio**0.5, size * ratio**0.5
    anchors.append([200 - w / 2, 200 - h / 2, 200 + w / 2, 200 + h / 2])

# A labeled pedestrian box (x1, y1, x2, y2): tall and narrow
person = torch.tensor([[160.0, 110.0, 240.0, 290.0]])

# Faster R-CNN RPN rule: IoU >= 0.7 is positive, below 0.3 is negative, anything between is ignored
iou = box_iou(torch.tensor(anchors), person).squeeze(1)
for (size, ratio), value in zip(shapes, iou.tolist()):
    label = "positive" if value >= 0.7 else "negative" if value < 0.3 else "ignored"
    print(f"size {size}, ratio {ratio}: IoU {value:.2f} -> {label}")

Solo l'anchor alta da 128 pixel (rapporto 2.0) si sovrappone abbastanza al pedone da risultare positiva, con IoU 0,88. Due altre anchor da 128 pixel, con IoU 0,31 e 0,50, vengono ignorate, mentre le sei anchor di dimensioni errate sono negative. L'anchor positiva apprende quindi gli offset secondo la parametrizzazione standard: il centro si sposta di frazioni della larghezza e dell'altezza dell'anchor, mentre larghezza e altezza vengono scalate in base agli esponenziali dei valori previsti.

Scelta delle dimensioni delle anchor per un set di dati#

Le ancore che corrispondono alle forme degli oggetti di un dataset fanno sì che più oggetti abbiano un'ancora positiva, aumentando il richiamo raggiungibile da un rilevatore. Ultralytics YOLOv5 parte da quelle 9 ancore di YOLOv3 e le verifica prima dell'addestramento con AutoAnchor: misura il richiamo massimo ottenibile dalle sue ancore sulle etichette di addestramento e, se il valore non supera 0.98, le adatta nuovamente con k-means e 1.000 generazioni di evoluzione genetica, mantenendo le nuove ancore solo se il richiamo migliora.

Limiti e rilevatori senza anchor#

Le anchor comportano tre costi. Quasi tutte le decine di migliaia di anchor presenti in un'immagine coprono lo sfondo, sovraccaricando la loss di esempi negativi facili; RetinaNet ha introdotto la focal loss per ridurne il peso. Diverse anchor vicine si adattano allo stesso oggetto, quindi l'output richiede la soppressione dei massimi non locali (NMS) per mantenere una sola box per oggetto. Anche dimensioni, proporzioni e soglie IoU sono iperparametri che cambiano in base a ciascun set di dati e alla dimensione dell'immagine.

I rilevatori senza anchor eliminano questi iperparametri prevedendo box a partire da punti o keypoint; la maggior parte dei rilevatori in tempo reale rilasciati dopo YOLOX nel 2021 è priva di anchor. Le anchor sono ancora presenti nei rilevatori basati su anchor, come Faster R-CNN, Mask R-CNN e RetinaNet. Confrontando RetinaNet con FCOS, privo di anchor, ATSS ha rilevato che, una volta adottato lo stesso metodo per scegliere i campioni positivi, RetinaNet con 9 anchor per posizione non era più accurato di RetinaNet con 1.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning