Migliora il tuo dataset per addestrare YOLO26 usando Albumentations
Quando sviluppi modelli di visione artificiale, la qualità e la varietà dei tuoi dati di addestramento possono giocare un ruolo importante nelle prestazioni del tuo modello. Albumentations offre un modo veloce, flessibile ed efficiente per applicare un'ampia gamma di trasformazioni alle immagini che possono migliorare la capacità del tuo modello di adattarsi a scenari reali. Si integra facilmente con Ultralytics YOLO26 e può aiutarti a creare dataset robusti per attività di rilevamento oggetti, segmentazione e classificazione.
Usando Albumentations, puoi potenziare i tuoi dati di addestramento YOLO26 con tecniche come trasformazioni geometriche e regolazioni del colore. In questo articolo, vedremo come Albumentations può migliorare il tuo processo di aumento dei dati e rendere i tuoi progetti YOLO26 ancora più efficaci. Iniziamo!
Albumentations per l'aumento delle immagini
Albumentations è una libreria open-source per l'aumento delle immagini creata nel giugno 2018. È progettata per semplificare e accelerare il processo di aumento delle immagini nella visione artificiale. Creata pensando alle prestazioni e alla flessibilità, supporta molte tecniche di aumento diverse, che spaziano da semplici trasformazioni come rotazioni e ribaltamenti a regolazioni più complesse come variazioni di luminosità e contrasto. Albumentations aiuta gli sviluppatori a generare dataset ricchi e variegati per attività come classificazione delle immagini, rilevamento oggetti e segmentazione.
Puoi usare Albumentations per applicare facilmente aumenti a immagini, maschere di segmentazione, riquadri di delimitazione e punti chiave, assicurandoti che tutti gli elementi del tuo dataset vengano trasformati insieme. Funziona perfettamente con framework di deep learning popolari come PyTorch e TensorFlow, rendendolo accessibile per una vasta gamma di progetti.
Inoltre, Albumentations è un'ottima opzione per l'aumento dei dati, sia che tu stia gestendo piccoli dataset sia attività di visione artificiale su larga scala. Garantisce un'elaborazione rapida ed efficiente, riducendo il tempo dedicato alla preparazione dei dati. Allo stesso tempo, aiuta a migliorare le prestazioni del modello, rendendo i tuoi modelli più efficaci nelle applicazioni reali.
Caratteristiche principali di Albumentations
Albumentations offre molte funzionalità utili che semplificano complesse aumentazioni di immagini per un'ampia gamma di applicazioni di visione artificiale. Ecco alcune delle caratteristiche principali:
- Ampia gamma di trasformazioni: Albumentations offre oltre 70 trasformazioni diverse, inclusi cambiamenti geometrici (ad esempio, rotazione, ribaltamento), regolazioni del colore (ad esempio, luminosità, contrasto) e aggiunta di rumore (ad esempio, rumore gaussiano). Avere molte opzioni consente la creazione di dataset di addestramento altamente diversificati e robusti.
-
Ottimizzazione delle prestazioni elevate: Basato su OpenCV e NumPy, Albumentations utilizza tecniche di ottimizzazione avanzate come SIMD (Single Instruction, Multiple Data), che elabora più punti dati simultaneamente per velocizzare l'elaborazione. Gestisce rapidamente dataset di grandi dimensioni, rendendolo una delle opzioni più veloci disponibili per l'aumento delle immagini.
-
Tre livelli di aumento: Albumentations supporta tre livelli di aumento: trasformazioni a livello di pixel, trasformazioni a livello spaziale e trasformazioni a livello di miscelazione. Le trasformazioni a livello di pixel influenzano solo le immagini di input senza alterare maschere, riquadri di delimitazione o punti chiave. Nel frattempo, sia l'immagine che i suoi elementi, come maschere e riquadri di delimitazione, vengono trasformati utilizzando trasformazioni a livello spaziale. Inoltre, le trasformazioni a livello di miscelazione sono un modo unico per aumentare i dati poiché combinano più immagini in una sola.

