Migliora il tuo dataset per addestrare YOLO26 usando Albumentations#
Quando realizzi computer vision models, la qualità e la varietà dei tuoi training data possono avere un ruolo fondamentale nelle prestazioni del tuo modello. Albumentations offre un modo rapido, flessibile ed efficiente per applicare un'ampia gamma di trasformazioni di 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 object detection, segmentation e classification.
Utilizzando Albumentations, puoi arricchire i tuoi dati di addestramento di YOLO26 con tecniche come trasformazioni geometriche e regolazioni del colore. In questo articolo vedremo come Albumentations può migliorare il tuo processo di data augmentation e rendere i tuoi YOLO26 projects ancora più efficaci. Iniziamo!
Albumentations per l'Image Augmentation#
Albumentations è una libreria di augmentation di immagini open-source creata nel June 2018. È progettata per semplificare e accelerare il processo di image augmentation nella computer vision. Creata con l'attenzione alle performance e alla flessibilità, supporta molte diverse tecniche di augmentation, che vanno da trasformazioni semplici come rotazioni e ribaltamenti a regolazioni più complesse come variazioni di luminosità e contrasto. Albumentations aiuta gli sviluppatori a generare dataset ricchi e vari per attività come image classification, object detection e segmentation.
Puoi utilizzare Albumentations per applicare facilmente l'augmentation a immagini, segmentation masks, bounding boxes e key points, assicurandoti che tutti gli elementi del tuo dataset vengano trasformati insieme. Funziona perfettamente con i framework di deep learning più diffusi come PyTorch e TensorFlow, rendendolo accessibile per un'ampia gamma di progetti.
Inoltre, Albumentations è un'ottima opzione per l'augmentation sia che tu stia gestendo piccoli dataset che computer vision tasks su larga scala. Garantisce un'elaborazione rapida ed efficiente, riducendo il tempo dedicato alla preparazione dei dati. Allo stesso tempo, contribuisce a migliorare le model performance, rendendo i tuoi modelli più efficaci nelle applicazioni del mondo reale.
Caratteristiche principali di Albumentations#
Albumentations offre molte utili funzionalità che semplificano complesse augmentation di immagini per un'ampia gamma di computer vision applications. Ecco alcune delle caratteristiche principali:
- Ampia gamma di trasformazioni: Albumentations offre oltre 70 different transformations, incluse modifiche geometriche (ad es. rotazione, ribaltamento), regolazioni del colore (ad es. luminosità, contrasto) e aggiunta di rumore (ad es. rumore gaussiano). Disporre di molteplici opzioni consente la creazione di dataset di addestramento altamente diversi e robusti.
-
Ottimizzazione ad alte prestazioni: Costruito 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 grandi dataset, rendendolo una delle opzioni più veloci disponibili per l'image augmentation.
-
Tre livelli di augmentation: Albumentations supporta tre livelli di augmentation: trasformazioni a livello di pixel, trasformazioni a livello spaziale e trasformazioni a livello di mix. Le trasformazioni a livello di pixel influenzano solo le immagini in input senza alterare maschere, bounding boxes o punti chiave. Al contrario, sia l'immagine che i suoi elementi, come maschere e bounding boxes, vengono trasformati usando trasformazioni a livello spaziale. Inoltre, le trasformazioni a livello di mix sono un modo unico per aumentare i dati poiché combinano più immagini in una sola.

