Vai al contenuto

Migliorare il set di dati per addestrare YOLO11 utilizzando le albuazioni

Quando si costruiscono modelli di visione computerizzata, la qualità e la varietà dei dati di addestramento possono avere un ruolo importante nel rendimento del modello. Albumentations offre un modo rapido, flessibile ed efficiente per applicare un'ampia gamma di trasformazioni dell'immagine che possono migliorare la capacità del modello di adattarsi agli scenari del mondo reale. Si integra facilmente con Ultralytics YOLO11 e può aiutare a creare set di dati robusti per il rilevamento, la segmentazione e la classificazione degli oggetti.

Utilizzando Albumentations, è possibile aumentare i dati di addestramento di YOLO11 con tecniche come le trasformazioni geometriche e le regolazioni del colore. In questo articolo vedremo come Albumentations può migliorare il processo di incremento dei dati e rendere i vostri progettiYOLO11 ancora più efficaci. Iniziamo!

Albumentazioni per l'aumento dell'immagine

Albumentations è una libreria open-source per l'aumento delle immagini creata nel giugno 2018. È stata progettata per semplificare e accelerare il processo di incremento delle immagini nella computer vision. Creata tenendo conto delle prestazioni e della flessibilità, supporta diverse tecniche di incremento, che vanno da semplici trasformazioni come rotazioni e capovolgimenti a regolazioni più complesse come modifiche della luminosità e del contrasto. Albumentations aiuta gli sviluppatori a generare insiemi di dati ricchi e variegati per compiti come la classificazione delle immagini, il rilevamento degli oggetti e la segmentazione.

È possibile utilizzare Albumentations per applicare facilmente gli incrementi alle immagini, alle maschere di segmentazione, ai riquadri di delimitazione e ai punti chiave, assicurandosi che tutti gli elementi del set di dati vengano trasformati insieme. Funziona perfettamente con i più diffusi framework di deep learning come PyTorch e TensorFlowrendendolo accessibile a un'ampia gamma di progetti.

Inoltre, Albumentations è un'ottima opzione per l'incremento, sia che si tratti di piccoli insiemi di dati che di attività di computer vision su larga scala. Garantisce un'elaborazione rapida ed efficiente, riducendo i tempi di preparazione dei dati. Allo stesso tempo, contribuisce a migliorare le prestazioni dei modelli, rendendoli più efficaci nelle applicazioni reali.

Caratteristiche principali di Albumentations

Albumentations offre molte funzioni utili che semplificano l'aumento di immagini complesse per un'ampia gamma di applicazioni di computer vision. Ecco alcune delle caratteristiche principali:

  • Ampia gamma di trasformazioni: Albumentations offre oltre 70 trasformazioni diverse, tra cui modifiche geometriche (ad esempio, rotazione, capovolgimento), regolazioni del colore (ad esempio, luminosità, contrasto) e aggiunta di rumore (ad esempio, rumore gaussiano). La presenza di più opzioni consente di creare insiemi di dati di allenamento molto diversi e robusti.

Esempio di aumento dell'immagine

  • 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 contemporaneamente per accelerare l'elaborazione. Gestisce rapidamente grandi insiemi di dati, rendendolo una delle opzioni più veloci disponibili per l'aumento delle immagini.

  • Tre livelli di incremento: Albumentations supporta tre livelli di incremento: trasformazioni a livello di pixel, trasformazioni a livello spaziale e trasformazioni a livello di miscelazione. Le trasformazioni a livello di pixel agiscono solo sulle immagini di input senza alterare le maschere, i riquadri di delimitazione o i punti chiave. Le trasformazioni a livello di pixel agiscono solo sull'immagine di input, senza alterare le maschere, i riquadri di delimitazione o i punti chiave. Inoltre, le trasformazioni a livello di miscelazione rappresentano un modo unico per aumentare i dati, in quanto combinano più immagini in una sola.

Panoramica dei diversi livelli di potenziamento

  • Risultati del benchmarking: Quando si tratta di benchmarking, Albumentations supera costantemente le altre librerie, soprattutto con grandi insiemi di dati.

Perché dovreste usare Albumentations per i vostri progetti di IA di visione?

