YOLO Vision 2026:

Tecniche di pre-elaborazione dei dati per dati di computer vision annotati#

La preelaborazione dei dati trasforma immagini grezze eannotate in input puliti e coerenti di cui un modello di computer vision ha bisogno per addestrarsi al meglio. Con Ultralytics YOLO26, le operazioni fondamentali sui pixel — conversione RGB, ridimensionamento a [0, 1] e ridimensionamento delle dimensioni — vengono eseguite automaticamente all'interno della pipeline di addestramento, quindi il lavoro che rimane consiste nel suddividere correttamente il dataset, bilanciare le classi e scegliere le augmentation. Questa guida copre queste tecniche essenziali: ridimensionamento, normalizzazione, suddivisione del dataset, data augmentation e analisi esplorativa dei dati (EDA).



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Questo passaggio arriva dopo aver definito gli obiettivi del tuo progetto e raccolto e annotato i tuoi dati, e si colloca all'inizio del flusso di lavoro del progetto di computer vision.

Perché la pre-elaborazione è importante#

La pre-elaborazione porta i tuoi dati in un formato che riduce il carico computazionale e migliora le prestazioni del modello. Risolve tre problemi comuni nei dati grezzi:

  • Rumore: Variazioni irrilevanti o casuali nei dati.
  • Incoerenza: variazioni nelle dimensioni, nei formati e nella qualità delle immagini.
  • Squilibrio: Distribuzione disuguale delle classi o delle categorie all'interno del dataset.

Tecniche di pre-elaborazione#

Le tecniche principali sono il ridimensionamento, la normalizzazione, la suddivisione del dataset e l'aumentazione. Con YOLO26 le prime due sono automatiche, mentre la suddivisione e l'aumentazione sono dove le tue scelte contano di più.

Ridimensionamento delle immagini#

Molti modelli richiedono una dimensione di input coerente, quindi il ridimensionamento rende le immagini uniformi e riduce la complessità computazionale. Due metodi di interpolazione comuni sono:

  • Interpolazione bilineare: Attenua i valori dei pixel calcolando una media ponderata dei quattro pixel più vicini.
  • Vicino più prossimo: Copia il valore del pixel più vicino senza fare la media — è più veloce, ma produce un'immagine più a blocchi.

Librerie come OpenCV e PIL (Pillow) forniscono queste funzioni, ma con YOLO26 di solito non ridimensioni manualmente. L'argomento imgsz durante l'addestramento del modello se ne occupa: se impostato su un valore come 640, YOLO ridimensiona ciascuna immagine in modo che la sua dimensione maggiore sia di 640 pixel preservando le proporzioni, quindi aggiunge del padding al lato più corto (grigio predefinito, valore 114) per raggiungere un input quadrato 640 × 640.

Normalizzazione dei valori dei pixel#

La normalizzazione scala i valori dei pixel a un intervallo standard, il che aiuta il modello a convergere più velocemente durante l'addestramento. Due tecniche comuni sono:

  • Min-Max Scaling: scala i valori dei pixel in un intervallo da 0 a 1.
  • Normalizzazione Z-Score: scala i valori dei pixel in base alla loro media e deviazione standard.

YOLO26 gestisce la normalizzazione automaticamente come parte della sua pipeline di preelaborazione: converte le immagini in RGB e scala i valori dei pixel nell'intervallo [0, 1] dividendo per 255 (min-max scaling). YOLO non applica per impostazione predefinita la normalizzazione media/deviazione standard (z-score) in stile ImageNet, quindi non è richiesta alcuna fase di normalizzazione manuale.

Suddivisione del dataset#

Suddividere i dati in set di training, validazione e test ti consente di valutare il modello su dati non visti e di misurarne la generalizzazione. Una suddivisione comune è il 70% per l'addestramento, il 20% per la validazione e il 10% per i test. Strumenti come scikit-learn o TensorFlow rendono tutto ciò semplice.

Tieni a mente questi punti durante la suddivisione:

  • Mantieni la distribuzione delle classi: Assicurati che ogni classe sia rappresentata proporzionalmente nei set di addestramento, validazione e test.
  • Bilancia le classi: Per dataset sbilanciati, valuta di sovra-campionare la classe di minoranza o sotto-campionare la classe di maggioranza — solo all'interno del set di addestramento.
Evita la perdita di dati

Suddividi il dataset prima di applicare qualsiasi aumentazione o altra pre-elaborazione, e applica tali trasformazioni solo al set di addestramento. Aumentare prima della suddivisione permette alle informazioni dalle immagini di validazione o di test di influenzare l'addestramento, producendo punteggi ingannevolmente alti che crollano con i dati del mondo reale.

Aumentazione del dataset#

La data augmentation aumenta artificialmente le dimensioni di un dataset creando versioni modificate di immagini esistenti. Aiuta a ridurre l'overfitting e migliora la generalizzazione, con diversi vantaggi:

  • Modelli più robusti: Variazioni di illuminazione, orientamento e scala rendono il modello resiliente alle distorsioni del mondo reale.
  • Conveniente: Espandi il set di addestramento senza raccogliere ed etichettare nuovi dati.
  • Migliore utilizzo dei dati: Ogni immagine annotata produce molteplici variazioni per l'addestramento.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

Con YOLO26, l'augmentation viene controllata tramite gli argomenti di addestramento passati a model.train() o ai flag CLI equivalenti — non modificando il file YAML del dataset, che definisce i metadati del dataset come percorsi, nomi delle classi e suddivisioni. Le augmentation integrate includono:

  • Mosaic, MixUp e CutMix (mosaic, mixup, cutmix): Combinano più immagini in un unico campione di addestramento.
  • Ribaltamenti (fliplr, flipud): Specchiano le immagini in orizzontale o in verticale.
  • Trasformazioni geometriche (degrees, translate, scale, shear, perspective): Ruotano, spostano, ingrandiscono e deformano le immagini.
  • Jitter del colore HSV (hsv_h, hsv_s, hsv_v): Variano tonalità, saturazione e luminosità.
  • Copia e incolla (Copy-paste) (copy_paste): Incolla oggetti tra le immagini per la segmentazione.
Imposta la forza dell'aumentazione durante l'addestramento
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

Per l'elenco completo degli argomenti di augmentation e dei loro valori predefiniti, consulta il riferimento delle impostazioni di augmentation e la dedicata guida alla data augmentation di YOLO. Se il pacchetto albumentations è installato, YOLO abilita anche automaticamente le sue augmentation integrate basate su Albumentations.

Un caso di studio: Pre-elaborazione per il rilevamento di veicoli#

Prendi in considerazione un progetto per rilevare e classificare i veicoli nelle immagini del traffico con YOLO26, partendo da immagini annotate con bounding box ed etichette. Ecco come si presenta ogni decisione di preelaborazione:

  • Ridimensionamento: Nessun lavoro manuale — YOLO26 ridimensiona a imgsz durante l'addestramento.
  • Normalizzazione: Nessun lavoro manuale — YOLO26 scala automaticamente i valori dei pixel a [0, 1].
  • Suddivisione: Dividi il dataset nel 70% per l'addestramento, il 20% per la validazione e il 10% per il test, mantenendo la distribuzione delle classi coerente tra le suddivisioni.
  • Augmentation: Imposta gli argomenti di addestramento adatti alle scene di traffico — ad esempio fliplr per l'invarianza della direzione, hsv_v per l'illuminazione di giorno/notte e mosaic per una densità di oggetti variabile.

Con queste decisioni prese, il dataset è pronto per l'analisi esplorativa dei dati (EDA).

Analisi esplorativa dei dati (EDA)#

L'EDA utilizza statistiche e visualizzazioni per rivelare schemi e distribuzioni nei tuoi dati, aiutandoti a cogliere problemi come lo squilibrio delle classi o gli outlier prima dell'addestramento.

Tecniche statistiche di EDA#

L'EDA statistica inizia con metriche di base — media, mediana, deviazione standard e intervallo — calcolate su proprietà come le distribuzioni dell'intensità dei pixel. Queste forniscono una rapida panoramica della qualità del tuo dataset e fanno emergere le irregolarità precocemente.

