Link to this sectionCome testare i modelli di visione artificiale#
Link to this sectionIntroduzione#
Il test del modello verifica come un modello addestrato si comporta su dati reali mai visti prima, con oggetti in movimento, scarsamente illuminati o parzialmente nascosti, piuttosto che su un benchmark curato. Mentre la valutazione del modello misura le metriche su un dataset etichettato, il test verifica che il comportamento appreso dal modello corrisponda agli obiettivi della tua applicazione prima del deployment. Questa guida copre la preparazione dei dati di test, il test dei modelli Ultralytics YOLO26 e l'individuazione di overfitting, underfitting e data leakage.
Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀
Link to this sectionTest del modello vs Valutazione del modello#
Il test del modello e la valutazione del modello sono due fasi distinte in un progetto di visione artificiale. La valutazione misura le prestazioni con metriche su un dataset etichettato; il test verifica se il comportamento appreso dal modello regge in condizioni simili al deployment.
Supponiamo che tu abbia addestrato un modello di visione artificiale per riconoscere cani e gatti e che tu voglia implementare questo modello in un negozio di animali per monitorarli. Durante la fase di valutazione del modello, utilizzi un dataset etichettato per calcolare metriche come accuratezza, precisione e richiamo. Ad esempio, il modello potrebbe avere un'accuratezza del 98% nel distinguere cani e gatti in un determinato dataset.
Dopo la valutazione, testi il modello utilizzando immagini provenienti da un negozio di animali per vedere quanto bene identifichi cani e gatti in condizioni più varie e realistiche. Controlli se riesce a etichettare correttamente cani e gatti quando sono in movimento, in diverse condizioni di illuminazione o parzialmente oscurati da oggetti come giocattoli o mobili. Il test del modello verifica che il modello si comporti come previsto al di fuori dell'ambiente di valutazione controllato.
Link to this sectionPreparazione per il test del modello#
I dataset di computer vision sono solitamente suddivisi in set di training e di testing per simulare le condizioni del mondo reale: i dati di training istruiscono il modello, mentre i dati di testing ne verificano il comportamento su esempi mai visti prima. La Ultralytics Platform mantiene l'organizzazione e l'annotazione dei dataset in un unico posto, il che è utile quando crei un test set etichettato.
- Rappresentazione realistica: I dati di test mai visti prima dovrebbero essere simili ai dati che il modello gestirà una volta implementato. Questo fornisce un quadro realistico delle capacità del modello.
- Dimensioni sufficienti: Il dataset di test deve essere abbastanza grande da fornire approfondimenti affidabili su quanto bene performa il modello.
Link to this sectionCome testare un modello YOLO26#
Testare un modello YOLO26 addestrato comporta due flussi di lavoro complementari: validare su uno split di test etichettato per ottenere metriche quantitative e fare previsioni su nuove immagini per ispezionarne il comportamento in modo qualitativo.
Link to this sectionValidazione su uno split di test etichettato#
La modalità di validazione confronta le previsioni del modello con le etichette di verità (ground-truth) e riporta precisione, richiamo, mAP50 e mAP50-95 per i modelli di rilevamento. Salva anche aiuti visivi come una matrice di confusione e una curva precisione-richiamo, che ti aiutano a individuare aree specifiche in cui il modello potrebbe non funzionare bene.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # mAP50-95Per impostazione predefinita, la validazione viene eseguita sullo split val del dataset. Per misurare le prestazioni su un set di test separato, definisci uno split test: nel tuo YAML del dataset e passa split="test".
Link to this sectionPrevisione su nuove immagini#
La modalità di previsione esegue il modello su dati nuovi e mai visti senza richiedere etichette. Non produce metriche di prestazione, ma salvare gli output annotati ti permette di rivedere come si comporta il modello su immagini reali, ad esempio un'intera cartella di immagini di test in una volta sola.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)Per verificare se YOLO26 è adatto alla tua applicazione prima di investire nell'addestramento personalizzato, esegui la modalità di previsione con un checkpoint preaddestrato sulle tue immagini. I modelli sono preaddestrati su dataset come COCO, quindi i risultati danno una rapida idea di quanto bene il modello potrebbe performare nel tuo contesto specifico.
Link to this sectionModalità di validazione vs. previsione#
| Modalità | Scopo | Richiede etichette | Output |
|---|---|---|---|
| Validazione | Quantifica le prestazioni rispetto alla verità (ground truth) | Sì | Precisione, richiamo, mAP50, mAP50-95, matrice di confusione, curve PR |
| Previsione | Ispeziona il comportamento del modello su dati nuovi non etichettati | No | Immagini annotate e risultati di previsione, nessuna metrica |
Link to this sectionCome analizzare i risultati del test#
Una volta ottenuti previsioni e metriche, approfondisci dove e perché il modello fallisce:
- Immagini classificate erroneamente: Identifica e rivedi le immagini che il modello ha classificato erroneamente per capire dove sbaglia.
- Analisi degli errori: Esegui un'analisi approfondita degli errori per capire le tipologie di errori (es. falsi positivi vs falsi negativi) e le loro potenziali cause.
- Bias ed equità: Controlla la presenza di eventuali bias nelle previsioni del modello. Assicurati che il modello funzioni altrettanto bene su diversi sottogruppi di dati, specialmente se include attributi sensibili come razza, genere o età.
Link to this sectionOverfitting e underfitting nel machine learning#
Quando testi un modello di machine learning, specialmente nella visione artificiale, è importante fare attenzione all'overfitting e all'underfitting. Questi problemi possono influenzare significativamente il funzionamento del modello con nuovi dati.
| Problema | Segnali comuni | Come affrontarli |
|---|---|---|
| Overfitting | Alta precisione di addestramento ma bassa precisione di validazione; ipersensibilità a piccoli cambiamenti o dettagli irrilevanti nelle immagini | Applica la regolarizzazione come il dropout, aumenta la dimensione del dataset di addestramento, semplifica l'architettura del modello |
| Underfitting | Bassa precisione anche sul set di addestramento; fallimento costante nel riconoscere caratteristiche o oggetti ovvi | Usa un modello più complesso, fornisci caratteristiche più rilevanti, aumenta le epoche di addestramento |
La chiave è trovare un equilibrio in modo che il modello funzioni bene sia sui dataset di addestramento che su quelli di validazione. Monitorare regolarmente le metriche e ispezionare visivamente le previsioni durante i test ti aiuta a cogliere una deriva verso uno dei due estremi.
Link to this sectionData leakage nella visione artificiale e come evitarlo#
Il data leakage si verifica quando informazioni esterne al dataset di addestramento vengono accidentalmente utilizzate per addestrare il modello. Il modello può sembrare molto accurato durante l'addestramento, ma non funzionerà bene su dati nuovi e mai visti quando si verifica il data leakage.
Il leakage può essere difficile da individuare e spesso deriva da bias nascosti nei dati di addestramento:
| Tipo di bias | Cosa indica |
|---|---|
| Bias della fotocamera | Angoli diversi, illuminazione, ombre e movimenti della fotocamera introducono pattern indesiderati |
| Bias di sovrapposizione | Loghi, timestamp o altre sovrapposizioni nelle immagini traggono in inganno il modello |
| Bias di carattere e oggetto | Caratteri o oggetti specifici che appaiono frequentemente in determinate classi distorcono l'apprendimento del modello |
| Bias spaziale | Sbilanciamenti tra primo piano e sfondo, distribuzioni di bounding box e posizioni degli oggetti influenzano l'addestramento |
| Bias di etichetta e dominio | Etichette errate o cambiamenti nei tipi di dati portano al leakage |
Link to this sectionCome rilevare ed evitare il data leakage#
Per trovare il data leakage, controlla se i risultati del modello sono sorprendentemente buoni, osserva se una caratteristica è molto più importante delle altre, verifica che le decisioni del modello abbiano un senso intuitivo e accertati che i dati siano stati divisi correttamente prima di qualsiasi elaborazione.
Per prevenirlo, usa un dataset diversificato con immagini o video da fotocamere e ambienti diversi e rivedi attentamente i tuoi dati per individuare bias nascosti, come campioni positivi presi tutti in un momento specifico della giornata. Evitare il data leakage rende i tuoi modelli di visione artificiale più affidabili in situazioni reali.
Link to this sectionCosa viene dopo il test del modello#
Dopo aver testato il tuo modello, i passi successivi dipendono dai risultati. Se il tuo modello funziona bene, puoi implementarlo in un ambiente reale. Se i risultati non sono soddisfacenti, dovrai apportare miglioramenti. Ciò potrebbe comportare l'analisi degli errori, la raccolta di più dati, il miglioramento della qualità dei dati, la regolazione degli iperparametri e il riaddestramento del modello.
Link to this sectionConclusione#
Un test rigoroso del modello — validazione su uno split di test separato, previsioni su immagini reali e controllo di overfitting e data leakage — è ciò che trasforma un modello ben valutato in uno affidabile. Risolvi i problemi emersi dal test prima del deployment e il tuo modello avrà molte più probabilità di performare come previsto in produzione. Se hai domande lungo il percorso, chiedi alla community sul repository GitHub di Ultralytics o sul server Discord di Ultralytics.
Link to this sectionFAQ#
Link to this sectionQuali sono le principali differenze tra valutazione del modello e test del modello nella visione artificiale?#
La valutazione del modello misura le prestazioni con metriche su un dataset etichettato, mentre il test del modello verifica come il modello si comporta su dati nuovi e mai visti che assomigliano alle condizioni di deployment. La valutazione produce numeri come precisione e mAP da un dataset controllato; il test rivela se il comportamento appreso regge con diverse condizioni di illuminazione, movimento o occlusione. Vedi Test del modello vs Valutazione del modello per un esempio pratico.
Link to this sectionCome posso testare il mio modello Ultralytics YOLO26 su più immagini?#
Usa la modalità di previsione e passa un percorso di cartella come source — YOLO26 viene eseguito su ogni immagine nella cartella e può salvare i risultati annotati per la revisione. La modalità di previsione non calcola metriche; per quantificare le prestazioni su un set etichettato, usa invece la modalità di validazione. Entrambi i flussi di lavoro sono mostrati in Come testare un modello YOLO26.
Link to this sectionQuali metriche riporta la validazione di YOLO26 su un set di test?#
Per i modelli di rilevamento, la validazione riporta precisione, richiamo, mAP50 e mAP50-95, e salva grafici inclusi una matrice di confusione e una curva precisione-richiamo. Per validare su uno split di test dedicato anziché sullo split val predefinito, definisci test: nello YAML del tuo dataset e passa split="test". Consulta la guida alle metriche di prestazione per capire come interpretare ogni metrica.
Link to this sectionCosa dovrei fare se il mio modello di visione artificiale mostra segni di overfitting o underfitting?#
Per l'overfitting, applica tecniche di regolarizzazione come il dropout, aumenta la dimensione del dataset di addestramento o semplifica l'architettura del modello. Per l'underfitting, usa un modello più complesso, fornisci caratteristiche più rilevanti o addestra per più epoche. I segni di ogni problema e le relative correzioni sono riassunti in Overfitting e underfitting nel machine learning.
Link to this sectionCome posso rilevare ed evitare il data leakage nella visione artificiale?#
Sospetta un data leakage quando le prestazioni del test sembrano sorprendentemente buone, una singola caratteristica domina le previsioni o le decisioni del modello non hanno un senso intuitivo. Preveniscilo utilizzando dataset diversificati da fotocamere e ambienti diversi, rivedendo i dati per individuare bias nascosti e verificando che la divisione train/test sia avvenuta prima di qualsiasi elaborazione. Vedi Data leakage nella visione artificiale per i tipi di bias comuni.
Link to this sectionQuali passi dovrei intraprendere dopo aver testato il mio modello di visione artificiale?#
Se i risultati soddisfano gli obiettivi del tuo progetto, implementa il modello; in caso contrario, miglioralo prima del deployment. Ciò può significare analizzare gli errori, raccogliere più dati diversificati, migliorare la qualità dei dati, regolare gli iperparametri e riaddestrare. Ripeti il test dopo ogni serie di modifiche per confermare che le correzioni abbiano funzionato.