Vai al contenuto

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 validazione e la previsione.



Guarda: Mastering Ultralytics YOLO : Configurazione

Ultralytics I comandi utilizzano la seguente sintassi:

Esempio

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Dove:

Predefinito ARG I valori sono definiti in questa pagina dall'opzione 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.

  • Rilevamento: 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 di 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 il task YOLO da eseguire. Le opzioni includono detect per rilevamento degli oggetti, segment per la segmentazione, classify per la classificazione, pose per la stima della posa e obb per i rettangoli di selezione orientati. Ogni compito è adattato a specifici tipi di output e problemi nell'ambito dell'analisi di immagini e video.

Guida ai compiti

Modalità

YOLO I modelli possono essere utilizzati in diverse modalità, a seconda del problema specifico che si sta cercando di risolvere. Queste modalità comprendono:

  • Addestra: Per addestrare un modello YOLO11 su un set di dati personalizzato.
  • Val: per convalidare un modello YOLO11 dopo che è stato addestrato.
  • Predire: Per fare previsioni utilizzando un modello YOLO11 addestrato su nuove immagini o video.
  • Esportazione: Per esportare un modello YOLO11 in un formato utilizzabile per la distribuzione.
  • Traccia: Per tracciare gli oggetti in tempo reale utilizzando un modello YOLO11 .
  • Benchmark: Per l'analisi comparativa della velocità e dell'accuratezza delle esportazioni di YOLO11 (ONNX, TensorRT, ecc.).
Argomento Predefinito Descrizione
mode 'train' Specifica la modalità di funzionamento del modello YOLO . Le opzioni sono train per l'addestramento 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à è progettata per le diverse fasi del ciclo di vita del modello, dallo sviluppo alla distribuzione.

Guida alle modalità

Impostazioni del treno

Le impostazioni di addestramento per i modelli YOLO comprendono vari iperparametri e configurazioni utilizzati durante il processo di addestramento. Queste impostazioni influenzano le prestazioni, la velocità e la precisione del modello. Le principali impostazioni di addestramento includono la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento del peso. 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 l'addestramento. 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 set di dati (ad es, coco8.yaml). Questo file contiene i parametri specifici del set di dati, compresi i percorsi per l'addestramento e la formazione. dati di convalida, nomi delle classi e numero di classi.
epochs 100 Numero totale di epoche di addestramento. 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 formazione in ore. Se impostato, sostituisce il valore epochs che consente di interrompere automaticamente l'addestramento dopo la durata specificata. Utile per scenari di addestramento con vincoli di tempo.
patience 100 Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere anticipatamente l'addestramento. Aiuta a prevenire l'overfitting, interrompendo l'addestramento quando le prestazioni raggiungono il livello massimo.
batch 16 Dimensione del lottocon tre modalità: impostazione come numero intero (ad es, batch=16), modalità automatica per un utilizzo del 60% della memoria di GPU (batch=-1), o modalità automatica con frazione di utilizzo specificata (batch=0.70).
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 addestramento 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 lunghe sessioni di allenamento.
cache False Abilita la cache delle immagini del dataset in memoria (True/ram), su disco (disk), oppure disattivarlo (False). Migliora la velocità di addestramento riducendo l'I/O su disco al costo di un maggiore utilizzo della memoria.
device None Specifica il/i dispositivo/i di calcolo per l'addestramento: un singolo 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 formazione multiGPU ). Influenza la velocità di preelaborazione dei dati e di alimentazione del modello, particolarmente utile nelle configurazioni multiGPU .
project None Nome della directory del progetto in cui vengono salvati i risultati dell'allenamento. Consente l'archiviazione organizzata di diversi esperimenti.
name None Nome della sessione di allenamento. Utilizzato per creare una sottocartella all'interno della cartella del progetto, in cui memorizzare i registri e i risultati dell'allenamento.
exist_ok False Se è vero, consente di sovrascrivere una cartella di progetto/nome esistente. Utile per la sperimentazione iterativa 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 stringa a un modello specifico da cui caricare i pesi. Migliora l'efficienza dell'addestramento 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 in base alla configurazione del modello. Influisce sulla velocità di convergenza e sulla stabilità.
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 in insiemi di dati multiclasse come una singola 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 batch per ottenere un padding minimo. 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'addestramento 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 set di dati 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 strati del modello o strati 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'addestramento 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 box loss nella funzione di perdita, che influenza l'importanza attribuita alla previsione accurata delle coordinate del rettangolo di selezione.
cls 0.5 Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della previsione della classe corretta 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 dell'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 degli oggetti devono essere unite in un'unica maschera per l'addestramento o se devono essere mantenute separate per ogni oggetto. In caso di sovrapposizione, la maschera più piccola viene sovrapposta a quella più grande durante la fusione.
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 mediante 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, nonché gli esempi di predizione, fornendo indicazioni visive sulle prestazioni del modello e sulla progressione dell'apprendimento.

