Vai al contenuto

Configurazione

Le impostazioni e gli iperparametri di YOLO svolgono un ruolo fondamentale nelle prestazioni, nella velocità e nell'accuratezza del modello. Queste impostazioni possono influenzare il comportamento del modello in varie fasi, tra cui il training, la validazione e la previsione.

Guarda: Padroneggiare Ultralytics YOLO: Configurazione



Guarda: Padroneggiare Ultralytics YOLO: Configurazione

I comandi Ultralytics utilizzano la seguente sintassi:

Esempio

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO 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 e provengono da cfg/defaults.yaml file.

Attività

I modelli Ultralytics YOLO possono eseguire una varietà di attività di computer vision, tra cui:

Argomento Predefinito Descrizione
task 'detect' Specifica il task YOLO: detect per il rilevamento di oggetti, segment per la segmentazione, classify per la classificazione, pose per la stima della posa e obb per i bounding box orientati. Ogni attività è adattata a specifici output e problemi nell'analisi di immagini e video.

Guida alle attività

Modalità

I modelli Ultralytics YOLO operano in diverse modalità, ciascuna progettata per una fase specifica del ciclo di vita del modello:

  • Addestra: Addestra un modello YOLO su un dataset personalizzato.
  • Val: Convalida un modello YOLO addestrato.
  • Predict: Utilizza un modello YOLO addestrato per fare previsioni su nuove immagini o video.
  • Esporta: Esporta un modello YOLO per la distribuzione.
  • Traccia: Traccia oggetti in tempo reale utilizzando un modello YOLO.
  • Benchmark: Valuta la velocità e l'accuratezza delle esportazioni YOLO (ONNX, TensorRT, ecc.).
Argomento Predefinito Descrizione
mode 'train' Specifica la modalità operativa del modello YOLO: train per l'addestramento del modello, val per la convalida, predict per l'inferenza, export per la conversione in formati di distribuzione, track per il tracciamento degli oggetti, e benchmark per la valutazione delle prestazioni. Ogni modalità supporta diverse fasi, dallo sviluppo all'implementazione.

Guida alle modalità

Impostazioni di Training

Le impostazioni di addestramento per i modelli YOLO includono iperparametri e configurazioni che influenzano le prestazioni, la velocità e l'accuratezza del modello. Le impostazioni chiave includono la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento del peso. Anche la scelta dell'ottimizzatore, della funzione di perdita e della composizione del dataset influiscono sull'addestramento. La messa a punto e la sperimentazione sono fondamentali per prestazioni ottimali. Per maggiori dettagli, consulta la funzione di punto di ingresso di Ultralytics.

Argomento Tipo Predefinito Descrizione
model str None Specifica il file del modello per il training. Accetta un percorso verso un .pt modello pre-addestrato oppure un .yaml file di configurazione. Essenziale per definire la struttura del modello o inizializzare i pesi.
data str None Percorso del file di configurazione del dataset (ad esempio, coco8.yaml ). Questo file contiene parametri specifici del dataset, inclusi i percorsi per il training e i dati di validazione, i nomi delle classi e il numero di classi.
epochs int 100 Numero totale di epoche di training. Ogni epoca rappresenta un passaggio completo sull'intero dataset. La regolazione di questo valore può influire sulla durata del training e sulle prestazioni del modello.
time float None Tempo massimo di training in ore. Se impostato, questo sovrascrive l'argomento epochs , consentendo al training di arrestarsi automaticamente dopo la durata specificata. Utile per scenari di training con vincoli di tempo.
patience int 100 Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere anticipatamente il training. Aiuta a prevenire l'overfitting interrompendo il training quando le prestazioni si stabilizzano.
batch int oppure float 16 Dimensione del batch, con tre modalità: impostata come numero intero (ad es. batch=16), modalità automatica per l'utilizzo del 60% della memoria della GPU (batch=-1), oppure modalità automatica con frazione di utilizzo specificata (batch=0.70).
imgsz int 640 Dimensione dell'immagine target per l'addestramento. Le immagini vengono ridimensionate in quadrati con lati uguali al valore specificato (se rect=False), mantenendo le proporzioni per i modelli YOLO ma non per RTDETR. Influisce sul modello accuratezza e sulla complessità computazionale.
save bool True Abilita il salvataggio dei checkpoint di training e dei pesi finali del modello. Utile per riprendere il training o l'implementazione del modello.
save_period int -1 Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Un valore di -1 disabilita questa funzionalità. Utile per salvare modelli provvisori durante lunghe sessioni di training.
cache bool False Abilita la memorizzazione nella cache delle immagini del dataset in memoria (True/ram), su disco (disk), oppure la disabilita (False). Migliora la velocità di training riducendo l'I/O del disco a costo di un maggiore utilizzo della memoria.
device int oppure str oppure list None Specifica i dispositivi di calcolo per l'addestramento: una singola GPU (device=0), GPU multiple (device=[0,1]), CPU (device=cpu), MPS per Apple silicon (device=mps), o la selezione automatica della GPU più inattiva (device=-1) o più GPU inattive (device=[-1,-1])
workers int 8 Numero di thread worker per il caricamento dei dati (per RANK se addestramento Multi-GPU). Influisce sulla velocità di preelaborazione dei dati e di alimentazione nel modello, particolarmente utile in configurazioni multi-GPU.
project str None Nome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente di archiviare in modo organizzato diversi esperimenti.
name str None Nome dell'esecuzione dell'addestramento. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, in cui vengono memorizzati i log e gli output dell'addestramento.
exist_ok bool False Se True, consente di sovrascrivere una directory progetto/nome esistente. Utile per la sperimentazione iterativa senza la necessità di cancellare manualmente gli output precedenti.
pretrained bool oppure str True Determina se iniziare l'addestramento da un modello pre-addestrato. 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 str 'auto' Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, Adam, AdamW, NAdam, RAdam, RMSProp ecc., o auto per la selezione automatica in base alla configurazione del modello. Influisce sulla velocità e sulla stabilità della convergenza.
seed int 0 Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra le esecuzioni con le stesse configurazioni.
deterministic bool True Forza l'uso di algoritmi deterministici, garantendo la riproducibilità ma può influire sulle prestazioni e sulla velocità a causa della restrizione sugli algoritmi non deterministici.
single_cls bool False Considera tutte le classi nei set di dati multi-classe come una singola classe durante l'addestramento. Utile per attività di classificazione binaria o quando ci si concentra sulla presenza dell'oggetto piuttosto che sulla classificazione.
classes list[int] None Specifica un elenco di ID di classe su cui eseguire il training. Utile per filtrare e concentrarsi solo su determinate classi durante il training.
rect bool False Abilita la strategia di padding minimo: le immagini in un batch vengono riempite al minimo per raggiungere una dimensione comune, con il lato più lungo uguale a imgsz". Può migliorare l'efficienza e la velocità, ma potrebbe influire sulla precisione del modello.
multi_scale bool False Abilita l'addestramento multi-scala aumentando/diminuendo imgsz fino a un fattore di 0.5 durante il training. Addestra il modello per essere più preciso con molteplici imgsz durante l'inferenza.
cos_lr bool False Utilizza uno scheduler del learning rate coseno, regolando il learning rate seguendo una curva coseno nel corso delle epoche. Aiuta a gestire il learning rate per una migliore convergenza.
close_mosaic int 10 Disabilita l'aumento dei dati a mosaico nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. L'impostazione su 0 disabilita questa funzionalità.
resume bool 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 bool True Abilita l'addestramento Automatic Mixed Precision (AMP), riducendo l'utilizzo della memoria e possibilmente accelerando l'addestramento con un impatto minimo sulla precisione.
fraction float 1.0 Specifica la frazione del set di dati da utilizzare per l'addestramento. Consente l'addestramento su un sottoinsieme del set di dati completo, utile per esperimenti o quando le risorse sono limitate.
profile bool False Abilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare l'implementazione del modello.
freeze int oppure list None Congela i primi N livelli del modello o i livelli specificati per indice, riducendo il numero di parametri addestrabili. Utile per il fine-tuning o il transfer learning.
lr0 float 0.01 Learning rate iniziale (i.e. SGD=1E-2, Adam=1E-3). Regolare questo valore è fondamentale per il processo di ottimizzazione, influenzando la velocità con cui vengono aggiornati i pesi del modello.
lrf float 0.01 Tasso di apprendimento finale come frazione del tasso iniziale = (lr0 * lrf), utilizzato in combinazione con gli scheduler per regolare il tasso di apprendimento nel tempo.
momentum float 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 float 0.0005 Termine di regolarizzazione L2, che penalizza i pesi elevati per prevenire l'overfitting.
warmup_epochs float 3.0 Numero di epoche per il warmup del tasso di apprendimento, aumentando gradualmente il tasso di apprendimento da un valore basso al tasso di apprendimento iniziale per stabilizzare l'addestramento nelle prime fasi.
warmup_momentum float 0.8 Momentum iniziale per la fase di warmup, che si adatta gradualmente al momentum impostato durante il periodo di warmup.
warmup_bias_lr float 0.1 Tasso di apprendimento per i parametri di bias durante la fase di warmup, contribuendo a stabilizzare l'addestramento del modello nelle epoche iniziali.
box float 7.5 Peso della componente di perdita della box nella funzione di perdita, che influenza l'importanza attribuita alla previsione accurata delle coordinate della bounding box.
cls float 0.5 Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della corretta previsione della classe rispetto ad altri componenti.
dfl float 1.5 Peso della distribution focal loss, utilizzata in alcune versioni di YOLO per la classificazione fine-grained.
pose float 12.0 Peso della pose loss nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei keypoint della posa.
kobj float 2.0 Peso della keypoint objectness loss nei modelli di stima della posa, bilanciando l'affidabilità del rilevamento con l'accuratezza della posa.
nbs int 64 Dimensione nominale del batch per la normalizzazione della perdita.
overlap_mask bool True Determina se le maschere degli oggetti devono essere unite in un'unica maschera per il training o mantenute separate per ciascun oggetto. In caso di sovrapposizione, la maschera più piccola viene sovrapposta a quella più grande durante l'unione.
mask_ratio int 4 Rapporto di downsample per le maschere di segmentazione, che influisce sulla risoluzione delle maschere utilizzate durante l'addestramento.
dropout float 0.0 Tasso di dropout per la regolarizzazione nelle attività di classificazione, prevenendo l'overfitting omettendo casualmente le unità durante l'addestramento.
val bool True Abilita la convalida durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato.
plots bool False Genera e salva grafici delle metriche di addestramento e convalida, nonché esempi di previsione, fornendo informazioni visive sulle prestazioni del modello e sulla progressione dell'apprendimento.

Nota sulle impostazioni della dimensione del batch

Il batch l'argomento offre tre opzioni di configurazione:

  • Dimensione batch fissa: Specificare il numero di immagini per batch con un numero intero (ad esempio, batch=16).
  • Modalità automatica (60% di memoria GPU): Usa batch=-1 per la regolazione automatica a circa il 60% dell'utilizzo della memoria CUDA.
  • Modalità automatica con frazione di utilizzo: Imposta una frazione (ad esempio, batch=0.70) per adattare in base all'utilizzo specificato della memoria della GPU.

Guida all'addestramento

Impostazioni di Prediction

Le impostazioni di Prediction per i modelli YOLO includono iperparametri e configurazioni che influenzano le prestazioni, la velocità e l'accuratezza durante l'inferenza. Le impostazioni chiave includono la soglia di confidenza, la soglia di Non-Maximum Suppression (NMS) e il numero di classi. Anche la dimensione dei dati di input, il formato e le funzionalità supplementari come le maschere influiscono sulle previsioni. La regolazione di queste impostazioni è essenziale per prestazioni ottimali.

Argomenti di inferenza:

Argomento Tipo Predefinito Descrizione
source str 'ultralytics/assets' Specifica l'origine dati per l'inferenza. Può essere un percorso di immagine, un file video, una directory, un URL o un ID dispositivo per feed live. Supporta una vasta gamma di formati e sorgenti, consentendo un'applicazione flessibile attraverso 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 verranno ignorati. La regolazione di questo valore può aiutare a ridurre i falsi positivi.
iou float 0.7 Soglia Intersection Over Union (IoU) per la Non-Maximum Suppression (NMS). Valori più bassi comportano un minor numero di rilevamenti eliminando le caselle sovrapposte, utile per ridurre i duplicati.
imgsz int oppure tuple 640 Definisce le dimensioni dell'immagine per l'inferenza. Può essere un singolo numero intero 640 per il ridimensionamento quadrato o una tupla (altezza, larghezza). Un dimensionamento appropriato può migliorare il rilevamento accuratezza e la velocità di elaborazione.
rect bool True Se abilitato, aggiunge un padding minimo al lato più corto dell'immagine finché non è divisibile per lo stride per migliorare la velocità di inferenza. Se disabilitato, aggiunge un padding all'immagine per renderla quadrata durante l'inferenza.
half bool False Abilita l'inferenza in mezza precisione (FP16), che può accelerare l'inferenza del modello su GPU supportate con un impatto minimo sulla precisione.
device str None Specifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 oppure 0). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello.
batch int 1 Specifica la dimensione del batch per l'inferenza (funziona solo quando la sorgente è una directory, un file video o .txt file). Un batch size più grande può fornire una maggiore velocità di elaborazione, riducendo il tempo totale necessario per l'inferenza.
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 output eccessivi in scene dense.
vid_stride int 1 Frame stride per gli input video. Consente di saltare i frame nei video per accelerare l'elaborazione a scapito della risoluzione temporale. Un valore di 1 elabora ogni frame, valori più alti saltano i frame.
stream_buffer bool False Determina se mettere in coda i frame in arrivo per i flussi video. Se False, i vecchi frame vengono eliminati per fare spazio ai nuovi frame (ottimizzato per applicazioni in tempo reale). Se True, mette in coda nuovi frame in un buffer, assicurando che nessun frame venga saltato, ma causerà latenza se l'FPS di inferenza è inferiore all'FPS dello stream.
visualize bool False Attiva la visualizzazione delle caratteristiche del modello durante l'inferenza, fornendo informazioni su ciò che il modello sta "vedendo". Utile per il debug e l'interpretazione del modello.
augment bool False Abilita l'aumento dei dati in fase di test (TTA) per le previsioni, migliorando potenzialmente la robustezza del rilevamento a scapito della velocità di inferenza.
agnostic_nms bool False Abilita la Non-Maximum Suppression (NMS) class-agnostic, che unisce le caselle sovrapposte di classi diverse. Utile in scenari di rilevamento multi-classe in cui la sovrapposizione di classi è comune.
classes list[int] None Filtra le previsioni a un insieme di ID di classe. Verranno restituiti solo i rilevamenti appartenenti alle classi specificate. Utile per concentrarsi sugli oggetti rilevanti nelle attività di rilevamento multi-classe.
retina_masks bool False Restituisce maschere di segmentazione ad alta risoluzione. Le maschere restituite (masks.data) corrisponderanno alla dimensione originale dell'immagine se abilitate. Se disabilitate, hanno la dimensione dell'immagine utilizzata 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 gli output di previsione se save è abilitato.
name str None Nome dell'esecuzione della previsione. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, in cui vengono memorizzati gli output di previsione se save è abilitato.
stream bool False Abilita l'elaborazione efficiente della memoria per video lunghi o numerose immagini restituendo un generatore di oggetti Results invece di caricare tutti i frame in memoria contemporaneamente.
verbose bool True Controlla se visualizzare i log di inferenza dettagliati nel terminale, fornendo feedback in tempo reale sul processo di previsione.

Argomenti di visualizzazione:

Argomento Tipo Predefinito Descrizione
show bool False Se True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
save bool False or True Abilita il salvataggio delle immagini o dei video annotati su file. Utile per la documentazione, ulteriori analisi o la condivisione dei risultati. Impostato su True quando si utilizza la CLI e su False quando si utilizza python.
save_frames bool False Quando si elaborano video, salva i singoli frame come immagini. Utile per estrarre frame specifici o per un'analisi dettagliata frame per frame.
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, migliorando il livello di dettaglio disponibile per la post-elaborazione e l'analisi.
save_crop bool False Salva le immagini ritagliate dei rilevamenti. Utile per l'aumento del dataset, l'analisi o la creazione di dataset mirati per oggetti specifici.
show_labels bool True Mostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati.
show_conf bool True Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica 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 posizione degli oggetti in immagini o fotogrammi video.
line_width None or int None Specifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza.

Guida alla Prediction

Impostazioni di Validazione

Le impostazioni di convalida per i modelli YOLO coinvolgono iperparametri e configurazioni per valutare le prestazioni su un set di dati di convalida. Queste impostazioni influenzano le prestazioni, la velocità e l'accuratezza. Le impostazioni comuni includono la dimensione del batch, la frequenza di convalida e le metriche di prestazione. Anche le dimensioni e la composizione del set di dati di convalida, insieme all'attività specifica, influiscono sul processo.

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 a dati di validazione, i nomi delle classi e il numero di classi.
imgsz int 640 Definisce la dimensione delle immagini di input. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. Dimensioni maggiori possono migliorare la precisione per gli oggetti piccoli, ma aumentano il tempo di calcolo.
batch int 16 Imposta il numero di immagini per batch. Valori più alti utilizzano la memoria della GPU in modo più efficiente ma richiedono più VRAM. Regola in base alle risorse hardware disponibili.
save_json bool False Se True, salva i risultati in un file JSON per ulteriori analisi, integrazione con altri strumenti o invio a server di valutazione come COCO.
conf float 0.001 Imposta la soglia minima di confidenza per le detection. Valori più bassi aumentano il recall ma possono introdurre più falsi positivi. Utilizzato durante la validation per calcolare le curve precision-recall.
iou float 0.7 Imposta la soglia di Intersection Over Union per la Non-Maximum Suppression. Controlla l'eliminazione delle detection duplicate.
max_det int 300 Limita il numero massimo di rilevamenti per immagine. Utile in scene dense per prevenire rilevamenti eccessivi e gestire le risorse computazionali.
half bool True Abilita il calcolo in half-precision (FP16), riducendo l'utilizzo della memoria e potenzialmente aumentando la velocità con un impatto minimo sull'accuratezza.
device str None Specifica il dispositivo per la validation (cpu, cuda:0, ecc.). Quando None, seleziona automaticamente il miglior dispositivo disponibile. È possibile specificare più dispositivi CUDA separandoli con una virgola.
dnn bool False Se True, utilizza il OpenCV modulo 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 grafici di previsioni rispetto alla verità di base, matrici di confusione e curve PR per la valutazione visiva delle prestazioni del modello.
classes list[int] None Specifica un elenco di ID di classe su cui eseguire il training. Utile per filtrare e concentrarsi solo su determinate classi durante la valutazione.
rect bool True Se True, utilizza l'inferenza rettangolare per il batching, riducendo il padding e potenzialmente aumentando la velocità e l'efficienza elaborando le immagini nel loro rapporto d'aspetto originale.
split str 'val' Determina la divisione del dataset da utilizzare per la validation (val, test, oppure train). Consente flessibilità nella scelta del segmento di dati per la valutazione delle prestazioni.
project str None Nome della directory del progetto in cui vengono salvati gli output di validazione. Aiuta a organizzare i risultati di diversi esperimenti o modelli.
name str None Nome dell'esecuzione di convalida. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono archiviati i log e gli output di convalida.
verbose bool False Se True, visualizza informazioni dettagliate durante il processo di validazione, incluse metriche per classe, avanzamento del batch e informazioni di debug aggiuntive.
save_txt bool False Se True, salva i risultati del rilevamento in file di testo, con un file per immagine, utile per ulteriori analisi, post-elaborazione personalizzata o integrazione con altri sistemi.
save_conf bool False Se True, include i valori di confidenza nei file di testo salvati quando save_txt è abilitato, fornendo un output più dettagliato per l'analisi e il filtraggio.
workers int 8 Numero di thread di lavoro per il caricamento dei dati. Valori più alti possono accelerare la preelaborazione dei dati, ma possono aumentare l'utilizzo della CPU. Impostare a 0 utilizza il thread principale, che può essere più stabile in alcuni ambienti.
augment bool False Abilita l'aumento dei dati in fase di test (TTA) durante la convalida, migliorando potenzialmente l'accuratezza del rilevamento a costo della velocità di inferenza eseguendo l'inferenza su versioni trasformate dell'input.
agnostic_nms bool False Abilita la Non-Maximum Suppression class-agnostic, che unisce i riquadri sovrapposti indipendentemente dalla classe prevista. Utile per applicazioni incentrate sull'istanza.
single_cls bool False Considera tutte le classi come un'unica classe durante la convalida. Utile per valutare le prestazioni del modello su attività di rilevamento binario o quando le distinzioni di classe non sono importanti.
visualize bool False Visualizza le ground truth, i veri positivi, i falsi positivi e i falsi negativi per ogni immagine. Utile per il debug e l'interpretazione del modello.

