Meet YOLO26: next-gen vision AI.

Link to this sectionConfigurazione#

Le impostazioni e gli iperparametri di YOLO svolgono un ruolo fondamentale per le prestazioni, la velocità e l'accuratezza del modello. Queste impostazioni possono influenzare il comportamento del modello in varie fasi, tra cui addestramento, validazione e predizione.



Watch: Mastering Ultralytics YOLO: Configuration

I comandi Ultralytics utilizzano la seguente sintassi:

Esempio
yolo TASK MODE ARGS

Dove:

Default ARG values are defined on this page and come from the cfg/default.yaml file.

Link to this sectionTask#

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

  • Detect: L'Object detection identifica e localizza oggetti all'interno di un'immagine o di un video.
  • Segment: L'Instance segmentation divide un'immagine o un video in regioni corrispondenti a diversi oggetti o classi.
  • Semantic segmentation (semantic): La Semantic segmentation assegna un'etichetta di classe a ogni pixel in un'immagine per una comprensione densa della scena.
  • Classify: L'Image classification predice l'etichetta di classe di un'immagine in input.
  • Pose: La Pose estimation identifica oggetti e stima i loro punti chiave in un'immagine o in un video.
  • OBB: Gli Oriented Bounding Boxes utilizzano riquadri di delimitazione ruotati, adatti per immagini satellitari o mediche.
ArgomentoPredefinitoDescrizione
task'detect'Specifica l'attività YOLO: detect per l'object detection, segment per l'instance segmentation, semantic per la semantic segmentation, classify per la classificazione, pose per la pose estimation e obb per gli oriented bounding boxes. Ogni attività è su misura per specifici output e problemi nell'analisi di immagini e video.

Guida alle attività

Link to this sectionModalità#

I modelli Ultralytics YOLO operano in diverse modalità, ognuna 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: Utilizza un modello YOLO addestrato per effettuare predizioni su nuove immagini o video.
  • Export: Esporta un modello YOLO per la distribuzione.
  • Track: 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 validazione, 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 fasi diverse, dallo sviluppo alla distribuzione.

Guida alle modalità

Link to this sectionImpostazioni di addestramento#

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 batch size, learning rate, momentum e weight decay. Anche la scelta dell'ottimizzatore, della loss function e della composizione del dataset ha un impatto sull'addestramento. La regolazione e la sperimentazione sono cruciali per ottenere prestazioni ottimali. Per maggiori dettagli, consulta la funzione di entrypoint Ultralytics.

ArgomentoTipoPredefinitoDescrizione
modelstrNoneSpecifica il file del modello per l'addestramento. Accetta un percorso verso un modello pre-addestrato .pt o un file di configurazione .yaml. Essenziale per definire la struttura del modello o inizializzare i pesi.
datastrNonePercorso del file di configurazione del dataset (es. coco8.yaml). Questo file contiene parametri specifici del dataset, inclusi i percorsi verso i dati di addestramento e validazione, i nomi delle classi e il numero di classi.
epochsint100Numero totale di epoche di addestramento. Ogni epoca rappresenta un passaggio completo sull'intero dataset. La regolazione 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 all'addestramento di arrestarsi automaticamente dopo la durata specificata. Utile per scenari di addestramento con vincoli temporali.
patienceint100Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere l'addestramento. Aiuta a prevenire l'overfitting interrompendo l'addestramento quando le prestazioni raggiungono un plateau.
batchint o float16Batch size, con tre modalità: impostata come numero intero (es. batch=16), modalità automatica per il 60% di utilizzo della memoria GPU (batch=-1) o modalità automatica con frazione di utilizzo specificata (batch=0.70).
imgszint640Dimensione target dell'immagine per l'addestramento. Le immagini vengono ridimensionate in quadrati con lati uguali al valore specificato (se rect=False), preservando il rapporto di aspetto 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 il model deployment.
save_periodint-1Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Un valore di -1 disabilita questa funzione. Utile per salvare modelli intermedi durante lunghe sessioni di addestramento.
cacheboolFalseAbilita la memorizzazione nella cache delle immagini del dataset in memoria (True/ram), su disco (disk) o la disabilita (False). Migliora la velocità di addestramento riducendo l'I/O su disco a costo di un maggiore utilizzo della memoria.
deviceint o str o listNoneSpecifica il/i dispositivo/i computazionale/i 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 o device=npu:0), oppure selezione automatica della GPU più inattiva (device=-1) o di più GPU inattive (device=[-1,-1])
workersint8Numero di thread worker per il caricamento dei dati (per RANK in caso di addestramento Multi-GPU). Influisce sulla velocità di pre-elaborazione dei dati e sull'alimentazione nel modello, particolarmente utile nelle configurazioni Multi-GPU.
projectstrNoneNome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente una memorizzazione organizzata dei diversi esperimenti.
namestrNoneNome della sessione di addestramento. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono archiviati i log e gli output dell'addestramento.
exist_okboolFalseSe True, consente la sovrascrittura di una directory progetto/nome esistente. Utile per la sperimentazione iterativa senza dover cancellare manualmente i precedenti output.
pretrainedbool o strTrueDetermina se iniziare l'addestramento da pesi pre-addestrati. Può essere un valore booleano o un percorso di stringa verso i pesi da caricare. pretrained=False addestra da pesi inizializzati casualmente mantenendo l'architettura del modello.
optimizerstr'auto'Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto per la selezione automatica in base alla configurazione del modello. Influisce sulla velocità di convergenza e sulla stabilità.
seedint0Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra sessioni diverse con le stesse configurazioni.
deterministicboolTrueForza l'uso di algoritmi deterministici, garantendo la riproducibilità ma potenzialmente influenzando le prestazioni e la velocità a causa della restrizione su algoritmi non deterministici.
verboseboolTrueAbilita l'output dettagliato durante l'addestramento, visualizzando barre di avanzamento, metriche per epoca e ulteriori informazioni sull'addestramento nella console.
single_clsboolFalseTratta tutte le classi in dataset multi-classe come una singola classe durante l'addestramento. Utile per attività di classificazione binaria o quando ci si concentra sulla presenza di oggetti piuttosto che sulla classificazione.
classeslist[int]NoneSpecifica un elenco di ID classe su cui addestrare. Utile per filtrare e concentrarsi solo su determinate classi durante l'addestramento.
rectboolFalseAbilita la strategia di riempimento minimo: le immagini in un batch vengono riempite minimamente per raggiungere una dimensione comune, con il lato più lungo uguale a imgsz. Può migliorare efficienza e velocità, ma potrebbe influire sull'accuratezza del modello.
multi_scalefloat0.0Varia casualmente imgsz per ogni batch di +/- multi_scale (es. 0.25 -> da 0.75x a 1.25x), arrotondando ai multipli dello stride del modello; 0.0 disabilita l'addestramento multi-scala.
cos_lrboolFalseUtilizza uno scheduler del learning rate a coseno, regolando il learning rate seguendo una curva a coseno nel corso delle epoche. Aiuta nella gestione del learning rate per una migliore convergenza.
close_mosaicint10Disabilita la data augmentation mosaic nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. Impostare a 0 disabilita questa funzione.
resumeboolFalseRiprende l'addestramento dall'ultimo checkpoint salvato. Carica automaticamente pesi del modello, stato dell'ottimizzatore e conteggio delle epoche, continuando l'addestramento senza interruzioni.
ampboolTrueAbilita l'addestramento in Mixed Precision (AMP) automatico, riducendo l'utilizzo di memoria e possibilmente velocizzando l'addestramento con un impatto minimo sull'accuratezza.
fractionfloat1.0Specifica la frazione del dataset da utilizzare per l'addestramento. Consente l'addestramento su un sottoinsieme dell'intero dataset, utile per esperimenti o quando le risorse sono limitate.
profileboolFalseAbilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare il deployment del modello.
freezeint o listNoneBlocca i primi N strati del modello o gli strati specificati per indice, riducendo il numero di parametri addestrabili. Utile per il fine-tuning o transfer learning.
lr0float0.01Learning rate iniziale (es. SGD=1E-2, Adam=1E-3). La regolazione di questo valore è cruciale per il processo di ottimizzazione, influenzando la rapidità con cui vengono aggiornati i pesi del modello.
lrffloat0.01Learning rate finale come frazione del tasso iniziale = (lr0 * lrf), utilizzato insieme agli scheduler per regolare il learning rate nel tempo.
momentumfloat0.937Fattore di momentum per SGD o beta1 per gli Adam optimizers, che influenza l'incorporazione dei gradienti passati nell'aggiornamento corrente.
weight_decayfloat0.0005Termine di regularization L2, che penalizza i pesi grandi per prevenire l'overfitting.
warmup_epochsfloat3.0Numero di epoche per il warmup del learning rate, aumentando gradualmente il learning rate da un valore basso a quello 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.1Learning rate per i parametri di bias durante la fase di warmup, aiutando a stabilizzare l'addestramento del modello nelle epoche iniziali.
boxfloat7.5Peso della componente di perdita della box nella loss function, che influenza quanta enfasi viene posta sulla previsione accurata delle coordinate della bounding box.
clsfloat0.5Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della previsione corretta della classe rispetto ad altre componenti.
cls_pwfloat0.0Potenza per la ponderazione delle classi per gestire lo squilibrio delle classi utilizzando la frequenza inversa della classe. 0.0 disabilita la ponderazione delle classi, 1.0 applica la ponderazione a frequenza inversa completa. Valori tra 0 e 1 forniscono una ponderazione parziale.
dflfloat1.5Peso della distribution focal loss, utilizzato in alcune versioni di YOLO per la classificazione granulare.
posefloat12.0Peso della perdita di posa nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei keypoint della posa.
kobjfloat1.0Peso della perdita di objectness dei keypoint nei modelli di stima della posa, bilanciando la confidenza di rilevamento con l'accuratezza della posa.
rlefloat1.0Peso della perdita di stima della log-likelihood residua nei modelli di stima della posa, influenzando la precisione della localizzazione dei keypoint.
anglefloat1.0Peso della perdita dell'angolo nei modelli obb, influenzando la precisione delle previsioni dell'angolo della bounding box orientata.
nbsint64Batch size nominale per la normalizzazione della perdita.
overlap_maskboolTrueDetermina se le maschere degli oggetti debbano essere unite in un'unica maschera per l'addestramento o mantenute separate per ogni oggetto. In caso di sovrapposizione, la maschera più piccola viene sovrapposta a quella più grande durante l'unione.
mask_ratioint4Rapporto di downsampling 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, che previene l'overfitting omettendo casualmente unità durante l'addestramento.
valboolTrueAbilita la validazione durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato.
plotsboolTrueGenera e salva grafici delle metriche di addestramento e validazione, oltre a esempi di previsione, fornendo approfondimenti visivi sulle prestazioni del modello e sul progresso dell'apprendimento.
compilebool o strFalseAbilita la compilazione del grafo PyTorch 2.x torch.compile con backend='inductor'. Accetta True"default", False → disabilita, o una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Ripiega su eager con un avviso se non supportato.
max_detint300Specifica il numero massimo di oggetti conservati durante la fase di validazione dell'addestramento.
Nota sulle impostazioni della batch-size

