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:

ArgomentoPredefinitoDescrizione
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.).
ArgomentoPredefinitoDescrizione
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.

ArgomentoTipoPredefinitoDescrizione
modelstrNoneSpecifica 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.
datastrNonePercorso 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.
epochsint100Numero 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.
timefloatNoneTempo 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.
patienceint100Numero 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.
batchint oppure float16Dimensione 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).
imgszint640Dimensione dell'immagine target per l'addestramento. Le immagini vengono ridimensionate in quadrati con lati uguali al valore specificato (se rect=False), preservando il rapporto d'aspetto per i modelli YOLO ma non RT-DETR. Influenza il modello accuratezza e sulla complessità computazionale.
saveboolTrueAbilita il salvataggio dei checkpoint di training e dei pesi finali del modello. Utile per riprendere il training o l'implementazione del modello.
save_periodint-1Frequenza 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.
cacheboolFalseAbilita 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.
deviceint oppure str oppure listNoneSpecifica 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])
workersint8Numero 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.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente di archiviare in modo organizzato diversi esperimenti.
namestrNoneNome 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_okboolFalseSe True, consente di sovrascrivere una directory progetto/nome esistente. Utile per la sperimentazione iterativa senza la necessità di cancellare manualmente gli output precedenti.
pretrainedbool oppure strTrueDetermina 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.
optimizerstr'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.
seedint0Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra le esecuzioni con le stesse configurazioni.
deterministicboolTrueForza 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_clsboolFalseConsidera 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.
classeslist[int]NoneSpecifica un elenco di ID di classe su cui eseguire il training. Utile per filtrare e concentrarsi solo su determinate classi durante il training.
rectboolFalseAbilita 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_scaleboolFalseAbilita 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_lrboolFalseUtilizza 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_mosaicint10Disabilita l'aumento dei dati a mosaico nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. L'impostazione su 0 disabilita questa funzionalità.
resumeboolFalseRiprende 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.
ampboolTrueAbilita l'addestramento Automatic Mixed Precision (AMP), riducendo l'utilizzo della memoria e possibilmente accelerando l'addestramento con un impatto minimo sulla precisione.
fractionfloat1.0Specifica 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.
profileboolFalseAbilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare l'implementazione del modello.
freezeint oppure listNoneCongela 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.
lr0float0.01Learning 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.
lrffloat0.01Tasso di apprendimento finale come frazione del tasso iniziale = (lr0 * lrf), utilizzato in combinazione con gli scheduler per regolare il tasso di apprendimento nel tempo.
momentumfloat0.937Fattore di momentum per SGD o beta1 per gli ottimizzatori Adam, che influenza l'incorporazione dei gradienti passati nell'aggiornamento corrente.
weight_decayfloat0.0005Termine di regolarizzazione L2, che penalizza i pesi elevati per prevenire l'overfitting.
warmup_epochsfloat3.0Numero 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_momentumfloat0.8Momentum iniziale per la fase di warmup, che si adatta gradualmente al momentum impostato durante il periodo di warmup.
warmup_bias_lrfloat0.1Tasso di apprendimento per i parametri di bias durante la fase di warmup, contribuendo a stabilizzare l'addestramento del modello nelle epoche iniziali.
boxfloat7.5Peso della componente di perdita della box nella funzione di perdita, che influenza l'importanza attribuita alla previsione accurata delle coordinate della bounding box.
clsfloat0.5Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della corretta previsione della classe rispetto ad altri componenti.
dflfloat1.5Peso della distribution focal loss, utilizzata in alcune versioni di YOLO per la classificazione fine-grained.
posefloat12.0Peso della pose loss nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei keypoint della posa.
kobjfloat2.0Peso della keypoint objectness loss nei modelli di stima della posa, bilanciando l'affidabilità del rilevamento con l'accuratezza della posa.
nbsint64Dimensione nominale del batch per la normalizzazione della perdita.
overlap_maskboolTrueDetermina 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_ratioint4Rapporto di downsample per le maschere di segmentazione, che influisce sulla risoluzione delle maschere utilizzate durante l'addestramento.
dropoutfloat0.0Tasso di dropout per la regolarizzazione nelle attività di classificazione, prevenendo l'overfitting omettendo casualmente le unità durante l'addestramento.
valboolTrueAbilita la convalida durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato.
plotsboolFalseGenera 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.
compilebool oppure strFalseAbilita PyTorch 2.x torch.compile compilazione del grafico con backend='inductor'. Accetta True"default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". In caso di mancato supporto, torna all'esecuzione eager con un avviso.

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:

