Link to this sectionMigliora il tuo dataset per addestrare YOLO26 usando Albumentations#
Quando crei modelli di computer vision, 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 del mondo reale. Si integra facilmente con Ultralytics YOLO26 e può aiutarti a creare dataset robusti per attività di object detection, 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 data augmentation e rendere i tuoi progetti YOLO26 ancora più efficaci. Iniziamo!
Link to this sectionAlbumentations per l'Image Augmentation#
Albumentations è una libreria open-source per l'augmentation delle immagini creata nel giugno 2018. È progettata per semplificare e accelerare il processo di augmentation delle immagini nella computer vision. Creata pensando alle prestazioni e alla flessibilità, supporta molte tecniche di augmentation diversificate, che spaziano 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 variegati per attività come image classification, object detection e segmentation.
Puoi usare Albumentations per applicare facilmente le trasformazioni a immagini, maschere di segmentazione, bounding boxes e punti chiave, assicurandoti che tutti gli elementi del tuo dataset vengano trasformati insieme. Funziona perfettamente con popolari framework di deep learning 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 o attività di computer vision su larga scala. Garantisce un'elaborazione veloce 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 del mondo reale.
Link to this sectionCaratteristiche principali di Albumentations#
Albumentations offre molte funzionalità utili che semplificano complesse augmentation di immagini per una vasta gamma di applicazioni di computer vision. Ecco alcune delle caratteristiche principali:
- Ampia gamma di trasformazioni: Albumentations offre oltre 70 diverse trasformazioni, incluse modifiche geometriche (es. rotazione, ribaltamento), regolazioni del colore (es. luminosità, contrasto) e aggiunta di rumore (es. rumore gaussiano). Avere molteplici opzioni consente la creazione di dataset di addestramento altamente diversificati 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.

- Risultati di benchmarking: Quando si parla di benchmarking, Albumentations supera costantemente le altre librerie, specialmente con dataset di grandi dimensioni.
Link to this sectionPerché 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 singola e semplice per applicare una vasta gamma di trasformazioni a immagini, maschere, bounding boxes e punti chiave. È progettato per adattarsi facilmente a diversi dataset, rendendo la preparazione dei dati 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.
Link to this sectionCome usare Albumentations per aumentare i dati per l'addestramento di YOLO26#
Ora che abbiamo spiegato 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.
Link to this sectionInstallazione#
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 best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Durante l'installazione dei pacchetti necessari per YOLO26, se riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Link to this sectionUtilizzo#
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.
Link to this sectionSfoca#
La trasformazione Blur in Albumentations applica un semplice effetto sfocato all'immagine calcolando la media dei 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: 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.
Link to this sectionMedian 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.
Link to this sectionGrayscale#
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.
Link to this sectionContrast 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.
Link to this sectionUsare trasformazioni Albumentations personalizzate#
Mentre l'integrazione predefinita di Albumentations fornisce un solido set di trasformazioni, 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.
Link to this sectionCome definire trasformazioni personalizzate#
Puoi definire il tuo elenco di trasformazioni Albumentations e passarle alla funzione di addestramento. Questo sostituisce le trasformazioni Albumentations predefinite 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(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,
)Link to this sectionConsiderazioni 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).
Link to this sectionCasi 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 loro parametri, visita la documentazione di Albumentations.
Per esempi più dettagliati e best practice sull'uso di trasformazioni Albumentations personalizzate con YOLO26, consulta la guida alla Data Augmentation di YOLO.
Link to this sectionContinua a imparare su Albumentations#
Se ti interessa saperne di più su Albumentations, dai un'occhiata alle 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 di Ultralytics Albumentations: 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 augmentation.
Link to this sectionPunti 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 vuoi saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina delle guide di integrazione. Troverai risorse e approfondimenti preziosi lì.
Link to this sectionFAQ#
Link to this sectionCome posso integrare Albumentations con YOLO26 per una migliore data augmentation?#
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.
Link to this sectionQuali sono i vantaggi chiave dell'utilizzo di Albumentations rispetto ad altre librerie di augmentation?#
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
Link to this sectionQuali tipi di attività di computer vision possono beneficiare dell'augmentation di Albumentations?#
Albumentations migliora varie attività di computer vision tra cui:
- Object Detection: Migliora la robustezza del modello alle variazioni di luce, scala e orientamento
- Instance Segmentation: Migliora l'accuratezza della previsione della maschera attraverso trasformazioni diversificate
- Classification: Aumenta la generalizzazione del modello con augmentation cromatiche e geometriche
- Pose Estimation: Aiuta i modelli ad adattarsi a diversi punti di vista e condizioni di luce
Le diverse opzioni di augmentation della libreria la rendono preziosa per qualsiasi attività di visione che richieda prestazioni del modello robuste.