L'argomento batch offre tre opzioni di configurazione:

  • Fixed Batch Size: Specifica il numero di immagini per batch con un numero intero (ad esempio, batch=16).
  • Auto Mode (60% GPU Memory): Usa batch=-1 per la regolazione automatica a circa il 60% dell'utilizzo della memoria CUDA.
  • Auto Mode with Utilization Fraction: Imposta una frazione (ad esempio, batch=0.70) per regolare in base a un utilizzo specificato della memoria GPU.

Guida all'addestramento

Link to this sectionImpostazioni di predizione#

Le impostazioni di predizione 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 Non-Maximum Suppression (NMS) e il numero di classi. Anche le dimensioni dei dati in input, il formato e le funzionalità supplementari come le maschere influenzano le predizioni. La regolazione di queste impostazioni è essenziale per prestazioni ottimali.

Argomenti di inferenza:

ArgomentoTipoPredefinitoDescrizione
sourcestr o int o NoneNoneSpecifica la fonte dei dati per l'inferenza. Può essere un percorso di un'immagine, un file video, una directory, un URL o un ID di dispositivo per feed live. Se omesso, viene registrato un avviso e il modello ricorre agli asset demo predefiniti (ultralytics/assets o un URL demo per OBB). Supporta una vasta gamma di formati e fonti, consentendo un'applicazione flessibile tra diversi tipi di input.
conffloat0.25Imposta la soglia di confidenza minima per le rilevazioni. 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 inferiori portano a meno rilevazioni eliminando i riquadri sovrapposti, utile per ridurre i duplicati.
imgszint o tuple640Letterbox target. An integer gives a square N×N; a tuple gives (height, width). With rect=True, the actual tensor may be smaller than this target due to minimum-rectangle padding. Use rect=False for a fixed size. See Fixed shape vs minimum rectangle.
rectboolTrueSe True, utilizza il padding del rettangolo minimo quando possibile (batch con la stessa forma e backend supportato). Se False, esegue sempre il padding all'intero imgsz. Vedi Forma fissa vs rettangolo minimo.
halfboolFalseAbilita l'inferenza a mezza precisione (FP16), che può velocizzare l'inferenza del modello su GPU supportate con un impatto minimo sull'accuratezza.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0, 0, npu o npu:0). Consente agli utenti di scegliere tra CPU, una specifica GPU, Huawei Ascend NPU o altri dispositivi di calcolo per l'esecuzione del modello.
batchint1Specifica la dimensione del batch per l'inferenza (funziona solo quando la fonte è una directory, un file video o un file .txt). Una dimensione del batch maggiore può fornire un throughput più elevato, 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 in scene dense.
vid_strideint1Stride dei fotogrammi per gli input video. Consente di saltare i fotogrammi nei video per velocizzare l'elaborazione a costo della risoluzione temporale. Un valore di 1 elabora ogni fotogramma, valori più alti saltano i fotogrammi.
stream_bufferboolFalseDetermina se accodare i fotogrammi in arrivo per i flussi video. Se False, i vecchi fotogrammi vengono eliminati per accogliere i nuovi (ottimizzato per applicazioni in tempo reale). Se True, accoda i nuovi fotogrammi in un buffer, assicurando che non vengano saltati fotogrammi, ma causerà latenza se gli FPS dell'inferenza sono inferiori agli FPS del flusso.
visualizeboolFalseAttiva la visualizzazione delle caratteristiche del modello durante l'inferenza, fornendo approfondimenti su ciò che il modello sta "vedendo". Utile per il debug e l'interpretazione del modello.
augmentboolFalseAbilita la test-time augmentation (TTA) per le predizioni, migliorando potenzialmente la robustezza della rilevazione a costo della velocità di inferenza.
agnostic_nmsboolFalseAbilita la Non-Maximum Suppression (NMS) classe-agnostica, che unisce riquadri sovrapposti di classi diverse. Utile in scenari di rilevazione multi-classe dove la sovrapposizione delle classi è comune. Per i modelli end-to-end (YOLO26, YOLOv10), questo impedisce solo che la stessa rilevazione appaia con più etichette di classe (duplicati IoU=1.0) e non esegue la soppressione basata sulla soglia IoU tra riquadri distinti.
classeslist[int]NoneFiltra le predizioni in base a un set di ID classe. Verranno restituite solo le rilevazioni appartenenti alle classi specificate. Utile per concentrarsi su oggetti rilevanti in attività di rilevazione multi-classe.
retina_masksboolFalseRestituisce maschere di segmentazione ad alta risoluzione. Le maschere restituite (masks.data) corrisponderanno alle dimensioni dell'immagine originale se abilitato. Se disabilitato, avranno le dimensioni dell'immagine utilizzata durante l'inferenza.
embedlist[int]NoneSpecifica i livelli da cui estrarre vettori di caratteristiche o embedding. 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 predizione se save è abilitato.
namestrNoneNome dell'esecuzione della predizione. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove gli output di predizione vengono archiviati 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 registri di inferenza dettagliati nel terminale, fornendo un feedback in tempo reale sul processo di predizione.
compilebool o strFalseAbilita la compilazione del grafo PyTorch 2.x torch.compile con backend='inductor'. Accetta True"default", False → disabilita, o una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Ripiega su eager con un avviso se non supportato.
end2endboolNoneSovrascrive la modalità end-to-end nei modelli YOLO che supportano l'inferenza senza NMS (YOLO26, YOLOv10). Impostarlo su False ti consente di eseguire la predizione utilizzando la pipeline NMS tradizionale, permettendoti inoltre di utilizzare l'argomento iou. Consulta la guida alla rilevazione End-to-End per i dettagli.

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 TrueAbilita il salvataggio delle immagini o dei video annotati in file. Utile per la documentazione, ulteriori analisi o la condivisione dei risultati. L'impostazione predefinita è True quando si utilizza la CLI e False quando utilizzato in 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 della rilevazione 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. Migliora i dettagli disponibili per il post-processing e l'analisi.
save_cropboolFalseSalva immagini ritagliate delle rilevazioni. Utile per l'aumento del dataset, l'analisi o la creazione di dataset focalizzati per oggetti specifici.
show_labelsboolTrueMostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati.
show_confboolTrueMostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni 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_widthint or NoneNoneSpecifica la larghezza della linea dei bounding box. Se None, la larghezza della linea viene regolata automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per chiarezza.

Guida alla predizione

Link to this sectionImpostazioni di validazione#

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

ArgomentoTipoPredefinitoDescrizione
datastrNoneSpecifica il percorso del file di configurazione del dataset (ad esempio, coco8.yaml). Questo file dovrebbe includere il percorso dei dati di validazione.
imgszint640Definisce la dimensione delle immagini in input. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. Dimensioni maggiori possono migliorare l'accuratezza per oggetti piccoli ma aumentare 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 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 di confidenza minima per le rilevazioni. Valori inferiori aumentano il richiamo ma potrebbero introdurre più falsi positivi. Utilizzato durante la validazione per calcolare le curve precisione-richiamo. L'impostazione predefinita è 0.01 per la validazione OBB per ridurre l'utilizzo della memoria.
ioufloat0.7Imposta la soglia Intersection Over Union per la Non-Maximum Suppression. Controlla l'eliminazione della rilevazione duplicata.
max_detint300Limita il numero massimo di rilevazioni per immagine. Utile in scene dense per evitare rilevazioni eccessive e gestire le risorse computazionali.
halfboolFalseAbilita il calcolo a mezza precisione (FP16), riducendo l'utilizzo della memoria e aumentando potenzialmente la velocità con un impatto minimo sull'accuratezza.
devicestrNoneSpecifica il dispositivo per la validazione (cpu, cuda:0, npu, npu:0, ecc.). Quando None, seleziona automaticamente il miglior dispositivo disponibile. È possibile specificare più dispositivi CUDA con la separazione tramite virgola.
dnnboolFalseSe True, utilizza il modulo DNN di OpenCV per l'inferenza del modello ONNX, offrendo un'alternativa ai metodi di inferenza di PyTorch.
plotsboolTrueSe impostato su True, genera e salva grafici delle predizioni rispetto alla ground truth, matrici di confusione e curve PR per la valutazione visiva delle prestazioni del modello.
classeslist[int]NoneSpecifica un elenco di ID di classe da valutare. 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 aspect ratio originale.
splitstr'val'Determina lo split del dataset da utilizzare per la validazione (val, test o train). Consente flessibilità nella scelta del segmento di dati per la valutazione delle prestazioni.
projectstrNoneNome della directory di progetto in cui vengono salvati gli output di validazione. Aiuta a organizzare i risultati di diversi esperimenti o modelli.
namestrNoneNome del run di validazione. Utilizzato per creare una sottodirectory all'interno della cartella di progetto, dove vengono memorizzati i log e gli output di validazione.
verboseboolTrueSe True, visualizza informazioni dettagliate durante il processo di validazione, inclusi metriche per classe, avanzamento del batch e ulteriori informazioni di debug.
save_txtboolFalseSe True, salva i risultati di rilevamento in file di testo, con un file per immagine, utili 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 analisi e filtraggio.
workersint8Numero di thread worker per il caricamento dei dati. Valori più alti possono accelerare la pre-elaborazione dei dati ma possono aumentare l'utilizzo della CPU. L'impostazione a 0 utilizza il thread principale, che può essere più stabile in alcuni ambienti.
augmentboolFalseAbilita la test-time augmentation (TTA) durante la validazione, migliorando potenzialmente l'accuratezza del rilevamento a scapito della velocità di inferenza eseguendo l'inferenza su versioni trasformate dell'input.
agnostic_nmsboolFalseAbilita la Non-Maximum Suppression agnostica rispetto alla classe, che unisce i box sovrapposti indipendentemente dalla loro classe predetta. Utile per applicazioni focalizzate sulle istanze. Per i modelli end-to-end (YOLO26, YOLOv10), questo impedisce solo che lo stesso rilevamento appaia con etichette di classe multiple (duplicati IoU=1.0) e non esegue la soppressione basata sulla soglia IoU tra box distinti.
single_clsboolFalseTratta tutte le classi come una singola classe durante la validazione. Utile per valutare le prestazioni del modello su compiti di rilevamento binario o quando le distinzioni di classe non sono importanti.
visualizeboolFalseVisualizza le ground truth, i veri positivi, i falsi positivi e i falsi negativi per ogni immagine. Utile per il debug e l'interpretazione del modello.
show_labelsboolTrueVisualizza le etichette di classe nelle visualizzazioni di validazione quando visualize=True. Imposta su False per una visualizzazione più pulita di corrispondenze ed errori.
show_confboolTrueVisualizza i punteggi di confidenza nelle visualizzazioni di validazione quando visualize=True. Imposta su False per una visualizzazione più pulita di corrispondenze ed errori.
compilebool o strFalseAbilita la compilazione del grafo PyTorch 2.x torch.compile con backend='inductor'. Accetta True"default", False → disabilita, o una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Ripiega su eager con un avviso se non supportato.
end2endboolNoneSovrascrive la modalità end-to-end nei modelli YOLO che supportano l'inferenza senza NMS (YOLO26, YOLOv10). Impostarlo su False ti consente di eseguire la validazione utilizzando la tradizionale pipeline NMS, permettendoti inoltre di utilizzare l'argomento iou.

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

