Configurazione#
Le impostazioni e gli iperparametri di YOLO svolgono un ruolo fondamentale nelle prestazioni, nella velocità e nell'accuratezza del modello. Queste impostazioni possono influenzare il comportamento del modello in varie fasi, tra cui addestramento, validazione e predizione.
Guarda: Padroneggiare Ultralytics YOLO: configurazione
I comandi Ultralytics utilizzano la sintassi seguente:
yolo TASK MODE ARGSDove:
TASK(facoltativo) è uno tra (detect, segment, semantic, depth, classify, pose, obb)MODE(obbligatorio) è uno tra (train, val, predict, export, track, benchmark)ARGS(facoltativo) sono coppiearg=valuecomeimgsz=640che sovrascrivono i valori predefiniti.
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 visione artificiale, tra cui:
- Rilevamento: il rilevamento di oggetti identifica e localizza gli oggetti in un'immagine o in un video.
- Segmentazione: la segmentazione delle istanze suddivide un'immagine o un video in regioni corrispondenti a oggetti o classi differenti.
- Segmentazione semantica (
semantic): la segmentazione semantica assegna un'etichetta di classe a ogni pixel di un'immagine per una comprensione densa della scena. - Profondità (
depth): la stima monoculare della profondità predice una mappa di profondità per pixel, in metri, a partire da una singola immagine RGB. - Classificazione: la classificazione delle immagini predice l'etichetta di classe di un'immagine in ingresso.
- Posa: la stima della posa identifica gli oggetti e stima i relativi punti chiave in un'immagine o in un video.
- OBB: gli oriented bounding box utilizzano riquadri di delimitazione ruotati, adatti alle immagini satellitari o mediche.
| Argomento | Predefinito | Descrizione |
|---|---|---|
task | 'detect' | Specifica il task YOLO: detect per il rilevamento di 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 riquadri di delimitazione orientati. Ogni task è progettato per specifici output e problemi nell'analisi di immagini e video. |
Modalità#
I modelli Ultralytics YOLO operano in diverse modalità, ciascuna progettata per una fase specifica del ciclo di vita del modello:
- Train: addestra un modello YOLO su un dataset personalizzato.
- Val: convalida un modello YOLO addestrato.
- Predict: usa un modello YOLO addestrato per fare 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: misura la velocità e la precisione delle esportazioni YOLO (ONNX, TensorRT, ecc.).
| Argomento | Predefinito | Descrizione |
|---|---|---|
mode | 'train' | Specifica la modalità operativa del modello YOLO: train per l'addestramento del modello, val per la convalida, predict per l'inferenza, export per la conversione 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. |
Impostazioni di Train#
Le impostazioni di addestramento per i modelli YOLO includono iperparametri e configurazioni che influiscono sulle prestazioni, sulla velocità e sulla precisione del modello. Tra le impostazioni principali figurano la dimensione del batch, il tasso di apprendimento, il momento e il decadimento dei pesi. 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.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Specifica il file del modello da usare per l'addestramento. Accetta il percorso di un modello pretrained .pt oppure di un file di configurazione .yaml. È essenziale per definire la struttura del modello o inizializzare i pesi. |
data | str | None | Percorso del file YAML del dataset (ad es. coco8.yaml), che contiene i percorsi dei dati di addestramento e dei dati di convalida, i nomi delle classi e il numero di classi. Per la classificazione, invece, accetta una directory del dataset o il nome di un dataset integrato (ad es. imagenet10). |
epochs | int | 100 | Numero totale di epoche di addestramento. Ogni epoca corrisponde a un passaggio completo sull'intero dataset. Modificare questo valore può influire sulla durata dell'addestramento e sulle prestazioni del modello. |
time | float | None | Durata massima dell'addestramento in ore. Se impostata, questa opzione sostituisce l'argomento epochs e consente di interrompere automaticamente l'addestramento dopo la durata specificata. Utile per gli scenari di addestramento con limiti di tempo. |
patience | int | 100 | Numero di epoche da attendere senza miglioramenti nelle metriche di convalida prima di interrompere anticipatamente l'addestramento. Aiuta a prevenire l'overfitting interrompendo l'addestramento quando le prestazioni raggiungono un plateau. |
batch | int o float | 16 | Dimensione del batch, con tre modalità: imposta un valore intero (ad es. batch=16), usa la modalità automatica per un utilizzo del 60% della memoria GPU (batch=-1) oppure la modalità automatica con la frazione di utilizzo specificata (batch=0.70). |
imgsz | int | 640 | Dimensione delle immagini di destinazione per l'addestramento. Le immagini vengono ridimensionate a quadrati con lati pari al valore specificato (se rect=False); i modelli YOLO mantengono le proporzioni, mentre RT-DETR no. Influisce sulla precisione del modello e sulla complessità computazionale. |
save | bool | True | Consente di salvare i checkpoint di addestramento e i pesi finali del modello. Utile per riprendere l'addestramento o per la distribuzione del modello. |
save_period | int | -1 | Frequenza di salvataggio dei checkpoint del modello, specificata in epoche. Il valore -1 disattiva questa funzione. Utile per salvare modelli intermedi durante sessioni di addestramento prolungate. |
cache | bool o str | False | Consente di memorizzare nella cache le immagini del dataset in memoria (True/ram), su disco (disk) oppure di disattivare la cache (False). Aumenta la velocità di addestramento riducendo le operazioni di I/O su disco, a fronte di un maggiore utilizzo della memoria. |
device | int o str o list | None | Specifica 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), NPU Huawei Ascend (device=npu:0 o device=npu:0,1), Intel XPU (device=xpu:0), oppure la selezione automatica di una GPU inattiva (device=-1) o di più GPU inattive (device=[-1,-1]). |
workers | int | 8 | Numero di thread worker per il caricamento dei dati (per RANK nell'addestramento Multi-GPU). Influisce sulla velocità della preelaborazione dei dati e del loro invio al modello; è particolarmente utile nelle configurazioni multi-GPU. |
project | str | None | Nome della directory del progetto in cui vengono salvati gli output dell'addestramento. Consente di organizzare le diverse prove. |
name | str | None | Nome dell'esecuzione di addestramento. Viene usato per creare una sottodirectory nella cartella del progetto, dove vengono archiviati i log e gli output dell'addestramento. |
exist_ok | bool | False | Se è True, consente di sovrascrivere una directory progetto/nome già esistente. Utile per sperimentare in modo iterativo senza dover eliminare manualmente gli output precedenti. |
save_dir | str | None | Specifica la directory esatta in cui salvare gli output dell'esecuzione, sostituendo la combinazione project/name. Il percorso viene usato così com'è, senza incrementi automatici; le esecuzioni consecutive riutilizzano quindi la stessa directory. |
pretrained | bool o str | True | Determina se avviare l'addestramento da pesi pretrained. Può essere un valore booleano o il percorso stringa dei pesi da caricare. pretrained=False avvia l'addestramento con pesi inizializzati casualmente, mantenendo l'architettura del modello. |
cls_remap | bool | True | Quando esegui il fine-tuning su dataset diversi, copia le righe della testa di classificazione pretrained nel nuovo modello per le classi con lo stesso nome, così le classi corrispondenti mantengono il bias appreso e, se la larghezza della testa non cambia, anche i pesi. Si applica sia quando il numero di classi è diverso, sia quando è uguale ma l'ordine delle classi cambia. |
optimizer | str | 'auto' | Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp o auto per scegliere AdamW o MuSGD in base al numero di iterazioni di addestramento. Influisce sulla velocità e sulla stabilità della convergenza. |
seed | int | 0 | Imposta il seed casuale per l'addestramento, garantendo la riproducibilità dei risultati tra esecuzioni con le stesse configurazioni. |
deterministic | bool | True | Forza l'uso di algoritmi deterministici, garantendo la riproducibilità, ma può influire sulle prestazioni e sulla velocità a causa dell'esclusione degli algoritmi non deterministici. |
verbose | bool | True | Abilita l'output dettagliato durante l'addestramento, mostrando barre di avanzamento, metriche per epoca e informazioni aggiuntive sull'addestramento nella console. |
single_cls | bool | False | Tratta tutte le classi dei dataset multi-classe come un'unica classe durante l'addestramento. Utile per le attività di classificazione binaria o quando interessa rilevare la presenza di oggetti anziché classificarli. |
classes | list[int] | None | Specifica un elenco di ID delle classi su cui addestrare il modello. Utile per filtrare le classi e concentrarsi solo su alcune durante l'addestramento. |
rect | bool | False | Abilita la strategia di padding minimo: le immagini di un batch vengono riempite il meno possibile per raggiungere una dimensione comune, con il lato più lungo pari a imgsz. Può migliorare l'efficienza e la velocità, ma influire sulla precisione del modello. |
multi_scale | float | 0.0 | Varia casualmente imgsz a ogni batch di +/- multi_scale (ad es. 0.25 -> 0.75x a 1.25x), arrotondando ai multipli dello stride del modello; 0.0 disattiva l'addestramento multi-scala. |
cos_lr | bool | False | Usa uno scheduler del tasso di apprendimento cosinusoidale, che regola il tasso di apprendimento seguendo una curva cosinusoidale nel corso delle epoche. Aiuta a gestire il tasso di apprendimento per ottenere una convergenza migliore. |
close_mosaic | int | 10 | Disattiva l'aumento dei dati mosaic nelle ultime N epoche per stabilizzare l'addestramento prima del termine. Imposta a 0 per disattivare questa funzione. |
resume | bool | False | Riprende l'addestramento dall'ultimo checkpoint salvato. Carica automaticamente i pesi del modello, lo stato dell'ottimizzatore e il numero di epoche, proseguendo l'addestramento senza interruzioni. |
amp | bool o str | True | Imposta la precisione di addestramento: True o "fp16" usa FP16, "bf16" usa BF16 sui dispositivi CUDA supportati e False o "fp32" usa FP32. |
quantize | int o str | None | Imposta 8 (o "int8") per l'addestramento con consapevolezza della quantizzazione INT8 (QAT), che esegue il fine-tuning con la fake quantization nel ciclo, in modo che i pesi tollerino l'esportazione INT8. Consulta Addestramento con consapevolezza della quantizzazione. |
fraction | float, int o list | 1.0 | Sottoinsieme del dataset espresso come rapporto/numero o elenco [train, val, test]. 1 indica l'intero split, i numeri interi maggiori di 1 indicano il numero di immagini e solo la voce facoltativa del test accetta 0/0.0 per indicare nessun dato. Gli elenchi di due elementi mantengono completo il test. |
profile | bool | False | Abilita la profilazione delle velocità ONNX e TensorRT durante l'addestramento, utile per ottimizzare la distribuzione del modello. |
freeze | int o list | None | Blocca i primi N layer del modello oppure layer specifici in base all'indice o al nome del modulo (23.cv2, senza il prefisso model.), riducendo il numero di parametri addestrabili. Utile per il fine-tuning o l'apprendimento per trasferimento. |
lr0 | float | 0.01 | Tasso di apprendimento iniziale (ovvero SGD=1E-2, Adam=1E-3). Ignorato con il valore predefinito optimizer='auto'; specifica esplicitamente un ottimizzatore per usarlo. |
lrf | float | 0.01 | Tasso di apprendimento finale come frazione del tasso iniziale = (lr0 * lrf), usato insieme agli scheduler per regolare il tasso di apprendimento nel tempo. |
momentum | float | 0.937 | Fattore di momento per SGD o beta1 per gli ottimizzatori Adam, che determina quanto i gradienti passati contribuiscono all'aggiornamento corrente. |
weight_decay | float | 0.0005 | Termine di regolarizzazione L2, che penalizza i pesi elevati per prevenire l'overfitting. |
warmup_epochs | float | 3.0 | Numero di epoche di warmup del tasso di apprendimento, che aumenta gradualmente il tasso da un valore basso a quello iniziale per stabilizzare le prime fasi dell'addestramento. |
warmup_momentum | float | 0.8 | Momento iniziale per la fase di warmup, che viene regolato gradualmente fino al momento impostato durante il periodo di warmup. |
warmup_bias_lr | float | 0.1 | Tasso di apprendimento dei parametri di bias durante la fase di warmup, utile per stabilizzare l'addestramento del modello nelle prime epoche. Con il valore predefinito optimizer='auto' viene impostato automaticamente su 0.0; specifica esplicitamente un ottimizzatore per usarlo. |
distill_model | str | None | Percorso di un checkpoint del modello teacher (ad es. yolo26x.pt) per la distillazione della conoscenza. Se impostato, il modello student viene addestrato con una loss aggiuntiva di distillazione, guidata dal teacher congelato. |
dis | float | 6.0 | Peso della loss di distillazione aggiunta alle loss di rilevamento standard. Valori più alti aumentano l'influenza delle indicazioni sulle feature fornite dal teacher. |
box | float | 7.5 | Peso della componente della loss relativa ai riquadri nella funzione di perdita, che determina l'importanza attribuita alla previsione accurata delle coordinate dei riquadri di delimitazione. |
cls | float | 0.5 | Peso della loss di classificazione nella funzione di perdita totale, che determina l'importanza della corretta previsione della classe rispetto agli altri componenti. |
cls_pw | float | 0.0 | Esponente per la ponderazione delle classi, che gestisce lo sbilanciamento tra classi usando la frequenza inversa delle classi. 0.0 disattiva la ponderazione delle classi, mentre 1.0 applica la ponderazione completa basata sulla frequenza inversa. I valori tra 0 e 1 applicano una ponderazione parziale. |
dfl | float | 1.5 | Peso del termine di regressione delle distanze dei riquadri: loss focalizzata sulla distribuzione (DFL) quando la testa di rilevamento usa reg_max > 1; loss L1 sulle distanze normalizzate dei riquadri in YOLO26 senza DFL (reg_max: 1). |
pose | float | 12.0 | Peso della loss della posa nei modelli addestrati per la stima della posa, che determina l'importanza attribuita alla previsione accurata dei keypoint della posa. |
kobj | float | 1.0 | Peso della loss di objectness dei keypoint nei modelli di stima della posa, che bilancia la confidenza del rilevamento con la precisione della posa. |
rle | float | 1.0 | Peso della loss di stima della log-verosimiglianza residua nei modelli di stima della posa, che influisce sulla precisione della localizzazione dei keypoint. |
angle | float | 1.0 | Peso della loss dell'angolo nei modelli OBB, che influisce sulla precisione delle previsioni dell'angolo dei riquadri di delimitazione orientati. |
dlog | float | 1.0 | Peso della loss logaritmica invariante rispetto alla scala (SILog) nei modelli di stima della profondità, il termine principale che determina la precisione della profondità. |
dgrad | float | 0.5 | Peso della loss del gradiente nei modelli di stima della profondità, che penalizza gli errori sui bordi in profondità e favorisce contorni delle superfici più netti. |
dlam | float | 1.0 | Fattore di enfasi della varianza della loss SILog nei modelli di stima della profondità. 1.0 rende la loss completamente invariante rispetto alla scala, mentre 0.0 la riduce a una semplice RMSE logaritmica. |
nbs | int | 64 | Dimensione nominale del batch per la normalizzazione della loss. |
overlap_mask | bool | True | Determina se le maschere degli oggetti devono essere unite in un'unica maschera per l'addestramento o mantenute separate per ogni oggetto. In caso di sovrapposizione, durante l'unione la maschera più piccola viene sovrapposta a quella più grande. |
mask_ratio | int | 4 | Rapporto di sottocampionamento delle maschere di segmentazione, che influisce sulla risoluzione delle maschere usate durante l'addestramento. Non modifica la risoluzione delle maschere predette. |
dropout | float | 0.0 | Tasso di dropout per la regolarizzazione nelle attività di classificazione, che previene l'overfitting omettendo casualmente delle unità durante l'addestramento. |
val | bool | True | Abilita la convalida durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato. |
nms | bool, facoltativo | None | Seleziona la testa di inferenza usata per la convalida a ogni epoca, la selezione dei checkpoint e l'arresto anticipato. None o True usa la modalità one-to-many con NMS; False usa la testa senza NMS quando disponibile. Entrambe le teste mantengono le rispettive loss di addestramento. |
plots | bool | True | Genera e salva grafici delle metriche di addestramento e convalida, oltre a esempi di predizione, offrendo una rappresentazione visiva delle prestazioni del modello e dei progressi dell'apprendimento. |
compile | bool o str | False | Abilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True → "default", False → disattivazione oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se non è supportata, ripiega sulla modalità eager con un avviso. |
channels_last | bool | None | Usa 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 che su Windows, dove si è rivelato più lento. False lo disabilita, mentre True lo richiede esplicitamente. L'addestramento su CPU o MPS usa sempre NCHW (True viene ignorato con un avviso). |
max_det | int | 300 | Numero massimo di rilevamenti per immagine durante la convalida dell'addestramento. Per detect, segment, pose e OBB, il valore predefinito 300 aumenta fino al numero massimo di oggetti etichettati nei dati di addestramento/convalida solo se tale numero supera 300. Gli altri valori restano fissi; il superamento del limite genera un avviso. |
L'argomento batch offre tre opzioni di configurazione:
- Dimensione fissa del batch: specifica il numero di immagini per batch con un valore intero (ad es.
batch=16). - Modalità automatica (60% della memoria GPU): usa
batch=-1per regolare automaticamente l'utilizzo della memoria CUDA a circa il 60%. - Modalità automatica con frazione di utilizzo: imposta una frazione (ad es.
batch=0.70) per regolare la dimensione in base all'utilizzo specificato della memoria GPU. - Nessuna configurazione valida: se nessuna dimensione del batch candidata produce un profilo utilizzabile, AutoBatch genera un
RuntimeErroresplicito invece di ripiegare silenziosamente su un valore predefinito non pertinente.
Impostazioni di Predict#
Le impostazioni di predizione per i modelli YOLO includono iperparametri e configurazioni che influiscono sulle prestazioni, sulla velocità e sulla precisione durante l'inferenza. Tra le impostazioni principali figurano la soglia di confidenza, la soglia di soppressione non massima (NMS) e il numero di classi. Anche la dimensione e il formato dei dati di input, oltre a funzionalità aggiuntive come le maschere, influiscono sulle previsioni. Per ottenere prestazioni ottimali è essenziale regolare queste impostazioni.
Argomenti di inferenza:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
source | str o int o None | None | Specifica 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 in diretta. Se omessa, viene registrato un avviso e il modello usa le risorse demo integrate (ultralytics/assets oppure un URL demo per OBB). Supporta un'ampia gamma di formati e sorgenti, consentendo applicazioni flessibili con diversi tipi di input. |
conf | float | 0.25 | Imposta la soglia minima di confidenza per i rilevamenti. Gli oggetti rilevati con una confidenza inferiore a questa soglia vengono ignorati. Regolare questo valore può aiutare a ridurre i falsi positivi. |
iou | float | 0.7 | Soglia di intersezione sull'unione (IoU) per la soppressione non massima (NMS). Valori più bassi producono meno rilevamenti eliminando i riquadri sovrapposti; utile per ridurre i duplicati. |
imgsz | int o tuple | 640 | Dimensione di destinazione del letterbox. Un numero intero indica un N×N quadrato; una tupla indica (height, width). Con rect=True, il tensore effettivo può essere più piccolo di questa dimensione a causa del padding a rettangolo minimo. Usa rect=False per una dimensione fissa. Consulta Forma fissa e rettangolo minimo. |
rect | bool | True | Se True, usa il padding a rettangolo minimo quando possibile (batch con forme uguali e backend supportato). Se False, esegue sempre il padding fino a imgsz. Consulta Forma fissa e rettangolo minimo. |
quantize | int o str | None | Precisione dell'inferenza: 16/"fp16" e 32/"fp32"/non impostato selezionano il calcolo FP16 o FP32 per i modelli PyTorch e TorchScript; gli altri formati eseguono i calcoli alla precisione selezionata dal relativo artefatto e runtime. Con 16, OpenVINO continua ad arrotondare l'input a FP16 sul client e a riconvertirlo in FP32, senza modificare la precisione usata dal runtime per i calcoli. La quantizzazione INT8/PTQ viene configurata durante l'esportazione, poi viene usata caricando il modello esportato. Sostituisce il flag deprecato half. |
device | str | None | Specifica il dispositivo per l'inferenza (ad es. cpu, cuda:0, 0, npu o npu:0). Consente di scegliere tra CPU, una GPU specifica, una NPU Huawei Ascend o altri dispositivi di calcolo per l'esecuzione del modello. |
dnn | bool | False | Se True, usa il modulo DNN di OpenCV invece di ONNX Runtime per l'inferenza dei modelli ONNX. |
data | str | None | Percorso a un file YAML del dataset (ad es. coco8.yaml), letto solo per il suo names e solo quando il modello caricato non contiene nomi di classe propri: un'esportazione di terze parti oppure un'esportazione Ultralytics separata dai metadati inclusi. In caso contrario, il modello segnala class0, class1 e così via. |
batch | int | 1 | Specifica la dimensione del batch per l'inferenza (funziona solo se la sorgente è una directory, un file video o un file .txt). Una dimensione del batch maggiore può aumentare la produttività, riducendo il tempo totale necessario per l'inferenza. |
max_det | int | 300 | Numero massimo di rilevamenti consentiti per immagine. Limita il numero totale di oggetti che il modello può rilevare in una singola inferenza, evitando risultati eccessivi nelle scene dense. |
vid_stride | int | 1 | Intervallo tra i frame per gli input video. Consente di saltare dei frame nei video per velocizzare l'elaborazione, a scapito della risoluzione temporale. Il valore 1 elabora ogni frame; valori maggiori saltano dei frame. |
stream_buffer | bool | False | Determina se accodare i frame in arrivo per gli stream video. Se False, i frame meno recenti vengono scartati per fare spazio a quelli nuovi (ottimizzato per le applicazioni in tempo reale). Se True, i nuovi frame vengono accodati in un buffer, evitando che ne venga saltato qualcuno, ma causando latenza se gli FPS dell'inferenza sono inferiori a quelli dello stream. |
visualize | bool | False | Salva 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 Ultralytics PyTorch. |
augment | bool | False | Abilita l'aumento dei dati al test (TTA) per le predizioni, migliorando potenzialmente la robustezza del rilevamento a scapito della velocità di inferenza. Disponibile solo per i modelli Ultralytics PyTorch. |
agnostic_nms | bool | False | Abilita la soppressione non massima (NMS) indipendente dalla classe, sopprimendo i riquadri sovrapposti con punteggi inferiori tra classi diverse, anziché solo all'interno della stessa classe. Utile negli scenari di rilevamento multi-classe in cui la sovrapposizione tra classi è comune. Con l'inferenza senza NMS (nms=False su YOLO26 o YOLOv10), questa opzione impedisce solo che lo stesso rilevamento compaia con più etichette di classe (duplicati con IoU=1.0) e non applica la soppressione basata sulla soglia IoU tra riquadri distinti. |
classes | list[int] | None | Filtra le predizioni in base a un insieme di ID di classe. Vengono restituiti solo i rilevamenti appartenenti alle classi specificate. Utile per concentrarsi sugli oggetti pertinenti nelle attività di rilevamento multi-classe. |
retina_masks | bool | False | Restituisce maschere di segmentazione ad alta risoluzione. Se abilitata, le maschere restituite (masks.data) avranno le stesse dimensioni dell'immagine originale. Se disabilitata, avranno le dimensioni dell'immagine usate durante l'inferenza. |
embed | list[int] | None | Specifica i layer da cui 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 Ultralytics PyTorch. |
project | str | None | Nome della directory del progetto in cui vengono salvati i risultati delle predizioni se save è abilitato. |
name | str | None | Nome dell'esecuzione delle predizioni. Usato per creare una sottodirectory nella cartella del progetto, in cui vengono salvati i risultati delle predizioni se save è abilitato. |
stream | bool | False | Abilita un'elaborazione efficiente in termini di memoria per video lunghi o numerose immagini, restituendo un generatore di oggetti Results invece di caricare tutti i frame in memoria contemporaneamente. |
verbose | bool | True | Controlla se visualizzare nel terminale i log dettagliati dell'inferenza, fornendo un riscontro in tempo reale sul processo di predizione. |
compile | bool o str | False | Abilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True → "default", False → disattivazione oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se non è supportata, ripiega sulla modalità eager con un avviso. |
channels_last | bool | None | Usa il formato di memoria channels_last (NHWC) per l'inferenza PyTorch nativa. None lo abilita automaticamente su CPU x86 Linux e Windows con oneDNN e PyTorch 1.13 o versioni successive; False lo disabilita e True ne richiede l'uso sui dispositivi CPU x86 o CUDA supportati. ARM64, MPS, le versioni precedenti di PyTorch, le CPU senza oneDNN e i formati esportati come TensorRT e ONNX restano invariati. |
nms | bool, facoltativo | None | Esegue per impostazione predefinita un'inferenza one-to-many con NMS (None o True). Imposta False per usare la testa one-to-one senza NMS, se disponibile. Per i dettagli, consulta la guida al rilevamento end-to-end. |
Argomenti di visualizzazione:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se True, mostra le immagini o i video annotati in una finestra. Utile per ottenere un riscontro visivo immediato durante lo sviluppo o i test. |
save | bool | False or True | Abilita il salvataggio su file delle immagini o dei video annotati. Utile per documentare, analizzare ulteriormente o condividere i risultati. Per impostazione predefinita è True quando si usa la CLI e False quando si usa Python. |
save_frames | bool | False | Durante l'elaborazione dei video, salva i singoli frame come immagini. Utile per estrarre frame specifici o eseguire un'analisi dettagliata frame per frame. |
save_txt | bool | False | Salva i risultati del rilevamento in un file di testo, seguendo il formato [class] [x_center] [y_center] [width] [height] [confidence]. Utile per l'integrazione con altri strumenti di analisi. |
save_conf | bool | False | Include i punteggi di confidenza nei file di testo salvati. Aumenta il livello di dettaglio disponibile per la post-elaborazione e l'analisi. |
save_crop | bool | False | Salva immagini ritagliate dei rilevamenti. Utile per l'aumento dei dati del dataset, l'analisi o la creazione di dataset mirati a oggetti specifici. |
show_labels | bool | True | Mostra le etichette di ogni rilevamento nell'output visivo. Permette di identificare immediatamente gli oggetti rilevati. |
show_conf | bool | True | Mostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento. |
show_boxes | bool | True | Disegna riquadri di delimitazione attorno agli oggetti rilevati. Essenziale per identificarli visivamente e localizzarli nelle immagini o nei frame video. |
line_width | int or None | None | Specifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine. Consente di personalizzare la visualizzazione per una maggiore chiarezza. |
Impostazioni di validazione#
Le impostazioni di validazione dei modelli YOLO comprendono iperparametri e configurazioni per valutare le prestazioni su un dataset di validazione. Queste impostazioni influiscono sulle prestazioni, sulla velocità e sull'accuratezza. Tra le impostazioni comuni figurano la dimensione del batch, la frequenza di validazione e le metriche di prestazione. Anche le dimensioni e la composizione del dataset di validazione, insieme all'attività specifica, influiscono sul processo.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
data | str | None | Specifica il percorso del file YAML del dataset (ad es. coco8.yaml), che deve includere il percorso ai dati di validazione. Per la classificazione, invece, accetta una directory del dataset o il nome di un dataset integrato (ad es. imagenet10). |
imgsz | int | 640 | Definisce le dimensioni delle immagini di input. Tutte le immagini vengono ridimensionate a queste dimensioni prima dell'elaborazione. Dimensioni maggiori possono migliorare l'accuratezza sugli oggetti piccoli, ma aumentano il tempo di calcolo. |
batch | int | 16 | Imposta il numero di immagini per batch. Valori maggiori sfruttano in modo più efficiente la memoria GPU, ma richiedono più VRAM. Regola il valore in base alle risorse hardware disponibili. |
save_json | bool | False | Se True, salva i risultati in un file JSON per ulteriori analisi, l'integrazione con altri strumenti o l'invio a server di valutazione come COCO. Nei dataset di rilevamento valuta anche le predizioni con faster-coco-eval e riporta la 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. |
conf | float | 0.001 | Imposta la soglia minima di confidenza per i rilevamenti. Valori inferiori aumentano il richiamo, ma possono introdurre più falsi positivi. Le curve precisione-richiamo, la mAP e le matrici di confusione del rilevamento usano questo valore; un valore conf più alto, come 0.25, produce una matrice più simile all'output delle predizioni, ma può ridurre la mAP. La precisione e il richiamo riepilogativi usano la confidenza con F1 massimo, quindi potrebbero differire dai valori ricavati da confusion_matrix.png. Per la validazione OBB, il valore predefinito è 0.01 per ridurre l'uso di memoria. |
iou | float | 0.7 | Imposta la soglia di Intersection over Union per la soppressione non massima. Controlla l'eliminazione dei rilevamenti duplicati. |
max_det | int | 300 | Limita il numero massimo di rilevamenti per immagine. Per detect, segment, pose e OBB, se il valore è 300 viene aumentato fino al numero più alto di oggetti etichettati nello split convalidato quando un'immagine lo supera, con un avviso; qualsiasi altro valore viene mantenuto, con un avviso che il richiamo potrebbe essere limitato quando un'immagine lo supera. |
quantize | int o str | None | Precisione di validazione: 16/"fp16" e 32/"fp32"/non impostato selezionano il calcolo FP16 o FP32 per i modelli PyTorch e TorchScript; gli altri formati usano la precisione selezionata dal relativo artefatto e runtime. Con 16, OpenVINO continua ad arrotondare l'input a FP16 sul client e a riconvertirlo in FP32, senza modificare la precisione usata dal runtime. La quantizzazione INT8/PTQ si configura durante l'esportazione, quindi si usa validando il modello esportato. Sostituisce il flag deprecato half. |
device | str | None | Specifica il dispositivo per la validazione (cpu, cuda:0, npu, npu:0 ecc.). Se None, seleziona automaticamente il miglior dispositivo disponibile. È possibile specificare più dispositivi CUDA separandoli con virgole. |
dnn | bool | False | Se True, usa il modulo DNN di OpenCV per l'inferenza dei modelli ONNX, offrendo un'alternativa ai metodi di inferenza PyTorch. |
plots | bool | True | Quando è impostato su True, genera e salva grafici che confrontano le predizioni con le annotazioni reali, matrici di confusione e curve PR per la valutazione visiva delle prestazioni del modello. |
classes | list[int] | None | Specifica un elenco di ID di classe da valutare. Utile per filtrare le classi e concentrarsi solo su alcune durante la valutazione. |
rect | bool | True | Se True, usa l'inferenza rettangolare per l'elaborazione in batch, riducendo il padding e aumentando potenzialmente velocità ed efficienza elaborando le immagini con le proporzioni originali. Ignorato per la validazione depth, che adatta ogni immagine a un quadrato fisso di imgsz invece di applicare il padding. |
split | str | 'val' | Determina lo split del dataset da usare per la validazione (val, test o train). Offre flessibilità nella scelta della porzione di dati per la valutazione delle prestazioni. |
fraction | float, int o list | 1.0 | Sottoinsieme dello split convalidato. Con un elenco [train, val, test], si applica la voce corrispondente a split (1 = split completo, numeri interi superiori a 1 = numero di immagini; le voci omesse indicano lo split completo). Un valore scalare si applica solo con split=train; val e test usano quindi lo split completo. |
project | str | None | Nome della directory del progetto in cui vengono salvati i risultati della validazione. Aiuta a organizzare i risultati di esperimenti o modelli diversi. |
name | str | None | Nome dell'esecuzione di validazione. Usato per creare una sottodirectory nella cartella del progetto, in cui vengono archiviati i log e i risultati della validazione. |
verbose | bool | True | Se True, mostra informazioni dettagliate durante la validazione, incluse le metriche per classe, l'avanzamento dei batch e ulteriori informazioni di debug. |
save_txt | bool | False | Se True, salva i risultati del rilevamento in file di testo, uno per immagine; utile per ulteriori analisi, post-elaborazioni personalizzate o integrazioni con altri sistemi. |
save_conf | bool | False | Se True, include i valori di confidenza nei file di testo salvati quando è abilitato save_txt, fornendo risultati più dettagliati per l'analisi e il filtraggio. |
workers | int | 8 | Numero di thread worker per il caricamento dei dati. Valori maggiori possono velocizzare la pre-elaborazione dei dati, ma aumentare l'uso della CPU. Impostando il valore su 0 si usa il thread principale, una scelta che può risultare più stabile in alcuni ambienti. |
augment | bool | False | Abilita l'aumento dei dati al test (TTA) durante la validazione, migliorando potenzialmente l'accuratezza del rilevamento a scapito della velocità di inferenza, eseguendo l'inferenza su versioni trasformate dell'input. Disponibile solo per i modelli Ultralytics PyTorch. |
agnostic_nms | bool | False | Abilita la soppressione non massima indipendente dalla classe, sopprimendo i riquadri sovrapposti con punteggi inferiori indipendentemente dalla classe predetta. Utile per le applicazioni incentrate sulle istanze. Con l'inferenza senza NMS (nms=False su YOLO26 o YOLOv10), questa opzione impedisce solo che lo stesso rilevamento compaia con più etichette di classe (duplicati con IoU=1.0) e non applica la soppressione basata sulla soglia IoU tra riquadri distinti. |
single_cls | bool | False | Considera 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. |
visualize | bool | False | Visualizza le annotazioni reali, i veri positivi, i falsi positivi e i falsi negativi per ogni immagine. Utile per il debug e l'interpretazione del modello. |
show_labels | bool | True | Mostra le etichette delle classi nelle visualizzazioni di validazione quando visualize=True. Imposta False per una visualizzazione più chiara delle corrispondenze e degli errori. |
show_conf | bool | True | Mostra i punteggi di confidenza nelle visualizzazioni di validazione quando visualize=True. Imposta False per una visualizzazione più chiara delle corrispondenze e degli errori. |
compile | bool o str | False | Abilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True → "default", False → disattivazione oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Se non è supportata, ripiega sulla modalità eager con un avviso. |
channels_last | bool | None | Usa il formato di memoria channels_last (NHWC) per la validazione PyTorch nativa. None lo abilita automaticamente su CPU x86 Linux e Windows con oneDNN e PyTorch 1.13 o versioni successive; False lo disabilita e True ne richiede l'uso sui dispositivi CPU x86 o CUDA supportati. ARM64, MPS, le versioni precedenti di PyTorch, le CPU senza oneDNN e i formati esportati restano invariati; durante l'addestramento, la validazione mantiene il layout del modello di training. |
nms | bool, facoltativo | None | Esegue per impostazione predefinita un'inferenza one-to-many con NMS (None o True). Imposta False per usare la testa one-to-one senza NMS, se disponibile. Per i dettagli, consulta la guida al rilevamento end-to-end. |
Una configurazione accurata e la sperimentazione sono fondamentali per garantire prestazioni ottimali e rilevare e prevenire l'overfitting.
Impostazioni di esportazione#
Le impostazioni di esportazione dei modelli YOLO comprendono le configurazioni per salvare o esportare il modello e usarlo in ambienti diversi. Queste impostazioni incidono sulle prestazioni, sulle dimensioni e sulla compatibilità. Le impostazioni principali includono il formato del file esportato (ad es. ONNX, TensorFlow SavedModel), il dispositivo di destinazione (ad es. CPU, GPU) e funzionalità come le maschere. Anche l'attività del modello e i vincoli dell'ambiente di destinazione influiscono sul processo di esportazione.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'torchscript' | Formato di destinazione del modello esportato, ad esempio 'onnx', 'torchscript', 'engine' (TensorRT) o altri. Ogni formato garantisce la compatibilità con diversi ambienti di distribuzione. |
name | str | None | Nome dell'hardware di destinazione per i formati che lo richiedono: architettura Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; il valore predefinito è 'hailo8l'), chip Rockchip RKNN (il valore predefinito è 'rk3588'), SoC Huawei Ascend (un CANN --soc_version; il valore predefinito è 'Ascend310B4'), destinazione Qualcomm QNN HTP (il valore predefinito è '73') oppure dispositivo AMD Xilinx Versal AI Edge Series Gen 2 (il valore predefinito è 've2-xc2ve3858', il kit di valutazione VEK385). È distinto dalla coppia project/name usata per denominare le esecuzioni in altre modalità. |
imgsz | int o tuple | 640 | Dimensioni desiderate dell'immagine di input del modello. Può essere un numero intero per immagini quadrate (ad es. 640 per 640×640) oppure una tupla (height, width) per dimensioni specifiche. Se non specificata, l'esportazione riutilizza le dimensioni di training registrate nel checkpoint caricato: i checkpoint ufficiali YOLO26 registrano 768 per depth, 224 per classify, 1024 per OBB e 640 per le altre attività; un fine-tuning registra invece le dimensioni imgsz usate per l'addestramento. Un modello creato da un file YAML non ha dimensioni di training registrate e usa 640. |
optimize | bool | False | Abilita un'ottimizzazione superiore del compilatore per DEEPX, riducendo la latenza dell'inferenza e aumentando il tempo di compilazione. |
quantize | int o str | None | Precisione di quantizzazione: 16 (FP16, riduce le dimensioni del modello e può velocizzare l'inferenza sull'hardware supportato) oppure 8 (INT8/PTQ, comprime ulteriormente il modello con una perdita minima di accuratezza, principalmente per i dispositivi edge; richiede la calibrazione data/fraction); 32/non impostato indica FP32. Un checkpoint addestrato con quantize=8 viene sempre esportato in INT8: onnx e engine usano gli intervalli contenuti nel checkpoint senza calibrazione, mentre gli altri formati o le altre precisioni non sono accettati. 'w8a8' e 'w16a16' sono alias di 8 e 16; le precisioni miste 'w8a16' (pesi INT8 con attivazioni a 16 bit: CoreML, LiteRT, QNN) e 'w8a32' (INT8 dinamico: LiteRT) sono accettate solo da quei formati. Sostituisce i flag deprecati half/int8 (half=True → 16, int8=True → 8, ancora accettati con un avviso di deprecazione). Sono consentite solo le precisioni supportate dal formato di destinazione (vedi sotto). |
dynamic | bool | False | Consente dimensioni di input dinamiche per le esportazioni TorchScript, ONNX, OpenVINO, TensorRT, CoreML e MNN, offrendo maggiore flessibilità nella gestione di immagini di dimensioni diverse. |
simplify | bool | True | Semplifica il grafo ONNX intermedio con onnxslim per le esportazioni che lo generano (vedi Formati di esportazione), migliorando potenzialmente le prestazioni e la compatibilità con i motori di inferenza. |
opset | int | None | Specifica la versione opset di ONNX per le esportazioni che generano un grafo ONNX (vedi Formati di esportazione), garantendo la compatibilità con diversi parser e runtime ONNX. Se non impostata, usa l'ultima versione supportata. |
workspace | float o None | None | Imposta la dimensione massima dell'area di lavoro, in GiB, per le ottimizzazioni TensorRT, bilanciando l'uso della memoria e le prestazioni. Usa None per consentire a TensorRT di allocare automaticamente fino al massimo del dispositivo. |
nms | bool, facoltativo | None | None esporta le predizioni one-to-many grezze per la NMS esterna; True integra la NMS dove supportata; False seleziona la testa senza NMS, se disponibile. La NMS integrata in CoreML supporta detect, segment e pose con forme statiche. Consulta la guida al rilevamento end-to-end. |
conf | float | None | Soglia di confidenza usata ovunque venga generata la NMS durante l'esportazione: le esportazioni nms=True; le esportazioni detect non end-to-end di Hailo; e le esportazioni detect, pose e segment di IMX, che impostano internamente nms=True. Se non impostata, il valore predefinito è 0.25. |
iou | float | 0.7 | Soglia IoU usata ovunque venga generata la NMS durante l'esportazione: le esportazioni nms=True; le esportazioni detect non end-to-end di Hailo; e le esportazioni detect, pose e segment di IMX, che impostano internamente nms=True. |
max_det | int | 300 | Numero massimo di rilevamenti mantenuti nell'output del modello esportato. Si applica alle esportazioni nms=True in tutti i formati tranne il rilevamento CoreML, la cui pipeline NMS nativa non ha un limite di rilevamenti, oltre alle esportazioni di rilevamento end-to-end senza NMS (YOLO26, YOLOv10, limitate al numero di anchor disponibili) e alle esportazioni detect, pose e segment di IMX. |
agnostic_nms | bool | False | Abilita la NMS indipendente dalla classe ovunque la NMS in fase di esportazione venga generata tramite la pipeline standard nms=True, inclusa la fase NMS nativa di CoreML; sopprime i riquadri sovrapposti con punteggi inferiori tra classi diverse, anziché solo all'interno della stessa classe. Non viene applicata alle configurazioni NMS generate da Hailo o IMX, che non prevedono un'opzione indipendente dalla classe e restano consapevoli delle classi indipendentemente da questo flag. È inoltre integrata nelle esportazioni end-to-end senza NMS (YOLO26, YOLOv10), dove impedisce solo che lo stesso rilevamento compaia con più etichette di classe (duplicati con IoU=1.0), senza applicare la soppressione basata sulla soglia IoU tra riquadri distinti. |
batch | int | 1 | Specifica la dimensione del batch per l'inferenza del modello esportato oppure il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. I formati che non includono batch negli argomenti di esportazione (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx) esportano con batch 1 e rifiutano altri valori. |
device | str | None | Specifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (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. |
verbose | bool | False | Aumenta a VERBOSE il livello di dettaglio del log del builder TensorRT durante l'esportazione format='engine'. Gli altri formati di esportazione ignorano questa opzione. |
data | str | None | Percorso al file YAML del dataset, essenziale per la calibrazione della quantizzazione INT8; per la classificazione accetta invece una directory del dataset o il nome di un dataset integrato. Se non specificato con INT8 abilitato, Ultralytics seleziona un dataset di calibrazione specifico per l'attività, se necessario, oppure usa il dataset predefinito per l'attività del modello. Un checkpoint addestrato con quantize=8 contiene i propri intervalli INT8 e non richiede dati di calibrazione. |
split | str | 'val' | Split del dataset ('train', 'val' o 'test') usato per creare il dataloader di calibrazione della quantizzazione INT8 da data. |
fraction | float, int o list | 1.0 | Sottoinsieme del dataset usato per la calibrazione INT8: un rapporto, un numero di immagini o valori [train, val, test]. 1 indica lo split completo; i numeri interi superiori a 1 indicano il numero di immagini e solo la voce opzionale 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 e funzioni efficacemente nell'ambiente di destinazione.
Impostazioni delle soluzioni#
Le impostazioni di configurazione di Ultralytics Solutions offrono la flessibilità necessaria 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 su regioni. Queste opzioni consentono di apportare facilmente modifiche per ottenere risultati accurati e utili, adattati a esigenze specifiche.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso a un file modello Ultralytics YOLO. |
region | list o dict | None | Punti che definiscono la regione di interesse: un elenco di tuple (x, y) oppure 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 usano un valore predefinito predefinito. |
show_in | bool | True | Flag che controlla se visualizzare i conteggi in entrata nello stream video. |
show_out | bool | True | Flag che controlla se visualizzare i conteggi in uscita nello stream video. |
analytics_type | str | 'line' | Tipo di grafico, ad es. line, bar, area o pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mappa dei colori da usare per la mappa di calore. |
line_width | int | 2 | Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita il log per frame della soluzione, con forma dell'input, conteggi per classe e velocità di elaborazione. La chiamata di tracking è sempre silenziosa. |
json_file | str | None | Percorso al file JSON che contiene tutti i dati sulle coordinate dei parcheggi. |
up_angle | float | 145.0 | Soglia angolare per la posa «verso l'alto». |
kpts | list[int] | [6, 8, 10] | Elenco di tre indici di punti chiave usati per monitorare gli allenamenti. Questi punti chiave corrispondono alle articolazioni o alle parti del corpo, come spalle, gomiti e polsi, per esercizi come flessioni, trazioni, squat ed esercizi per gli addominali. |
down_angle | float | 90.0 | Soglia angolare per la posa «verso il basso». |
blur_ratio | float | 0.5 | Regola la percentuale di intensità della sfocatura, con valori nell'intervallo 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nome della directory in cui archiviare le rilevazioni ritagliate. |
records | int | 5 | Numero totale di rilevazioni necessario per attivare un'email con l'allarme di sicurezza. |
vision_point | tuple[int, int] | (20, 20) | Punto in cui VisionEye Solution traccia gli oggetti e disegna i percorsi. |
source | str | None | Percorso della sorgente di input (video, RTSP ecc.). Utilizzabile solo con l'interfaccia a riga di comando (CLI) di Solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | Dimensioni della figura in pollici per i grafici Analytics; (12.8, 7.2) genera un fotogramma da 1280×720. |
fps | float | 30.0 | Fotogrammi al secondo utilizzati per calcolare la velocità. |
max_hist | int | 5 | Numero massimo di punti storici da tracciare per oggetto per calcolare velocità e direzione. |
meter_per_pixel | float | 0.05 | Fattore di scala utilizzato per convertire la distanza in pixel in unità del mondo reale. |
max_speed | int | 120 | Velocità massima in km/h; le velocità stimate superiori vengono limitate a questo valore. |
data | str | 'images' | Percorso della directory di immagini utilizzata per la ricerca di somiglianze. |
imgsz | int | 640 | Dimensioni dell'immagine di input per l'inferenza del modello. |
Impostazioni di data augmentation#
Le tecniche di data augmentation sono essenziali per migliorare la robustezza e le prestazioni del modello YOLO, introducendo variabilità nei dati di addestramento e aiutando il modello a generalizzare meglio su dati mai visti. La tabella seguente descrive lo scopo e l'effetto di ciascun argomento di augmentation:
| Argomento | Tipo | Predefinito | Attività supportate | Intervallo | Descrizione |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Regola la tonalità dell'immagine di una frazione della ruota dei colori, introducendo variabilità cromatica. Aiuta il modello a generalizzare in diverse condizioni di illuminazione. Per classify, si applica solo quando auto_augment=None. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifica la saturazione dell'immagine di una frazione, influendo sull'intensità dei colori. Utile per simulare diverse condizioni ambientali. Per classify, si applica solo quando auto_augment=None. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifica 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. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Ruota casualmente l'immagine entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere gli oggetti con orientamenti diversi. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Trasla l'immagine orizzontalmente e verticalmente di una frazione delle sue dimensioni, aiutando il modello a imparare a rilevare oggetti parzialmente visibili. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 oppure una tupla (min, max) esplicita (non per classify) | Ridimensiona l'immagine con un fattore di scala, simulando oggetti a distanze diverse dalla fotocamera. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Inclina l'immagine di un angolo specificato, imitando l'effetto degli oggetti osservati da angolazioni diverse. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Applica all'immagine una trasformazione prospettica casuale, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Capovolge l'immagine verticalmente con la probabilità specificata, aumentando la variabilità dei dati senza alterare le caratteristiche dell'oggetto. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Capovolge l'immagine da sinistra a destra con la probabilità specificata; è utile per apprendere oggetti simmetrici e aumentare la varietà del dataset. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata; è utile per aumentare la robustezza a un ordinamento errato dei canali. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina quattro immagini di addestramento in una, simulando diverse composizioni di scene e interazioni tra oggetti. È molto efficace per comprendere scene complesse. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Fonde due immagini e le relative etichette, creando un'immagine composita. Migliora la capacità di generalizzazione del modello introducendo rumore nelle etichette e variabilità visiva. |
cutmix | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combina porzioni di due immagini, creando una fusione parziale e mantenendo al contempo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione. |
copy_paste | float | 0 | segment, semantic, obb | 0.0 - 1.0 | Frazione degli oggetti idonei incollati; flip li rispecchia all'interno dell'immagine, mentre mixup usa questo valore anche come probabilità di applicazione tra immagini. |
copy_paste_mode | str | flip | segment, semantic, obb | - | Specifica la strategia copy-paste da utilizzare. Le opzioni includono 'flip' e 'mixup'. |
auto_augment | str | randaugment | classify | - | Applica una policy di augmentation predefinita ('randaugment', 'autoaugment' o 'augmix') per migliorare le prestazioni del modello tramite la varietà visiva. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Cancella casualmente alcune regioni dell'immagine durante l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno evidenti. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | Trasformazioni Albumentations personalizzate per la data augmentation avanzata (solo API Python). Accetta un elenco di oggetti di trasformazione per esigenze di augmentation specifiche. |
Adatta queste impostazioni ai requisiti del dataset e dell'attività. Sperimentare con valori diversi può aiutarti a trovare la strategia di augmentation ottimale per ottenere le migliori prestazioni del modello.
Impostazioni di registrazione, checkpoint e grafici#
La registrazione, i checkpoint, i grafici e la gestione dei file sono importanti durante l'addestramento di un modello YOLO:
- Registrazione: monitora i progressi del modello e individua i problemi usando librerie come TensorBoard o scrivendo su un file.
- Checkpoint: salva il modello a intervalli regolari per riprendere l'addestramento o sperimentare configurazioni diverse.
- Grafici: visualizza le prestazioni e i progressi dell'addestramento usando librerie come Matplotlib o TensorBoard.
- Gestione dei file: organizza i file generati durante l'addestramento, 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.
| Argomento | Predefinito | Descrizione |
|---|---|---|
project | None | Specifica la directory principale in cui salvare le esecuzioni di addestramento. Se non specificata, le esecuzioni vengono salvate in runs/<task>. Ogni esecuzione viene salvata in una sottodirectory separata. |
name | None | Definisce il nome dell'esperimento. Se non specificato, YOLO usa il nome della modalità e lo incrementa per ogni esecuzione (ad es. train, train-2) per evitare sovrascritture. |
exist_ok | False | Determina se sovrascrivere una directory di esperimento esistente. True consente la sovrascrittura; False la impedisce. |
plots | True | Controlla la generazione e il salvataggio dei grafici di addestramento e convalida. Imposta il valore su True per creare grafici come le curve di perdita, le curve di precisione-richiamo e le predizioni di esempio, così da monitorare visivamente le prestazioni. |
save | True | Abilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. Imposta il valore su True per salvare periodicamente gli stati del modello e poter riprendere l'addestramento o distribuire il modello. |
File di configurazione personalizzato#
Carica un file YAML salvato per riutilizzare un insieme completo di argomenti senza passarli in linea. L'argomento cfg sovrascrive i valori di default.yaml, mentre gli argomenti aggiuntivi passati insieme continuano ad avere la precedenza.
| Argomento | Predefinito | Descrizione |
|---|---|---|
cfg | None | Percorso di un file YAML i cui valori sostituiscono le voci default.yaml. Per un esempio pratico con CLI, consulta Sovrascrivere il file di configurazione predefinito. |
Domande frequenti#
Migliora le prestazioni ottimizzando gli iperparametri, come dimensione del batch, tasso di apprendimento, momentum e decadimento dei pesi. Regola le impostazioni di data augmentation, scegli 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 influiscono sulla precisione includono:
- Dimensione del batch (
batch): dimensioni maggiori possono rendere più stabile l'addestramento, ma richiedono più memoria. - Tasso di apprendimento (
lr0): valori più bassi consentono regolazioni precise, ma rallentano la convergenza. - Momentum (
momentum): accelera i vettori del gradiente attenuando le oscillazioni. - Dimensioni dell'immagine (
imgsz): dimensioni maggiori migliorano la precisione, ma aumentano il carico computazionale.
Regola questi valori in base al dataset e all'hardware. Per saperne di più, consulta Impostazioni di addestramento.
- Dimensione del batch (
Il tasso di apprendimento (
lr0) è fondamentale; inizia con0.01per SGD o0.001per l'ottimizzatore Adam e imposta esplicitamenteoptimizer, poiché il valore predefinitoautoignoralr0. Monitora le metriche e apporta le modifiche necessarie. Usa scheduler del tasso di apprendimento coseno (cos_lr) o il riscaldamento (warmup_epochs,warmup_momentum). Per i dettagli, consulta la Guida all'addestramento.Le impostazioni predefinite includono:
- Soglia di confidenza (
conf=0.25): confidenza minima per le rilevazioni. - Soglia IoU (
iou=0.7): utilizzata per la soppressione dei massimi non locali (NMS). - Dimensioni dell'immagine (
imgsz=640): ridimensiona le immagini di input. - Dispositivo (
device=None): seleziona CPU, GPU CUDA, Apple MPS, Intel XPU (xpu) o Huawei Ascend NPU (npu).
Per una panoramica completa, consulta Impostazioni di predizione e la Guida alla predizione.
- Soglia di confidenza (
L'addestramento a precisione mista (
amp=True) riduce l'uso della memoria e accelera l'addestramento usando FP16 e FP32. È vantaggioso con le GPU moderne, perché consente di usare modelli più grandi e calcoli più veloci senza una perdita significativa di precisione. Per saperne di più, consulta la Guida all'addestramento.