Nota sulle impostazioni delle dimensioni del batch

Il batch L'argomento può essere configurato in tre modi:

  • Dimensione fissa del lotto: Impostare un valore intero (ad es, batch=16), specificando direttamente il numero di immagini per batch.
  • Modalità Auto (60% GPU Memoria): Utilizzo batch=-1 per regolare automaticamente le dimensioni del batch per un utilizzo della memoria di CUDA pari a circa il 60%.
  • Modalità automatica con frazione di utilizzo: Impostare un valore di frazione (ad esempio, batch=0.70) per regolare la dimensione del batch in base alla frazione specificata dell'uso della memoria di GPU .

Guida ai treni

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 confidenza, 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 supplementari come le maschere o le etichette multiple per casella e il compito specifico per cui il modello viene impiegato.

Argomenti di inferenza:

Argomento Tipo Predefinito Descrizione
source str 'ultralytics/assets' Specifica l'origine dei dati per l'inferenza. Può essere un percorso di immagine, un file video, una directory, un URL o un ID 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 vengono ignorati. La regolazione di questo valore può contribuire a ridurre i falsi positivi.
iou float 0.7 Soglia di Intersection Over Union (IoU) per la soppressione non massima (NMS). Valori più bassi determinano 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 il rilevamento precisione e 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 (ad es, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, uno specifico GPU o altri dispositivi di calcolo per l'esecuzione del modello.
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 accelerare 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 mettere in coda i fotogrammi in arrivo per i flussi video. Se Falsei vecchi fotogrammi vengono eliminati per accogliere i nuovi (ottimizzato per le applicazioni in tempo reale). Se `True', accoda i nuovi fotogrammi in un buffer, assicurando che nessun fotogramma venga saltato, ma causerà latenza se l'FPS dell'inferenza è inferiore all'FPS del flusso.
visualize bool False Attiva la visualizzazione delle caratteristiche del modello durante l'inferenza, fornendo informazioni su ciò che il modello "vede". Utile per il debugging e l'interpretazione del modello.
augment bool False Consente 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 in 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 compiti di rilevamento multiclasse.
retina_masks bool False Restituisce maschere di segmentazione ad alta risoluzione. Le maschere restituite (masks.data) corrisponderanno alle dimensioni dell'immagine originale, se abilitati. Se sono disabilitati, hanno la dimensione dell'immagine usata durante l'inferenza.
embed list[int] None Specifica i livelli da cui estrarre vettori di caratteristiche o embeddings. Utile per attività a valle come il clustering o la ricerca di similarità.
project str None Nome della directory del progetto in cui vengono salvati i risultati della predizione, se save è abilitato.
name str None Nome della corsa di predizione. Utilizzato per creare una sottocartella all'interno della cartella del progetto, dove vengono memorizzati gli output della predizione se save è abilitato.

Argomenti di visualizzazione:

Argomento Tipo Predefinito Descrizione
show bool False Se Truevisualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
save bool False o True Consente di salvare su file le immagini o i video annotati. Utile per la documentazione, per ulteriori analisi o per la condivisione dei risultati. Predefinito a True quando si usa CLI e False quando si usa Python.
save_frames bool False Durante l'elaborazione dei 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 indicazioni sulla certezza del modello per ogni rilevamento.
show_boxes bool True Disegna riquadri di delimitazione attorno agli oggetti rilevati. È essenziale per l'identificazione visiva e la localizzazione degli oggetti nelle immagini o nei fotogrammi video.
line_width None o int None Specifica la larghezza della linea delle caselle di delimitazione. Se NoneLa larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza.

Guida alla previsione

Impostazioni di convalida

Le impostazioni val (validazione) per i modelli di YOLO coinvolgono 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 validazione comuni di YOLO includono la dimensione del batch, la frequenza di validazione 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 set di dati 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 set di dati (ad esempio, coco8.yaml). Questo file include i percorsi per dati di convalida, nomi delle classi e 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. Utilizzare -1 per AutoBatch, che si regola automaticamente in base alla disponibilità di memoria di GPU .
save_json bool False Se Truesalva 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 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 doppi.
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 di CPU o GPU .
dnn bool False Se True, utilizza il OpenCV Modulo DNN per l'inferenza del modello ONNX , che offre un'alternativa a PyTorch metodi di inferenza.
plots bool False Quando è impostato su Truegenera e salva i grafici delle previsioni rispetto alla verità a terra per valutare visivamente le prestazioni del modello.
rect bool True Se Trueutilizza 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, o train). Permette una certa flessibilità nella scelta del segmento di dati per la valutazione delle prestazioni.
project str None Nome della directory del progetto in cui vengono salvati i risultati della convalida.
name str None Nome dell'esecuzione di convalida. Utilizzato per creare una sottocartella all'interno della cartella del progetto, dove vengono memorizzati i log e gli output della convalida.

Un'attenta messa a punto e la sperimentazione di queste impostazioni sono fondamentali per garantire prestazioni ottimali sul set di dati di validazione e per individuare e prevenire l 'overfitting.

Guida di Val

Impostazioni di esportazione

Le impostazioni di esportazione per i modelli YOLO comprendono le configurazioni e le opzioni relative al salvataggio o all'esportazione del modello per l'uso in ambienti o piattaforme diverse. Queste impostazioni possono influire sulle prestazioni, sulle dimensioni e sulla compatibilità del modello con vari sistemi. Le impostazioni chiave per l'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ò anche essere influenzato 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 per il modello esportato, ad esempio 'onnx', 'torchscript', 'tensorflow'o altri, che definiscono la compatibilità con vari ambienti di distribuzione.
imgsz int o tuple 640 Dimensione desiderata dell'immagine 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 (a 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 Consente di inserire dimensioni dinamiche per le esportazioni di ONNX, TensorRT e OpenVINO , migliorando la flessibilità nella gestione di immagini di dimensioni diverse.
simplify bool True Semplifica il grafico del modello per le esportazioni di ONNX con onnxslimpotenzialmente in grado di migliorare 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 GiB 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.
batch int 1 Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in predict modalità.
device str None Specifica il dispositivo da esportare: GPU (device=0), CPU (device=cpu), MPS per il silicio Apple (device=mps) o DLA per NVIDIA Jetson (device=dla:0 o device=dla:1).

È 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.

Guida all'esportazione

Impostazioni di aumento

Le tecniche di incremento sono essenziali per migliorare la robustezza e le prestazioni dei modelli YOLO introducendo variabilità nei dati di addestramento, aiutando il modello a generalizzarsi meglio ai dati non visti. La tabella seguente illustra lo scopo e l'effetto di ciascun 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 illuminazione.
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, simulando l'effetto di oggetti visti da angolazioni diverse.
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 Fonde 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.
copy_paste_mode str flip - Selezione del metodo di incremento copia-incolla tra le opzioni di ("flip", "mixup").
auto_augment str randaugment - Applica automaticamente una politica di incremento predefinita (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, checkpoint 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 seguire i progressi del modello e diagnosticare eventuali problemi. Questo può essere fatto usando una libreria di log come TensorBoard o scrivendo i messaggi di log su un file.
  • Punti di controllo: È buona norma salvare i checkpoint del modello a intervalli regolari durante l'addestramento. Ciò consente di riprendere l'addestramento da un punto precedente se il processo di addestramento viene interrotto o se si desidera sperimentare diverse configurazioni di addestramento.
  • Tracciatura: La visualizzazione delle prestazioni del modello e dell'andamento dell'addestramento può essere utile per capire come si comporta il modello e identificare potenziali problemi. Questo può essere fatto usando 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 disporre di una struttura di file chiara e organizzata per tenere traccia di questi file e facilitarne l'accesso e l'analisi in base alle necessità.

Una registrazione, un checkpoint, un plottaggio e una gestione dei file efficaci possono aiutare 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 sarà 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 esempio, 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. Impostare su True per creare grafici come le curve di perdita, precisione-richiamo e le previsioni dei campioni. Utile per seguire visivamente le prestazioni del modello nel tempo.
save False Abilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. Impostare su True per salvare periodicamente gli stati del modello, consentendo di riprendere l'addestramento da questi checkpoint o di distribuire i modelli.

FAQ

Come posso migliorare le prestazioni del mio modello YOLO durante l'addestramento?

Per migliorare le prestazioni del modello YOLO è necessario regolare iperparametri come la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento del peso. Possono essere utili anche la regolazione delle impostazioni di incremento, la selezione dell'ottimizzatore giusto e l'impiego di tecniche come l'arresto anticipato o la precisione mista. Per una guida dettagliata sulle impostazioni di addestramento, consultare la Guida all'addestramento.

Quali sono gli iperparametri chiave da considerare per l'accuratezza del modello YOLO ?

Gli iperparametri chiave che influenzano l'accuratezza del modello YOLO includono:

  • Dimensione del lotto (batch): Lotti più grandi possono stabilizzare la formazione, ma possono richiedere più memoria.
  • Tasso di apprendimento (lr0): Controlla la dimensione del passo per gli aggiornamenti del peso; tassi più piccoli offrono regolazioni fini ma una convergenza lenta.
  • Momento (momentum): Contribuisce ad accelerare i vettori di pendenza nelle giuste direzioni, smorzando le oscillazioni.
  • Dimensione immagine (imgsz): Immagini di dimensioni maggiori possono migliorare l'accuratezza, ma aumentano il carico computazionale.

Regolare questi valori in base al set di dati e alle capacità dell'hardware. Per saperne di più, consultare la sezione Impostazioni treno.

Come si imposta il tasso di apprendimento per l'addestramento di un modello YOLO ?

Il tasso di apprendimento (lr0) è fondamentale per l'ottimizzazione. Un punto di partenza comune è 0.01 per SGD o 0.001 per Adam. È essenziale monitorare le metriche di addestramento e modificarle se necessario. Utilizzare i programmatori del tasso di apprendimento del coseno (cos_lr) o tecniche di riscaldamento (warmup_epochs, warmup_momentum) per modificare dinamicamente la frequenza durante l'allenamento. Per maggiori dettagli, consultare la sezione Guida ai treni.

Quali sono le impostazioni di inferenza predefinite per i modelli di YOLO ?

Le impostazioni predefinite dell'inferenza includono:

  • Soglia di confidenza (conf=0.25): Fiducia minima per i rilevamenti.
  • Soglia IoU (iou=0.7): Per la soppressione non massima (NMS).
  • Dimensione immagine (imgsz=640): Ridimensiona le immagini in ingresso prima dell'inferenza.
  • Dispositivo (device=None): Seleziona CPU o GPU per l'inferenza. Per una panoramica completa, visitate il sito Prevedere le impostazioni e la sezione Guida alla previsione.

Perché utilizzare un allenamento di precisione misto con i modelli di YOLO ?

Allenamento misto di precisione, abilitato con amp=TrueQuesto aiuta a ridurre l'uso della memoria e a velocizzare l'addestramento, sfruttando i vantaggi di FP16 e FP32. Ciò è vantaggioso per le moderne GPU, che supportano la precisione mista in modo nativo, consentendo di inserire un maggior numero di modelli nella memoria e di velocizzare i calcoli senza una significativa perdita di precisione. Per saperne di più, consultare la sezione Guida ai treni.

📅C reato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti