Approfondimenti sulla valutazione e la messa a punto del modello
Introduzione
Una volta addestrato il modello di computer vision, è essenziale valutarlo e perfezionarlo per ottenere prestazioni ottimali. La semplice formazione del modello non è sufficiente. È necessario assicurarsi che il modello sia accurato, efficiente e che soddisfi l'obiettivo del progetto di computer vision. Valutando e perfezionando il modello, è possibile identificare i punti deboli, migliorarne l'accuratezza e aumentare le prestazioni complessive.
In questa guida, condivideremo le informazioni sulla valutazione e la messa a punto del modello che renderanno questa fase di un progetto di computer vision più accessibile. Parleremo di come comprendere le metriche di valutazione e implementare le tecniche di messa a punto, fornendovi le conoscenze necessarie per migliorare le capacità del vostro modello.
Valutazione delle prestazioni del modello mediante metriche
La valutazione delle prestazioni di un modello ci aiuta a capire quanto sia efficace il suo funzionamento. Per misurare le prestazioni si utilizzano varie metriche. Queste metriche forniscono informazioni chiare e numeriche che possono guidare i miglioramenti per garantire che il modello raggiunga gli obiettivi prefissati. Diamo un'occhiata più da vicino ad alcune metriche chiave.
Punteggio di fiducia
Il punteggio di confidenza rappresenta la certezza del modello che un oggetto rilevato appartenga a una particolare classe. Va da 0 a 1, con punteggi più alti che indicano una maggiore sicurezza. Il punteggio di confidenza aiuta a filtrare le previsioni; solo i rilevamenti con punteggi di confidenza superiori a una determinata soglia sono considerati validi.
Suggerimento rapido: Quando si eseguono le inferenze, se non si vede alcuna previsione e si è controllato tutto il resto, provare a ridurre il punteggio di confidenza. A volte la soglia è troppo alta e il modello ignora le previsioni valide. Abbassare il punteggio permette al modello di considerare più possibilità. Questo potrebbe non soddisfare gli obiettivi del progetto, ma è un buon modo per vedere cosa può fare il modello e decidere come perfezionarlo.
Intersezione su Union
Intersection over Union (IoU) è una metrica nel rilevamento degli oggetti che misura la sovrapposizione del rettangolo di selezione previsto con il rettangolo di selezione della verità a terra. I valori di IoU vanno da 0 a 1, dove uno indica una corrispondenza perfetta. IoU è essenziale perché misura quanto i confini previsti corrispondano a quelli reali dell'oggetto.
Media Precisione media
La precisione media (mAP) è un modo per misurare le prestazioni di un modello di rilevamento degli oggetti. Esamina la precisione di rilevamento di ciascuna classe di oggetti, calcola la media di questi punteggi e fornisce un numero complessivo che indica la precisione con cui il modello è in grado di identificare e classificare gli oggetti.
Concentriamoci su due metriche mAP specifiche:
- mAP@.5: misura la precisione media a una singola soglia IoU (Intersection over Union) di 0,5. Questa metrica verifica se il modello è in grado di trovare correttamente gli oggetti con un requisito di precisione più basso. Si concentra sul fatto che l'oggetto si trovi approssimativamente nel posto giusto, senza bisogno di un posizionamento perfetto. Serve a capire se il modello è generalmente bravo a individuare gli oggetti.
- mAP@.5:.95: Calcola la media dei valori di mAP calcolati a più soglie IoU, da 0,5 a 0,95 con incrementi di 0,05. Questa metrica è più dettagliata e rigorosa. Questa metrica è più dettagliata e rigorosa. Fornisce un quadro più completo dell'accuratezza con cui il modello è in grado di trovare gli oggetti a diversi livelli di severità ed è particolarmente utile per le applicazioni che richiedono un rilevamento preciso degli oggetti.
Altre metriche mAP includono mAP@0.75, che utilizza una soglia IoU più rigida di 0,75, e mAP@small, medium e large, che valutano la precisione di oggetti di dimensioni diverse.
Valutazione delle prestazioni del modello YOLO11
Per quanto riguarda YOLO11, è possibile utilizzare la modalità di convalida per valutare il modello. Inoltre, è bene dare un'occhiata alla nostra guida che approfondisce le metriche delle prestazioni diYOLO11 e la loro interpretazione.
Domande comuni della comunità
Quando si valuta il modello YOLO11 , si possono incontrare alcuni intoppi. Sulla base delle domande comuni della comunità, ecco alcuni suggerimenti per aiutarvi a ottenere il massimo dal vostro modello YOLO11 :
Gestione di immagini di dimensioni variabili
Valutare il modello YOLO11 con immagini di dimensioni diverse può aiutare a capire le sue prestazioni su insiemi di dati diversi. Utilizzando il modello rect=true
Il parametro di convalida YOLO11 regola il passo della rete per ogni batch in base alle dimensioni delle immagini, consentendo al modello di gestire immagini rettangolari senza costringerle a una sola dimensione.
Il imgsz
Il parametro di convalida imposta la dimensione massima per il ridimensionamento delle immagini, che è 640 per impostazione predefinita. È possibile regolare questo valore in base alle dimensioni massime del set di dati e alla memoria disponibile su GPU . Anche con imgsz
set, rect=true
consente al modello di gestire in modo efficace immagini di dimensioni diverse, regolando dinamicamente lo stride.
Accesso alle metriche di YOLO11
Se si desidera ottenere una comprensione più approfondita delle prestazioni del proprio modello YOLO11 , è possibile accedere facilmente a metriche di valutazione specifiche con poche righe di codice Python . Lo snippet di codice qui sotto consente di caricare il modello, di eseguire una valutazione e di stampare varie metriche che mostrano il rendimento del modello.
Utilizzo
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)
L'oggetto Risultati include anche metriche di velocità come il tempo di preprocesso, il tempo di inferenza, la perdita e il tempo di postprocesso. Analizzando queste metriche, è possibile mettere a punto e ottimizzare il modello YOLO11 per ottenere prestazioni migliori, rendendolo più efficace per il caso d'uso specifico.
Come funziona la messa a punto?
La messa a punto consiste nel prendere un modello pre-addestrato e regolarne i parametri per migliorare le prestazioni su un compito o un set di dati specifici. Questo processo, noto anche come riqualificazione del modello, consente al modello di comprendere e prevedere meglio i risultati per i dati specifici che incontrerà nelle applicazioni reali. È possibile riqualificare il modello in base alla sua valutazione per ottenere risultati ottimali.
Suggerimenti per la messa a punto del modello
Mettere a punto un modello significa prestare molta attenzione a diversi parametri e tecniche vitali per ottenere prestazioni ottimali. Ecco alcuni suggerimenti essenziali per guidarvi in questo processo.
Iniziare con un tasso di apprendimento più elevato
Di solito, durante le prime epoche di addestramento, il tasso di apprendimento inizia basso e aumenta gradualmente per stabilizzare il processo di addestramento. Tuttavia, poiché il modello ha già appreso alcune caratteristiche dal set di dati precedente, iniziare subito con un tasso di apprendimento più alto può essere più vantaggioso.
Quando si valuta il modello YOLO11 , è possibile impostare il parametro warmup_epochs
parametro di convalida a warmup_epochs=0
per evitare che il tasso di apprendimento inizi troppo alto. Seguendo questo processo, l'addestramento continuerà a partire dai pesi forniti, adattandosi alle sfumature dei nuovi dati.
Tiling di immagini per oggetti di piccole dimensioni
La suddivisione delle immagini può migliorare l'accuratezza del rilevamento di oggetti di piccole dimensioni. Dividendo le immagini più grandi in segmenti più piccoli, ad esempio dividendo le immagini 1280x1280 in più segmenti 640x640, si mantiene la risoluzione originale e il modello può imparare dai frammenti ad alta risoluzione. Quando si utilizza YOLO11, assicurarsi di regolare correttamente le etichette per questi nuovi segmenti.
Impegnarsi con la comunità
La condivisione di idee e domande con altri appassionati di computer vision può ispirare soluzioni creative agli ostacoli dei vostri progetti. Ecco alcuni modi eccellenti per imparare, risolvere i problemi e connettersi.
Trovare aiuto e supporto
- Problemi su GitHub: Esplorare il repository GitHub di YOLO11 e utilizzare la scheda Issues per porre domande, segnalare bug e suggerire funzionalità. La comunità e i manutentori sono disponibili a fornire assistenza per qualsiasi problema riscontrato.
- Ultralytics Server Discord: Unitevi al server Discord di Ultralytics per connettervi con altri utenti e sviluppatori, ricevere supporto, condividere conoscenze e fare brainstorming di idee.
Documentazione ufficiale
- Ultralytics YOLO11 Documentazione: Consultate la documentazione ufficiale di YOLO11 per trovare guide complete e approfondimenti su vari progetti e attività di computer vision.
Pensieri finali
La valutazione e la messa a punto del modello di computer vision sono fasi importanti per una distribuzione di successo del modello. Queste fasi aiutano a garantire che il modello sia accurato, efficiente e adatto all'applicazione complessiva. La chiave per formare il miglior modello possibile è la sperimentazione e l'apprendimento continui. Non esitate a modificare i parametri, a provare nuove tecniche e a esplorare diversi set di dati. Continuate a sperimentare e a superare i limiti del possibile!
FAQ
Quali sono le metriche chiave per valutare le prestazioni del modello YOLO11 ?
Per valutare le prestazioni del modello YOLO11 , le metriche più importanti sono il Confidence Score, l'Intersection over Union (IoU) e la Mean Average Precision (mAP). Il punteggio di confidenza misura la certezza del modello per ogni classe di oggetto rilevata. IoU valuta il grado di sovrapposizione del rettangolo di selezione previsto con la verità a terra. La precisione media (mAP) aggrega i punteggi di precisione tra le classi, con mAP@.5 e mAP@.5:.95 come due tipi comuni per variare le soglie IoU. Per saperne di più su queste metriche, consultate la nostra guida alle metriche delle prestazioni diYOLO11 .
Come si può mettere a punto un modello preaddestrato di YOLO11 per un set di dati specifico?
La messa a punto di un modello preaddestrato di YOLO11 comporta la regolazione dei suoi parametri per migliorare le prestazioni su un compito o un set di dati specifico. Si inizia valutando il modello con le metriche, quindi si imposta un tasso di apprendimento iniziale più alto regolando il parametro warmup_epochs
a 0 per una stabilità immediata. Utilizzare parametri come rect=true
per gestire efficacemente immagini di dimensioni diverse. Per una guida più dettagliata, consultare la nostra sezione su messa a punto dei modelli YOLO11.
Come posso gestire le dimensioni variabili delle immagini quando valuto il mio modello YOLO11 ?
Per gestire dimensioni variabili dell'immagine durante la valutazione, utilizzare l'opzione rect=true
in YOLO11, che regola lo stride della rete per ogni batch in base alle dimensioni delle immagini. Il imgsz
imposta la dimensione massima per il ridimensionamento dell'immagine, per impostazione predefinita 640. Regola imgsz
per adattarsi al vostro set di dati e alla memoria di GPU . Per maggiori dettagli, visitate il nostro sito sezione sulla gestione di immagini di dimensioni variabili.
Quali misure pratiche posso adottare per migliorare la precisione media del mio modello YOLO11 ?
Il miglioramento della precisione media (mAP) di un modello YOLO11 comporta diverse fasi:
- Regolazione degli iperparametri: Sperimentare con diversi tassi di apprendimento, dimensioni dei batch e incrementi delle immagini.
- Aumento dei dati: Utilizzare tecniche come Mosaico e MixUp per creare campioni di allenamento diversi.
- Tiling dell'immagine: Suddividere le immagini più grandi in piastrelle più piccole per migliorare l'accuratezza del rilevamento di oggetti di piccole dimensioni. Per strategie specifiche, consultare la nostra guida dettagliata sulla messa a punto del modello.
Come si accede alle metriche di valutazione dei modelli di YOLO11 in Python?
È possibile accedere alle metriche di valutazione dei modelli di YOLO11 utilizzando Python con i seguenti passaggi:
Utilizzo
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)
L'analisi di queste metriche aiuta a perfezionare e ottimizzare il modello YOLO11 . Per un approfondimento, consultate la nostra guida sulle metriche diYOLO11 .