Tecniche visive di EDA#

Le visualizzazioni rivelano schemi che le statistiche riassuntive perdono, come lo squilibrio delle classi e gli outlier. Gli strumenti comuni includono:

  • Istogrammi e box plot: Mostrano la distribuzione dei valori dei pixel e segnalano outlier nell'intensità o nelle distribuzioni delle caratteristiche.
  • Grafici a barre: Riveleranno lo squilibrio delle classi confrontando quanti esempi ha ciascuna classe.
  • Grafici a dispersione: Esplora le relazioni tra caratteristiche dell'immagine o annotazioni.
  • Mappe di calore: Visualizza le distribuzioni dell'intensità dei pixel o la distribuzione spaziale delle annotazioni nelle immagini.

Piattaforma Ultralytics per l'EDA#

Per un approccio senza codice all'EDA, carica il tuo dataset su Ultralytics Platform. La scheda Charts del dataset genera automaticamente visualizzazioni EDA chiave: distribuzione delle suddivisioni, conteggi delle classi principali, istogrammi di larghezza/altezza delle immagini e mappe termiche 2D delle posizioni delle annotazioni e delle dimensioni delle immagini. La scheda Images ti consente di esplorare i tuoi dati in viste a griglia, compatte o a tabella con sovrapposizioni di annotazioni, rendendo facile individuare esempi etichettati in modo errato o classi sbilanciate senza scrivere codice.

Conclusione#

Dati correttamente suddivisi, normalizzati e aumentati riducono il rumore e migliorano la generalizzazione, trasformando una raccolta grezza di immagini in un set di addestramento affidabile. Con il tuo dataset preelaborato, il passaggio successivo è addestrare il tuo modello. Se sorgono domande lungo il percorso, chiedi alla community sul repository GitHub di Ultralytics o sul server Discord di Ultralytics.

FAQ#

  • La preelaborazione garantisce che i tuoi dati siano puliti, coerenti e in un formato ottimizzato per l'addestramento. Affrontando rumore, incoerenza e squilibrio di classe nei dati grezzi, passaggi come ridimensionamento, normalizzazione, augmentation e suddivisione del dataset riducono il carico computazionale e migliorano le prestazioni del modello. Consulta le fasi di un progetto di computer vision per capire come si inserisce nel flusso di lavoro più ampio.

  • Configura l'augmentation tramite gli argomenti di addestramento, non il YAML del dataset. Passa argomenti come fliplr, mosaic, hsv_h e degrees a model.train() (o ai flag CLI equivalenti) per impostare la probabilità e la forza di ciascuna trasformazione. Questi sono definiti nelle impostazioni di augmentation e spiegati nella guida alla data augmentation di YOLO.

  • Le due tecniche più comuni sono la normalizzazione min-max (riscalamento dei pixel a un intervallo da 0 a 1) e la normalizzazione z-score (riscalamento basato su media e deviazione standard). YOLO26 applica automaticamente la normalizzazione min-max — convertendo le immagini in RGB e dividendo i valori dei pixel per 255 — quindi non hai bisogno di un passaggio di normalizzazione manuale. Non applica la normalizzazione z-score per impostazione predefinita.

  • Una pratica comune è il 70% per l'addestramento, il 20% per la validazione e il 10% per i test. Mantieni la distribuzione delle classi in tutte e tre le suddivisioni ed evita il data leakage applicando l'augmentation solo al set di addestramento dopo la suddivisione. Strumenti come scikit-learn o TensorFlow gestiscono la suddivisione in modo efficiente. Consulta la guida alla raccolta e all'annotazione dei dati per la preparazione a monte del dataset.

  • Sì. L'argomento imgsz ridimensiona le immagini durante l'addestramento e l'inferenza in modo che la loro dimensione maggiore corrisponda alla dimensione specificata (ad esempio, 640 pixel) preservando le proporzioni, quindi aggiunge padding al lato più corto. Non è necessario ridimensionare le immagini da soli — consulta la documentazione sull'addestramento del modello per i dettagli.

Commenti