Vai al contenuto

Migliora il tuo set di dati per addestrare YOLO11 utilizzando Albumentations

Quando crei modelli di computer vision, la qualità e la varietà dei tuoi dati di addestramento possono svolgere un ruolo importante nelle prestazioni del tuo modello. Albumentations offre un modo rapido, flessibile ed efficiente per applicare un'ampia gamma di trasformazioni delle immagini che possono migliorare la capacità del tuo modello di adattarsi a scenari del mondo reale. Si integra facilmente con Ultralytics YOLO11 e può aiutarti a creare set di dati robusti per attività di object detection, segmentazione e classificazione.

Utilizzando Albumentations, puoi potenziare i tuoi dati di addestramento YOLO11 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 YOLO11 ancora più efficaci. Iniziamo!

Albumentations per l'aumento dei dati delle immagini

Albumentations è una libreria open source per l'aumento dei dati delle immagini creata nel giugno 2018. È progettata per semplificare e accelerare il processo di aumento dei dati delle immagini nella computer vision. Creata pensando alle prestazioni e alla flessibilità, supporta molte diverse tecniche di aumento dei dati, che vanno da semplici trasformazioni come rotazioni e capovolgimenti a regolazioni più complesse come modifiche di luminosità e contrasto. Albumentations aiuta gli sviluppatori a generare set di dati ricchi e vari per attività come la classificazione delle immagini, l'object detection e la segmentazione.

Puoi utilizzare Albumentations per applicare facilmente aumenti ai dati delle immagini, maschere di segmentazione, bounding box e punti chiave, e assicurarti che tutti gli elementi del tuo set di dati vengano trasformati insieme. Funziona perfettamente con framework di deep learning popolari come PyTorch e TensorFlow, rendendolo accessibile per un'ampia gamma di progetti.

Inoltre, Albumentations è un'ottima opzione per l'aumento dei dati, sia che tu stia gestendo piccoli set di dati sia attività di computer vision su larga scala. Garantisce un'elaborazione rapida ed efficiente, riducendo i tempi dedicati 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.

Caratteristiche principali di Albumentations

Albumentations offre molte funzionalità utili che semplificano aumenti complessi dei dati delle immagini per un'ampia gamma di applicazioni di computer vision. Ecco alcune delle caratteristiche principali:

  • Ampia gamma di trasformazioni: Albumentations offre oltre 70 diverse trasformazioni, tra cui modifiche geometriche (ad esempio, rotazione, capovolgimento), regolazioni del colore (ad esempio, luminosità, contrasto) e aggiunta di rumore (ad esempio, rumore gaussiano). Avere più opzioni consente la creazione di set di dati di addestramento altamente diversificati e robusti.

Esempio di aumentazioni dell'immagine

  • Ottimizzazione ad alte prestazioni: Basato su OpenCV e NumPy, Albumentations utilizza tecniche di ottimizzazione avanzate come SIMD (Single Instruction, Multiple Data), che elabora più punti dati contemporaneamente per accelerare l'elaborazione. Gestisce rapidamente set di dati di grandi dimensioni, rendendola una delle opzioni più veloci disponibili per l'aumento dei dati delle immagini.

  • Tre livelli di aumento dei dati: Albumentations supporta tre livelli di aumento dei dati: trasformazioni a livello di pixel, trasformazioni a livello spaziale e trasformazioni a livello di mixing. Le trasformazioni a livello di pixel influiscono solo sulle immagini di input senza alterare maschere, bounding box o punti chiave. Nel frattempo, sia l'immagine che i suoi elementi, come maschere e bounding box, vengono trasformati utilizzando trasformazioni a livello spaziale. Inoltre, le trasformazioni a livello di mixing sono un modo unico per aumentare i dati poiché combinano più immagini in una sola.

Panoramica dei diversi livelli di aumentazioni

  • Risultati di benchmarking: Per quanto riguarda il benchmarking, Albumentations supera costantemente altre librerie, soprattutto con set di dati di grandi dimensioni.

Perché dovresti usare Albumentations per i tuoi progetti di Vision AI?

Per quanto riguarda l'aumento dei dati delle immagini, Albumentations si distingue come uno strumento affidabile per le attività di computer vision. Ecco alcuni motivi principali per cui dovresti considerare di utilizzarlo per i tuoi progetti di Vision AI:

  • API di facile utilizzo: Albumentations fornisce una singola API semplice per applicare un'ampia gamma di aumentazioni a immagini, maschere, bounding box e keypoint. È progettata per adattarsi facilmente a diversi set di dati, rendendo la preparazione dei dati più semplice ed efficiente.

  • Test rigorosi dei bug: I bug nella pipeline di aumento possono corrompere silenziosamente i dati di input, spesso passando inosservati ma alla fine degradando 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 utilizzato per aggiungere facilmente nuove aumentazioni e utilizzarle nelle pipeline di computer vision attraverso un'unica interfaccia insieme alle trasformazioni integrate.

Come utilizzare Albumentations per aumentare i dati per l'addestramento di YOLO11

Ora che abbiamo trattato cos'è Albumentations e cosa può fare, vediamo come usarlo per aumentare i tuoi dati per l'addestramento del modello YOLO11. È 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 utilizzare Albumentations con YOLO11, assicurati innanzitutto di avere installato i pacchetti necessari. Se Albumentations non è installato, le aumentazioni non verranno applicate durante il training. Una volta configurato, sarai pronto per creare un dataset aumentato per il training, con Albumentations integrato per migliorare automaticamente il tuo modello.

Installazione

# Install the required packages
pip install albumentations ultralytics

Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Durante l'installazione dei pacchetti richiesti per YOLO11, in caso di difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Utilizzo

Dopo aver installato i pacchetti necessari, sei pronto per iniziare a utilizzare Albumentations con YOLO11. Quando si addestra YOLO11, viene applicato automaticamente un set di aumentazioni attraverso la sua integrazione con Albumentations, rendendo facile migliorare le prestazioni del modello.

Utilizzo

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Successivamente, esaminiamo più da vicino le specifiche aumentazioni che vengono applicate durante l'addestramento.

Sfocatura

La trasformazione Blur in Albumentations applica un semplice effetto di sfocatura all'immagine calcolando la media dei valori dei pixel all'interno di una piccola area quadrata, o kernel. Questo viene fatto usando OpenCV. cv2.blur function, che aiuta a ridurre il rumore nell'immagine, anche se riduce leggermente anche i dettagli dell'immagine.

Ecco i parametri e i valori utilizzati in questa integrazione:

  • blur_limit: Questo controlla l'intervallo di dimensione 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.

Un esempio di aumento della sfocatura

Sfocatura mediana

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 nella rimozione del rumore a sale e pepe mantenendo la nitidezza attorno ai bordi.

Ecco i parametri e i valori utilizzati 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 ciascuna immagine. Questa bassa probabilità garantisce che la sfocatura mediana venga utilizzata 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.

Un esempio di aumento della sfocatura mediana

Scala di grigi

La trasformazione ToGray in Albumentations converte un'immagine in scala di grigi, riducendola a un formato a canale singolo e, facoltativamente, replicando 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, che vanno dalla semplice media a tecniche più avanzate per una percezione realistica del contrasto e della luminosità.

Ecco i parametri e i valori utilizzati in questa integrazione:

  • num_output_channels: Imposta il numero di canali nell'immagine di output. Se questo valore è maggiore di 1, il singolo canale in scala di grigi verrà replicato per creare un'immagine multicanale in scala di grigi. Per impostazione predefinita, è 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 di 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 alle varie esigenze di velocità, enfasi della 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 qui sotto mostra un esempio di questa trasformazione in scala di grigi applicata.

Un esempio di aumento ToGray

Equalizzazione adattiva dell'istogramma con limite di contrasto (CLAHE)

La trasformazione CLAHE in Albumentations applica la equalizzazione adattiva dell'istogramma limitata al contrasto (CLAHE), una tecnica che migliora il contrasto dell'immagine equalizzando l'istogramma in regioni localizzate (tile) anziché sull'intera immagine. CLAHE produce un effetto di miglioramento bilanciato, evitando il contrasto eccessivamente amplificato che può derivare dalla equalizzazione standard dell'istogramma, specialmente in aree con contrasto inizialmente basso.

Ecco i parametri e i valori utilizzati 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 tile. Valori più alti vengono utilizzati per un maggiore contrasto, ma possono anche introdurre rumore.

  • tile_grid_size: Definisce la dimensione della griglia di riquadri, tipicamente come (righe, colonne). Il valore predefinito è (8, 8), il che significa che l'immagine è divisa in una griglia 8x8. Dimensioni dei riquadri 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.

Un esempio di aumento CLAHE

Continua a imparare su Albumentations

Se sei interessato a saperne di più su Albumentations, consulta le seguenti risorse per istruzioni ed esempi più approfonditi:

Punti chiave

In questa guida, abbiamo esplorato gli aspetti chiave di Albumentations, un'eccellente libreria Python per l'aumento delle immagini. Abbiamo discusso la sua vasta gamma di trasformazioni, le prestazioni ottimizzate e come puoi utilizzarla nel tuo prossimo progetto YOLO11.

Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO11, visita la nostra pagina della guida all'integrazione. Lì troverai risorse e approfondimenti preziosi.

FAQ

Come posso integrare Albumentations con YOLO11 per un aumento dei dati migliorato?

Albumentations si integra perfettamente con YOLO11 e viene applicato automaticamente durante l'addestramento se 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("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)

L'integrazione include aumenti ottimizzati come sfocatura, sfocatura mediana, conversione in scala di grigi e CLAHE con probabilità accuratamente regolate per migliorare le prestazioni del modello.

Quali sono i principali vantaggi dell'utilizzo di Albumentations rispetto ad altre librerie di aumento dei dati?

Albumentations si distingue per diversi motivi:

  1. Prestazioni: Basato su OpenCV e NumPy con ottimizzazione SIMD per una velocità superiore
  2. Flessibilità: Supporta oltre 70 trasformazioni tra aumenti a livello di pixel, a livello spaziale e a livello di mixing
  3. Compatibilità: Funziona perfettamente con framework popolari come PyTorch e TensorFlow
  4. Affidabilità: Un'ampia suite di test previene il danneggiamento silenzioso dei dati
  5. Facilità d'uso: API unificata singola per tutti i tipi di aumento

Quali tipi di attività di computer vision possono trarre vantaggio dall'aumento dei dati tramite Albumentations?

Albumentations migliora varie attività di visione artificiale tra cui:

  • Rilevamento di oggetti: Migliora la robustezza del modello alle variazioni di illuminazione, scala e orientamento
  • Segmentazione di istanze: Migliora l'accuratezza della previsione della maschera attraverso diverse trasformazioni
  • Classificazione: Aumenta la generalizzazione del modello con aumenti geometrici e di colore
  • 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 robuste del modello.



📅 Creato 9 mesi fa ✏️ Aggiornato 2 mesi fa

Commenti