ArgomentoTipoPredefinitoDescrizione
sourcestr'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.
conffloat0.25Imposta 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.
ioufloat0.7Soglia 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.
imgszint oppure tuple640Definisce 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.
rectboolTrueSe 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.
halfboolFalseAbilita l'inferenza in mezza precisione (FP16), che può accelerare l'inferenza del modello su GPU supportate con un impatto minimo sulla precisione.
devicestrNoneSpecifica 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.
batchint1Specifica 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_detint300Numero 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_strideint1Frame 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_bufferboolFalseDetermina 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.
visualizeboolFalseAttiva 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.
augmentboolFalseAbilita 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_nmsboolFalseAbilita 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.
classeslist[int]NoneFiltra 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_masksboolFalseRestituisce 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.
embedlist[int]NoneSpecifica i livelli da cui estrarre vettori di caratteristiche o embeddings. Utile per attività a valle come il clustering o la ricerca di similarità.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output di previsione se save è abilitato.
namestrNoneNome 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.
streamboolFalseAbilita 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.
verboseboolTrueControlla se visualizzare i log di inferenza dettagliati nel terminale, fornendo feedback in tempo reale sul processo di previsione.
compilebool oppure strFalseAbilita PyTorch 2.x torch.compile compilazione del grafico con backend='inductor'. Accetta True"default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". In caso di mancato supporto, torna all'esecuzione eager con un avviso.

Argomenti di visualizzazione:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
saveboolFalse or TrueConsente di salvare in file le immagini o i video annotati. Utile per la documentazione, per ulteriori analisi o per condividere i risultati. L'impostazione predefinita è True quando si usa la CLI e False quando si usa Python.
save_framesboolFalseQuando si elaborano video, salva i singoli frame come immagini. Utile per estrarre frame specifici o per un'analisi dettagliata frame per frame.
save_txtboolFalseSalva 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_confboolFalseInclude i punteggi di confidenza nei file di testo salvati, migliorando il livello di dettaglio disponibile per la post-elaborazione e l'analisi.
save_cropboolFalseSalva le immagini ritagliate dei rilevamenti. Utile per l'aumento del dataset, l'analisi o la creazione di dataset mirati per oggetti specifici.
show_labelsboolTrueMostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento.
show_boxesboolTrueDisegna riquadri di delimitazione attorno agli oggetti rilevati, essenziale per l'identificazione visiva e la posizione degli oggetti in immagini o fotogrammi video.
line_widthNone or intNoneSpecifica 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.