- Risultati di benchmarking: Quando si parla di benchmarking, Albumentations supera costantemente altre librerie, specialmente con dataset di grandi dimensioni.
Perché dovresti usare Albumentations per i tuoi progetti di Vision AI?
Per quanto riguarda l'aumento delle immagini, Albumentations si distingue come uno strumento affidabile per le attività di visione artificiale. Ecco alcuni motivi chiave per cui dovresti considerare di usarlo per i tuoi progetti di Vision AI:
-
API facile da usare: Albumentations fornisce un'API singola e diretta per applicare un'ampia gamma di aumenti a immagini, maschere, riquadri di delimitazione e punti chiave. È progettata per adattarsi facilmente a diversi dataset, rendendo la preparazione dei dati più semplice ed efficiente.
-
Test rigoroso dei bug: I bug nella pipeline di aumentazione possono corrompere silenziosamente i dati di input, spesso passando inosservati ma degradando alla fine le prestazioni del modello. Albumentations affronta questo problema con una suite di test completa che aiuta a rilevare i bug nelle prime fasi dello sviluppo.
-
Estensibilità: Albumentations può essere usato per aggiungere facilmente nuove trasformazioni e usarle nelle pipeline di visione artificiale tramite un'unica interfaccia, insieme alle trasformazioni integrate.
Come usare Albumentations per aumentare i dati per l'addestramento di YOLO26
Ora che abbiamo visto cos'è Albumentations e cosa può fare, diamo un'occhiata a come usarlo per aumentare i tuoi dati per l'addestramento del modello YOLO26. È facile da configurare perché si integra direttamente nella modalità di addestramento di Ultralytics e si applica automaticamente se hai il pacchetto Albumentations installato.
Installazione
Per usare Albumentations con YOLO26, inizia assicurandoti di avere installati i pacchetti necessari. Se Albumentations non è installato, gli aumenti non verranno applicati durante l'addestramento. Una volta configurato, sarai pronto a creare un dataset aumentato per l'addestramento, con Albumentations integrato per migliorare automaticamente il tuo modello.
# Install the required packages
pip install albumentations ultralyticsPer istruzioni dettagliate e best practice relative al processo di installazione, controlla la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Dopo aver installato i pacchetti necessari, sei pronto a iniziare a usare Albumentations con YOLO26. Quando addestri YOLO26, una serie di aumentazioni viene applicata automaticamente tramite la sua integrazione con Albumentations, rendendo facile migliorare le prestazioni del tuo modello.
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Successivamente, esaminiamo più da vicino le specifiche aumentazioni applicate durante l'addestramento.
Sfocatura (Blur)
La trasformazione Blur in Albumentations applica un semplice effetto sfocatura all'immagine mediando i valori dei pixel all'interno di una piccola area quadrata, o kernel. Questo viene fatto usando la funzione cv2.blur di OpenCV, che aiuta a ridurre il rumore nell'immagine, sebbene riduca anche leggermente i dettagli dell'immagine.
Ecco i parametri e i valori usati in questa integrazione:
-
blur_limit: Controlla l'intervallo di dimensioni dell'effetto sfocatura. L'intervallo predefinito è (3, 7), il che significa che la dimensione del kernel per la sfocatura può variare tra 3 e 7 pixel, con solo numeri dispari consentiti per mantenere la sfocatura centrata.
-
p: La probabilità di applicare la sfocatura. Nell'integrazione, p=0.01, quindi c'è una probabilità dell'1% che questa sfocatura venga applicata a ciascuna immagine. La bassa probabilità consente effetti di sfocatura occasionali, introducendo un po' di variazione per aiutare il modello a generalizzare senza sfocare eccessivamente le immagini.
Sfumatura mediana (Median Blur)
La trasformazione MedianBlur in Albumentations applica un effetto di sfocatura mediana all'immagine, che è particolarmente utile per ridurre il rumore preservando i bordi. A differenza dei tipici metodi di sfocatura, MedianBlur utilizza un filtro mediano, che è particolarmente efficace nel rimuovere il rumore "sale e pepe" mantenendo la nitidezza attorno ai bordi.
Ecco i parametri e i valori usati in questa integrazione:
-
blur_limit: Questo parametro controlla la dimensione massima del kernel di sfocatura. In questa integrazione, è impostato di default su un intervallo di (3, 7), il che significa che la dimensione del kernel per la sfocatura viene scelta casualmente tra 3 e 7 pixel, con solo valori dispari consentiti per garantire un corretto allineamento.
-
p: Imposta la probabilità di applicare la sfocatura mediana. Qui, p=0.01, quindi la trasformazione ha una probabilità dell'1% di essere applicata a ogni immagine. Questa bassa probabilità assicura che la sfocatura mediana venga usata con parsimonia, aiutando il modello a generalizzare vedendo occasionalmente immagini con rumore ridotto e bordi preservati.
L'immagine qui sotto mostra un esempio di questa aumentazione applicata a un'immagine.
Scala di grigi (Grayscale)
La trasformazione ToGray in Albumentations converte un'immagine in scala di grigi, riducendola a un formato a canale singolo e replicando facoltativamente questo canale per corrispondere a un numero specificato di canali di output. È possibile utilizzare diversi metodi per regolare il modo in cui viene calcolata la luminosità in scala di grigi, spaziando da una semplice media a tecniche più avanzate per una percezione realistica di contrasto e luminosità.
Ecco i parametri e i valori usati in questa integrazione:
-
num_output_channels: Imposta il numero di canali nell'immagine di output. Se questo valore è superiore a 1, il singolo canale in scala di grigi verrà replicato per creare un'immagine in scala di grigi multicanale. Di default, è impostato su 3, fornendo un'immagine in scala di grigi con tre canali identici.
-
method: Definisce il metodo di conversione in scala di grigi. Il metodo predefinito, "weighted_average", applica una formula (0.299R + 0.587G + 0.114B) che si allinea strettamente alla percezione umana, fornendo un effetto in scala di grigi dall'aspetto naturale. Altre opzioni, come "from_lab", "desaturation", "average", "max" e "pca", offrono modi alternativi per creare immagini in scala di grigi basati su varie esigenze di velocità, enfasi sulla luminosità o conservazione dei dettagli.
-
p: Controlla quanto spesso viene applicata la trasformazione in scala di grigi. Con p=0.01, c'è una probabilità dell'1% di convertire ogni immagine in scala di grigi, rendendo possibile un mix di immagini a colori e in scala di grigi per aiutare il modello a generalizzare meglio.
L'immagine qui sotto mostra un esempio di questa trasformazione in scala di grigi applicata.
Equalizzazione dell'istogramma adattiva limitata dal contrasto (CLAHE)
La trasformazione CLAHE in Albumentations applica l'equalizzazione dell'istogramma adattiva limitata dal contrasto (CLAHE), una tecnica che migliora il contrasto dell'immagine equalizzando l'istogramma in regioni localizzate (tessere) anziché sull'intera immagine. CLAHE produce un effetto di miglioramento bilanciato, evitando il contrasto eccessivamente amplificato che può derivare dalla standardizzazione dell'istogramma, specialmente in aree con un contrasto inizialmente basso.
Ecco i parametri e i valori usati in questa integrazione:
-
clip_limit: Controlla l'intervallo di miglioramento del contrasto. Impostato su un intervallo predefinito di (1, 4), determina il contrasto massimo consentito in ogni tessera. Valori più alti vengono usati per un contrasto maggiore, ma possono anche introdurre rumore.
-
tile_grid_size: Definisce la dimensione della griglia di tessere, solitamente come (righe, colonne). Il valore predefinito è (8, 8), il che significa che l'immagine viene divisa in una griglia 8x8. Dimensioni delle tessere più piccole forniscono regolazioni più localizzate, mentre quelle più grandi creano effetti più vicini all'equalizzazione globale.
-
p: La probabilità di applicare CLAHE. Qui, p=0.01 introduce l'effetto di miglioramento solo l'1% delle volte, garantendo che le regolazioni del contrasto vengano applicate con parsimonia per una variazione occasionale nelle immagini di addestramento.
L'immagine qui sotto mostra un esempio della trasformazione CLAHE applicata.
Uso di trasformazioni Albumentations personalizzate
Sebbene l'integrazione predefinita di Albumentations fornisca una solida serie di aumentazioni, potresti voler personalizzare le trasformazioni per il tuo caso d'uso specifico. Con Ultralytics YOLO26, puoi facilmente passare trasformazioni Albumentations personalizzate tramite l'API Python usando il parametro augmentations.
Come definire trasformazioni personalizzate
Puoi definire il tuo elenco di trasformazioni Albumentations e passarle alla funzione di addestramento. Questo sostituisce le trasformazioni Albumentations predefinite mantenendo attivi tutti gli altri aumenti YOLO (come hsv_h, degrees, mosaic, ecc.).
Ecco un esempio con trasformazioni più avanzate:
import albumentations as A
from ultralytics import YOLO
# Load model
model = YOLO("yolo26n.pt")
# Define custom transforms with various augmentation techniques
custom_transforms = [
# Blur variations
A.OneOf(
[
A.MotionBlur(blur_limit=7, p=1.0),
A.MedianBlur(blur_limit=7, p=1.0),
A.GaussianBlur(blur_limit=7, p=1.0),
],
p=0.3,
),
# Noise variations
A.OneOf(
[
A.GaussNoise(var_limit=(10.0, 50.0), p=1.0),
A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
],
p=0.2,
),
# Color and contrast adjustments
A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
# Simulate occlusions
A.CoarseDropout(
max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=0, p=0.2
),
]
# Train with custom transforms
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
augmentations=custom_transforms,
)Considerazioni importanti
Quando usi trasformazioni Albumentations personalizzate, tieni a mente questi punti:
- Solo API Python: Le trasformazioni personalizzate possono essere passate solo tramite l'API Python, non tramite CLI o file di configurazione YAML.
- Sostituisce i valori predefiniti: Le tue trasformazioni personalizzate sostituiranno completamente le trasformazioni Albumentations predefinite. Altri aumenti YOLO rimangono attivi.
- Gestione dei riquadri di delimitazione: Ultralytics gestisce automaticamente le regolazioni dei riquadri di delimitazione per la maggior parte delle trasformazioni, ma trasformazioni spaziali complesse potrebbero richiedere ulteriori test.
- Prestazioni: Alcune trasformazioni sono computazionalmente costose. Monitora la velocità di addestramento e regola di conseguenza.
- Compatibilità delle attività: Le trasformazioni Albumentations personalizzate funzionano con attività di rilevamento e segmentazione, ma non con la classificazione (che utilizza una pipeline di aumentazione diversa).
Casi d'uso per trasformazioni personalizzate
Diverse applicazioni traggono vantaggio da diverse strategie di aumentazione:
- Imaging medico: Usa deformazioni elastiche, distorsioni della griglia e modelli di rumore specializzati
- Immagini aeree/satellitari: Applica trasformazioni che simulano diverse altitudini, condizioni meteorologiche e angolazioni di luce
- Scenari con scarsa illuminazione: Enfatizza l'aggiunta di rumore e le regolazioni della luminosità per addestrare modelli robusti per condizioni di luce difficili
- Ispezione industriale: Aggiungi variazioni di texture e difetti simulati per applicazioni di controllo qualità
Per un elenco completo delle trasformazioni disponibili e dei relativi parametri, visita la documentazione di Albumentations.
Per esempi più dettagliati e best practice sull'uso di trasformazioni Albumentations personalizzate con YOLO26, consulta la guida all'aumento dei dati di YOLO.
Continua a imparare su Albumentations
Se sei interessato a saperne di più su Albumentations, controlla le seguenti risorse per istruzioni ed esempi più approfonditi:
-
Documentazione di Albumentations: La documentazione ufficiale fornisce una gamma completa di trasformazioni supportate e tecniche di utilizzo avanzate.
-
Guida ad Albumentations di Ultralytics: Dai un'occhiata più da vicino ai dettagli della funzione che facilita questa integrazione.
-
Repository GitHub di Albumentations: Il repository include esempi, benchmark e discussioni per aiutarti a iniziare a personalizzare le aumentazioni.
Punti chiave
In questa guida, abbiamo esplorato gli aspetti chiave di Albumentations, un'ottima libreria Python per l'aumento delle immagini. Abbiamo discusso la sua ampia gamma di trasformazioni, le prestazioni ottimizzate e come puoi usarlo nel tuo prossimo progetto YOLO26.
Inoltre, se vuoi saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina delle guide all'integrazione. Troverai risorse e approfondimenti preziosi lì.
FAQ
Come posso integrare Albumentations con YOLO26 per un migliore aumento dei dati?
Albumentations si integra perfettamente con YOLO26 e si applica automaticamente durante l'addestramento se hai il pacchetto installato. Ecco come iniziare:
# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO
# Load and train model with automatic augmentations
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=100)L'integrazione include aumentazioni ottimizzate come sfocatura, sfocatura mediana, conversione in scala di grigi e CLAHE con probabilità attentamente regolate per migliorare le prestazioni del modello.
Quali sono i vantaggi chiave dell'uso di Albumentations rispetto ad altre librerie di aumentazione?
Albumentations si distingue per diversi motivi:
- Prestazioni: Basato su OpenCV e NumPy con ottimizzazione SIMD per una velocità superiore
- Flessibilità: Supporta oltre 70 trasformazioni tra aumentazioni a livello di pixel, livello spaziale e livello di miscelazione
- Compatibilità: Funziona perfettamente con framework popolari come PyTorch e TensorFlow
- Affidabilità: L'ampia suite di test previene la corruzione silenziosa dei dati
- Facilità d'uso: Singola API unificata per tutti i tipi di aumentazione
Quali tipi di attività di visione artificiale possono beneficiare dell'aumento con Albumentations?
Albumentations migliora varie attività di visione artificiale tra cui:
- Rilevamento oggetti: Migliora la robustezza del modello alle variazioni di illuminazione, scala e orientamento
- Segmentazione dell'istanza: Migliora l'accuratezza della previsione della maschera tramite trasformazioni diversificate
- Classificazione: Aumenta la generalizzazione del modello con aumentazioni di colore e geometriche
- Stima della posa: Aiuta i modelli ad adattarsi a diversi punti di vista e condizioni di illuminazione
Le diverse opzioni di aumento della libreria la rendono preziosa per qualsiasi attività di visione che richieda prestazioni del modello robuste.