Link to this sectionTecniche di pre-elaborazione dei dati per dati di computer vision annotati#
La pre-elaborazione dei dati trasforma immagini grezze e annotate negli input puliti e coerenti di cui un modello di computer vision ha bisogno per addestrarsi bene. 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 resta da fare è suddividere correttamente il tuo dataset, bilanciare le classi e scegliere le aumentazioni. Questa guida copre quelle tecniche essenziali: ridimensionamento, normalizzazione, suddivisione del dataset, aumentazione dei dati e analisi esplorativa dei dati (EDA).
Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀
Questo passaggio avviene dopo che hai definito gli obiettivi del tuo progetto e raccolto e annotato i tuoi dati, e si colloca nelle prime fasi del flusso di lavoro del progetto di computer vision.
Link to this sectionPerché 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.
Link to this sectionTecniche 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ù.
Link to this sectionRidimensionamento 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 solitamente non ridimensioni manualmente. L'argomento imgsz durante l'addestramento del modello se ne occupa: quando impostato su un valore come 640, YOLO scala ogni immagine in modo che la sua dimensione maggiore sia di 640 pixel mantenendo il rapporto d'aspetto, quindi riempie il lato più corto (grigio predefinito, valore 114) per ottenere un input quadrato 640 × 640.
Link to this sectionNormalizzazione 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 pre-elaborazione: converte le immagini in RGB e scala i valori dei pixel nell'intervallo [0, 1] dividendo per 255 (normalizzazione min-max). YOLO non applica la normalizzazione media/deviazione standard (z-score) in stile ImageNet per impostazione predefinita, quindi non è richiesto alcun passaggio di normalizzazione manuale.
Link to this sectionSuddivisione del dataset#
Suddividere i dati in set di addestramento, validazione e test ti consente di valutare il modello su dati non visti e misurarne la generalizzazione. Una suddivisione comune è il 70% per l'addestramento, il 20% per la validazione e il 10% per il test. Strumenti come scikit-learn o TensorFlow rendono questa operazione 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.
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.
Link to this sectionAumentazione del dataset#
L'aumentazione dei dati aumenta artificialmente le dimensioni di un dataset creando versioni modificate delle 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.
Con YOLO26, l'aumentazione è controllata tramite argomenti di addestramento passati a model.train() o ai flag CLI equivalenti — non modificando il YAML del dataset, che definisce i metadati del dataset come percorsi, nomi delle classi e suddivisioni. Le aumentazioni integrate includono:
- Mosaic, MixUp e CutMix (
mosaic,mixup,cutmix): Combinano più immagini in un unico campione di addestramento. - Riflessi (
fliplr,flipud): Specchiano le immagini orizzontalmente o verticalmente. - 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-incolla (
copy_paste): Incolla oggetti tra le immagini per la segmentazione.
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 aumentazione e i loro valori predefiniti, consulta il riferimento alle impostazioni di aumentazione e la guida all'aumentazione dei dati YOLO dedicata. Se il pacchetto albumentations è installato, YOLO abilita automaticamente anche le sue aumentazioni basate su Albumentations integrate.
Link to this sectionUn caso di studio: Pre-elaborazione per il rilevamento di veicoli#
Considera un progetto per rilevare e classificare veicoli in immagini di traffico con YOLO26, partendo da immagini annotate con bounding boxes ed etichette. Ecco come appare ogni decisione di pre-elaborazione:
- Ridimensionamento: Nessun lavoro manuale — YOLO26 ridimensiona a
imgszdurante 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.
- Aumentazione: Imposta argomenti di addestramento adatti agli scenari di traffico — ad esempio
fliplrper l'invarianza di direzione,hsv_vper l'illuminazione giorno/notte emosaicper una densità di oggetti variabile.
Con queste decisioni prese, il dataset è pronto per l'analisi esplorativa dei dati (EDA).
Link to this sectionAnalisi 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.
Link to this sectionTecniche 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.
Link to this sectionTecniche 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.
Link to this sectionPiattaforma Ultralytics per l'EDA#
Per un approccio no-code all'EDA, carica il tuo dataset sulla Piattaforma Ultralytics. La scheda Charts del dataset genera automaticamente le principali visualizzazioni EDA: distribuzione della suddivisione, conteggio delle classi principali, istogrammi di larghezza/altezza delle immagini e mappe di calore 2D delle posizioni delle annotazioni e delle dimensioni delle immagini. La scheda Images ti permette di sfogliare i tuoi dati in viste a griglia, compatte o tabellari con sovrapposizioni di annotazioni, rendendo facile individuare esempi etichettati erroneamente o classi sbilanciate senza scrivere alcun codice.
Link to this sectionConclusione#
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 pre-elaborato, il passaggio successivo è addestrare il tuo modello. Se sorgono domande lungo il percorso, chiedi alla comunità sul repository GitHub di Ultralytics o sul server Discord di Ultralytics.
Link to this sectionFAQ#
Link to this sectionPerché la pre-elaborazione dei dati è importante nei progetti di computer vision?#
La pre-elaborazione garantisce che i tuoi dati siano puliti, coerenti e in un formato ottimizzato per l'addestramento. Affrontando rumore, incoerenza e squilibrio delle classi nei dati grezzi, passaggi come ridimensionamento, normalizzazione, aumentazione 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.
Link to this sectionCome utilizzo Ultralytics YOLO per l'aumentazione dei dati?#
Configura l'aumentazione tramite argomenti di addestramento, non tramite 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 ogni trasformazione. Questi sono definiti nelle impostazioni di aumentazione e spiegati nella guida all'aumentazione dei dati YOLO.
Link to this sectionQuali sono le migliori tecniche di normalizzazione per i dati di computer vision?#
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.
Link to this sectionCome dovrei suddividere il mio dataset annotato per l'addestramento?#
Una pratica comune è il 70% per l'addestramento, il 20% per la validazione e il 10% per il test. Mantieni la distribuzione delle classi su tutte e tre le suddivisioni ed evita la perdita di dati applicando l'aumentazione 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 annotazione dei dati per la preparazione del dataset a monte.
Link to this sectionYOLO26 può gestire dimensioni di immagine variabili senza ridimensionamento manuale?#
Sì. L'argomento imgsz ridimensiona le immagini durante l'addestramento e l'inferenza in modo che la loro dimensione maggiore corrisponda alla dimensione specificata (es. 640 pixel) mantenendo il rapporto d'aspetto, quindi riempie il lato più corto. Non hai bisogno di ridimensionare le immagini da solo — consulta la documentazione sull'addestramento del modello per i dettagli.