ArgomentoTipoPredefinitoDescrizione
datastrNoneSpecifica il percorso del file di configurazione del dataset (ad es., coco8.yaml). Questo file deve includere il percorso del file dati di validazione.
imgszint640Definisce 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.
batchint16Imposta 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_jsonboolFalseSe True, salva i risultati in un file JSON per ulteriori analisi, integrazione con altri strumenti o invio a server di valutazione come COCO.
conffloat0.001Imposta 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.
ioufloat0.7Imposta la soglia di Intersection Over Union per la Non-Maximum Suppression. Controlla l'eliminazione delle detection duplicate.
max_detint300Limita il numero massimo di rilevamenti per immagine. Utile in scene dense per prevenire rilevamenti eccessivi e gestire le risorse computazionali.
halfboolTrueAbilita il calcolo in half-precision (FP16), riducendo l'utilizzo della memoria e potenzialmente aumentando la velocità con un impatto minimo sull'accuratezza.
devicestrNoneSpecifica 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.
dnnboolFalseSe True, utilizza il OpenCV modulo DNN per l'inferenza del modello ONNX, offrendo un'alternativa ai metodi di inferenza PyTorch .
plotsboolFalseQuando 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.
classeslist[int]NoneSpecifica un elenco di ID di classe su cui eseguire il training. Utile per filtrare e concentrarsi solo su determinate classi durante la valutazione.
rectboolTrueSe 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.
splitstr'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.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output di validazione. Aiuta a organizzare i risultati di diversi esperimenti o modelli.
namestrNoneNome 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.
verboseboolFalseSe True, visualizza informazioni dettagliate durante il processo di validazione, incluse metriche per classe, avanzamento del batch e informazioni di debug aggiuntive.
save_txtboolFalseSe 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_confboolFalseSe 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.
workersint8Numero 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.
augmentboolFalseAbilita 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_nmsboolFalseAbilita la Non-Maximum Suppression class-agnostic, che unisce i riquadri sovrapposti indipendentemente dalla classe prevista. Utile per applicazioni incentrate sull'istanza.
single_clsboolFalseConsidera 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.
visualizeboolFalseVisualizza le verità di base, i veri positivi, i falsi positivi e i falsi negativi per ogni immagine. Utile per il debug e l'interpretazione del modello.
compilebool oppure strFalseAbilita PyTorch 2.x torch.compile compilazione del grafico con backend='inductor'. Accetta True"default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". In caso di mancato supporto, torna all'esecuzione eager con un avviso.

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.