Guida alla Validazione

Link to this sectionImpostazioni di Esportazione#

Le impostazioni di esportazione per i modelli YOLO includono configurazioni per il salvataggio o l'esportazione del modello per l'uso in diversi ambienti. Queste impostazioni influiscono su prestazioni, dimensioni e compatibilità. Le impostazioni chiave includono il formato del file esportato (es. ONNX, TensorFlow SavedModel), il dispositivo di destinazione (es. CPU, GPU) e funzionalità come le maschere. Anche il compito del modello e i vincoli dell'ambiente di destinazione influenzano il 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 deployment.
imgszint o tuple640Dimensione dell'immagine desiderata per l'input del modello. Può essere un 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 la dimensione del modello e migliorando le prestazioni di inferenza. Non compatibile con formato NCNN o dispositivi CUDA. Per DEEPX, abilita un'ottimizzazione del compilatore superiore che riduce la latenza di inferenza e aumenta il tempo di compilazione.
halfboolFalseAbilita la quantizzazione FP16 (precisione dimezzata), riducendo la dimensione del modello e potenzialmente accelerando l'inferenza su hardware supportato. Non compatibile con quantizzazione INT8 o esportazioni solo CPU. Disponibile solo per determinati formati, ad es. ONNX (vedi sotto).
int8boolFalseAttiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita minima di accuratezza, principalmente per edge devices. Quando utilizzato con TensorRT, esegue la quantizzazione post-addestramento (PTQ).
dynamicboolFalseConsente dimensioni di input dinamiche per esportazioni TorchScript, ONNX, OpenVINO, TensorRT e CoreML, aumentando la flessibilità nella gestione di dimensioni di immagini variabili.
simplifyboolTrueSemplifica il grafo del modello per esportazioni ONNX con onnxslim, potenzialmente migliorando le prestazioni e la compatibilità con i motori di inferenza.
opsetintNoneSpecifies the ONNX opset version for compatibility with different ONNX parsers and runtimes. If not set, uses the latest supported version.
workspacefloat o NoneNoneSets the maximum workspace size in GiB for TensorRT optimizations, balancing memory usage and performance. Use None for auto-allocation by TensorRT up to device maximum.
nmsboolFalseAggiunge la Non-Maximum Suppression (NMS) al modello esportato quando supportata (vedi Formati di Esportazione), migliorando l'efficienza della post-elaborazione del rilevamento. Non disponibile per modelli end2end.
batchint1Specifica la dimensione dell'inferenza in batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. Per le esportazioni Edge TPU, questo è impostato automaticamente su 1.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (device=mps), Huawei Ascend NPU (device=npu o device=npu:0) o DLA per NVIDIA Jetson (device=dla:0 o device=dla:1). Le esportazioni TensorRT utilizzano automaticamente la GPU.
datastr'coco8.yaml'Percorso al file di configurazione del dataset, essenziale per la calibrazione della quantizzazione INT8. Se non specificato con INT8 abilitato, coco8.yaml verrà utilizzato come fallback per la calibrazione.
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.
end2endboolNoneSovrascrive la modalità end-to-end nei modelli YOLO che supportano l'inferenza senza NMS (YOLO26, YOLOv10). Impostarlo su False ti consente di esportare questi modelli per renderli compatibili con la tradizionale pipeline di post-elaborazione basata su NMS. Vedi la guida al Rilevamento End-to-End per i dettagli.

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

Link to this sectionImpostazioni delle Soluzioni#

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

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file del modello Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Lista di punti che definiscono la regione di conteggio.
show_inboolTrueFlag per controllare se visualizzare i conteggi in ingresso sul flusso video.
show_outboolTrueFlag per controllare se visualizzare i conteggi in uscita sul flusso video.
analytics_typestr'line'Tipo di grafico, ad esempio line, bar, area o pie.
colormapintcv2.COLORMAP_DEEPGREENColormap da utilizzare per la heatmap.
json_filestrNonePercorso verso il file JSON che contiene tutti i dati delle coordinate del parcheggio.
up_anglefloat145.0Soglia dell'angolo per la posa 'su'.
kptslist[int]'[6, 8, 10]'Lista di tre indici di punti chiave usati per monitorare gli allenamenti. Questi punti chiave corrispondono alle articolazioni del corpo o parti, come spalle, gomiti e polsi, per esercizi come flessioni, trazioni, squat e addominali.
down_angleint90Soglia dell'angolo per la posa 'giù'.
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 archiviare i rilevamenti ritagliati.
recordsint5Conteggio totale dei rilevamenti per attivare un'email 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 usando la Soluzione VisionEye.
sourcestrNonePercorso verso la sorgente di input (video, RTSP, ecc.). Utilizzabile solo con l'interfaccia a riga di comando (CLI) delle Soluzioni.
figsizetuple[int, int](12.8, 7.2)Dimensione della figura per grafici analitici come heatmap o grafici.
fpsfloat30.0Fotogrammi 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 di velocità massima nelle sovrapposizioni visive (utilizzato negli avvisi).
datastr'images'Percorso verso la directory delle immagini utilizzata per la ricerca di similarità.
imgszint640Dimensione dell'immagine di input per l'inferenza del modello.

