Configurazione
YOLO Le impostazioni e gli iperparametri svolgono un ruolo fondamentale per le prestazioni, la velocità e l'accuratezza del modello. Queste impostazioni e iperparametri possono influenzare il comportamento del modello in varie fasi del processo di sviluppo del modello, tra cui l'addestramento, la convalida e la previsione.
Guarda: Mastering Ultralytics YOLOv8 : Configurazione
Ultralytics utilizza la seguente sintassi:
Esempio
Dove:
TASK
(opzionale) è uno dei seguenti (rilevare, segmento, classificare, posa)MODE
(richiesto) è uno dei seguenti (treno, valore, Prevedere, esportazione, binario)ARGS
(opzionale) sonoarg=value
coppie comeimgsz=640
che sovrascrivono le impostazioni predefinite.
Predefinito ARG
I valori sono definiti in questa pagina dalla sezione cfg/defaults.yaml
file.
Compiti
YOLO I modelli possono essere utilizzati per una serie di compiti, tra cui il rilevamento, la segmentazione, la classificazione e la posa. Questi compiti si differenziano per il tipo di output che producono e per il problema specifico che sono stati progettati per risolvere.
- Rilevare: Per identificare e localizzare oggetti o regioni di interesse in un'immagine o in un video.
- Segmento: Per dividere un'immagine o un video in regioni o pixel che corrispondono a diversi oggetti o classi.
- Classificare: Per prevedere l'etichetta della classe di un'immagine in ingresso.
- Pose: Per identificare gli oggetti e stimare i loro punti chiave in un'immagine o in un video.
- OBB: Caselle di delimitazione orientate (cioè ruotate) adatte a immagini satellitari o mediche.
Argomento | Predefinito | Descrizione |
---|---|---|
task |
'detect' |
Specifica l'attività di YOLO da eseguire. Le opzioni includono detect per il rilevamento degli oggetti, segment per la segmentazione, classify per la classificazione, pose per la stima della posa e OBB per le bounding box orientate. Ciascuna attività è adatta a specifici tipi di risultati e problemi nell'ambito dell'analisi di immagini e video. |
Modalità
YOLO I modelli possono essere utilizzati in diverse modalità a seconda del problema specifico che stai cercando di risolvere. Queste modalità includono:
- Addestra: Per addestrare un modello YOLOv8 su un set di dati personalizzato.
- Val: per convalidare un modello YOLOv8 dopo che è stato addestrato.
- Predire: Per fare previsioni utilizzando un modello YOLOv8 addestrato su nuove immagini o video.
- Esporta: Per esportare un modello YOLOv8 in un formato utilizzabile per la distribuzione.
- Track: Per tracciare gli oggetti in tempo reale utilizzando un modello YOLOv8 .
- Benchmark: Per valutare la velocità e l'accuratezza delle esportazioni di YOLOv8 (ONNX, TensorRT, ecc.).
Argomento | Predefinito | Descrizione |
---|---|---|
mode |
'train' |
Specifica la modalità di funzionamento del modello YOLO . Le opzioni sono train per la formazione del modello, val per la convalida, predict per l'inferenza su nuovi dati, export per la conversione dei modelli in formati di distribuzione, track per il tracciamento degli oggetti e benchmark per la valutazione delle prestazioni. Ogni modalità è pensata per le diverse fasi del ciclo di vita del modello, dallo sviluppo alla distribuzione. |
Impostazioni del treno
Le impostazioni di addestramento dei modelli di YOLO comprendono vari iperparametri e configurazioni utilizzati durante il processo di addestramento. Queste impostazioni influenzano le prestazioni, la velocità e l'accuratezza del modello. Le impostazioni chiave per l'addestramento includono la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento dei pesi. Inoltre, la scelta dell'ottimizzatore, della funzione di perdita e della composizione del set di dati di addestramento possono influire sul processo di addestramento. Un'attenta messa a punto e la sperimentazione di queste impostazioni sono fondamentali per ottimizzare le prestazioni.
Argomento | Predefinito | Descrizione |
---|---|---|
model |
None |
Specifica il file del modello per la formazione. Accetta il percorso di un file .pt modello preaddestrato o un .yaml file di configurazione. È essenziale per definire la struttura del modello o per inizializzare i pesi. |
data |
None |
Percorso del file di configurazione del dataset (es, coco8.yaml ). Questo file contiene parametri specifici del set di dati, tra cui i percorsi dei dati di formazione e di convalida, i nomi delle classi e il numero di classi. |
epochs |
100 |
Numero totale di epoche di allenamento. Ogni epoch rappresenta un passaggio completo sull'intero set di dati. La regolazione di questo valore può influire sulla durata dell'addestramento e sulle prestazioni del modello. |
time |
None |
Tempo massimo di allenamento in ore. Se impostato, sostituisce l'opzione epochs che permette di interrompere automaticamente l'allenamento dopo la durata specificata. Utile per gli scenari di formazione con vincoli di tempo. |
patience |
100 |
Numero di epoche da attendere senza miglioramenti nelle metriche di convalida prima di interrompere l'addestramento. Aiuta a prevenire l'overfitting interrompendo l'addestramento quando le prestazioni raggiungono il livello massimo. |
batch |
16 |
Dimensione del lotto per l'addestramento, che indica quante immagini vengono elaborate prima che i parametri interni del modello vengano aggiornati. AutoBatch (batch=-1 ) regola dinamicamente la dimensione del batch in base alla disponibilità di memoria della GPU. |
imgsz |
640 |
Dimensione dell'immagine target per l'addestramento. Tutte le immagini vengono ridimensionate a questa dimensione prima di essere inserite nel modello. Influisce sull'accuratezza del modello e sulla complessità computazionale. |
save |
True |
Consente di salvare i checkpoint di formazione e i pesi finali del modello. Utile per riprendere l'addestramento o la distribuzione del modello. |
save_period |
-1 |
Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Un valore di -1 disabilita questa funzione. Utile per salvare i modelli intermedi durante le lunghe sessioni di allenamento. |
cache |
False |
Abilita la cache delle immagini del dataset in memoria (True /ram ), su disco (disk ), oppure disabilitarlo (False ). Migliora la velocità di formazione riducendo l'I/O del disco al costo di un maggiore utilizzo della memoria. |
device |
None |
Specifica il/i dispositivo/i di calcolo per la formazione: una singola GPU (device=0 ), GPU multiple (device=0,1 ), CPU (device=cpu ), o MPS per il silicio Apple (device=mps ). |
workers |
8 |
Numero di thread worker per il caricamento dei dati (per RANK se la formazione è multi-GPU). Influenza la velocità di preelaborazione dei dati e di alimentazione del modello, particolarmente utile nelle configurazioni multi-GPU. |
project |
None |
Nome della directory del progetto in cui vengono salvati i risultati della formazione. Consente di archiviare in modo organizzato i diversi esperimenti. |
name |
None |
Nome della sessione di allenamento. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono archiviati i log e gli output dell'allenamento. |
exist_ok |
False |
Se è vero, permette di sovrascrivere una cartella di progetto/nome esistente. Utile per sperimentare in modo iterativo senza dover cancellare manualmente i risultati precedenti. |
pretrained |
True |
Determina se iniziare l'addestramento da un modello preaddestrato. Può essere un valore booleano o un percorso di stringhe verso un modello specifico da cui caricare i pesi. Migliora l'efficienza della formazione e le prestazioni del modello. |
optimizer |
'auto' |
Scelta dell'ottimizzatore per la formazione. Le opzioni includono SGD , Adam , AdamW , NAdam , RAdam , RMSProp ecc. auto per la selezione automatica basata sulla configurazione del modello. Influisce sulla velocità di convergenza e sulla stabilità. |
verbose |
False |
Abilita l'output verboso durante l'allenamento, fornendo registri dettagliati e aggiornamenti sui progressi. Utile per il debug e per monitorare da vicino il processo di formazione. |
seed |
0 |
Imposta il seme casuale per l'addestramento, garantendo la riproducibilità dei risultati tra le esecuzioni con le stesse configurazioni. |
deterministic |
True |
Forza l'uso di algoritmi deterministici, garantendo la riproducibilità, ma può influire sulle prestazioni e sulla velocità a causa della limitazione degli algoritmi non deterministici. |
single_cls |
False |
Tratta tutte le classi nei dataset multiclasse come un'unica classe durante l'addestramento. Utile per compiti di classificazione binaria o quando ci si concentra sulla presenza di oggetti piuttosto che sulla classificazione. |
rect |
False |
Consente l'addestramento rettangolare, ottimizzando la composizione dei lotti per ottenere un'imbottitura minima. Può migliorare l'efficienza e la velocità, ma può influire sull'accuratezza del modello. |
cos_lr |
False |
Utilizza uno scheduler del tasso di apprendimento del coseno, che regola il tasso di apprendimento seguendo una curva del coseno nel corso delle epoche. Aiuta a gestire il tasso di apprendimento per una migliore convergenza. |
close_mosaic |
10 |
Disabilita l'aumento dei dati del mosaico nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. L'impostazione a 0 disabilita questa funzione. |
resume |
False |
Riprende l'allenamento dall'ultimo checkpoint salvato. Carica automaticamente i pesi del modello, lo stato dell'ottimizzatore e il conteggio delle epoche, continuando l'addestramento senza interruzioni. |
amp |
True |
Abilita l'addestramento automatico di precisione mista (AMP), riducendo l'uso della memoria e possibilmente accelerando l'addestramento con un impatto minimo sulla precisione. |
fraction |
1.0 |
Specifica la frazione del dataset da utilizzare per l'addestramento. Consente l'addestramento su un sottoinsieme dell'intero set di dati, utile per gli esperimenti o quando le risorse sono limitate. |
profile |
False |
Consente di profilare le velocità di ONNX e TensorRT durante l'addestramento, utile per ottimizzare la distribuzione del modello. |
freeze |
None |
Congela i primi N livelli del modello o i livelli specificati per indice, riducendo il numero di parametri addestrabili. Utile per la messa a punto o l'apprendimento per trasferimento. |
lr0 |
0.01 |
Tasso di apprendimento iniziale (cioè SGD=1E-2 , Adam=1E-3 ) . La regolazione di questo valore è fondamentale per il processo di ottimizzazione, in quanto influisce sulla velocità di aggiornamento dei pesi del modello. |
lrf |
0.01 |
Tasso di apprendimento finale come frazione del tasso iniziale = (lr0 * lrf ), utilizzato insieme agli schedulatori per regolare il tasso di apprendimento nel tempo. |
momentum |
0.937 |
Fattore di momentum per SGD o beta1 per gli ottimizzatori Adam, che influenza l'incorporazione dei gradienti passati nell'aggiornamento corrente. |
weight_decay |
0.0005 |
Termine di regolarizzazione L2 che penalizza i pesi grandi per evitare l'overfitting. |
warmup_epochs |
3.0 |
Numero di epoche per il riscaldamento del tasso di apprendimento, aumentando gradualmente il tasso di apprendimento da un valore basso al tasso di apprendimento iniziale per stabilizzare l'allenamento all'inizio. |
warmup_momentum |
0.8 |
Slancio iniziale per la fase di riscaldamento, con regolazione graduale dello slancio impostato nel corso del periodo di riscaldamento. |
warmup_bias_lr |
0.1 |
Tasso di apprendimento dei parametri di polarizzazione durante la fase di riscaldamento, che aiuta a stabilizzare l'addestramento del modello nelle epoche iniziali. |
box |
7.5 |
Peso della componente di perdita del box nella funzione di perdita, che influenza l'importanza attribuita alla previsione accurata delle coordinate del box di delimitazione. |
cls |
0.5 |
Peso della perdita di classificazione nella funzione di perdita totale, che influenza l'importanza della corretta previsione della classe rispetto agli altri componenti. |
dfl |
1.5 |
Peso della perdita focale della distribuzione, utilizzato in alcune versioni di YOLO per una classificazione a grana fine. |
pose |
12.0 |
Peso della perdita di posa nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei punti chiave della posa. |
kobj |
2.0 |
Peso della perdita di oggettività dei punti chiave nei modelli di stima della posa, bilanciando la fiducia nel rilevamento con l'accuratezza della posa. |
label_smoothing |
0.0 |
L'applicazione di un'attenuazione delle etichette, che ammorbidisce le etichette dure in un mix di etichette di destinazione e di una distribuzione uniforme delle etichette, può migliorare la generalizzazione. |
nbs |
64 |
Dimensione nominale del lotto per la normalizzazione della perdita. |
overlap_mask |
True |
Determina se le maschere di segmentazione devono sovrapporsi durante l'addestramento, applicabile nei compiti di segmentazione delle istanze. |
mask_ratio |
4 |
Rapporto di downsample per le maschere di segmentazione, che influisce sulla risoluzione delle maschere utilizzate durante l'addestramento. |
dropout |
0.0 |
Tasso di abbandono per la regolarizzazione nei compiti di classificazione, per evitare l'overfitting attraverso l'omissione casuale di unità durante l'addestramento. |
val |
True |
Abilita la convalida durante l'addestramento, consentendo una valutazione periodica delle prestazioni del modello su un set di dati separato. |
plots |
False |
Genera e salva i grafici delle metriche di addestramento e di convalida, così come gli esempi di previsione, fornendo una visione delle prestazioni del modello e della progressione dell'apprendimento. |
Prevedere le impostazioni
Le impostazioni di predizione dei modelli YOLO comprendono una serie di iperparametri e configurazioni che influenzano le prestazioni, la velocità e l'accuratezza del modello durante l'inferenza su nuovi dati. Un'attenta messa a punto e la sperimentazione di queste impostazioni sono essenziali per ottenere prestazioni ottimali per un compito specifico. Le impostazioni chiave includono la soglia di fiducia, la soglia di soppressione non massima (NMS) e il numero di classi considerate. Altri fattori che influenzano il processo di predizione sono la dimensione e il formato dei dati di input, la presenza di caratteristiche aggiuntive come le maschere o le etichette multiple per casella e la particolare attività per cui il modello viene impiegato.
Argomenti di inferenza:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Specifica la fonte dei dati per l'inferenza. Può essere un percorso di immagine, un file video, una directory, un URL o un ID di dispositivo per i feed live. Supporta un'ampia gamma di formati e fonti, consentendo un'applicazione flessibile a diversi tipi di input. |
conf |
float |
0.25 |
Imposta la soglia minima di confidenza per i rilevamenti. Gli oggetti rilevati con una confidenza inferiore a questa soglia saranno ignorati. La regolazione di questo valore può aiutare a ridurre i falsi positivi. |
iou |
float |
0.7 |
Soglia di Intersection Over Union (IoU) per la soppressione non massima (NMS). Valori più bassi comportano un minor numero di rilevamenti eliminando le caselle sovrapposte, utili per ridurre i duplicati. |
imgsz |
int or tuple |
640 |
Definisce la dimensione dell'immagine per l'inferenza. Può essere un singolo numero intero 640 per il ridimensionamento quadrato o una tupla (altezza, larghezza). Un dimensionamento corretto può migliorare l'accuratezza del rilevamento e la velocità di elaborazione. |
half |
bool |
False |
Abilita l'inferenza a mezza precisione (FP16), che può accelerare l'inferenza del modello sulle GPU supportate con un impatto minimo sulla precisione. |
device |
str |
None |
Specifica il dispositivo per l'inferenza (es, cpu , cuda:0 o 0 ). Permette agli utenti di selezionare una CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione dei modelli. |
max_det |
int |
300 |
Numero massimo di rilevamenti consentiti per immagine. Limita il numero totale di oggetti che il modello può rilevare in una singola inferenza, prevenendo un numero eccessivo di risultati in scene dense. |
vid_stride |
int |
1 |
Frame stride per gli ingressi video. Consente di saltare i fotogrammi nei video per velocizzare l'elaborazione a scapito della risoluzione temporale. Un valore di 1 elabora ogni fotogramma, valori più alti saltano i fotogrammi. |
stream_buffer |
bool |
False |
Determina se tutti i fotogrammi devono essere bufferizzati quando si elaborano i flussi video (True ), oppure se il modello deve restituire il fotogramma più recente (False ). Utile per le applicazioni in tempo reale. |
visualize |
bool |
False |
Attiva la visualizzazione delle caratteristiche del modello durante l'inferenza, fornendo informazioni su ciò che il modello "vede". Utile per il debug e l'interpretazione del modello. |
augment |
bool |
False |
Abilita l'aumento del tempo di test (TTA) per le previsioni, migliorando potenzialmente la robustezza del rilevamento al costo della velocità di inferenza. |
agnostic_nms |
bool |
False |
Abilita la soppressione non massimale (NMS), che unisce le caselle sovrapposte di classi diverse. Utile negli scenari di rilevamento multiclasse in cui la sovrapposizione di classi è comune. |
classes |
list[int] |
None |
Filtra le previsioni in base a un insieme di ID di classe. Verranno restituiti solo i rilevamenti appartenenti alle classi specificate. Utile per concentrarsi sugli oggetti rilevanti in attività di rilevamento multiclasse. |
retina_masks |
bool |
False |
Utilizza maschere di segmentazione ad alta risoluzione se disponibili nel modello. Questo può migliorare la qualità delle maschere per le attività di segmentazione, fornendo dettagli più precisi. |
embed |
list[int] |
None |
Specifica i livelli da cui estrarre i vettori di caratteristiche o gli embeddings. Utile per attività a valle come il clustering o la ricerca di somiglianze. |
Argomenti di visualizzazione:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
show |
bool |
False |
Se True visualizza le immagini o i video annotati in una finestra. Utile per avere un feedback visivo immediato durante lo sviluppo o i test. |
save |
bool |
False |
Consente di salvare su file le immagini o i video annotati. Utile per la documentazione, per ulteriori analisi o per condividere i risultati. |
save_frames |
bool |
False |
Quando elabora i video, salva i singoli fotogrammi come immagini. È utile per estrarre fotogrammi specifici o per un'analisi dettagliata fotogramma per fotogramma. |
save_txt |
bool |
False |
Salva i risultati del rilevamento in un file di testo, seguendo il formato [class] [x_center] [y_center] [width] [height] [confidence] . Utile per l'integrazione con altri strumenti di analisi. |
save_conf |
bool |
False |
Include i punteggi di confidenza nei file di testo salvati. Aumenta i dettagli disponibili per la post-elaborazione e l'analisi. |
save_crop |
bool |
False |
Salva le immagini ritagliate dei rilevamenti. Utile per aumentare il set di dati, per l'analisi o per creare set di dati mirati per oggetti specifici. |
show_labels |
bool |
True |
Visualizza le etichette per ogni rilevamento nell'output visivo. Fornisce una comprensione immediata degli oggetti rilevati. |
show_conf |
bool |
True |
Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento. |
show_boxes |
bool |
True |
Disegna dei riquadri di delimitazione intorno agli oggetti rilevati. È essenziale per l'identificazione visiva e la localizzazione degli oggetti nelle immagini o nei fotogrammi video. |
line_width |
None or int |
None |
Specifica la larghezza della linea delle caselle di delimitazione. Se None La larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza. |
Impostazioni di convalida
Le impostazioni di val (validazione) per i modelli di YOLO riguardano vari iperparametri e configurazioni utilizzati per valutare le prestazioni del modello su un set di dati di validazione. Queste impostazioni influenzano le prestazioni, la velocità e l'accuratezza del modello. Le impostazioni di convalida comuni di YOLO includono la dimensione dei lotti, la frequenza di convalida durante l'addestramento e le metriche di valutazione delle prestazioni. Altri fattori che influenzano il processo di convalida sono la dimensione e la composizione del dataset di convalida e l'attività specifica per cui il modello viene impiegato.
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
data |
str |
None |
Specifica il percorso del file di configurazione del dataset (ad es, coco8.yaml ). Questo file include i percorsi dei dati di convalida, i nomi delle classi e il numero di classi. |
imgsz |
int |
640 |
Definisce la dimensione delle immagini in ingresso. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. |
batch |
int |
16 |
Imposta il numero di immagini per batch. Utilizza -1 per AutoBatch, che si regola automaticamente in base alla disponibilità di memoria della GPU. |
save_json |
bool |
False |
Se True salva i risultati in un file JSON per ulteriori analisi o per l'integrazione con altri strumenti. |
save_hybrid |
bool |
False |
Se True , salva una versione ibrida delle etichette che combina le annotazioni originali con le previsioni aggiuntive del modello. |
conf |
float |
0.001 |
Imposta la soglia minima di confidenza per i rilevamenti. I rilevamenti con una confidenza inferiore a questa soglia vengono scartati. |
iou |
float |
0.6 |
Imposta la soglia di Intersection Over Union (IoU) per la soppressione non massima (NMS). Aiuta a ridurre i rilevamenti di duplicati. |
max_det |
int |
300 |
Limita il numero massimo di rilevamenti per immagine. Utile in scene dense per evitare rilevamenti eccessivi. |
half |
bool |
True |
Consente il calcolo a mezza precisione (FP16), riducendo l'utilizzo della memoria e aumentando potenzialmente la velocità con un impatto minimo sulla precisione. |
device |
str |
None |
Specifica il dispositivo per la convalida (cpu , cuda:0 , ecc.) Permette di utilizzare in modo flessibile le risorse della CPU o della GPU. |
dnn |
bool |
False |
Se True utilizza il modulo OpenCV DNN per l'inferenza del modello ONNX , offrendo un'alternativa ai metodi di inferenza PyTorch . |
plots |
bool |
False |
Quando è impostato su True genera e salva i grafici delle previsioni rispetto alla verità a terra per valutare visivamente le prestazioni del modello. |
rect |
bool |
False |
Se True utilizza l'inferenza rettangolare per il batching, riducendo il padding e aumentando potenzialmente la velocità e l'efficienza. |
split |
str |
val |
Determina la suddivisione del set di dati da utilizzare per la validazione (val , test , oppure train ). Permette di scegliere con flessibilità il segmento di dati per la valutazione delle prestazioni. |
Un'attenta messa a punto e la sperimentazione di queste impostazioni sono fondamentali per garantire prestazioni ottimali sul set di dati di convalida e per individuare e prevenire l'overfitting.
Impostazioni di esportazione
Le impostazioni di esportazione dei modelli di YOLO comprendono le configurazioni e le opzioni relative al salvataggio o all'esportazione del modello per l'utilizzo in ambienti o piattaforme diverse. Queste impostazioni possono influenzare le prestazioni, le dimensioni e la compatibilità del modello con vari sistemi. Le principali impostazioni di esportazione includono il formato del file del modello esportato (ad esempio, ONNX, TensorFlow SavedModel ), il dispositivo di destinazione (ad esempio, CPU, GPU) e caratteristiche aggiuntive come le maschere o le etichette multiple per casella. Il processo di esportazione può essere influenzato anche dal compito specifico del modello e dai requisiti o vincoli dell'ambiente o della piattaforma di destinazione.
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
format |
str |
'torchscript' |
Formato di destinazione del modello esportato, ad esempio 'onnx' , 'torchscript' , 'tensorflow' , o altri, che definiscono la compatibilità con vari ambienti di distribuzione. |
imgsz |
int o tuple |
640 |
Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per le immagini quadrate o una tupla (height, width) per le dimensioni specifiche. |
keras |
bool |
False |
Consente l'esportazione in formato Keras per TensorFlow SavedModel , garantendo la compatibilità con i servizi e le API di TensorFlow . |
optimize |
bool |
False |
Applica l'ottimizzazione per i dispositivi mobili durante l'esportazione in TorchScript, riducendo potenzialmente le dimensioni del modello e migliorando le prestazioni. |
half |
bool |
False |
Abilita la quantizzazione FP16 (mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza sull'hardware supportato. |
int8 |
bool |
False |
Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di precisione, soprattutto per i dispositivi edge. |
dynamic |
bool |
False |
Permette di inserire dimensioni dinamiche per le esportazioni di ONNX e TensorRT , migliorando la flessibilità nella gestione di immagini di dimensioni diverse. |
simplify |
bool |
False |
Semplifica il grafico del modello per le esportazioni di ONNX , migliorando potenzialmente le prestazioni e la compatibilità. |
opset |
int |
None |
Specifica la versione dell'opset di ONNX per la compatibilità con i diversi parser e runtime di ONNX . Se non è impostata, utilizza l'ultima versione supportata. |
workspace |
float |
4.0 |
Imposta la dimensione massima dello spazio di lavoro in GB per le ottimizzazioni di TensorRT , bilanciando l'uso della memoria e le prestazioni. |
nms |
bool |
False |
Aggiunge la Soppressione Non Massima (NMS) all'esportazione di CoreML , essenziale per una post-elaborazione accurata ed efficiente del rilevamento. |
È fondamentale configurare attentamente queste impostazioni per garantire che il modello esportato sia ottimizzato per il caso d'uso previsto e funzioni efficacemente nell'ambiente di destinazione.
Impostazioni di aumento
Le tecniche di incremento sono essenziali per migliorare la robustezza e le prestazioni dei modelli di YOLO introducendo variabilità nei dati di addestramento, aiutando il modello a generalizzarsi meglio ai dati non visti. La seguente tabella illustra lo scopo e l'effetto di ogni argomento di incremento:
Argomento | Tipo | Predefinito | Gamma | Descrizione |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Regola la tonalità dell'immagine di una frazione della ruota dei colori, introducendo la variabilità del colore. Aiuta il modello a generalizzarsi in diverse condizioni di illuminazione. |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
Altera la saturazione dell'immagine di una frazione, influenzando l'intensità dei colori. Utile per simulare diverse condizioni ambientali. |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
Modifica il valore (luminosità) dell'immagine di una frazione, aiutando il modello a funzionare bene in varie condizioni di luce. |
degrees |
float |
0.0 |
-180 - +180 |
Ruota l'immagine in modo casuale all'interno dell'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere gli oggetti con diversi orientamenti. |
translate |
float |
0.1 |
0.0 - 1.0 |
Traduce l'immagine in orizzontale e in verticale di una frazione delle dimensioni dell'immagine, aiutando l'apprendimento del rilevamento di oggetti parzialmente visibili. |
scale |
float |
0.5 |
>=0.0 |
Ridimensiona l'immagine con un fattore di guadagno, simulando oggetti a distanze diverse dalla telecamera. |
shear |
float |
0.0 |
-180 - +180 |
Taglia l'immagine di un grado specifico, imitando l'effetto degli oggetti visti da diverse angolazioni. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Applica una trasformazione prospettica casuale all'immagine, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Capovolge l'immagine con la probabilità specificata, aumentando la variabilità dei dati senza influire sulle caratteristiche dell'oggetto. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Capovolge l'immagine da sinistra a destra con la probabilità specificata, utile per l'apprendimento di oggetti simmetrici e per aumentare la diversità del set di dati. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza di un ordine errato dei canali. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Combina quattro immagini di addestramento in una sola, simulando diverse composizioni della scena e interazioni di oggetti. Molto efficace per la comprensione di scene complesse. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Mescola due immagini e le loro etichette, creando un'immagine composita. Migliora la capacità di generalizzazione del modello introducendo il rumore delle etichette e la variabilità visiva. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Copia gli oggetti da un'immagine e li incolla su un'altra, utile per aumentare le istanze degli oggetti e imparare l'occlusione degli oggetti. |
auto_augment |
str |
randaugment |
- | Applica automaticamente un criterio di incremento predefinito (randaugment , autoaugment , augmix ), ottimizzando i compiti di classificazione attraverso la diversificazione delle caratteristiche visive. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Cancella a caso una parte dell'immagine durante l'addestramento alla classificazione, incoraggiando il modello a concentrarsi su caratteristiche meno evidenti per il riconoscimento. |
crop_fraction |
float |
1.0 |
0.1 - 1.0 |
Ritaglia l'immagine di classificazione a una frazione delle sue dimensioni per enfatizzare le caratteristiche centrali e adattarsi alle scale degli oggetti, riducendo le distrazioni dello sfondo. |
Queste impostazioni possono essere regolate per soddisfare i requisiti specifici del set di dati e del compito da svolgere. La sperimentazione di diversi valori può aiutare a trovare la strategia di incremento ottimale che porta alle migliori prestazioni del modello.
Impostazioni di registrazione, punti di controllo e plottaggio
La registrazione, i punti di controllo, il tracciamento e la gestione dei file sono considerazioni importanti quando si addestra un modello YOLO .
- Registrazione: Spesso è utile registrare varie metriche e statistiche durante l'addestramento per monitorare i progressi del modello e diagnosticare eventuali problemi. Questo può essere fatto utilizzando una libreria di log come TensorBoard o scrivendo i messaggi di log in un file.
- Punti di controllo: È buona norma salvare i checkpoint del modello a intervalli regolari durante la formazione. Questo ti permette di riprendere l'addestramento da un punto precedente se il processo di addestramento viene interrotto o se vuoi sperimentare diverse configurazioni di addestramento.
- Tracciatura: Visualizzare le prestazioni del modello e i progressi dell'addestramento può essere utile per capire come si comporta il modello e identificare potenziali problemi. Questo può essere fatto utilizzando una libreria di grafici come matplotlib o generando grafici con una libreria di log come TensorBoard.
- Gestione dei file: La gestione dei vari file generati durante il processo di formazione, come i checkpoint del modello, i file di log e i grafici, può essere impegnativa. È importante avere una struttura di file chiara e organizzata per tenere traccia di questi file e rendere più facile l'accesso e l'analisi di questi file quando necessario.
Un logging, un checkpoint, un plottaggio e una gestione dei file efficaci possono aiutarti a tenere traccia dei progressi del modello e a facilitare il debug e l'ottimizzazione del processo di formazione.
Argomento | Predefinito | Descrizione |
---|---|---|
project |
'runs' |
Specifica la directory principale per il salvataggio delle sessioni di allenamento. Ogni sessione verrà salvata in una sottodirectory separata all'interno di questa directory. |
name |
'exp' |
Definisce il nome dell'esperimento. Se non viene specificato, YOLO incrementa automaticamente questo nome per ogni esecuzione, ad es, exp , exp2 , ecc. per evitare di sovrascrivere gli esperimenti precedenti. |
exist_ok |
False |
Determina se sovrascrivere una directory di esperimenti esistente se ne esiste già una con lo stesso nome. Impostando questo valore a True consente la sovrascrittura, mentre False lo impedisce. |
plots |
False |
Controlla la generazione e il salvataggio dei grafici di formazione e convalida. Imposta su True per creare grafici come le curve di perdita, le curve precisione-richiamo e le previsioni dei campioni. Utile per monitorare visivamente le prestazioni del modello nel tempo. |
save |
False |
Abilita il salvataggio dei checkpoint di allenamento e dei pesi finali del modello. Imposta su True per salvare periodicamente gli stati del modello, consentendo di riprendere la formazione da questi checkpoint o di distribuire i modelli. |
Creato 2023-11-12, Aggiornato 2024-04-18
Autori: glenn-jocher (13), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)