Per quanto riguarda l'aumento delle immagini, Albumentations si distingue come strumento affidabile per le attività di computer vision. Ecco alcuni dei motivi principali per cui dovreste considerarne l'utilizzo per i vostri progetti di Vision AI:

  • API di facile utilizzo: Albumentations offre un'unica e semplice API per l'applicazione di un'ampia gamma di incrementi a immagini, maschere, caselle di delimitazione e punti chiave. È stata progettata per adattarsi facilmente a diversi set di dati, rendendo la preparazione dei dati più semplice ed efficiente.

  • Test rigoroso dei bug: I bug nella pipeline di incremento possono corrompere silenziosamente i dati di input, spesso passando inosservati ma finendo per degradare le prestazioni del modello. Albumentations affronta questo problema con un'accurata suite di test che aiuta a individuare i bug nelle prime fasi dello sviluppo.

  • Estensibilità: Albumentations può essere utilizzato per aggiungere facilmente nuovi incrementi e utilizzarli nelle pipeline di computer vision attraverso un'unica interfaccia, insieme alle trasformazioni integrate.

Come usare le albumentazioni per aumentare i dati per la formazione YOLO11

Dopo aver spiegato cos'è Albumentations e cosa può fare, vediamo come usarlo per aumentare i dati per l'addestramento del modello di YOLO11 . È facile da configurare perché si integra direttamente nella modalità di addestramento di e si applica automaticamente se è installato il pacchetto Albumentations. È facile da configurare perché si integra direttamente nella modalità di addestramento diUltralytics e si applica automaticamente se è installato il pacchetto Albumentations.

Installazione

Per utilizzare Albumentations con YOLO11, è necessario assicurarsi che siano installati i pacchetti necessari. Se Albumentations non è installato, gli incrementi non saranno applicati durante l'addestramento. Una volta configurato, sarete pronti a creare un set di dati aumentati per l'addestramento, con Albumentations integrato per migliorare automaticamente il vostro modello.

Installazione

# Install the required packages
pip install albumentations ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consultare la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLO11, se si incontrano difficoltà, consultare la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Dopo aver installato i pacchetti necessari, si è pronti per iniziare a usare Albumentations con YOLO11. Quando si addestra YOLO11, una serie di incrementi viene applicata automaticamente grazie all'integrazione con Albumentations, rendendo più semplice il miglioramento delle 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)

Vediamo poi più da vicino gli aumenti specifici che vengono applicati durante l'allenamento.

Sfocatura

La trasformazione Blur di 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. Questa operazione viene eseguita utilizzando la funzione cv2.blur che aiuta a ridurre il rumore nell'immagine, anche se riduce leggermente i dettagli dell'immagine.

Ecco i parametri e i valori utilizzati in questa integrazione:

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

Un esempio di aumento della sfocatura

Sfocatura mediana

La trasformazione MedianBlur di Albumentations applica all'immagine un effetto di sfocatura mediana, particolarmente utile per ridurre il rumore e preservare i bordi. A differenza dei tipici metodi di sfocatura, MedianBlur utilizza un filtro mediano, particolarmente efficace per rimuovere il rumore sale e pepe mantenendo la nitidezza dei 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, l'impostazione predefinita è un intervallo di (3, 7), il che significa che la dimensione del kernel per la sfocatura viene scelta in modo casuale tra 3 e 7 pixel, con solo i valori dispari consentiti per garantire un allineamento corretto.

  • p: Imposta la probabilità di applicare la sfocatura mediana. In questo caso, p=0,01, quindi la trasformazione ha una probabilità dell'1% di essere applicata a ogni immagine. Questa bassa probabilità fa sì che la sfocatura mediana sia usata con parsimonia, aiutando il modello a generalizzare vedendo occasionalmente immagini con rumore ridotto e bordi preservati.

L'immagine seguente mostra un esempio di questo aumento applicato a un'immagine.

Un esempio di aumento della sfocatura mediana

Scala di grigi

