Ultralytics YOLO27:

Configurazione#

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



Watch: Mastering Ultralytics YOLO: Configuration

I comandi Ultralytics usano la sintassi seguente:

Esempio
yolo TASK MODE ARGS

Dove:

I valori predefiniti di ARG sono definiti in questa pagina e provengono dal file cfg/default.yaml.

Attività#

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

ArgomentoPredefinitoDescrizione
task'detect'Specifica l'attività YOLO: detect per il rilevamento degli oggetti, segment per la segmentazione delle istanze, semantic per la segmentazione semantica, depth per la stima monoculare della profondità, classify per la classificazione, pose per la stima della posa e obb per i bounding box orientati. Ogni attività è progettata per output e problemi specifici nell'analisi di immagini e video.

Guida alle attività

Modalità#

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

  • Train: addestra un modello YOLO su un dataset personalizzato.
  • Val: valida un modello YOLO addestrato.
  • Predict: usa un modello YOLO addestrato per eseguire previsioni su nuove immagini o video.
  • Export: esporta un modello YOLO per la distribuzione.
  • Track: traccia gli oggetti in tempo reale usando 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 validazione, predict per l'inferenza, export per la conversione nei formati di distribuzione, track per il tracciamento degli oggetti e benchmark per la valutazione delle prestazioni. Ogni modalità supporta fasi diverse, dallo sviluppo alla distribuzione.

Guida alle modalità

Impostazioni di addestramento#

Le impostazioni di addestramento per i modelli YOLO includono iperparametri e configurazioni che influiscono sulle prestazioni, sulla velocità e sull'accuratezza del modello. Le impostazioni principali includono la dimensione del batch, il learning rate, il momentum e il weight decay. Anche la scelta dell'ottimizzatore, della funzione di perdita e della composizione del dataset influisce sull'addestramento. La regolazione e la sperimentazione sono fondamentali per ottenere prestazioni ottimali. Per maggiori dettagli, consulta la funzione entrypoint di Ultralytics.