Guida alle Soluzioni

Link to this sectionImpostazioni di Aumentazione#

Le tecniche di Data augmentation sono essenziali per migliorare la robustezza e le prestazioni del modello YOLO introducendo variabilità nei dati di addestramento, aiutando il modello a generalizzare meglio su dati non visti. La tabella seguente illustra lo scopo e l'effetto di ogni argomento di aumentazione:

ArgomentoTipoPredefinitoAttività supportateIntervalloDescrizione
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Regola la tonalità (hue) 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 luce.
degreesfloat0detect, segment, pose, obb0.0 - 180Ruota l'immagine in modo casuale entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere oggetti con orientamenti diversi.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Trasla l'immagine orizzontalmente e verticalmente di una frazione della dimensione dell'immagine, aiutando a imparare a rilevare oggetti parzialmente visibili.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Scala l'immagine con un fattore di guadagno, simulando oggetti a diverse distanze dalla fotocamera.
shearfloat0detect, segment, pose, obb-180 - +180Inclina (shear) l'immagine di un grado specificato, mimando l'effetto di oggetti visti da angolazioni diverse.
perspectivefloat0detect, segment, 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, pose, obb, classify0.0 - 1.0Capovolge l'immagine verticalmente (sottosopra) con la probabilità specificata, aumentando la variabilità dei dati senza influenzare le caratteristiche dell'oggetto.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Capovolge l'immagine orizzontalmente con la probabilità specificata, utile per imparare oggetti simmetrici e aumentare la diversità del dataset.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza contro un ordine dei canali errato.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Combina quattro immagini di addestramento in una, simulando diverse composizioni di scena e interazioni tra oggetti. Molto efficace per la comprensione di scene complesse.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Unisci due immagini e le loro 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 pur mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione.
copy_pastefloat0segment0.0 - 1.0Copia e incolla oggetti tra le immagini per aumentare le istanze degli oggetti.
copy_paste_modestrflipsegment-Specifica la strategia copy-paste da utilizzare. Le opzioni includono 'flip' e 'mixup'.
auto_augmentstrrandaugmentclassify-Applica una politica di aumento 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 l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno ovvie.
augmentationslist``detect, segment, pose, obb-Trasformazioni Albumentations personalizzate per l'aumento avanzato dei dati (solo API Python). Accetta un elenco di oggetti di trasformazione per esigenze di aumento specializzate.

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

Guida all'Aumentazione

Link to this sectionImpostazioni di Logging, Checkpoint e Plotting#