La trasformazione ToGray di Albumentations converte un'immagine in scala di grigi, riducendola a un formato a canale singolo e, facoltativamente, replicando questo canale per adattarlo a un numero specifico di canali di uscita. È possibile utilizzare diversi metodi per regolare il calcolo della luminosità della scala di grigi, 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 dell'immagine di uscita. Se questo valore è superiore a 1, il singolo canale della scala di grigi verrà replicato per creare un'immagine in scala di grigi multicanale. Per impostazione predefinita, è impostato su 3, per ottenere un'immagine in scala di grigi con tre canali identici.

  • metodo: Definisce il metodo di conversione della scala di grigi. Il metodo predefinito, "media ponderata", applica una formula (0,299R + 0,587G + 0,114B) che si avvicina alla percezione umana, fornendo un effetto di scala di grigi naturale. Altre opzioni, come "from_lab", "desaturazione", "media", "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 seguente mostra un esempio di applicazione di questa trasformazione in scala di grigi.

Un esempio di aumento ToGray

Equalizzazione istogrammatica adattiva limitata al contrasto (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 (tile) invece che nell'intera immagine. CLAHE produce un effetto di miglioramento bilanciato, evitando il contrasto eccessivamente amplificato che può risultare dall'equalizzazione standard dell'istogramma, soprattutto nelle 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. I valori più alti sono utilizzati per ottenere un maggiore contrasto, ma possono anche introdurre del rumore.

  • tile_grid_size: Definisce la dimensione della griglia di piastrelle, tipicamente come (righe, colonne). Il valore predefinito è (8, 8), il che significa che l'immagine è divisa in una griglia 8x8. Le dimensioni delle mattonelle più piccole forniscono regolazioni più localizzate, mentre quelle più grandi creano effetti più vicini all'equalizzazione globale.

  • p: La probabilità di applicare CLAHE. In questo caso, p=0,01 introduce l'effetto di miglioramento solo nell'1% dei casi, assicurando che le regolazioni del contrasto siano applicate con parsimonia per le variazioni occasionali nelle immagini di allenamento.

L'immagine seguente mostra un esempio di applicazione della trasformazione CLAHE.

Un esempio di ampliamento CLAHE

Continuare a imparare sulle albuazioni

Se siete interessati a saperne di più sulle albuazioni, consultate le seguenti risorse per istruzioni ed esempi più approfonditi:

Punti di forza

In questa guida abbiamo esplorato gli aspetti principali di Albumentations, un'ottima libreria di Python per l'incremento delle immagini. Abbiamo discusso la sua ampia gamma di trasformazioni, le prestazioni ottimizzate e il modo in cui è possibile utilizzarla nel prossimo progetto di YOLO11 .

Inoltre, se desiderate saperne di più su altre integrazioni di Ultralytics YOLO11 , visitate la nostra pagina della guida alle integrazioni. Troverete risorse e approfondimenti preziosi.

FAQ

Come posso integrare Albumentations con YOLO11 per migliorare l'incremento dei dati?

Albumentations si integra perfettamente con YOLO11 e si applica automaticamente durante la formazione 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 incrementi ottimizzati come la sfocatura, la sfocatura mediana, la conversione in scala di grigi e il 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 incremento?

Albumentations si distingue per diversi motivi:

  1. Prestazioni: Costruito su OpenCV e NumPy con ottimizzazione SIMD per una velocità superiore.
  2. Flessibilità: Supporta oltre 70 trasformazioni a livello di pixel, di spazio e di miscelazione.
  3. Compatibilità: Funziona perfettamente con i framework più diffusi come PyTorch e TensorFlow
  4. Affidabilità: Un'ampia suite di test impedisce la corruzione silenziosa dei dati
  5. Facilità d'uso: Un'unica API unificata per tutti i tipi di aumento

Quali tipi di compiti di computer vision possono trarre vantaggio dall'aumento delle albumentazioni?

Albumentations migliora diverse attività di computer vision, tra cui:

  • Rilevamento degli oggetti: Migliora la robustezza del modello alle variazioni di illuminazione, scala e orientamento.
  • Segmentazione delle istanze: Migliora l'accuratezza della previsione della maschera attraverso diverse trasformazioni.
  • Classificazione: Aumenta la generalizzazione del modello con gli incrementi 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 incremento della libreria la rendono preziosa per qualsiasi attività di visione che richieda prestazioni robuste del modello.

📅 Created 1 month ago ✏️ Updated 15 days ago

Commenti