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

CutMix

CutMix incolla una porzione rettangolare di un'immagine di addestramento su un'altra e combina le etichette in base all'area della porzione, migliorando la precisione e la localizzazione.

CutMix è una tecnica di aumento dei dati che ritaglia una patch rettangolare da un'immagine di addestramento, la incolla sulla stessa area di un'altra immagine e combina le due etichette in proporzione all'area occupata da ciascuna immagine. Sangdoo Yun e colleghi di NAVER Clova AI Research l'hanno introdotta in un articolo ICCV del 2019 come combinazione di due idee precedenti: la rimozione di un'area casuale operata da Cutout e la combinazione delle etichette di MixUp. Su ImageNet, CutMix ha ridotto l'errore top-1 di una ResNet-50 dal 23,68% al 21,40%, superando MixUp al 22,58% e Cutout al 22,93%; inoltre, i modelli preaddestrati con questa tecnica si sono trasferiti meglio al rilevamento di oggetti e alla generazione di didascalie per immagini.

Come funziona CutMix#

Per ogni coppia di immagini A e B, CutMix estrae un rapporto di miscelazione λ da una distribuzione Beta, che con il parametro predefinito α = 1 è uniforme tra 0 e 1. Disegna quindi un riquadro la cui larghezza e altezza sono quelle dell'immagine moltiplicate per √(1 − λ), lo centra in un punto casuale, lo ritaglia entro i bordi dell'immagine e copia in A la regione corrispondente di B. Dopo il ritaglio, λ viene ricalcolato come frazione di A rimasta e l'etichetta diventa λ parti A e (1 − λ) parti B; per esempio, una patch di gatto che copre il 30% di un'immagine di cane produce un target composto per 0,7 da cane e per 0,3 da gatto. L'addestramento minimizza la funzione di loss rispetto a questa etichetta morbida, come avviene con lo smussamento delle etichette.

Il modulo torchvision di PyTorch applica CutMix a un intero batch, abbinando ogni immagine a quella adiacente nel batch:

import torch
from torchvision.transforms import v2

# A batch of 4 random 224x224 images labeled with classes 0-3 of 10
torch.manual_seed(0)
images = torch.rand(4, 3, 224, 224)
labels = torch.tensor([0, 1, 2, 3])

# Paste a random box from each image's neighbor in the batch and mix the labels by area
cutmix = v2.CutMix(num_classes=10)
mixed_images, mixed_labels = cutmix(images, labels)

# Image 0 received its patch from image 3
pasted = (mixed_images[0] != images[0]).any(dim=0).float().mean()
print(f"pasted area: {pasted:.3f}")
print(f"label weights for classes 0-3: {mixed_labels[0, :4].numpy().round(3)}")

Stampa un'area incollata pari a 0,187 e pesi delle etichette pari a 0,813 per la classe 0 e 0,187 per la classe 3: la quota del target assegnata a ciascuna classe corrisponde alla quota di pixel fornita da quella classe.

Perché CutMix è utile#

Un modello di classificazione delle immagini addestrato su immagini intere può riuscire nel compito riconoscendo una singola parte molto discriminante, come il muso di un cane. Quando CutMix copre quella parte con un'altra immagine, il modello deve riconoscere il cane dal corpo, dalle zampe o dal pelo; impara così a sfruttare una porzione maggiore di ciascun oggetto, migliorando la localizzazione debolmente supervisionata e la robustezza all'occlusione. Ogni pixel dell'immagine combinata proviene comunque da una foto reale, quindi il modello non viene mai addestrato su aree vuote o fusioni spettrali. Come altri metodi di aumento dei dati avanzati, CutMix agisce da regolarizzatore e riduce l'overfitting; le ricette di addestramento moderne per i vision transformer (ViT), inclusa quella alla base dei Data-efficient Image Transformers (DeiT) di Meta, applicano insieme CutMix e MixUp.

  • MixUp: combina due immagini intere pixel per pixel con un peso λ e miscela le relative etichette allo stesso modo, producendo sovrapposizioni semitrasparenti che non somigliano a scene reali.
  • Cutout: maschera un quadrato casuale con zeri e conserva l'etichetta originale, così i pixel mascherati non forniscono informazioni utili all'addestramento.
  • Mosaic: affianca quattro immagini ridimensionate in un'unica immagine; è un metodo di aumento dei dati standard per addestrare rilevatori di oggetti e conserva le etichette dei riquadri di ogni oggetto ancora presente nell'immagine.
  • Copia-incolla per la segmentazione di istanze: incolla in un'immagine le istanze di oggetti segmentate provenienti da un'altra, anziché rettangoli.

CutMix nel rilevamento di oggetti#

Nel rilevamento, tutte le etichette restano discrete: invece di un vettore di classi misto, si conservano i riquadri di entrambe le immagini per gli oggetti che restano visibili. La cutmix tecnica di aumento dei dati di Ultralytics YOLO, disattivata per impostazione predefinita, accetta una probabilità compresa tra 0 e 1. La sua implementazione sceglie una regione di ritaglio che non si sovrappone ad alcuno dei riquadri già presenti nell'immagine di destinazione, copia la stessa regione da una seconda immagine e conserva ogni riquadro di delimitazione incollato che mantiene almeno il 10% della propria area all'interno della regione, oppure l'1% nel caso delle etichette di segmentazione. Per impostazione predefinita, CutMix si disattiva insieme a mosaic nelle ultime 10 epoche di addestramento, secondo il valore impostato da close_mosaic=10.

Explore solutions

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 da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
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