ArgomentoTipoPredefinitoDescrizione
modelstrNoneSpecifica il file del modello per l'addestramento. Accetta un percorso a un modello .pt preaddestrato oppure a un file di configurazione .yaml. È essenziale per definire la struttura del modello o inizializzare i pesi.
datastrNonePercorso allo YAML del dataset (ad esempio, coco8.yaml), che contiene i percorsi ai dati di addestramento e validazione, i nomi delle classi e il numero di classi. La classificazione accetta invece una directory del dataset o il nome di un dataset integrato (ad esempio, imagenet10).
epochsint100Numero totale di epoche di addestramento. Ogni epoca rappresenta un passaggio completo sull'intero dataset. La modifica di questo valore può influire sulla durata dell'addestramento e sulle prestazioni del modello.
timefloatNoneTempo massimo di addestramento in ore. Se impostato, sovrascrive l'argomento epochs, consentendo di interrompere automaticamente l'addestramento dopo la durata specificata. È utile negli scenari di addestramento con vincoli temporali.
patienceint100Numero 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 si stabilizzano.
batchint o float16Dimensione del batch, con tre modalità: impostazione come intero (ad esempio, batch=16), modalità automatica per utilizzare il 60% della memoria GPU (batch=-1) oppure modalità automatica con una frazione di utilizzo specificata (batch=0.70).
imgszint640Dimensione obiettivo delle immagini per l'addestramento. Le immagini vengono ridimensionate a quadrati con lati uguali al valore specificato (se rect=False), mantenendo le proporzioni per i modelli YOLO ma non per RT-DETR. Influisce sull'accuratezza del modello e sulla complessità computazionale.
saveboolTrueAbilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. È utile per riprendere l'addestramento o per la distribuzione del modello.
save_periodint-1Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Un valore pari a -1 disabilita questa funzionalità. È utile per salvare modelli intermedi durante sessioni di addestramento prolungate.
cacheboolFalseAbilita il caching delle immagini del dataset in memoria (True/ram), su disco (disk) oppure lo disabilita (False). Migliora la velocità di addestramento riducendo l'I/O su disco, a scapito di un maggiore utilizzo della memoria.
deviceint oppure str oppure listNoneSpecifica il dispositivo o i dispositivi di calcolo per l'addestramento: una singola GPU (device=0), più GPU (device=[0,1]), CPU (device=cpu), MPS per Apple silicon (device=mps), Huawei Ascend NPU (device=npu:0 oppure device=npu:0,1), oppure la selezione automatica di una GPU inattiva (device=-1) o di più GPU inattive (device=[-1,-1]).
workersint8Numero di thread worker per il caricamento dei dati (per RANK nell'addestramento Multi-GPU). Influisce sulla velocità della preelaborazione e dell'invio dei dati al modello, soprattutto nelle configurazioni multi-GPU.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente di organizzare le diverse sperimentazioni.
namestrNoneNome dell'esecuzione di addestramento. Viene usato per creare una sottodirectory nella cartella del progetto, in cui vengono salvati i log e gli output dell'addestramento.
exist_okboolFalseSe True, consente di sovrascrivere una directory project/name esistente. È utile per la sperimentazione iterativa senza dover eliminare manualmente gli output precedenti.
save_dirstrNoneSpecifica la directory esatta in cui vengono salvati gli output dell'esecuzione, sovrascrivendo la combinazione project/name. Il percorso viene usato così com'è senza incrementi automatici, quindi le esecuzioni consecutive riutilizzano la stessa directory.
pretrainedbool o strTrueDetermina se iniziare l'addestramento dai pesi preaddestrati. Può essere un valore booleano o un percorso testuale ai pesi da caricare. pretrained=False addestra a partire da pesi inizializzati casualmente mantenendo l'architettura del modello.
cls_remapboolTrueDurante il fine-tuning tra dataset, copia nel nuovo modello le righe della testa di classificazione preaddestrata quando i nomi delle classi corrispondono, così le classi sovrapposte mantengono il bias appreso e anche i relativi pesi quando la larghezza della testa non cambia. Si applica sia quando il numero di classi differisce, sia quando coincide ma l'ordine delle classi è diverso.
optimizerstr'auto'Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp oppure auto per scegliere AdamW o MuSGD in base al numero di iterazioni di addestramento. Influisce sulla velocità e sulla stabilità della convergenza.
seedint0Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra 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.
verboseboolTrueAbilita l'output dettagliato durante l'addestramento, mostrando nella console barre di avanzamento, metriche per epoca e ulteriori informazioni sull'addestramento.
single_clsboolFalseTratta tutte le classi nei dataset multiclass come un'unica classe durante l'addestramento. È utile per attività di classificazione binaria o quando ci si concentra sulla presenza degli oggetti anziché sulla classificazione.
classeslist[int]NoneSpecifica un elenco di ID delle classi su cui eseguire l'addestramento. È utile per filtrare le classi e concentrarsi solo su quelle desiderate durante l'addestramento.
rectboolFalseAbilita la strategia di padding minimo: le immagini di un batch ricevono il padding minimo necessario per raggiungere una dimensione comune, con il lato più lungo uguale a imgsz. Può migliorare efficienza e velocità, ma può influire sull'accuratezza del modello.
multi_scalefloat0.0Varia casualmente imgsz a ogni batch di +/- multi_scale (ad esempio, da 0.25 -> 0.75x a 1.25x), arrotondando ai multipli dello stride del modello; 0.0 disabilita l'addestramento multi-scala.
cos_lrboolFalseUsa uno scheduler del learning rate coseno, regolando il learning rate secondo una curva coseno durante le epoche. Aiuta a gestire il learning rate per ottenere una migliore convergenza.
close_mosaicint10Disabilita la data augmentation mosaic nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. L'impostazione a 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.
ampbool o strTrueImposta la precisione dell'addestramento: True oppure "fp16" usa FP16, "bf16" usa BF16 sui dispositivi CUDA supportati e False oppure "fp32" usa FP32.
quantizeint o strNoneImposta su 8 (o "int8") per l'addestramento consapevole della quantizzazione (QAT) in INT8, che esegue il fine-tuning con la finta quantizzazione nel ciclo in modo che i pesi tollerino l'esportazione in INT8. Consulta Quantization-Aware Training.
fractionfloat, int o list1.0Sottoinsieme del dataset espresso come rapporto/conteggio o come elenco [train, val, test]. 1 indica l'intero split, gli interi superiori a 1 indicano il numero di immagini e solo la voce test facoltativa accetta 0/0.0 per indicare nessun elemento. Gli elenchi a due elementi mantengono completo il test.
profileboolFalseAbilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare la distribuzione del modello.
freezeint o listNoneBlocca i primi N layer del modello oppure layer specifici tramite indice o nome del modulo (23.cv2, senza il model. iniziale), riducendo il numero di parametri addestrabili. È utile per il fine-tuning o il transfer learning.
lr0float0.01Learning rate iniziale (ovvero SGD=1E-2, Adam=1E-3). La modifica di questo valore è fondamentale per il processo di ottimizzazione, poiché influisce sulla rapidità di aggiornamento dei pesi del modello.
lrffloat0.01Learning rate finale come frazione del learning rate iniziale = (lr0 * lrf), usato insieme agli scheduler per regolare il learning rate nel tempo.
momentumfloat0.937Fattore di momentum per SGD o beta1 per gli ottimizzatori Adam, che influisce sull'integrazione 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 di warmup del learning rate, che aumenta gradualmente il learning rate da un valore basso a quello iniziale per stabilizzare le prime fasi dell'addestramento.
warmup_momentumfloat0.8Momentum iniziale per la fase di warmup, che si adatta gradualmente al momentum impostato durante il periodo di warmup.
warmup_bias_lrfloat0.1Learning rate per i parametri di bias durante la fase di warmup, che aiuta a stabilizzare l'addestramento del modello nelle epoche iniziali. Viene impostato automaticamente su 0.0 con il valore predefinito optimizer='auto', quindi specifica esplicitamente un ottimizzatore per usarlo.
distill_modelstrNonePercorso a un checkpoint del modello teacher (ad esempio, yolo26x.pt) per il knowledge distillation. Quando impostato, il modello student viene addestrato con una perdita aggiuntiva di distillazione guidata dal teacher congelato.
disfloat6.0Peso della perdita di distillazione aggiunta alle perdite standard di rilevamento. Valori più elevati aumentano l'influenza della guida delle caratteristiche del teacher.
boxfloat7.5Peso della componente di perdita dei riquadri nella funzione di perdita, che influisce sull'importanza attribuita alla previsione accurata delle coordinate dei bounding box.
clsfloat0.5Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della corretta previsione della classe rispetto alle altre componenti.
cls_pwfloat0.0Potenza per la ponderazione delle classi, per gestire lo sbilanciamento tra classi usando la frequenza inversa delle classi. 0.0 disabilita la ponderazione delle classi, mentre 1.0 applica la ponderazione completa con frequenza inversa. I valori compresi tra 0 e 1 forniscono una ponderazione parziale.
dflfloat1.5Peso del termine di regressione della distanza dei riquadri: distribution focal loss (DFL) quando la testa di rilevamento usa reg_max > 1, oppure una perdita L1 sulle distanze normalizzate dei riquadri in YOLO26 senza DFL (reg_max: 1).
posefloat12.0Peso della perdita della posa nei modelli addestrati per la stima della posa, che influisce sull'importanza attribuita alla previsione accurata dei keypoint della posa.
kobjfloat1.0Peso della perdita di objectness dei keypoint nei modelli di stima della posa, che bilancia la confidenza del rilevamento e l'accuratezza della posa.
rlefloat1.0Peso della perdita di stima della log-verosimiglianza residua nei modelli di stima della posa, che influisce sulla precisione della localizzazione dei keypoint.
anglefloat1.0Peso della perdita dell'angolo nei modelli obb, che influisce sulla precisione delle previsioni degli angoli dei bounding box orientati.
dlogfloat1.0Peso della perdita logaritmica invariante alla scala (SILog) nei modelli di stima della profondità, il termine principale che determina l'accuratezza della profondità.
dgradfloat0.5Peso della perdita del gradiente nei modelli di stima della profondità, che penalizza gli errori sui bordi di profondità e favorisce contorni delle superfici più netti.
dlamfloat1.0Fattore di enfasi della varianza della perdita SILog nei modelli di stima della profondità. 1.0 rende la perdita completamente invariante alla scala, mentre 0.0 la riduce a una semplice log-RMSE.
nbsint64Dimensione nominale del batch per la normalizzazione della perdita.
overlap_maskboolTrueDetermina se le maschere degli oggetti devono essere unite in un'unica maschera per l'addestramento oppure mantenute separate per ogni oggetto. In caso di sovrapposizione, durante l'unione la maschera più piccola viene sovrapposta a quella più grande.
mask_ratioint4Rapporto di sottocampionamento per le maschere di segmentazione, che influisce sulla risoluzione delle maschere usate durante l'addestramento.
dropoutfloat0.0Tasso di dropout per la regolarizzazione nelle attività di classificazione, che previene l'overfitting omettendo casualmente alcune unità durante l'addestramento.
valboolTrueAbilita la validazione durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato.
nmsbool, facoltativoNoneSeleziona la testa di inferenza utilizzata per la convalida delle epoche, la selezione dei checkpoint e l'arresto anticipato. None o True utilizzano l'approccio uno-a-molti con NMS; False utilizza la testa senza NMS quando disponibile. Entrambe le teste mantengono le rispettive perdite di addestramento.
plotsboolTrueGenera e salva grafici delle metriche di addestramento e validazione, oltre a esempi di previsioni, fornendo indicazioni visive sulle prestazioni del modello e sull'avanzamento dell'apprendimento.
compilebool o strFalseAbilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True"default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se non è supportata, torna alla modalità eager con un avviso.
channels_lastboolNoneUsa il formato di memoria channels_last (NHWC) per le convoluzioni durante l'addestramento. None lo abilita automaticamente su CUDA con PyTorch 1.11 o versioni successive, tranne su Windows, dove è risultato più lento. False lo disabilita e True lo richiede esplicitamente. PyTorch 1.10 e precedenti, CPU e MPS rimangono NCHW per impostazione predefinita.
max_detint300Rilevamenti massimi per immagine durante la validazione dell'addestramento. Per detect, segment, pose e OBB, il valore predefinito di 300 aumenta fino al conteggio di oggetti etichettati di train/val più alto solo quando tale conteggio supera 300; altri valori rimangono fissi e il superamento del limite attiva un avviso.
Nota sulle impostazioni della dimensione del batch

L'argomento batch offre tre opzioni di configurazione:

  • Dimensione fissa del batch: specifica il numero di immagini per batch con un intero (ad esempio, batch=16).
  • Modalità automatica (60% della memoria GPU): usa batch=-1 per regolare automaticamente l'utilizzo a circa il 60% della memoria CUDA.
  • Modalità automatica con frazione di utilizzo: imposta una frazione (ad esempio, batch=0.70) per regolare il valore in base a un utilizzo specificato della memoria GPU.
  • Nessuna configurazione adatta trovata: se nessuna dimensione del batch candidata produce un profilo utilizzabile, AutoBatch genera un errore chiaro RuntimeError invece di ripiegare silenziosamente su un valore predefinito non correlato.

Guida all'addestramento

Impostazioni di previsione#

Le impostazioni di previsione per i modelli YOLO includono iperparametri e configurazioni che influenzano prestazioni, velocità e accuratezza durante l'inferenza. Le impostazioni principali includono la soglia di confidenza, la soglia della soppressione non massima (NMS) e il numero di classi. Anche la dimensione e il formato dei dati in ingresso, oltre a funzionalità aggiuntive come le maschere, influiscono sulle previsioni. La regolazione di queste impostazioni è essenziale per ottenere prestazioni ottimali.

Argomenti di inferenza:

ArgomentoTipoPredefinitoDescrizione
sourcestr oppure int oppure NoneNoneSpecifica la sorgente dei dati per l'inferenza. Può essere il percorso di un'immagine, un file video, una directory, un URL o l'ID di un dispositivo per i flussi live. Se omesso, viene registrato un avviso e il modello usa gli asset demo integrati (ultralytics/assets oppure un URL demo per OBB). Supporta un'ampia gamma di formati e sorgenti, consentendo applicazioni flessibili su diversi tipi di input.
conffloat0.25Imposta la soglia minima di confidenza per le rilevazioni. Gli oggetti rilevati con una confidenza inferiore a questa soglia verranno ignorati. La regolazione di questo valore può contribuire a ridurre i falsi positivi.
ioufloat0.7Soglia di Intersezione sull'unione (IoU) per la Soppressione non massima (NMS). Valori inferiori producono meno rilevazioni eliminando i riquadri sovrapposti, utile per ridurre i duplicati.
imgszint o tuple640Destinazione del letterbox. Un numero intero produce un N×N quadrato; una tupla produce (height, width). Con rect=True, il tensore effettivo può essere più piccolo di questa destinazione a causa del padding a rettangolo minimo. Usa rect=False per una dimensione fissa. Consulta Forma fissa vs rettangolo minimo.
rectboolTrueSe True, usa il padding a rettangolo minimo quando possibile (batch con la stessa forma e backend supportato). Se False, applica sempre il padding fino a imgsz completo. Consulta Forma fissa vs rettangolo minimo.
quantizeint o strNonePrecisione di inferenza: 16/"fp16" e 32/"fp32"/non impostato selezionano il calcolo FP16 o FP32 per i modelli PyTorch e TorchScript; gli altri formati calcolano alla precisione selezionata dal loro artefatto e runtime. A 16 OpenVINO esegue comunque l'arrotondamento a FP16 dell'input sul client e lo riporta a FP32, senza modificare la precisione in cui calcola il runtime. La quantizzazione INT8/PTQ viene configurata durante l'export, quindi utilizzata caricando il modello esportato. Sostituisce il flag deprecato half.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad esempio cpu, cuda:0, 0, npu o npu:0). Consente di scegliere tra CPU, una GPU specifica, NPU Huawei Ascend o altri dispositivi di calcolo per l'esecuzione del modello.
dnnboolFalseSe True, usa il modulo DNN di OpenCV invece di ONNX Runtime per l'inferenza dei modelli ONNX.
datastrNonePercorso a un file YAML del dataset (ad esempio coco8.yaml), letto esclusivamente per il suo names e solo quando il modello caricato non contiene nomi di classi propri: un'esportazione di terze parti oppure un'esportazione Ultralytics separata dai metadati forniti con essa. In caso contrario, tale modello restituisce class0, class1 e così via.
batchint1Specifica la dimensione del batch per l'inferenza (funziona solo quando la sorgente è una directory, un file video o un file .txt). Una dimensione del batch maggiore può fornire un throughput superiore, riducendo il tempo totale richiesto per l'inferenza.
max_detint300Numero massimo di rilevazioni consentite per immagine. Limita il numero totale di oggetti che il modello può rilevare in una singola inferenza, evitando output eccessivi nelle scene dense.
vid_strideint1Passo dei fotogrammi per gli input video. Consente di saltare fotogrammi nei video per velocizzare l'elaborazione, a scapito della risoluzione temporale. Un valore pari a 1 elabora ogni fotogramma; valori maggiori saltano dei fotogrammi.
stream_bufferboolFalseDetermina se accodare i fotogrammi in arrivo per gli stream video. Se False, i fotogrammi meno recenti vengono eliminati per fare spazio a quelli nuovi (ottimizzato per le applicazioni in tempo reale). Se True, i nuovi fotogrammi vengono accodati in un buffer, garantendo che nessun fotogramma venga saltato, ma causando latenza se gli FPS dell'inferenza sono inferiori agli FPS dello stream.
visualizeboolFalseSalva una mappa di attivazione delle classi accanto a ogni predizione, mostrando quali pixel hanno aumentato i punteggi della classe predetta. Rispetta conf e classes, quindi classes=[0] mappa solo quella classe. Disponibile solo per i modelli PyTorch di Ultralytics.
augmentboolFalseAbilita l'augmentation al momento del test (TTA) per le predizioni, migliorando potenzialmente la robustezza delle rilevazioni a scapito della velocità di inferenza. Disponibile solo per i modelli PyTorch di Ultralytics.
agnostic_nmsboolFalseAbilita la soppressione non massimale agnostica rispetto alle classi (NMS), sopprimendo i box sovrapposti con punteggio inferiore tra classi diverse anziché solo all'interno della stessa classe. Utile in scenari di rilevamento multi-classe in cui la sovrapposizione delle classi è comune. Con l'inferenza senza NMS (nms=False su YOLO26 o YOLOv10), questo impedisce solo che lo stesso rilevamento appaia con più etichette di classe (duplicati con IoU=1.0) e non esegue la soppressione basata sulla soglia IoU tra box distinti.
classeslist[int]NoneFiltra le predizioni in base a un insieme di ID di classe. Verranno restituite solo le rilevazioni appartenenti alle classi specificate. Utile per concentrarsi sugli oggetti rilevanti nelle attività di rilevamento multiclasse.
retina_masksboolFalseRestituisce maschere di segmentazione ad alta risoluzione. Se abilitato, le maschere restituite (masks.data) corrisponderanno alle dimensioni dell'immagine originale. Se disabilitato, avranno le dimensioni dell'immagine utilizzata durante l'inferenza.
embedlist[int]NoneSpecifica i layer dai quali estrarre vettori di caratteristiche o embedding. Usa model.embed(source) per gli embedding del penultimo layer oppure model.predict(source, embed=[layer]) per selezionare layer specifici. Utile per attività successive come il clustering o la ricerca per similarità. Disponibile solo per i modelli PyTorch di Ultralytics.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output delle predizioni se save è abilitato.
namestrNoneNome dell'esecuzione della predizione. Viene utilizzato per creare una sottodirectory all'interno della cartella del progetto, in cui vengono archiviati gli output delle predizioni se save è abilitato.
streamboolFalseAbilita un'elaborazione efficiente in termini di memoria per video lunghi o numerose immagini, restituendo un generatore di oggetti Results invece di caricare tutti i fotogrammi in memoria contemporaneamente.
verboseboolTrueControlla se visualizzare log dettagliati dell'inferenza nel terminale, fornendo feedback in tempo reale sul processo di predizione.
compilebool o strFalseAbilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True"default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se non è supportata, torna alla modalità eager con un avviso.
channels_lastboolNoneUsa il formato di memoria channels_last (NHWC) per l'inferenza nativa con PyTorch. None lo abilita automaticamente su CPU x86 Linux e Windows con oneDNN abilitato e PyTorch 1.13 o versioni successive, False lo disabilita e True lo richiede su CPU x86 o dispositivi CUDA supportati. ARM64, MPS, versioni precedenti di PyTorch, CPU senza oneDNN e formati esportati come TensorRT e ONNX rimangono invariati.
nmsbool, facoltativoNoneEsegue l'inferenza uno-a-molti con NMS per impostazione predefinita (None o True). Imposta False per utilizzare la testa uno-a-uno senza NMS quando disponibile. Consulta la guida al rilevamento end-to-end per i dettagli.

Argomenti di visualizzazione:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. È utile per ottenere un feedback visivo immediato durante lo sviluppo o i test.
saveboolFalse or TrueAbilita il salvataggio delle immagini o dei video annotati in file. Utile per la documentazione, ulteriori analisi o la condivisione dei risultati. Il valore predefinito è True usando la CLI e False usando Python.
save_framesboolFalseDurante l'elaborazione dei video, salva i singoli fotogrammi come immagini. Utile per estrarre fotogrammi specifici o per un'analisi dettagliata fotogramma per fotogramma.
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. Aumenta il livello di dettaglio disponibile per la post-elaborazione e l'analisi.
save_cropboolFalseSalva immagini ritagliate delle rilevazioni. Utile per l'augmentation del dataset, l'analisi o la creazione di dataset mirati per oggetti specifici.
show_labelsboolTrueVisualizza le etichette per ogni rilevazione nell'output visivo. Consente di comprendere immediatamente gli oggetti rilevati.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevazione accanto all'etichetta. Fornisce informazioni sul grado di certezza del modello per ogni rilevazione.
show_boxesboolTrueDisegna riquadri di delimitazione attorno agli oggetti rilevati. È essenziale per l'identificazione visiva e la localizzazione degli oggetti nelle immagini o nei fotogrammi video.
line_widthint or NoneNoneSpecifica la larghezza della linea dei riquadri di delimitazione. Se None, la larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Consente una personalizzazione visiva per migliorare la chiarezza.

Guida alla predizione

Impostazioni di validazione#

Le impostazioni di validazione per i modelli YOLO comprendono iperparametri e configurazioni per valutare le prestazioni su un dataset di validazione. Queste impostazioni influenzano prestazioni, velocità e accuratezza. Le impostazioni comuni includono la dimensione del batch, la frequenza di validazione e le metriche delle prestazioni. Anche le dimensioni e la composizione del dataset di validazione, insieme all'attività specifica, influenzano il processo.

ArgomentoTipoPredefinitoDescrizione
datastrNoneSpecifica il percorso al file YAML del dataset (ad esempio, coco8.yaml), che deve includere il percorso ai dati di validazione. Per la classificazione è invece richiesta una directory del dataset o il nome di un dataset integrato (ad esempio, imagenet10).
imgszint640Definisce la dimensione delle immagini di input. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. Dimensioni maggiori possono migliorare l'accuratezza per gli oggetti piccoli, ma aumentano il tempo di calcolo.
batchint16Imposta il numero di immagini per batch. Valori più alti utilizzano la memoria GPU in modo più efficiente, ma richiedono più VRAM. Regola questo valore 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. Sui dataset di rilevamento valuta anche le previsioni con faster-coco-eval e riporta l'mAP per oggetti piccoli, medi e grandi, registrata durante l'addestramento come metrics/mAP_small(B), metrics/mAP_medium(B) e metrics/mAP_large(B) in results.csv.
conffloat0.001Imposta la soglia minima di confidenza per i rilevamenti. Valori inferiori aumentano il richiamo, ma possono introdurre più falsi positivi. Le curve precisione-richiamo usano per impostazione predefinita 0.001; le matrici di confusione dei rilevamenti usano un valore esplicito conf oppure 0.25 quando viene omesso. La precisione e il richiamo riepilogativi usano la confidenza del valore F1 massimo, quindi possono differire dai valori derivati da confusion_matrix.png. Il valore predefinito per la validazione OBB è 0.01 per ridurre l'utilizzo della memoria.
ioufloat0.7Imposta la soglia di Intersezione sull'unione per la Soppressione non massima. Controlla l'eliminazione dei rilevamenti duplicati.
max_detint300Limita il numero massimo di rilevamenti per immagine. Per detect, segment, pose e OBB, se lasciato a 300 viene aumentato al conteggio di oggetti etichettati più alto nello split convalidato quando un'immagine lo supera, con un avviso; qualsiasi altro valore viene mantenuto, con l'avviso che il richiamo potrebbe essere limitato quando un'immagine lo supera.
quantizeint o strNonePrecisione di validazione: 16/"fp16" e 32/"fp32"/non impostato selezionano il calcolo FP16 o FP32 per i modelli PyTorch e TorchScript; gli altri formati calcolano alla precisione selezionata dal loro artefatto e runtime. A 16 OpenVINO esegue comunque l'arrotondamento a FP16 dell'input sul client e lo riporta a FP32, senza modificare la precisione in cui calcola il runtime. La quantizzazione INT8/PTQ viene configurata durante l'export, quindi utilizzata validando il modello esportato. Sostituisce il flag deprecato half.
devicestrNoneSpecifica il dispositivo per la validazione (cpu, cuda:0, npu, npu:0, ecc.). Quando è impostato su None, seleziona automaticamente il miglior dispositivo disponibile. Puoi specificare più dispositivi CUDA separandoli con virgole.
dnnboolFalseSe True, usa il modulo DNN di OpenCV per l'inferenza dei modelli ONNX, offrendo un'alternativa ai metodi di inferenza di PyTorch.
plotsboolTrueQuando è impostato su True, genera e salva grafici delle predizioni rispetto ai valori reali, matrici di confusione e curve PR per la valutazione visiva delle prestazioni del modello.
classeslist[int]NoneSpecifica un elenco di ID delle classi da valutare. È utile per filtrare le classi e concentrarsi solo su determinate classi durante la valutazione.
rectboolTrueSe True, usa l'inferenza rettangolare per l'elaborazione a batch, riducendo il padding e aumentando potenzialmente velocità ed efficienza grazie all'elaborazione delle immagini nel loro rapporto d'aspetto originale. Viene ignorato per la validazione depth, che adatta ogni immagine a un quadrato fisso imgsz invece di applicare il padding.
splitstr'val'Determina la suddivisione del dataset da usare per la validazione (val, test o train). Offre flessibilità nella scelta della porzione di dati da usare per la valutazione delle prestazioni.
fractionfloat, int o list1.0Sottoinsieme dello split convalidato. Con un elenco [train, val, test], si applica la voce corrispondente a split (1 = split completo, interi superiori a 1 = conteggio delle immagini; le voci omesse sono complete). Uno scalare si applica solo con split=train; val e test utilizzano quindi lo split completo.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output della validazione. Aiuta a organizzare i risultati di esperimenti o modelli diversi.
namestrNoneNome dell'esecuzione di validazione. Viene usato per creare una sottodirectory nella cartella del progetto, in cui vengono archiviati i log e gli output della validazione.
verboseboolTrueSe True, mostra informazioni dettagliate durante il processo di validazione, incluse le metriche per classe, l'avanzamento dei batch e ulteriori informazioni di debug.
save_txtboolFalseSe True, salva i risultati dei rilevamenti 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 output più dettagliati per l'analisi e il filtraggio.
workersint8Numero di thread worker per il caricamento dei dati. Valori più alti possono velocizzare la pre-elaborazione dei dati, ma possono aumentare l'utilizzo della CPU. Impostando 0 viene usato il thread principale, che può essere più stabile in alcuni ambienti.
augmentboolFalseAbilita l'aumento dei dati al momento del test (TTA) durante la validazione, migliorando potenzialmente l'accuratezza dei rilevamenti a scapito della velocità di inferenza, eseguendo l'inferenza su versioni trasformate dell'input. Disponibile solo per i modelli Ultralytics PyTorch.
agnostic_nmsboolFalseAbilita la soppressione non massimale agnostica rispetto alle classi, sopprimendo i box sovrapposti con punteggio inferiore indipendentemente dalla loro classe prevista. Utile per applicazioni incentrate sulle istanze. Con l'inferenza senza NMS (nms=False su YOLO26 o YOLOv10), questo impedisce solo che lo stesso rilevamento appaia con più etichette di classe (duplicati con IoU=1.0) e non esegue la soppressione basata sulla soglia IoU tra box distinti.
single_clsboolFalseTratta tutte le classi come un'unica classe durante la validazione. È utile per valutare le prestazioni del modello in attività di rilevamento binario o quando le distinzioni tra classi non sono importanti.
visualizeboolFalseVisualizza i valori reali, i veri positivi, i falsi positivi e i falsi negativi per ogni immagine. È utile per il debug e l'interpretazione del modello.
show_labelsboolTrueMostra le etichette delle classi nelle visualizzazioni della validazione quando visualize=True. Imposta False per una visualizzazione più pulita delle corrispondenze e degli errori.
show_confboolTrueMostra i punteggi di confidenza nelle visualizzazioni della validazione quando visualize=True. Imposta False per una visualizzazione più pulita delle corrispondenze e degli errori.
compilebool o strFalseAbilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True"default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se non è supportata, torna alla modalità eager con un avviso.
channels_lastboolNoneUsa il formato di memoria channels_last (NHWC) per la validazione PyTorch nativa. None lo abilita automaticamente su CPU x86 Linux e Windows con oneDNN abilitato e PyTorch 1.13 o versioni successive, False lo disabilita e True lo richiede sui dispositivi CPU x86 o CUDA supportati. ARM64, MPS, le versioni precedenti di PyTorch, le CPU senza oneDNN e i formati esportati rimangono invariati; la validazione durante l'addestramento mantiene il layout del modello di addestramento.
nmsbool, facoltativoNoneEsegue l'inferenza uno-a-molti con NMS per impostazione predefinita (None o True). Imposta False per utilizzare la testa uno-a-uno senza NMS quando disponibile. Consulta la guida al rilevamento end-to-end per i dettagli.

Una regolazione accurata e la sperimentazione sono fondamentali per garantire prestazioni ottimali e rilevare e prevenire l'overfitting.

Guida alla validazione

Impostazioni di esportazione#

Le impostazioni di esportazione per i modelli YOLO includono configurazioni per salvare o esportare il modello da utilizzare in ambienti diversi. Queste impostazioni influenzano 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 influenzano il processo di esportazione.

ArgomentoTipoPredefinitoDescrizione
formatstr'torchscript'Formato di destinazione per il modello esportato, ad esempio 'onnx', 'torchscript', 'engine' (TensorRT) o altri. Ogni formato abilita la compatibilità con diversi ambienti di deployment.
namestrNoneNome della destinazione hardware per i formati che lo richiedono: architettura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; predefinito 'hailo8l'), chip Rockchip RKNN (predefinito 'rk3588'), SoC Huawei Ascend (un --soc_version CANN; predefinito 'Ascend310B4') o destinazione Qualcomm QNN HTP (predefinita '73'). Distinta dalla coppia di denominazione delle esecuzioni project/name utilizzata dalle altre modalità.
imgszint o tuple640Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per immagini quadrate (ad esempio 640 per 640×640) oppure una tupla (height, width) per dimensioni specifiche. Se non viene passata, l'esportazione riutilizza la dimensione di training registrata nel checkpoint caricato: i checkpoint ufficiali YOLO26 registrano 768 per depth, 224 per classify, 1024 per OBB e 640 per le altre attività, mentre un fine-tuning registra il valore imgsz con cui è stato addestrato. Un modello creato da un YAML non ha una dimensione di training registrata e usa 640.
kerasboolFalseAbilita l'esportazione nel formato Keras per TensorFlow SavedModel, fornendo compatibilità con il serving e le API TensorFlow.
optimizeboolFalseAbilita un'ottimizzazione superiore del compilatore per DEEPX, riducendo la latenza dell'inferenza e aumentando il tempo di compilazione.
quantizeint o strNonePrecisione di quantizzazione: 16 (FP16, riduce le dimensioni del modello e può accelerare l'inferenza sull'hardware supportato) o 8 (INT8/PTQ, comprime ulteriormente il modello con una minima perdita di accuracy, principalmente per i edge devices; richiede calibrazione data/fraction); 32/non impostato è FP32. Un checkpoint addestrato con quantize=8 esporta sempre INT8: onnx e engine esportano dagli intervalli che trasportano senza calibrazione e altri formati o precisioni vengono rifiutati. I formati di esportazione che supportano la precisione mista di pesi/attivazioni accettano anche la notazione 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Sostituisce i flag deprecati half/int8 (half=True16, int8=True8, ancora accettati con un avviso di deprecazione). Sono consentite solo le precisioni supportate dal formato di destinazione (vedi sotto).
dynamicboolFalseConsente dimensioni di input dinamiche per le esportazioni TorchScript, ONNX, OpenVINO, TensorRT e CoreML, aumentando la flessibilità nella gestione di immagini con dimensioni variabili.
simplifyboolTrueSemplifica il grafo ONNX intermedio con onnxslim per le esportazioni che ne creano uno (vedi Formati di esportazione), migliorando potenzialmente le prestazioni e la compatibilità con i motori di inferenza.
opsetintNoneSpecifica la versione dell'opset ONNX per le esportazioni che creano un grafo ONNX (vedi Formati di esportazione), per la compatibilità con diversi parser e runtime ONNX. Se non impostata, usa l'ultima versione supportata.
workspacefloat o NoneNoneImposta la dimensione massima dello spazio di lavoro in GiB per le ottimizzazioni TensorRT, bilanciando l'utilizzo della memoria e le prestazioni. Usa None per l'allocazione automatica da parte di TensorRT fino al massimo del dispositivo.
nmsbool, facoltativoNoneNone esporta previsioni grezze uno-a-molti per NMS esterni; True incorpora NMS ove supportato; False seleziona la testa senza NMS quando disponibile. L'NMS incorporato in CoreML supporta rilevamento, segmentazione e stima della posa con forme statiche. Consulta la guida al rilevamento end-to-end.
conffloatNoneSoglia di confidenza utilizzata ovunque venga generata la NMS al momento dell'esportazione: esportazioni nms=True; esportazioni Hailo di rilevamento non end-to-end; ed esportazioni IMX di rilevamento, posa e segmentazione, che impongono internamente nms=True. Il valore predefinito è 0.25 se non impostato.
ioufloat0.7Soglia IoU utilizzata ovunque venga generata la NMS al momento dell'esportazione: esportazioni nms=True; esportazioni Hailo di rilevamento non end-to-end; ed esportazioni IMX di rilevamento, posa e segmentazione, che impongono internamente nms=True.
max_detint300Numero massimo di rilevamenti conservati nell'output del modello esportato. Si applica alle esportazioni di nms=True su qualsiasi formato ad eccezione del rilevamento CoreML, il cui flusso nativo NMS non ha limiti di rilevamento, oltre alle esportazioni di rilevamento end-to-end senza NMS (YOLO26, YOLOv10, limitate al numero di ancoraggi disponibili) e alle esportazioni di rilevamento, posa e segmentazione di IMX.
agnostic_nmsboolFalseAbilita la NMS indipendente dalla classe ovunque venga generata la NMS al momento dell'esportazione tramite la pipeline standard nms=True, inclusa la fase NMS propria di CoreML, sopprimendo i riquadri sovrapposti con punteggio inferiore tra classi diverse anziché solo all'interno della stessa classe. Non viene rispettata dalle configurazioni NMS generate da Hailo o IMX, che non dispongono di un'opzione indipendente dalla classe e rimangono consapevoli della classe indipendentemente da questo flag. Viene inoltre incorporata nelle esportazioni end-to-end senza NMS (YOLO26, YOLOv10), dove impedisce solo che la stessa rilevazione compaia con più etichette di classe (duplicati IoU=1.0), non la soppressione basata sulla soglia IoU tra riquadri distinti.
batchint1Specifica la dimensione del batch per l'inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict. Per le esportazioni Edge TPU, viene impostata automaticamente su 1.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per il silicio Apple (device=mps), NPU Huawei Ascend (device=npu o device=npu:0) oppure DLA per NVIDIA Jetson (device=dla:0 o device=dla:1). Le esportazioni TensorRT usano automaticamente la GPU, ma TensorRT 11.0 non supporta DLA.
verboseboolFalseAumenta il log del builder TensorRT al livello di severità VERBOSE durante l'esportazione format='engine'. Gli altri formati di esportazione lo ignorano.
datastrNonePercorso del file YAML del dataset, essenziale per la calibrazione della quantizzazione INT8; la classificazione richiede invece una directory di dataset o un nome di dataset integrato. Se non specificato con INT8 abilitato, Ultralytics seleziona un dataset di calibrazione specifico per il task ove necessario, o torna al dataset predefinito per il task del modello. Un checkpoint addestrato con quantize=8 trasporta i propri intervalli INT8 e non necessita di dati di calibrazione.
splitstr'val'Suddivisione del dataset ('train', 'val' o 'test') utilizzata per creare il dataloader di calibrazione della quantizzazione INT8 da data.
fractionfloat, int o list1.0Sottoinsieme del dataset utilizzato per la calibrazione INT8: una proporzione, un numero di immagini oppure valori [train, val, test]. 1 indica l'intera suddivisione, gli interi superiori a 1 indicano il numero di immagini e solo la voce facoltativa test accetta 0/0.0 per indicare nessuna immagine. Gli elenchi di due elementi lasciano completo test.

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

Guida all'esportazione

Impostazioni delle soluzioni#

Le impostazioni di configurazione di Ultralytics Solutions offrono flessibilità per personalizzare i modelli per attività come il conteggio degli oggetti, la creazione di mappe di calore, il monitoraggio degli allenamenti, l'analisi dei dati, il monitoraggio delle zone, la gestione delle code e il conteggio basato sulle regioni. Queste opzioni consentono di apportare facilmente modifiche per ottenere risultati accurati e utili, adattati a esigenze specifiche.

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso al file del modello Ultralytics YOLO.
regionlist o dictNonePunti che definiscono la regione di interesse, costituiti da un elenco di tuple (x, y) o da un dizionario che associa i nomi delle regioni agli elenchi di punti per più regioni (solo RegionCounter). Quando None, le soluzioni che richiedono una regione utilizzano una regione predefinita.
show_inboolTrueFlag che controlla se visualizzare i conteggi degli ingressi nel flusso video.
show_outboolTrueFlag che controlla se visualizzare i conteggi delle uscite nel flusso video.
analytics_typestr'line'Tipo di grafico, ovvero line, bar, area o pie.
colormapintcv2.COLORMAP_DEEPGREENMappa dei colori da utilizzare per la mappa di calore.
line_widthint2Spessore delle linee per i riquadri, i punti chiave e i conteggi disegnati dalla soluzione.
verboseboolTrueAbilita il registro per fotogramma della soluzione, con forma dell'input, conteggi delle classi e velocità di elaborazione. La chiamata di tracciamento è sempre silenziosa.
json_filestrNonePercorso al file JSON che contiene tutti i dati delle coordinate dei parcheggi.
up_anglefloat145.0Soglia dell'angolo per la posa "up".
kptslist[int]'[6, 8, 10]'Elenco di tre indici dei punti chiave utilizzati per monitorare gli allenamenti. Questi punti chiave corrispondono ad articolazioni o parti del corpo, come spalle, gomiti e polsi, per esercizi come flessioni, trazioni, squat e allenamenti per gli addominali.
down_angleint90Soglia dell'angolo per la posa "down".
blur_ratiofloat0.5Regola la percentuale di intensità della sfocatura, con valori nell'intervallo 0.1 - 1.0.
crop_dirstr'cropped-detections'Nome della directory in cui archiviare le rilevazioni ritagliate.
recordsint5Numero totale di rilevazioni necessario per attivare un'e-mail con il sistema di allarme di sicurezza.
vision_pointtuple[int, int](20, 20)Punto in cui la vista traccia gli oggetti e disegna i percorsi utilizzando la soluzione VisionEye.
sourcestrNonePercorso alla sorgente di input (video, RTSP ecc.). Utilizzabile solo con l'interfaccia a riga di comando (CLI) delle soluzioni.
figsizetuple[float, float](12.8, 7.2)Dimensioni della figura per i grafici di analisi, come mappe di calore o grafici.
fpsfloat30.0Fotogrammi al secondo utilizzati per i calcoli della velocità.
max_histint5Numero massimo di punti storici da tracciare per oggetto per i calcoli della 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 alla directory delle immagini utilizzata per la ricerca per similarità.
imgszint640Dimensioni dell'immagine di input per l'inferenza del modello.

Guida alle soluzioni

Impostazioni di augmentation#

Le tecniche di augmentation dei dati sono essenziali per migliorare la robustezza e le prestazioni dei modelli YOLO introducendo variabilità nei dati di training, aiutando il modello a generalizzare meglio su dati mai osservati. La tabella seguente illustra lo scopo e l'effetto di ciascun argomento di augmentation:

ArgomentoTipoPredefinitoAttività supportateIntervalloDescrizione
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.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. Per classify, si applica solo quando auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica la saturazione dell'immagine di una frazione, influenzando l'intensità dei colori. Utile per simulare diverse condizioni ambientali. Per classify, si applica solo quando auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifica il valore (luminosità) dell'immagine di una frazione, aiutando il modello a funzionare bene in diverse condizioni di illuminazione. Per classify, si applica solo quando auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Ruota casualmente l'immagine entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere gli oggetti con orientamenti diversi.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Trasla l'immagine orizzontalmente e verticalmente di una frazione delle dimensioni dell'immagine, aiutando il modello a imparare a rilevare oggetti parzialmente visibili.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1 oppure una tupla (min, max) esplicita (non per classify)Ridimensiona l'immagine mediante un fattore di guadagno, simulando oggetti a distanze diverse dalla fotocamera.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Inclina l'immagine del numero di gradi specificato, simulando l'effetto di oggetti osservati da angolazioni diverse.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Applica una trasformazione prospettica casuale all'immagine, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Capovolge l'immagine sottosopra con la probabilità specificata, aumentando la variabilità dei dati senza influire sulle caratteristiche dell'oggetto.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Capovolge l'immagine da sinistra a destra con la probabilità specificata, utile per apprendere oggetti simmetrici e aumentare la diversità del dataset.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza rispetto a un ordinamento errato dei canali.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Combina quattro immagini di training in una, simulando diverse composizioni della scena e interazioni tra oggetti. Particolarmente efficace per la comprensione di scene complesse.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Fonde due immagini e le relative etichette, creando un'immagine composita. Migliora la capacità del modello di generalizzare introducendo rumore nelle etichette e variabilità visiva.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combina porzioni di due immagini, creando una fusione parziale e mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione.
copy_pastefloat0segment, obb0.0 - 1.0Frazione degli oggetti idonei incollati; flip li riflette all'interno dell'immagine, mentre mixup usa il valore anche come probabilità di applicazione tra immagini.
copy_paste_modestrflipsegment, obb-Specifica la strategia copy-paste da utilizzare. Le opzioni includono 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Applica una policy di augmentation predefinita ('randaugment', 'autoaugment' o 'augmix') per migliorare le prestazioni del modello attraverso la diversità visiva.
erasingfloat0.4classify0.0 - 1.0Cancella casualmente regioni dell'immagine durante il training per incoraggiare il modello a concentrarsi sulle caratteristiche meno evidenti.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Trasformazioni Albumentations personalizzate per l'augmentation avanzata dei dati (solo API Python). Accetta un elenco di oggetti di trasformazione per esigenze di augmentation specializzate.

Regola queste impostazioni in base ai requisiti del dataset e dell'attività. 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

Impostazioni di logging, checkpoint e grafici#

Il logging, i checkpoint, i grafici e la gestione dei file sono importanti durante il training di un modello YOLO:

  • Logging: monitora i progressi del modello e diagnostica i problemi usando librerie come TensorBoard oppure scrivendo in un file.
  • Checkpoint: salva il modello a intervalli regolari per riprendere il training o sperimentare con configurazioni diverse.
  • Grafici: visualizza le prestazioni e i progressi del training usando librerie come Matplotlib o TensorBoard.
  • Gestione dei file: organizza i file generati durante il training, come checkpoint, file di log e grafici, per facilitarne l'accesso e l'analisi.

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

ArgomentoPredefinitoDescrizione
projectNoneSpecifica la directory radice per il salvataggio delle esecuzioni di training. Se non specificata, le esecuzioni vengono salvate in runs/<task>. Ogni esecuzione viene salvata in una sottodirectory separata.
nameNoneDefinisce il nome dell'esperimento. Se non specificato, YOLO usa il nome della modalità e lo incrementa per ogni esecuzione (ad esempio train, train-2) per evitare sovrascritture.
exist_okFalseDetermina se sovrascrivere una directory di esperimenti esistente. True consente la sovrascrittura; False la impedisce.
plotsTrueControlla la generazione e il salvataggio dei grafici di addestramento e convalida. Imposta True per creare grafici come le curve della perdita, le curve di precisione-richiamo e le predizioni di esempio per monitorare visivamente le prestazioni.
saveTrueAbilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. Imposta True per salvare periodicamente gli stati del modello, consentendo di riprendere l'addestramento o distribuire il modello.

File di configurazione personalizzato#

Carica un file YAML salvato per riutilizzare un set completo di argomenti senza passarli inline. L'argomento cfg sovrascrive i valori di default.yaml, mentre gli argomenti aggiuntivi passati insieme hanno comunque la precedenza.

ArgomentoPredefinitoDescrizione
cfgNonePercorso a un file YAML i cui valori sostituiscono le voci default.yaml. Consulta Sovrascrittura del file di configurazione predefinito per un esempio pratico con la CLI.

FAQ#

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

  • Gli iperparametri principali che influenzano l'accuratezza includono:

    • Dimensione del batch (batch): le dimensioni maggiori possono stabilizzare l'addestramento, ma richiedono più memoria.
    • Tasso di apprendimento (lr0): tassi più bassi consentono regolazioni più precise, ma una convergenza più lenta.
    • Momentum (momentum): accelera i vettori del gradiente, attenuando le oscillazioni.
    • Dimensione dell'immagine (imgsz): dimensioni maggiori migliorano l'accuratezza, ma aumentano il carico computazionale.

    Regola questi parametri in base al tuo dataset e al tuo hardware. Scopri di più nelle Impostazioni di addestramento.

  • Il tasso di apprendimento (lr0) è fondamentale; inizia con 0.01 per SGD o 0.001 per l'ottimizzatore Adam. Monitora le metriche e regola il valore secondo necessità. Usa scheduler coseno del tasso di apprendimento (cos_lr) o il warmup (warmup_epochs, warmup_momentum). I dettagli sono disponibili nella Guida all'addestramento.

  • Le impostazioni predefinite includono:

    • Soglia di confidenza (conf=0.25): confidenza minima per le rilevazioni.
    • Soglia IoU (iou=0.7): per la soppressione non massima (NMS).
    • Dimensione dell'immagine (imgsz=640): ridimensiona le immagini di input.
    • Dispositivo (device=None): seleziona CPU, GPU, Apple MPS o NPU Huawei Ascend (npu).

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

  • L'addestramento a precisione mista (amp=True) riduce l'utilizzo della memoria e accelera l'addestramento usando FP16 e FP32. È vantaggioso per le GPU moderne, poiché consente di usare modelli più grandi e calcoli più veloci senza una perdita significativa di accuratezza. Scopri di più nella Guida all'addestramento.

Commenti