ArgomentoTipoPredefinitoDescrizione
formatstr'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.
imgszint oppure tuple640Dimensione 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.
kerasboolFalseAbilita l'esportazione in formato Keras per TensorFlow SavedModel, fornendo compatibilità con TensorFlow serving e API.
optimizeboolFalseApplica 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.
halfboolFalseAbilita la quantizzazione FP16 (mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza sull'hardware supportato. Non è compatibile con la quantizzazione INT8 o con le esportazioni CPU. Disponibile solo per alcuni formati, ad esempio ONNX (vedere sotto).
int8boolFalseAttiva 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).
dynamicboolFalseConsente dimensioni di input dinamiche per le esportazioni ONNX, TensorRT e OpenVINO , migliorando la flessibilità nella gestione di immagini di dimensioni diverse. Imposta automaticamente su True quando si utilizza TensorRT con INT8.
simplifyboolTrueSemplifica il grafico del modello per le esportazioni ONNX con onnxslim, migliorando potenzialmente le prestazioni e la compatibilità con i motori di inferenza.
opsetintNoneSpecifica la versione di ONNX opset per la compatibilità con diversi parser e runtime ONNX. Se non impostato, utilizza l'ultima versione supportata.
workspacefloat oppure NoneNoneImposta 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.
nmsboolFalseAggiunge 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.
batchint1Specifica 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.
devicestrNoneSpecifica 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.
datastr'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.
fractionfloat1.0Specifica 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.

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso del file del modelloYOLO Ultralytics .
regionlist'[(20, 400), (1260, 400)]'Elenco dei punti che definiscono la regione di conteggio.
show_inboolTrueFlag per controllare se visualizzare i conteggi in streaming video.
show_outboolTrueFlag per controllare se visualizzare i conteggi out streaming video.
analytics_typestrlineTipo di grafico, ovvero line, bar, area, oppure pie.
colormapintcv2.COLORMAP_JETColormap da utilizzare per la heatmap.
json_filestrNonePercorso del file JSON che contiene tutti i dati delle coordinate del parcheggio.
up_anglefloat145.0Soglia angolare per la posa 'alta'.
kptslist[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_anglefloat90.0Soglia angolare per la posa 'bassa'.
blur_ratiofloat0.5Regola la percentuale di intensità della sfocatura, con valori nell'intervallo 0.1 - 1.0.
crop_dirstr'cropped-detections'Nome della directory per la memorizzazione dei rilevamenti ritagliati.
recordsint5Conteggio totale dei rilevamenti per attivare un'e-mail con il sistema di allarme di sicurezza.
vision_pointtuple[int, int](20, 20)Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando VisionEye Solution.
sourcestrNonePercorso della sorgente di input (video, RTSP, ecc.). Utilizzabile solo con l'interfaccia della riga di comando (CLI) di Solutions.
figsizetuple[int, int](12.8, 7.2)Dimensione della figura per grafici analitici come mappe di calore o grafici.
fpsfloat30.0Frame al secondo utilizzati per i calcoli della velocità.
max_histint5Punti storici massimi da tracciare per oggetto per i calcoli di velocità/direzione.
meter_per_pixelfloat0.05Fattore di scala utilizzato per convertire la distanza in pixel in unità del mondo reale.
max_speedint120Limite massimo di velocità nelle sovrapposizioni visive (utilizzato negli avvisi).
datastr'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:

ArgomentoTipoPredefinitoAttività supportateIntervalloDescrizione
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Regola 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_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Altera la saturazione dell'immagine di una frazione, influenzando l'intensità dei colori. Utile per simulare diverse condizioni ambientali.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modifica il valore (luminosità) dell'immagine di una frazione, aiutando il modello a funzionare bene in varie condizioni di illuminazione.
degreesfloat0.0detect, segment, pose, obb0.0 - 180Ruota l'immagine in modo casuale entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere oggetti a vari orientamenti.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Trasla l'immagine orizzontalmente e verticalmente di una frazione della dimensione dell'immagine, aiutando ad apprendere a rilevare oggetti parzialmente visibili.
scalefloat0.5detect, segment, pose, obb, classify>=0.0Scala l'immagine di un fattore di guadagno, simulando oggetti a diverse distanze dalla fotocamera.
shearfloat0.0detect, segment, pose, obb-180 - +180Deforma l'immagine di un grado specificato, imitando l'effetto di oggetti visti da diverse angolazioni.
perspectivefloat0.0detect, segment, pose, obb0.0 - 0.001Applica una trasformazione prospettica casuale all'immagine, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D.
flipudfloat0.0detect, segment, pose, obb, classify0.0 - 1.0Capovolge l'immagine con la probabilità specificata, aumentando la variabilità dei dati senza influire sulle caratteristiche dell'oggetto.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Capovolge l'immagine da sinistra a destra con la probabilità specificata, utile per apprendere oggetti simmetrici e aumentare la diversità del set di dati.
bgrfloat0.0detect, segment, pose, obb0.0 - 1.0Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza a un ordinamento errato dei canali.
mosaicfloat1.0detect, segment, pose, obb0.0 - 1.0Combina quattro immagini di addestramento in una, simulando diverse composizioni di scena e interazioni tra oggetti. Altamente efficace per la comprensione di scene complesse.
mixupfloat0.0detect, segment, pose, obb0.0 - 1.0Combina due immagini e le loro etichette, creando un'immagine composita. Migliora la capacità del modello di generalizzare introducendo rumore di etichetta e variabilità visiva.
cutmixfloat0.0detect, segment, pose, obb0.0 - 1.0Combina porzioni di due immagini, creando una fusione parziale pur mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione.
copy_pastefloat0.0segment0.0 - 1.0Copia e incolla oggetti tra le immagini per aumentare le istanze degli oggetti.
copy_paste_modestrflipsegment-Specifica il copy-paste strategia da utilizzare. Le opzioni includono 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Applica una politica di aumento predefinita ('randaugment', 'autoaugment', oppure 'augmix') per migliorare le prestazioni del modello attraverso la diversità visiva.
erasingfloat0.4classify0.0 - 0.9Cancella casualmente regioni dell'immagine durante l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno ovvie.
augmentationslist{{ augmentations }}detect, segment, pose, obb-Trasformazioni Albumentations personalizzate per l'incremento avanzato dei datiPython solo APIPython ). Accetta un elenco di oggetti di trasformazione per esigenze di incremento specializzate.

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.

ArgomentoPredefinitoDescrizione
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_okFalseDetermina se sovrascrivere una directory di esperimenti esistente. True consente la sovrascrittura; False la impedisce.
plotsFalseControlla 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.
saveFalseAbilita 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.



📅C reato 2 anni fa ✏️ Aggiornato 5 mesi fa
glenn-jocherMatthewNoyceambitious-octopusfcakyonLaughing-qRizwanMunawarjk4eUltralyticsAssistantplashchynskiBurhan-QAyushExeltensorturtle

Commenti