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

Data Augmentation

L'aumento dei dati addestra i modelli su copie esistenti delle immagini trasformate casualmente, ad esempio con capovolgimenti, ritagli e variazioni di colore, migliorandone la capacità di generalizzazione.

L'aumento dei dati amplia la varietà di un dataset di addestramento applicando trasformazioni casuali, come ribaltamenti, ritagli, ridimensionamenti, variazioni di colore e combinazioni di immagini, agli esempi che il dataset contiene già. Ogni copia trasformata conserva la propria etichetta originale, così il modello impara che un oggetto rimane lo stesso nonostante le variazioni del punto di vista, dell'illuminazione e della posizione. Poiché raccogliere ed etichettare nuove immagini è lento e costoso, l'aumento dei dati è la difesa più economica contro il sovradattamento e quasi tutti i moderni modelli di visione artificiale vengono addestrati con l'aumento dei dati.

Come funziona l'aumento dei dati#

La maggior parte delle pipeline di addestramento applica l'aumento dei dati online: il caricatore dei dati trasforma ogni immagine mentre crea un batch, estraendo ogni volta nuovi parametri casuali; così, a ogni epoca, ogni immagine appare in una versione diversa. L'aumento offline salva invece su disco un numero fisso di copie trasformate prima dell'addestramento, moltiplicando lo spazio occupato e offrendo al modello molte meno varianti distinte.

Due regole impediscono alle trasformazioni di alterare i dati. Primo, le etichette devono seguire i pixel: nel rilevamento degli oggetti, nella segmentazione delle istanze e nella stima della posa, una trasformazione geometrica deve aggiornare ogni riquadro di delimitazione, maschera e punto chiave, e un ribaltamento orizzontale scambia anche i punti chiave sinistri con quelli destri. Secondo, la trasformazione deve essere possibile nel mondo reale: i ribaltamenti verticali sono adatti alle immagini aeree e alle immagini al microscopio, mentre nelle scene stradali creano auto capovolte che non compaiono mai al momento dell'inferenza. Le trasformazioni di Torchvision gestiscono automaticamente la prima regola quando i riquadri vengono passati insieme all'immagine:

from urllib.request import urlopen

from PIL import Image
from torchvision import tv_tensors
from torchvision.transforms import v2

image = Image.open(urlopen("https://ultralytics.com/images/bus.jpg"))  # 810 x 1080 pixels
boxes = tv_tensors.BoundingBoxes([[50, 400, 250, 900]], format="XYXY", canvas_size=(1080, 810))

# Flip every time (p=1.0) and shift colors; the box must move with the pixels
augment = v2.Compose([v2.RandomHorizontalFlip(p=1.0), v2.ColorJitter(brightness=0.4, saturation=0.7)])
new_image, new_boxes = augment(image, boxes)

print(f"Original box: {boxes.tolist()}")
print(f"Flipped box:  {new_boxes.tolist()}")

Il riquadro attorno all'uomo sul lato sinistro dell'immagine si sposta da [50, 400, 250, 900] a [560, 400, 760, 900], specchiato rispetto alla larghezza di 810 pixel; la variazione cromatica modifica i pixel senza toccare il riquadro.

Tecniche comuni#

  • Trasformazioni geometriche: Ribaltamenti, rotazioni, ridimensionamenti, traslazioni, ritagli, deformazioni e trasformazioni prospettiche simulano diverse posizioni della telecamera e dimensioni degli oggetti.
  • Trasformazioni fotometriche: Modifiche a luminosità, contrasto, saturazione e tonalità, oltre a sfocatura e rumore, simulano diverse condizioni di illuminazione, sensori e qualità delle immagini.
  • Occlusione: La cancellazione casuale e il cutout oscurano dei rettangoli, impedendo al modello di basarsi su una sola parte dell'oggetto.
  • Combinazione di immagini: MixUp fonde due immagini e le relative etichette, CutMix incolla una porzione di un'immagine in un'altra, il mosaico affianca quattro immagini in un unico campione di addestramento e il copy-paste trasferisce oggetti segmentati su nuovi sfondi.
  • Policy automatizzate: RandAugment applica una sequenza casuale di trasformazioni controllata da sole due impostazioni, il numero e l'intensità delle trasformazioni, evitando così la costosa ricerca richiesta dalle precedenti policy apprese.

Pipeline di aumento dei dati per il rilevamento di oggetti#

Le pipeline di rilevamento concatenano più trasformazioni, ciascuna applicata con una propria probabilità, così ogni immagine di addestramento riceve una combinazione casuale diversa.

L'addestramento di Ultralytics YOLO esegue questa pipeline per impostazione predefinita: applica il mosaico a ogni immagine (mosaic=1.0), usa una probabilità del 50% di ribaltamento orizzontale (fliplr=0.5), una variazione di scala fino a ±50% e variazioni cromatiche HSV; disattiva inoltre il mosaico nelle ultime 10 epoche (close_mosaic=10), così il modello termina l'addestramento su immagini complete e dall'aspetto naturale.

from ultralytics import YOLO

# Carica un modello YOLO26n preaddestrato
model = YOLO("yolo26n.pt")

# fliplr: probabilità di ribaltamento orizzontale; scale: intervallo di zoom (+/- 70%); degrees: intervallo di rotazione (+/- 5)
results = model.train(data="coco8.yaml", epochs=10, fliplr=0.5, scale=0.7, degrees=5.0)

Durante questa esecuzione, il trainer YOLO26 salva i primi tre batch aumentati come train_batch0.jpg, train_batch1.jpg e train_batch2.jpg, con i riquadri disegnati, così puoi verificare l'effetto di ogni impostazione prima di avviare un'esecuzione lunga.

  • Dati sintetici: Generati da zero con motori di rendering, simulatori o modelli di diffusione. L'aumento dei dati modifica immagini reali già esistenti.
  • Preelaborazione dei dati: Passaggi deterministici, come il ridimensionamento e la normalizzazione, applicati in modo identico a ogni immagine durante l'addestramento e l'inferenza. L'aumento dei dati è casuale e avviene solo durante l'addestramento.
  • Aumento in fase di test (TTA): Esegue l'inferenza su diverse versioni aumentate dello stesso input, come copie ribaltate e ridimensionate, e combina le previsioni; sacrifica più calcoli per ottenere un lieve incremento della precisione.

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