Logging, checkpoint, plotting e gestione dei file sono importanti quando si addestra un modello YOLO:

  • Logging: Traccia l'avanzamento del modello e diagnostica problemi utilizzando librerie come TensorBoard o scrivendo su un file.
  • Checkpoints: 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 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 l'avanzamento e rende più facile il debug e l'ottimizzazione.

ArgomentoPredefinitoDescrizione
projectNoneSpecifica la directory principale per il salvataggio dei run di addestramento. Se non specificato, i run vengono salvati sotto runs/<task>. Ogni run viene salvato in una sottodirectory separata.
nameNoneDefinisce il nome dell'esperimento. Se non specificato, YOLO utilizza il nome della modalità e lo incrementa per ogni run (es. train, train-2) per evitare sovrascritture.
exist_okFalseDetermina se sovrascrivere una directory di esperimento esistente. True consente la sovrascrittura; False la impedisce.
plotsTrueControlla la generazione e il salvataggio dei grafici di addestramento e validazione. Imposta su True per creare grafici come curve di perdita, curve di precision-recall e predizioni campione per il tracciamento visivo delle prestazioni.
saveTrueAbilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. Imposta su True per salvare periodicamente gli stati del modello, consentendo la ripresa dell'addestramento o il deployment del modello.

Link to this sectionFile di Configurazione Personalizzato#

Carica uno YAML salvato per riutilizzare un set completo di argomenti senza passarli inline. L'argomento cfg sovrascrive i valori da default.yaml, mentre gli argomenti aggiuntivi passati a fianco mantengono comunque la precedenza.

ArgomentoPredefinitoDescrizione
cfgNonePercorso a un file YAML i cui valori sostituiscono le voci di default.yaml. Vedi Sovrascrittura del File di Configurazione Predefinito per un esempio pratico CLI.

Link to this sectionFAQ#

Link to this sectionCome posso migliorare le prestazioni del mio modello YOLO durante l'addestramento?#

Migliora le prestazioni regolando gli iperparametri come batch size, learning rate, momentum e weight decay. Regola le impostazioni di data augmentation, seleziona l'ottimizzatore giusto e utilizza tecniche come l'early stopping o la mixed precision. Per i dettagli, vedi la Guida all'Addestramento.

Link to this sectionQuali sono gli iperparametri chiave per l'accuratezza del modello YOLO?#

Gli iperparametri chiave che influenzano l'accuratezza includono:

  • Batch Size (batch): Dimensioni più grandi possono stabilizzare l'addestramento ma necessitano di più memoria.
  • Learning Rate (lr0): Tassi più piccoli offrono regolazioni fini ma una convergenza più lenta.
  • Momentum (momentum): Accelera i vettori di gradiente, smorzando le oscillazioni.
  • Image Size (imgsz): Dimensioni più grandi migliorano l'accuratezza ma aumentano il carico computazionale.

Regolali in base al tuo dataset e hardware. Scopri di più in Impostazioni di Addestramento.

Link to this sectionCome imposto il learning rate per addestrare un modello YOLO?#

Il learning rate (lr0) è cruciale; inizia con 0.01 per SGD o 0.001 per Adam optimizer. Monitora le metriche e regola secondo necessità. Usa scheduler di learning rate a coseno (cos_lr) o warmup (warmup_epochs, warmup_momentum). I dettagli sono nella Guida all'Addestramento.

Link to this sectionQuali sono le impostazioni di inferenza predefinite per i modelli YOLO?#

Le impostazioni predefinite includono:

  • Confidence Threshold (conf=0.25): Confidenza minima per i rilevamenti.
  • IoU Threshold (iou=0.7): Per la Non-Maximum Suppression (NMS).
  • Image Size (imgsz=640): Ridimensiona le immagini di input.
  • Device (device=None): Seleziona CPU, GPU, Apple MPS o Huawei Ascend NPU (npu).

Per una panoramica completa, vedi Impostazioni di Predizione e la Guida alla Predizione.

Link to this sectionPerché utilizzare l'addestramento in mixed precision con i modelli YOLO?#

L'addestramento in mixed precision (amp=True) riduce l'utilizzo della memoria e accelera l'addestramento utilizzando FP16 e FP32. È vantaggioso per le GPU moderne, consentendo modelli più grandi e computazioni più rapide senza una significativa perdita di accuratezza. Scopri di più nella Guida all'Addestramento.

Commenti