- Benchmarking Results: Quando si parla di benchmark, Albumentations supera costantemente le altre librerie, specialmente con dataset di grandi dimensioni.
Perché dovresti usare Albumentations per i tuoi progetti di Vision AI?#
Per quanto riguarda l'image augmentation, Albumentations si distingue come uno strumento affidabile per le attività di computer vision. 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 unica e intuitiva per applicare un'ampia gamma di augmentation a immagini, maschere, bounding box e keypoint. È progettata per adattarsi facilmente a diversi dataset, rendendo la data preparation più semplice ed efficiente.
-
Test rigorosi dei bug: I bug nella pipeline di augmentation possono corrompere silenziosamente i dati in input, passando spesso inosservati ma degradando in ultima analisi le prestazioni del modello. Albumentations affronta questo problema con una suite di test approfondita che aiuta a individuare i bug nelle prime fasi dello sviluppo.
-
Estensibilità: Albumentations può essere usato per aggiungere facilmente nuove trasformazioni e usarle nelle pipeline di computer vision attraverso 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, vediamo come utilizzarlo per incrementare i tuoi dati per l'addestramento del modello YOLO26. La configurazione è semplice perché si integra direttamente nella Ultralytics' training mode e si applica automaticamente se hai installato il pacchetto Albumentations.
Installazione#
Per usare Albumentations con YOLO26, inizia assicurandoti di avere installato i pacchetti necessari. Se Albumentations non è installato, le augmentation non verranno applicate 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 migliori pratiche relative al processo di installazione, consulta la nostra Guida all'installazione di Ultralytics. Se riscontri difficoltà durante l'installazione dei pacchetti richiesti per YOLO26, consulta la nostra Guida ai problemi comuni per soluzioni e suggerimenti.
Gli esempi di trasformazioni personalizzate su questa pagina richiedono Albumentations 1.4.22 o successive e quindi Python 3.9 o successivo.
Utilizzo#
Dopo aver installato i pacchetti necessari, sei pronto a iniziare a usare Albumentations con YOLO26. Quando addestri YOLO26, una serie di trasformazioni viene applicata automaticamente attraverso la sua integrazione con Albumentations, rendendo semplice 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, diamo un'occhiata più da vicino alle trasformazioni specifiche che vengono applicate durante l'addestramento.
Sfoca#
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 utilizzando la funzione OpenCV cv2.blur, 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: Questo controlla l'intervallo di dimensione dell'effetto di 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 ogni 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.
Median Blur#
La trasformazione MedianBlur in Albumentations applica un effetto di sfocatura mediana all'immagine, particolarmente utile per ridurre il rumore preservando i bordi. A differenza dei comuni metodi di sfocatura, MedianBlur usa 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, il valore predefinito è 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à garantisce che la sfocatura mediana venga usata con moderazione, aiutando il modello a generalizzare vedendo occasionalmente immagini con rumore ridotto e bordi preservati.
L'immagine sottostante mostra un esempio di questa augmentation applicata a un'immagine.
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 usare diversi metodi per regolare il modo in cui viene calcolata la luminosità della scala di grigi, che spaziano dalla semplice media a tecniche più avanzate per una percezione realistica del contrasto e della 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. Per impostazione predefinita, è impostato su 3, ottenendo 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 in base a varie esigenze di velocità, enfasi sulla luminosità o conservazione dei dettagli.
-
p: Controlla la frequenza con cui 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 sottostante mostra un esempio di questa trasformazione in scala di grigi applicata.
Contrast Limited Adaptive Histogram Equalization (CLAHE)#
La trasformazione CLAHE in Albumentations applica la Contrast Limited Adaptive Histogram Equalization (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 l'eccessiva amplificazione del contrasto che può derivare dall'equalizzazione standard 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, tipicamente 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 moderazione per una variazione occasionale nelle immagini di addestramento.
L'immagine sottostante mostra un esempio della trasformazione CLAHE applicata.
Usare trasformazioni Albumentations personalizzate#
Sebbene l'integrazione predefinita di Albumentations offra un solido set di aumentazioni, potresti voler personalizzare le trasformazioni per il tuo caso d'uso specifico. Con Ultralytics YOLO26, puoi facilmente passare trasformazioni Albumentations personalizzate tramite la Python API usando il parametro augmentations. Gli esempi in questa sezione richiedono Albumentations 1.4.22 o successive.
Come definire trasformazioni personalizzate#
Puoi definire il tuo elenco di trasformazioni Albumentations e passarlo alla funzione di addestramento. Questo sostituisce le trasformazioni predefinite di Albumentations mantenendo attive tutte le altre augmentation di 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(std_range=(0.0124, 0.0277), 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(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=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 Python API: Le trasformazioni personalizzate possono essere passate solo tramite la Python API, non tramite CLI o file di configurazione YAML.
- Sostituisce i valori predefiniti: Le tue trasformazioni personalizzate sostituiranno completamente le trasformazioni Albumentations predefinite. Le altre augmentation di YOLO rimangono attive.
- Gestione delle Bounding Box: Ultralytics gestisce automaticamente le regolazioni delle bounding box per la maggior parte delle trasformazioni, ma le trasformazioni spaziali complesse potrebbero richiedere ulteriori test.
- Prestazioni: Alcune trasformazioni sono computazionalmente costose. Monitora la velocità di addestramento e regolati di conseguenza.
- Compatibilità con le attività: Le trasformazioni Albumentations personalizzate funzionano con le attività di detection e segmentation, ma non con la classification (che usa una pipeline di augmentation diversa).
Casi d'uso per le trasformazioni personalizzate#
Applicazioni diverse beneficiano di strategie di augmentation diverse:
- Immagini mediche: Usa deformazioni elastiche, distorsioni della griglia e modelli di rumore specializzati
- Immagini aeree/satellitari: Applica trasformazioni che simulano diverse altitudini, condizioni meteorologiche e angolazioni della luce
- Scenari con scarsa illuminazione: Enfatizza l'aggiunta di rumore e le regolazioni della luminosità per addestrare modelli robusti per condizioni di illuminazione 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 Albumentations documentation.
Per esempi più dettagliati e best practices sull'uso di trasformazioni Albumentations personalizzate con YOLO26, consulta la YOLO Data Augmentation guide.
Continua a imparare su Albumentations#
Se ti interessa saperne di più su Albumentations, dai un'occhiata alle seguenti risorse per istruzioni ed esempi più approfonditi:
-
Albumentations Documentation: La documentazione ufficiale fornisce una gamma completa di trasformazioni supportate e tecniche di utilizzo avanzate.
-
Ultralytics Albumentations Guide: Dai un'occhiata più da vicino ai dettagli della funzione che facilitano questa integrazione.
-
Albumentations GitHub Repository: Il repository include esempi, benchmark e discussioni per aiutarti a iniziare con la personalizzazione delle augmentation.
Punti chiave#
In questa guida, abbiamo esplorato gli aspetti chiave di Albumentations, un'ottima libreria Python per l'image augmentation. Abbiamo discusso la sua ampia gamma di trasformazioni, le prestazioni ottimizzate e come puoi usarla nel tuo prossimo progetto YOLO26.
Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra integration guide page. Lì troverai risorse e spunti preziosi.
FAQ#
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 augmentation ottimizzate come sfocatura, sfocatura mediana, conversione in scala di grigi e CLAHE con probabilità attentamente regolate per migliorare le prestazioni del modello.
Albumentations si distingue per diversi motivi:
- Prestazioni: Costruito su OpenCV e NumPy con ottimizzazione SIMD per una velocità superiore
- Flessibilità: Supporta oltre 70 trasformazioni tra augmentation a livello di pixel, livello spaziale e livello di mix
- Compatibilità: Funziona perfettamente con framework popolari come PyTorch e TensorFlow
- Affidabilità: Una vasta suite di test previene la corruzione silenziosa dei dati
- Facilità d'uso: Singola API unificata per tutti i tipi di augmentation
Albumentations migliora diverse computer vision tasks tra cui:
- Object Detection: Migliora la robustezza del modello alle variazioni di illuminazione, scala e orientamento
- Instance Segmentation: Migliora la precisione della predizione delle maschere attraverso diverse trasformazioni
- Classification: Aumenta la generalizzazione del modello con augmentation di colore e geometriche
- Pose Estimation: Aiuta i modelli ad adattarsi a diversi punti di vista e condizioni di illuminazione
Le diverse opzioni di augmentation della libreria la rendono preziosa per qualsiasi attività di visione che richieda prestazioni del modello robuste.