Un'attenta messa a punto e sperimentazione sono fondamentali per garantire prestazioni ottimali e per rilevare e prevenire il sovradattamento.

Guida alla convalida

Impostazioni di Export

Le impostazioni di esportazione per i modelli YOLO includono configurazioni per il salvataggio o l'esportazione del modello per l'uso in ambienti diversi. Queste impostazioni influiscono su prestazioni, dimensioni e compatibilità. Le impostazioni principali includono il formato del file esportato (ad esempio, ONNX, TensorFlow SavedModel), il dispositivo di destinazione (ad esempio, CPU, GPU) e funzionalità come le maschere. Anche l'attività del modello e i vincoli dell'ambiente di destinazione influiscono sul processo di esportazione.

Argomento Tipo Predefinito Descrizione
format str 'torchscript' Formato di destinazione per il modello esportato, come 'onnx', 'torchscript', 'engine' (TensorRT) o altri. Ogni formato abilita la compatibilità con diversi ambienti di distribuzione.
imgsz int oppure tuple 640 Dimensione immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate (es. 640 per 640×640) o una tupla (height, width) per dimensioni specifiche.
keras bool False Abilita l'esportazione in formato Keras per TensorFlow SavedModel, fornendo compatibilità con TensorFlow serving e API.
optimize bool False Applica l'ottimizzazione per dispositivi mobili durante l'esportazione in TorchScript, riducendo potenzialmente le dimensioni del modello e migliorando le prestazioni di inferenza. Non compatibile con il formato NCNN o dispositivi CUDA.
half bool False Abilita la quantizzazione FP16 (a mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza su hardware supportato. Non compatibile con la quantizzazione INT8 o le esportazioni solo CPU per ONNX.
int8 bool False Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita minima di precisione, principalmente per i dispositivi edge. Se utilizzato con TensorRT, esegue la quantizzazione post-training (PTQ).
dynamic bool False Consente dimensioni di input dinamiche per le esportazioni ONNX, TensorRT e OpenVINO, migliorando la flessibilità nella gestione di diverse dimensioni delle immagini. Impostato automaticamente su True quando si utilizza TensorRT con INT8.
simplify bool True Semplifica il grafico del modello per le esportazioni ONNX con onnxslim, migliorando potenzialmente le prestazioni e la compatibilità con i motori di inferenza.
opset int None Specifica la versione di ONNX opset per la compatibilità con diversi parser e runtime ONNX. Se non impostato, utilizza l'ultima versione supportata.
workspace float oppure None None Imposta la dimensione massima dello spazio di lavoro in GiB per TensorRT ottimizzazioni, bilanciando l'utilizzo della memoria e le prestazioni. Usa None per l'allocazione automatica da parte di TensorRT fino al massimo del dispositivo.
nms bool False Aggiunge la Non-Maximum Suppression (NMS) al modello esportato quando supportata (vedere Formati di Esportazione), migliorando l'efficienza della post-elaborazione del rilevamento. Non disponibile per i modelli end2end.
batch int 1 Specifica la dimensione del batch di inferenza del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in predict modalità. Per le esportazioni Edge TPU, questo viene automaticamente impostato su 1.
device str None Specifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (device=mps) o DLA per NVIDIA Jetson (device=dla:0 oppure device=dla:1). Le esportazioni TensorRT utilizzano automaticamente la GPU.
data str 'coco8.yaml' Percorso del dataset file di configurazione (predefinito: coco8.yaml), essenziale per la calibrazione della quantizzazione INT8. Se non specificato con INT8 abilitato, verrà assegnato un set di dati predefinito.
fraction float 1.0 Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente la calibrazione su un sottoinsieme del dataset completo, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset.

Una configurazione ponderata assicura che il modello esportato sia ottimizzato per il suo caso d'uso e funzioni efficacemente nell'ambiente di destinazione.

Guida all'esportazione

Impostazioni delle soluzioni

Le impostazioni di configurazione di Ultralytics Solutions offrono la flessibilità di personalizzare i modelli per attività come il conteggio di oggetti, la creazione di mappe termiche, il monitoraggio dell'allenamento, l'analisi dei dati, il monitoraggio delle zone, la gestione delle code e il conteggio basato sulla regione. Queste opzioni consentono facili regolazioni per risultati accurati e utili, su misura per esigenze specifiche.

Argomento Tipo Predefinito Descrizione
model str None Percorso del file del modello Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' Elenco dei punti che definiscono la regione di conteggio.
show_in bool True Flag per controllare se visualizzare i conteggi in streaming video.
show_out bool True Flag per controllare se visualizzare i conteggi out streaming video.
analytics_type str line Tipo di grafico, ovvero line, bar, area, oppure pie.
colormap int cv2.COLORMAP_JET Colormap da utilizzare per la heatmap.
json_file str None Percorso del file JSON che contiene tutti i dati delle coordinate del parcheggio.
up_angle float 145.0 Soglia angolare per la posa 'alta'.
kpts list[int, int, int] '[6, 8, 10]' Elenco dei keypoint utilizzati per monitorare gli allenamenti. Questi keypoint corrispondono alle articolazioni o parti del corpo, come spalle, gomiti e polsi, per esercizi come flessioni, trazioni, squat, allenamenti per gli addominali.
down_angle float 90.0 Soglia angolare per la posa 'bassa'.
blur_ratio float 0.5 Regola la percentuale di intensità della sfocatura, con valori nell'intervallo 0.1 - 1.0.
crop_dir str 'cropped-detections' Nome della directory per la memorizzazione dei rilevamenti ritagliati.
records int 5 Conteggio totale dei rilevamenti per attivare un'e-mail con il sistema di allarme di sicurezza.
vision_point tuple[int, int] (20, 20) Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando VisionEye Solution.
source str None Percorso della sorgente di input (video, RTSP, ecc.). Utilizzabile solo con l'interfaccia della riga di comando (CLI) di Solutions.
figsize tuple[int, int] (12.8, 7.2) Dimensione della figura per grafici analitici come mappe di calore o grafici.
fps float 30.0 Frame al secondo utilizzati per i calcoli della velocità.
max_hist int 5 Punti storici massimi da tracciare per oggetto per i calcoli di velocità/direzione.
meter_per_pixel float 0.05 Fattore di scala utilizzato per convertire la distanza in pixel in unità del mondo reale.
max_speed int 120 Limite massimo di velocità nelle sovrapposizioni visive (utilizzato negli avvisi).
data str 'images' Percorso della directory delle immagini utilizzata per la ricerca di similarità.

Guida alle soluzioni

Impostazioni di Augmentation

Le tecniche di aumento dei dati sono essenziali per migliorare la robustezza e le prestazioni del modello YOLO introducendo variabilità nei dati di training, aiutando il modello a generalizzare meglio i dati non visti. La seguente tabella delinea lo scopo e l'effetto di ciascun argomento di aumento:

Argomento Tipo Predefinito Intervallo Descrizione
hsv_h float 0.015 0.0 - 1.0 Regola la tonalità dell'immagine di una frazione della ruota dei colori, introducendo variabilità cromatica. Aiuta il modello a generalizzare 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 0.0 - 180 Ruota l'immagine in modo casuale entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere oggetti a vari orientamenti.
translate float 0.1 0.0 - 1.0 Trasla l'immagine orizzontalmente e verticalmente di una frazione della dimensione dell'immagine, aiutando ad apprendere a rilevare oggetti parzialmente visibili.
scale float 0.5 >=0.0 Scala l'immagine di un fattore di guadagno, simulando oggetti a diverse distanze dalla fotocamera.
shear float 0.0 -180 - +180 Deforma l'immagine di un grado specificato, imitando l'effetto di 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 apprendere oggetti simmetrici e 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 a un ordinamento errato dei canali.
mosaic float 1.0 0.0 - 1.0 Combina quattro immagini di addestramento in una, simulando diverse composizioni di scena e interazioni tra oggetti. Altamente efficace per la comprensione di scene complesse.
mixup float 0.0 0.0 - 1.0 Combina due immagini e le loro etichette, creando un'immagine composita. Migliora la capacità del modello di generalizzare introducendo rumore di etichetta e variabilità visiva.
cutmix float 0.0 0.0 - 1.0 Combina porzioni di due immagini, creando una fusione parziale pur mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione.
copy_paste float 0.0 0.0 - 1.0 Solo segmentazione. Copia e incolla oggetti tra le immagini per aumentare le istanze degli oggetti.
copy_paste_mode str flip - Solo segmentazione. Specifica il copy-paste strategia da utilizzare. Le opzioni includono 'flip' e 'mixup'.
auto_augment str randaugment - Solo classificazione. Applica una politica di aumento predefinita ('randaugment', 'autoaugment', oppure 'augmix') per migliorare le prestazioni del modello attraverso la diversità visiva.
erasing float 0.4 0.0 - 0.9 Solo classificazione. Cancella casualmente regioni dell'immagine durante l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno ovvie.

Regola queste impostazioni per soddisfare i requisiti del dataset e del task. Sperimentare con valori diversi può aiutare a trovare la strategia di augmentation ottimale per ottenere le migliori prestazioni del modello.

Guida all'aumento dei dati (Augmentation)

Impostazioni di Logging, Checkpoint e Plotting

Logging, checkpoint, plotting e gestione dei file sono importanti durante l'addestramento di un modello YOLO:

  • Logging: Tieni traccia dei progressi del modello e diagnostica i problemi utilizzando librerie come TensorBoard o scrivendo su un file.
  • Checkpoint: Salva il modello a intervalli regolari per riprendere l'addestramento o sperimentare con configurazioni diverse.
  • Plotting: Visualizza le prestazioni e l'avanzamento dell'addestramento utilizzando librerie come matplotlib o TensorBoard.
  • Gestione dei file: Organizza i file generati durante l'addestramento, come checkpoint, file di log e grafici, per un facile accesso e analisi.

Una gestione efficace di questi aspetti aiuta a monitorare i progressi e semplifica il debug e l'ottimizzazione.

Argomento Predefinito Descrizione
project 'runs' Specifica la directory principale per il salvataggio delle esecuzioni di training. Ogni esecuzione viene salvata in una sottodirectory separata.
name 'exp' Definisce il nome dell'esperimento. Se non specificato, YOLO incrementa questo nome per ogni esecuzione (ad esempio, exp, exp2) per evitare la sovrascrittura.
exist_ok False Determina se sovrascrivere una directory di esperimenti esistente. True consente la sovrascrittura; False la impedisce.
plots False Controlla la generazione e il salvataggio dei grafici di training e validazione. Impostare su True per creare grafici come le curve di perdita, precisione-richiamo curve e previsioni di esempio per il tracciamento visivo delle prestazioni.
save False Abilita il salvataggio dei checkpoint di training e dei pesi del modello finale. Imposta su True per salvare periodicamente gli stati del modello, consentendo la ripresa dell'addestramento o la distribuzione del modello.

FAQ

Come posso migliorare le prestazioni del mio modello YOLO durante il training?

Migliora le prestazioni ottimizzando gli iperparametri come dimensione del batch, tasso di apprendimento, momentum e decadimento del peso. Regola le impostazioni di aumento dei dati, seleziona l'ottimizzatore giusto e utilizza tecniche come l'arresto anticipato o la precisione mista. Per i dettagli, consulta la Guida all'addestramento.

Quali sono gli iperparametri chiave per la precisione del modello YOLO?

Gli iperparametri chiave che influenzano l'accuratezza includono:

  • Dimensione del batch (batch): Dimensioni maggiori possono stabilizzare l'addestramento ma richiedono più memoria.
  • Tasso di apprendimento (lr0): Rate inferiori offrono regolazioni più precise ma una convergenza più lenta.
  • Momentum (momentum): Accelera i vettori gradiente, smorzando le oscillazioni.
  • Dimensione dell'immagine (imgsz): Dimensioni maggiori migliorano la precisione ma aumentano il carico computazionale.

Regola questi parametri in base al tuo dataset e all'hardware. Scopri di più in Impostazioni di Training.

Come imposto il tasso di apprendimento per il training di un modello YOLO?

Il learning rate (lr0) è cruciale; iniziare con 0.01 per SGD o 0.001 per Ottimizzatore Adam. Monitora le metriche e apporta le modifiche necessarie. Utilizza gli scheduler del tasso di apprendimento coseno (cos_lr) o warmup (warmup_epochs, warmup_momentum). I dettagli sono nel Guida all'addestramento.

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

Le impostazioni predefinite includono:

  • Soglia di confidenza (conf=0.25): Confidenza minima per i rilevamenti.
  • Soglia IoU (iou=0.7): Per Non-Maximum Suppression (NMS).
  • Dimensione dell'immagine (imgsz=640): Ridimensiona le immagini di input.
  • Dispositivo (device=None): Seleziona CPU o GPU.

Per una panoramica completa, consulta Impostazioni di previsione e la Guida alla previsione.

Perché usare l'addestramento a precisione mista con i modelli YOLO?

Precisione mista addestramento (amp=True) riduce l'utilizzo della memoria e accelera il training utilizzando FP16 e FP32. È vantaggioso per le GPU moderne, consentendo modelli più grandi e calcoli più veloci senza una significativa perdita di accuratezza. Scopri di più nella Guida all'addestramento.



📅 Creato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti