Vai al contenuto

Tecniche di pre-elaborazione dei dati per l'annotazione dei dati di visione artificiale

Introduzione

Dopo aver definito gli obiettivi del progetto di computer vision e aver raccolto e annotato i dati, il passo successivo è quello di preelaborare i dati annotati e prepararli per la formazione del modello. Dati puliti e coerenti sono fondamentali per creare un modello che funzioni bene.

La pre-elaborazione è una fase del flusso di lavoro dei progetti di computer vision che comprende il ridimensionamento delle immagini, la normalizzazione dei valori dei pixel, l'incremento del set di dati e la suddivisione dei dati in set di addestramento, convalida e test. Esploriamo le tecniche essenziali e le migliori pratiche per la pulizia dei dati!

Importanza della pre-elaborazione dei dati

Stiamo già raccogliendo e annotando i nostri dati con attenzione, tenendo conto di molteplici considerazioni. Allora, cosa rende la preelaborazione dei dati così importante per un progetto di computer vision? La preelaborazione dei dati consiste nel trasformare i dati in un formato adatto all'addestramento, che riduce il carico computazionale e contribuisce a migliorare le prestazioni del modello. Ecco alcuni problemi comuni dei dati grezzi che la preelaborazione affronta:

  • Rumore: variazioni irrilevanti o casuali nei dati.
  • Incoerenza: Variazioni nelle dimensioni, nei formati e nella qualità delle immagini.
  • Squilibrio: Distribuzione disuguale di classi o categorie nel set di dati.

Tecniche di pre-elaborazione dei dati

Una delle prime e principali fasi della preelaborazione dei dati è il ridimensionamento. Alcuni modelli sono progettati per gestire dimensioni di input variabili, ma molti modelli richiedono una dimensione di input coerente. Il ridimensionamento delle immagini le rende uniformi e riduce la complessità computazionale.

Ridimensionamento delle immagini

È possibile ridimensionare le immagini con i seguenti metodi:

  • Interpolazione bilineare: Attenua i valori dei pixel prendendo una media ponderata dei valori dei quattro pixel più vicini.
  • Vicino più vicino: Assegna il valore del pixel più vicino senza fare la media, con conseguente blocco dell'immagine ma calcolo più veloce.

Per semplificare il ridimensionamento, è possibile utilizzare i seguenti strumenti:

  • OpenCV: Una popolare libreria di computer vision con ampie funzioni per l'elaborazione delle immagini.
  • PIL (Pillow): Una libreria di immagini Python per aprire, manipolare e salvare file di immagini.

Per quanto riguarda YOLO11, il parametro "imgsz" durante l'addestramento del modello consente di utilizzare dimensioni di input flessibili. Se impostato su una dimensione specifica, ad esempio 640, il modello ridimensiona le immagini in ingresso in modo che la loro dimensione maggiore sia di 640 pixel, mantenendo il rapporto d'aspetto originale.

Valutando le esigenze specifiche del modello e del set di dati, è possibile determinare se il ridimensionamento è una fase di preelaborazione necessaria o se il modello può gestire in modo efficiente immagini di dimensioni diverse.

Normalizzazione dei valori dei pixel

Un'altra tecnica di pre-elaborazione è la normalizzazione. La normalizzazione scala i valori dei pixel a un intervallo standard, che aiuta a velocizzare la convergenza durante l'addestramento e migliora le prestazioni del modello. Ecco alcune tecniche di normalizzazione comuni:

  • Scala Min-Max: Scala i valori dei pixel in un intervallo compreso tra 0 e 1.
  • Normalizzazione Z-Score: Scala i valori dei pixel in base alla loro media e deviazione standard.

Per quanto riguarda YOLO11, la normalizzazione viene gestita senza problemi come parte della sua pipeline di preelaborazione durante l'addestramento del modello. YOLO11 esegue automaticamente diverse fasi di preelaborazione, tra cui la conversione in RGB, la scalatura dei valori dei pixel nell'intervallo [0, 1] e la normalizzazione utilizzando valori predefiniti di media e deviazione standard.

Dividere il set di dati

Una volta puliti i dati, si è pronti a dividere il set di dati. La suddivisione dei dati in set di addestramento, validazione e test serve a garantire che il modello possa essere valutato su dati non visti per valutarne le prestazioni di generalizzazione. Una suddivisione comune è 70% per l'addestramento, 20% per la validazione e 10% per il test. Esistono vari strumenti e librerie che possono essere utilizzati per suddividere i dati, come scikit-learn o TensorFlow.

Quando si suddivide il set di dati, tenere conto di quanto segue:

  • Mantenimento della distribuzione dei dati: Assicurarsi che la distribuzione dei dati delle classi sia mantenuta tra gli insiemi di formazione, convalida e test.
  • Evitare la perdita di dati: In genere, l'incremento dei dati viene effettuato dopo che il set di dati è stato suddiviso. L'incremento dei dati e qualsiasi altra pre-elaborazione devono essere applicati solo all'insieme di formazione per evitare che le informazioni provenienti dagli insiemi di validazione o di test influenzino la formazione del modello. -Bilanciamentodelle classi: Per i set di dati sbilanciati, considerare tecniche come il sovracampionamento della classe minoritaria o il sottocampionamento della classe maggioritaria all'interno del set di formazione.

Che cos'è l'aumento dei dati?

La fase di preelaborazione dei dati più comunemente discussa è l'incremento dei dati. L'incremento dei dati aumenta artificialmente le dimensioni del set di dati creando versioni modificate delle immagini. Aumentando i dati, è possibile ridurre l'overfitting e migliorare la generalizzazione del modello.

Ecco alcuni altri vantaggi dell'aumento dei dati:

  • Crea un set di dati più robusto: L'aumento dei dati può rendere il modello più robusto alle variazioni e alle distorsioni dei dati di ingresso. Ciò include cambiamenti di illuminazione, orientamento e scala.
  • Efficace dal punto di vista dei costi: L'aumento dei dati è un modo economicamente vantaggioso per aumentare la quantità di dati di addestramento senza raccogliere ed etichettare nuovi dati.
  • Migliore utilizzo dei dati: Ogni punto di dati disponibile viene utilizzato al massimo del suo potenziale creando nuove variazioni.

Metodi di incremento dei dati

Le tecniche di aumento più comuni includono il capovolgimento, la rotazione, la scalatura e le regolazioni del colore. Diverse librerie, come Albumentations, Imgaug e TensorFlow's ImageDataGenerator, possono generare questi aumenti.

Panoramica degli ampliamenti dei dati

Per quanto riguarda YOLO11, è possibile aumentare il dataset personalizzato modificando il file di configurazione del dataset, un file .yaml. In questo file è possibile aggiungere una sezione di incremento con parametri che specificano come si desidera incrementare i dati.

Il repositoryUltralytics YOLO11 supporta un'ampia gamma di ampliamenti dei dati. È possibile applicare varie trasformazioni come:

  • Colture casuali
  • Capovolgimento: Le immagini possono essere capovolte orizzontalmente o verticalmente.
  • Rotazione: Le immagini possono essere ruotate secondo angoli specifici.
  • Distorsione

Inoltre, è possibile regolare l'intensità di queste tecniche di incremento attraverso parametri specifici per generare una maggiore varietà di dati.

Un caso di studio di pre-elaborazione

Consideriamo un progetto volto a sviluppare un modello per rilevare e classificare diversi tipi di veicoli nelle immagini del traffico utilizzando YOLO11. Abbiamo raccolto immagini del traffico e le abbiamo annotate con caselle di delimitazione ed etichette.

Ecco come si presenta ogni fase di preelaborazione per questo progetto:

  • Ridimensionamento delle immagini: Poiché YOLO11 gestisce dimensioni di input flessibili ed esegue automaticamente il ridimensionamento, non è necessario un ridimensionamento manuale. Il modello regolerà le dimensioni dell'immagine in base al parametro "imgsz" specificato durante l'addestramento.
  • Normalizzazione dei valori dei pixel: YOLO11 normalizza automaticamente i valori dei pixel in un intervallo compreso tra 0 e 1 durante la preelaborazione, quindi non è necessario.
  • Suddivisione del set di dati: Dividere il dataset in set di allenamento (70%), validazione (20%) e test (10%) utilizzando strumenti come scikit-learn.
  • Aumento dei dati: Modificare il file di configurazione del set di dati (.yaml) per includere tecniche di incremento dei dati come ritagli casuali, capovolgimenti orizzontali e regolazioni della luminosità.

Queste fasi assicurano che il set di dati sia preparato senza alcun problema potenziale e sia pronto per l'analisi esplorativa dei dati (EDA).

Tecniche di analisi esplorativa dei dati

Dopo la pre-elaborazione e l'incremento del set di dati, il passo successivo è quello di ottenere approfondimenti attraverso l'analisi esplorativa dei dati. L'EDA utilizza tecniche statistiche e strumenti di visualizzazione per comprendere i modelli e le distribuzioni dei dati. È possibile identificare problemi come gli squilibri tra le classi o i valori anomali e prendere decisioni informate su un'ulteriore preelaborazione dei dati o sulla regolazione dell'addestramento del modello.

Tecniche EDA statistiche

Le tecniche statistiche iniziano spesso con il calcolo di metriche di base come media, mediana, deviazione standard e intervallo. Queste metriche forniscono una rapida panoramica delle proprietà del dataset di immagini, come le distribuzioni di intensità dei pixel. La comprensione di queste statistiche di base aiuta a comprendere la qualità complessiva e le caratteristiche dei dati, consentendo di individuare tempestivamente eventuali irregolarità.

Tecniche EDA visive

Le visualizzazioni sono fondamentali nell'EDA per i set di dati di immagini. Ad esempio, l'analisi dello sbilanciamento delle classi è un altro aspetto fondamentale dell'EDA. La visualizzazione della distribuzione delle diverse classi o categorie di immagini mediante grafici a barre può rivelare rapidamente eventuali squilibri. Allo stesso modo, è possibile identificare gli outlier utilizzando strumenti di visualizzazione come i box plots, che evidenziano le anomalie nelle distribuzioni dell'intensità dei pixel o delle caratteristiche. Il rilevamento dei valori anomali impedisce ai punti di dati insoliti di influenzare i risultati.

Gli strumenti comuni per le visualizzazioni includono:

  • Istogrammi e Box Plot: Utili per comprendere la distribuzione dei valori dei pixel e identificare i valori anomali.
  • Piani di dispersione: Utile per esplorare le relazioni tra le caratteristiche dell'immagine o le annotazioni.
  • Mappe di calore: Efficaci per visualizzare la distribuzione delle intensità dei pixel o la distribuzione spaziale delle caratteristiche annotate all'interno delle immagini.

Utilizzo di Ultralytics Explorer per EDA

Nota della Comunità ⚠️

A partire da ultralytics>=8.3.10, il supporto di Ultralytics explorer è stato deprecato. Ma non preoccupatevi! È ora possibile accedere a funzionalità simili e persino migliorate tramite Ultralytics HUBla nostra piattaforma intuitiva senza codice, progettata per semplificare il vostro flusso di lavoro. Con Ultralytics HUB, potete continuare a esplorare, visualizzare e gestire i vostri dati senza sforzo, il tutto senza scrivere una sola riga di codice. Assicuratevi di dare un'occhiata e di approfittare delle sue potenti funzioni!🚀

Per un approccio più avanzato all'EDA, è possibile utilizzare lo strumento Ultralytics Explorer. Offre solide funzionalità per l'esplorazione di insiemi di dati di computer vision. Supportando la ricerca semantica, le query SQL e la ricerca di somiglianza vettoriale, lo strumento semplifica l'analisi e la comprensione dei dati. Con Ultralytics Explorer è possibile creare embeddings per il set di dati per trovare immagini simili, eseguire query SQL per analisi dettagliate ed eseguire ricerche semantiche, il tutto attraverso un'interfaccia grafica di facile utilizzo.

Panoramica di Ultralytics Explorer

Raggiungere e connettersi

Discutere del proprio progetto con altri appassionati di computer vision può fornire nuove idee da diverse prospettive. Ecco alcuni modi per imparare, risolvere i problemi e fare rete:

Canali di collegamento con la comunità

Documentazione ufficiale

  • Ultralytics YOLO11 Documentazione: Consultate la documentazione ufficiale di YOLO11 per trovare guide approfondite e preziosi approfondimenti su numerose attività e progetti di computer vision.

Il set di dati è pronto!

Dati adeguatamente ridimensionati, normalizzati e aumentati migliorano le prestazioni del modello riducendo il rumore e migliorando la generalizzazione. Seguendo le tecniche di preelaborazione e le migliori pratiche descritte in questa guida, è possibile creare un solido set di dati. Con il set di dati preelaborato pronto, si può procedere con fiducia alle fasi successive del progetto.

FAQ

Qual è l'importanza della preelaborazione dei dati nei progetti di computer vision?

La preelaborazione dei dati è essenziale nei progetti di computer vision perché garantisce che i dati siano puliti, coerenti e in un formato ottimale per l'addestramento dei modelli. Affrontando problemi come il rumore, l'incoerenza e lo squilibrio dei dati grezzi, le fasi di preelaborazione come il ridimensionamento, la normalizzazione, l'incremento e la suddivisione dei set di dati contribuiscono a ridurre il carico computazionale e a migliorare le prestazioni del modello. Per maggiori dettagli, visitate le fasi di un progetto di computer vision.

Come si può utilizzare Ultralytics YOLO per aumentare i dati?

Per aumentare i dati con Ultralytics YOLO11 , è necessario modificare il file di configurazione del set di dati (.yaml). In questo file è possibile specificare varie tecniche di incremento, come ritagli casuali, capovolgimenti orizzontali e regolazioni della luminosità. Questo può essere fatto efficacemente utilizzando le configurazioni di addestramento spiegate qui. L'aumento dei dati aiuta a creare un set di dati più robusto, a ridurre l'overfitting e a migliorare la generalizzazione del modello.

Quali sono le migliori tecniche di normalizzazione dei dati per la computer vision?

La normalizzazione scala i valori dei pixel a un intervallo standard per accelerare la convergenza e migliorare le prestazioni durante l'addestramento. Le tecniche più comuni includono:

  • Scala Min-Max: Scala i valori dei pixel in un intervallo compreso tra 0 e 1.
  • Normalizzazione Z-Score: Scala i valori dei pixel in base alla loro media e deviazione standard.

Per YOLO11, la normalizzazione viene gestita automaticamente, compresa la conversione in RGB e la scalatura dei valori dei pixel. Per saperne di più, consultare la sezione dedicata all'addestramento del modello.

Come devo dividere il dataset annotato per l'addestramento?

Per suddividere il dataset, una pratica comune è quella di dividerlo in 70% per l'addestramento, 20% per la validazione e 10% per i test. È importante mantenere la distribuzione dei dati delle classi in queste suddivisioni ed evitare la perdita di dati eseguendo l'incremento solo sul set di addestramento. Utilizzare strumenti come scikit-learn o TensorFlow per una suddivisione efficiente del set di dati. Vedere la guida dettagliata sulla preparazione del set di dati.

È possibile gestire immagini di dimensioni diverse in YOLO11 senza ridimensionamento manuale?

Sì, Ultralytics YOLO11 può gestire immagini di dimensioni diverse attraverso il parametro "imgsz" durante l'addestramento del modello. Questo parametro assicura che le immagini vengano ridimensionate in modo che la loro dimensione maggiore corrisponda alla dimensione specificata (ad esempio, 640 pixel), mantenendo il rapporto di aspetto. Per una gestione più flessibile degli input e delle regolazioni automatiche, consultare la sezione dedicata all'addestramento del modello.

📅C reato 6 mesi fa ✏️ Aggiornato 1 mese fa

Commenti