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, inclusi l'addestramento, la validazione e la predizione.
Watch: Mastering Ultralytics YOLO: Configuration
I comandi Ultralytics utilizzano la seguente sintassi:
yolo TASK MODE ARGSDove:
TASK(opzionale) è uno tra (detect, segment, classify, pose, obb)MODE(obbligatorio) è uno tra (train, val, predict, export, track, benchmark)ARGS(opzionali) sono coppiearg=valuecomeimgsz=640che sovrascrivono i valori predefiniti.
Default ARG values are defined on this page and come from the cfg/default.yaml file.
Task
I modelli Ultralytics YOLO possono eseguire una varietà di task di computer vision, tra cui:
- Detect: Il rilevamento oggetti identifica e localizza oggetti all'interno di un'immagine o di un video.
- Segment: La segmentazione di istanze divide un'immagine o un video in regioni corrispondenti a oggetti o classi differenti.
- Classify: La classificazione immagini predice l'etichetta di classe di un'immagine in input.
- Pose: La stima della posa identifica oggetti e stima i loro keypoint in un'immagine o video.
- OBB: Gli Oriented Bounding Boxes utilizzano riquadri di delimitazione ruotati, adatti per immagini satellitari o mediche.
| Argomento | Predefinito | Descrizione |
|---|---|---|
task | 'detect' | Specifica il task YOLO: detect per il rilevamento oggetti, segment per la segmentazione, classify per la classificazione, pose per la stima della posa e obb per gli Oriented Bounding Boxes. Ogni task è pensato per output e problemi specifici nell'analisi di immagini e video. |
Modalità
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: Usa un modello YOLO addestrato per effettuare predizioni su nuove immagini o video.
- Export: Esporta un modello YOLO per il deployment.
- Track: Traccia oggetti in tempo reale usando un modello YOLO.
- Benchmark: Valuta la velocità e l'accuratezza degli export YOLO (ONNX, TensorRT, ecc.).
| Argomento | Predefinito | Descrizione |
|---|---|---|
mode | 'train' | Specifica la modalità operativa del modello YOLO: train per l'addestramento, val per la validazione, predict per l'inferenza, export per la conversione in formati di deployment, track per il tracciamento oggetti e benchmark per la valutazione delle prestazioni. Ogni modalità supporta fasi differenti, dallo sviluppo al deployment. |
Impostazioni 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 dimensione del batch, learning rate, momentum e weight decay. La scelta dell'ottimizzatore, della funzione di loss e la composizione del dataset influenzano anch'essi l'addestramento. La calibrazione e la sperimentazione sono cruciali per ottenere prestazioni ottimali. Per maggiori dettagli, consulta la funzione di entrypoint Ultralytics.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Specifica il file del modello per l'addestramento. Accetta un percorso verso un modello preaddestrato .pt o un file di configurazione .yaml. Essenziale per definire la struttura del modello o inizializzare i pesi. |
data | str | None | Percorso verso il file di configurazione del dataset (ad esempio, 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. |
epochs | int | 100 | Numero totale di epoche di addestramento. Ogni epoca rappresenta un passaggio completo sull'intero dataset. Regolare questo valore può influenzare la durata dell'addestramento e le prestazioni del modello. |
time | float | None | Tempo massimo di addestramento in ore. Se impostato, sovrascrive l'argomento epochs, consentendo all'addestramento di fermarsi automaticamente dopo la durata specificata. Utile per scenari di addestramento vincolati dal tempo. |
patience | int | 100 | Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere l'addestramento prematuramente. Aiuta a prevenire l'overfitting interrompendo l'addestramento quando le prestazioni si stabilizzano. |
batch | int o float | 16 | Dimensione del batch, con tre modalità: impostata come intero (ad esempio, batch=16), modalità automatica per un utilizzo della memoria GPU al 60% (batch=-1) o modalità automatica con una frazione di utilizzo specificata (batch=0.70). |
imgsz | int | 640 | Dimensione dell'immagine target per l'addestramento. Le immagini vengono ridimensionate a quadrati con lati uguali al valore specificato (se rect=False), preservando il rapporto d'aspetto per i modelli YOLO ma non per RT-DETR. Influisce sull'accuratezza del modello e sulla complessità computazionale. |
save | bool | True | Abilita il salvataggio dei checkpoint di addestramento e dei pesi finali del modello. Utile per riprendere l'addestramento o per il deployment del modello. |
save_period | int | -1 | Frequenza 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. |
cache | bool | False | Abilita la memorizzazione nella cache delle immagini del dataset in memoria (True/ram), sul disco (disk) o la disabilita (False). Migliora la velocità di addestramento riducendo l'I/O del disco a costo di un maggiore utilizzo della memoria. |
device | int o str o list | None | Specifica 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 la selezione automatica della GPU più 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 se addestramento Multi-GPU). Influenza la velocità di pre-elaborazione dei dati e il 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 una conservazione organizzata di diversi esperimenti. |
name | str | None | Nome dell'esecuzione dell'addestramento. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono archiviati i log e gli output dell'addestramento. |
exist_ok | bool | False | Se True, consente di sovrascrivere una directory di progetto/nome esistente. Utile per esperimenti iterativi senza dover cancellare manualmente gli output precedenti. |
pretrained | bool o str | True | Determina se iniziare l'addestramento da pesi preaddestrati. Può essere un valore booleano o un percorso testuale verso i pesi da caricare. pretrained=False avvia l'addestramento da pesi inizializzati casualmente mantenendo l'architettura del modello. |
optimizer | str | 'auto' | Scelta dell'ottimizzatore per l'addestramento. Le opzioni includono SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, o auto per la selezione automatica basata sulla configurazione del modello. Influisce sulla velocità di convergenza e sulla stabilità. |
seed | int | 0 | Imposta il seme casuale per l'addestramento, garantendo la riproducibilità dei risultati tra esecuzioni diverse con le medesime configurazioni. |
deterministic | bool | True | Forza l'uso di algoritmi deterministici, garantendo la riproducibilità, ma potrebbe influire sulle prestazioni e sulla velocità a causa della restrizione sugli algoritmi non deterministici. |
verbose | bool | True | Abilita l'output dettagliato durante l'addestramento, visualizzando barre di avanzamento, metriche per epoca e ulteriori informazioni di addestramento nella console. |
single_cls | bool | False | Tratta tutte le classi nei dataset multi-classe come una singola classe durante l'addestramento. Utile per task di classificazione binaria o quando ci si concentra sulla presenza di oggetti piuttosto che sulla loro classificazione. |
classes | list[int] | None | Specifica una lista di ID di classe su cui effettuare l'addestramento. Utile per filtrare e concentrarsi solo su determinate classi durante l'addestramento. |
rect | bool | False | Abilita la strategia di padding minimo: le immagini in un batch vengono minimamente riempite per raggiungere una dimensione comune, con il lato più lungo uguale a imgsz. Può migliorare l'efficienza e la velocità, ma potrebbe influire sull'accuratezza del modello. |
multi_scale | float | 0.0 | Varia casualmente imgsz per ogni batch di +/- multi_scale (ad esempio, 0.25 -> 0.75x a 1.25x), arrotondando ai multipli dello stride del modello; 0.0 disabilita l'addestramento multi-scala. |
cos_lr | bool | False | Utilizza uno scheduler del learning rate a coseno, regolando il learning rate seguendo una curva a coseno nel corso delle epoche. Aiuta a gestire il learning rate per una migliore convergenza. |
close_mosaic | int | 10 | Disabilita la data augmentation mosaic nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. Impostarlo a 0 disabilita questa funzionalità. |
resume | bool | False | Riprende l'addestramento dall'ultimo checkpoint salvato. Carica automaticamente i pesi del modello, lo stato dell'ottimizzatore e il conteggio delle epoche, continuando l'addestramento senza interruzioni. |
amp | bool | True | Abilita l'addestramento in Mixed Precision (AMP) automatica, riducendo l'utilizzo della memoria e possibilmente velocizzando l'addestramento con un impatto minimo sulla precisione. |
fraction | float | 1.0 | Specifica la frazione del dataset da utilizzare per l'addestramento. Consente di addestrare su un sottoinsieme del dataset completo, utile per esperimenti o quando le risorse sono limitate. |
profile | bool | False | Abilita la profilazione delle velocità di ONNX e TensorRT durante l'addestramento, utile per ottimizzare il deployment del modello. |
freeze | int o list | None | Blocca i primi N strati del modello o quelli specificati per indice, riducendo il numero di parametri addestrabili. Utile per il fine-tuning o il transfer learning. |
lr0 | float | 0.01 | Learning rate iniziale (es. SGD=1E-2, Adam=1E-3). Regolare questo valore è fondamentale per il processo di ottimizzazione, influenzando la velocità con cui i pesi del modello vengono aggiornati. |
lrf | float | 0.01 | Learning rate finale come frazione di quello iniziale = (lr0 * lrf), utilizzato insieme agli scheduler per regolare il learning rate nel tempo. |
momentum | float | 0.937 | Fattore di momentum per SGD o beta1 per gli ottimizzatori Adam, che influenza l'integrazione dei gradienti passati nell'aggiornamento corrente. |
weight_decay | float | 0.0005 | Termine di regolarizzazione L2, che penalizza i pesi elevati per prevenire l'overfitting. |
warmup_epochs | float | 3.0 | Numero di epoche per il warmup del learning rate, aumentando gradualmente il learning rate da un valore basso a quello iniziale per stabilizzare l'addestramento nelle prime fasi. |
warmup_momentum | float | 0.8 | Momentum iniziale per la fase di warmup, che si adatta gradualmente al momentum impostato durante il periodo di warmup. |
warmup_bias_lr | float | 0.1 | Learning rate per i parametri di bias durante la fase di warmup, che aiuta a stabilizzare l'addestramento del modello nelle epoche iniziali. |
box | float | 7.5 | Peso della componente di perdita del box nella loss function, che influenza quanta enfasi viene posta sulla previsione accurata delle coordinate del bounding box. |
cls | float | 0.5 | Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della previsione corretta della classe rispetto ad altre componenti. |
cls_pw | float | 0.0 | Esponente per la ponderazione delle classi per gestire lo sbilanciamento delle classi usando la frequenza inversa. 0.0 disabilita la ponderazione delle classi, 1.0 applica la ponderazione completa per frequenza inversa. Valori tra 0 e 1 forniscono una ponderazione parziale. |
dfl | float | 1.5 | Peso della distribution focal loss, utilizzato in alcune versioni di YOLO per la classificazione fine-grained. |
pose | float | 12.0 | Peso della perdita di posa nei modelli addestrati per la stima della posa, influenzando l'enfasi sulla previsione accurata dei keypoint della posa. |
kobj | float | 1.0 | Peso della perdita di objectness dei keypoint nei modelli di stima della posa, bilanciando la confidenza del rilevamento con l'accuratezza della posa. |
rle | float | 1.0 | Peso della perdita di stima della log-likelihood residua nei modelli di stima della posa, che influisce sulla precisione della localizzazione dei keypoint. |
angle | float | 1.0 | Peso della perdita dell'angolo nei modelli obb, influenzando la precisione delle previsioni dell'angolo del bounding box orientato. |
nbs | int | 64 | Batch size nominale per la normalizzazione della perdita. |
overlap_mask | bool | True | Determina 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_ratio | int | 4 | Rapporto di downsample per le maschere di segmentazione, che influenza la risoluzione delle maschere utilizzate durante l'addestramento. |
dropout | float | 0.0 | Dropout rate per la regolarizzazione in compiti di classificazione, che previene l'overfitting omettendo casualmente unità durante l'addestramento. |
val | bool | True | Abilita la validazione durante l'addestramento, consentendo la valutazione periodica delle prestazioni del modello su un dataset separato. |
plots | bool | True | Genera e salva grafici delle metriche di addestramento e validazione, così come esempi di previsione, fornendo approfondimenti visivi sulle prestazioni del modello e sul progresso 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 → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Torna a eager con un avviso se non supportato. |
max_det | int | 300 | Specifica il numero massimo di oggetti conservati durante la fase di validazione dell'addestramento. |
L'argomento batch offre tre opzioni di configurazione:
- Dimensione Batch Fissa: Specifica il numero di immagini per batch con un numero intero (es.
batch=16). - Modalità Auto (60% Memoria GPU): Usa
batch=-1per l'adattamento automatico a circa il 60% dell'utilizzo della memoria CUDA. - Modalità Auto con Frazione di Utilizzo: Imposta una frazione (es.
batch=0.70) per regolare in base a un utilizzo specifico della memoria GPU.
Impostazioni di Previsione
Le impostazioni di previsione 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 la dimensione dei dati in input, il formato e funzionalità supplementari come le maschere influenzano le previsioni. La regolazione di queste impostazioni è essenziale per ottenere prestazioni ottimali.
Argomenti di inferenza:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
source | str o int o None | None | Specifica la sorgente dati per l'inferenza. Può essere un percorso immagine, file video, directory, URL o ID dispositivo per i feed live. Se omesso, viene registrato un avviso e il modello torna agli asset demo integrati (ultralytics/assets, o un URL demo per OBB). Supporta un'ampia gamma di formati e sorgenti, consentendo un'applicazione flessibile su diversi tipi di input. |
conf | float | 0.25 | Imposta la soglia di confidenza minima per i rilevamenti. Gli oggetti rilevati con una confidenza inferiore a questa soglia verranno ignorati. Regolare questo valore può aiutare a ridurre i falsi positivi. |
iou | float | 0.7 | Soglia Intersection Over Union (IoU) per la Non-Maximum Suppression (NMS). Valori più bassi comportano meno rilevamenti eliminando i box sovrapposti, utile per ridurre i duplicati. |
imgsz | int o tuple | 640 | Letterbox 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. |
rect | bool | True | Se True, usa il padding a rettangolo minimo quando possibile (batch con la stessa forma e backend supportato). Se False, aggiungi sempre il padding alla imgsz completa. Vedi Forma fissa vs rettangolo minimo. |
half | bool | False | Abilita l'inferenza in mezza precisione (FP16), che può velocizzare l'inferenza del modello su GPU supportate con un impatto minimo sull'accuratezza. |
device | str | None | Specifica il dispositivo per l'inferenza (es. cpu, cuda:0, 0, npu o npu:0). Consente agli utenti di scegliere tra CPU, una GPU specifica, Huawei Ascend NPU o altri dispositivi di calcolo per l'esecuzione del modello. |
batch | int | 1 | Specifica la dimensione del batch per l'inferenza (funziona solo quando la sorgente è una directory, un file video o un file .txt). Una dimensione del batch maggiore può fornire una produttività superiore, riducendo il tempo totale richiesto per l'inferenza. |
max_det | int | 300 | Numero massimo di rilevamenti consentiti per immagine. Limita il numero totale di oggetti che il modello può rilevare in una singola inferenza, prevenendo output eccessivi in scene dense. |
vid_stride | int | 1 | Stride dei fotogrammi per input video. Consente di saltare i fotogrammi nei video per velocizzare l'elaborazione a discapito della risoluzione temporale. Un valore di 1 elabora ogni fotogramma, valori più alti saltano i fotogrammi. |
stream_buffer | bool | False | Determina se mettere in coda i fotogrammi in arrivo per i flussi video. Se False, i vecchi fotogrammi vengono scartati per far spazio ai nuovi (ottimizzato per applicazioni in tempo reale). Se True, accoda i nuovi fotogrammi in un buffer, assicurando che non ne venga saltato nessuno, ma causando latenza se gli FPS dell'inferenza sono inferiori a quelli del flusso. |
visualize | bool | False | Attiva la visualizzazione delle caratteristiche del modello durante l'inferenza, offrendo spunti su ciò che il modello sta "vedendo". Utile per il debug e l'interpretazione del modello. |
augment | bool | False | Abilita la test-time augmentation (TTA) per le previsioni, migliorando potenzialmente la robustezza del rilevamento a discapito della velocità di inferenza. |
agnostic_nms | bool | False | Abilita la Non-Maximum Suppression (NMS) classe-agnostica, che unisce i riquadri sovrapposti di classi diverse. Utile in scenari di rilevamento multi-classe in cui la sovrapposizione tra classi è comune. Per i modelli end-to-end (YOLO26, YOLOv10), questo impedisce solo che lo stesso rilevamento appaia con più etichette di classe (duplicati IoU=1.0) e non esegue la soppressione basata sulla soglia IoU tra riquadri distinti. |
classes | list[int] | None | Filtra le previsioni su un set di ID classe. Verranno restituiti solo i rilevamenti appartenenti alle classi specificate. Utile per concentrarsi su oggetti rilevanti in attività di rilevamento multi-classe. |
retina_masks | bool | False | Restituisce maschere di segmentazione ad alta risoluzione. Le maschere restituite (masks.data) corrisponderanno alla dimensione dell'immagine originale se abilitato. Se disabilitato, avranno la dimensione dell'immagine utilizzata durante l'inferenza. |
embed | list[int] | None | Specifica i layer da cui estrarre i vettori di caratteristiche o embeddings. Utile per attività a valle come il clustering o la ricerca di similarità. |
project | str | None | Nome della directory del progetto in cui vengono salvati gli output di previsione se save è abilitato. |
name | str | None | Nome dell'esecuzione di previsione. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono memorizzati gli output di previsione se save è abilitato. |
stream | bool | False | Abilita l'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. |
verbose | bool | True | Controlla se visualizzare log di inferenza dettagliati nel terminale, fornendo feedback in tempo reale sul processo di previsione. |
compile | bool o str | False | Abilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True → "default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Torna a eager con un avviso se non supportato. |
end2end | bool | None | Sovrascrive la modalità end-to-end nei modelli YOLO che supportano l'inferenza senza NMS (YOLO26, YOLOv10). Impostandolo su False ti consente di eseguire la previsione utilizzando la pipeline NMS tradizionale, permettendoti inoltre di utilizzare l'argomento iou. Vedi la guida End-to-End Detection per i dettagli. |
Argomenti di visualizzazione:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test. |
save | bool | False or True | Abilita il salvataggio delle immagini o dei video annotati su file. Utile per la documentazione, ulteriori analisi o la condivisione dei risultati. È True per impostazione predefinita quando si utilizza la CLI e False quando si utilizza in Python. |
save_frames | bool | False | Durante l'elaborazione dei video, salva i singoli fotogrammi come immagini. Utile per estrarre fotogrammi specifici o per un'analisi dettagliata fotogramma per fotogramma. |
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. Migliora il dettaglio disponibile per la post-elaborazione e l'analisi. |
save_crop | bool | False | Salva immagini ritagliate dei rilevamenti. Utile per l'aumento dei dati, l'analisi o la creazione di dataset focalizzati su oggetti specifici. |
show_labels | bool | True | Visualizza le etichette per ogni rilevamento nell'output visivo. Fornisce una comprensione immediata degli oggetti rilevati. |
show_conf | bool | True | Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Offre informazioni sulla certezza del modello per ogni rilevamento. |
show_boxes | bool | True | Disegna riquadri di delimitazione attorno agli oggetti rilevati. Essenziale per l'identificazione visiva e la localizzazione degli oggetti in immagini o fotogrammi video. |
line_width | int or None | None | Specifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore viene regolato automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per maggiore chiarezza. |
Impostazioni di convalida
Le impostazioni di convalida per i modelli YOLO includono iperparametri e configurazioni per valutare le prestazioni su un dataset di convalida. Queste impostazioni influenzano le prestazioni, la velocità e l'accuratezza. Le impostazioni comuni includono la dimensione del batch, la frequenza di convalida e le metriche di prestazione. Anche la dimensione e la composizione del dataset di convalida, insieme all'attività specifica, influenzano il processo.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
data | str | None | Specifica il percorso al file di configurazione del dataset (ad esempio, coco8.yaml). Questo file dovrebbe includere il percorso ai dati di convalida. |
imgsz | int | 640 | Definisce la dimensione delle immagini di input. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. Dimensioni maggiori possono migliorare l'accuratezza per oggetti piccoli ma aumentano il tempo di calcolo. |
batch | int | 16 | Imposta 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_json | bool | False | Se True, salva i risultati in un file JSON per ulteriori analisi, integrazione con altri strumenti o invio a server di valutazione come COCO. |
conf | float | 0.001 | Imposta la soglia minima di confidenza per i rilevamenti. Valori inferiori aumentano il richiamo ma possono introdurre più falsi positivi. Utilizzato durante la convalida per calcolare le curve precisione-richiamo. |
iou | float | 0.7 | Imposta la soglia di Intersection Over Union per la Non-Maximum Suppression. Controlla l'eliminazione dei rilevamenti duplicati. |
max_det | int | 300 | Limita il numero massimo di rilevamenti per immagine. Utile in scene dense per evitare rilevamenti eccessivi e gestire le risorse computazionali. |
half | bool | False | Abilita il calcolo in mezza precisione (FP16), riducendo l'utilizzo della memoria e aumentando potenzialmente la velocità con un impatto minimo sull'accuratezza. |
device | str | None | Specifica il dispositivo per la convalida (cpu, cuda:0, npu, npu:0, ecc.). Quando None, seleziona automaticamente il miglior dispositivo disponibile. È possibile specificare più dispositivi CUDA separandoli con una virgola. |
dnn | bool | False | Se True, utilizza il modulo DNN di OpenCV per l'inferenza del modello ONNX, offrendo un'alternativa ai metodi di inferenza di PyTorch. |
plots | bool | True | Se impostato su True, genera e salva grafici delle previsioni rispetto alla ground truth, matrici di confusione e curve PR per la valutazione visiva delle prestazioni del modello. |
classes | list[int] | None | Specifica un elenco di ID classe da valutare. Utile per filtrare e concentrarsi solo su determinate classi durante la valutazione. |
rect | bool | True | Se True, utilizza l'inferenza rettangolare per il batching, riducendo il riempimento (padding) e aumentando potenzialmente la velocità e l'efficienza elaborando le immagini nel loro rapporto d'aspetto originale. |
split | str | 'val' | Determina lo split del dataset da utilizzare per la convalida (val, test o train). Consente flessibilità nella scelta del segmento di dati per la valutazione delle prestazioni. |
project | str | None | Nome della directory del progetto in cui vengono salvati gli output di convalida. Aiuta a organizzare i risultati di diversi esperimenti o modelli. |
name | str | None | Nome dell'esecuzione di convalida. Utilizzato per creare una sottodirectory all'interno della cartella del progetto, dove vengono memorizzati i log e gli output di convalida. |
verbose | bool | True | Se True, visualizza informazioni dettagliate durante il processo di convalida, 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, con un file per immagine, utile per ulteriori analisi, post-elaborazione personalizzata o integrazione con altri sistemi. |
save_conf | bool | False | Se True, include i valori di confidenza nei file di testo salvati quando save_txt è abilitato, fornendo un output più dettagliato per l'analisi e il filtraggio. |
workers | int | 8 | Numero di thread worker per il caricamento dei dati. Valori più alti possono velocizzare la pre-elaborazione dei dati ma possono aumentare l'utilizzo della CPU. L'impostazione su 0 utilizza il thread principale, che può essere più stabile in alcuni ambienti. |
augment | bool | False | Abilita la test-time augmentation (TTA) durante la convalida, migliorando potenzialmente l'accuratezza del rilevamento a discapito della velocità di inferenza eseguendo l'inferenza su versioni trasformate dell'input. |
agnostic_nms | bool | False | Abilita la Non-Maximum Suppression classe-agnostica, che unisce i riquadri sovrapposti indipendentemente dalla loro classe prevista. Utile per applicazioni focalizzate sulle istanze. Per i modelli end-to-end (YOLO26, YOLOv10), questo impedisce solo che lo stesso rilevamento appaia con più etichette di classe (duplicati IoU=1.0) e non esegue la soppressione basata sulla soglia IoU tra riquadri distinti. |
single_cls | bool | False | Tratta tutte le classi come una singola classe durante la convalida. Utile per valutare le prestazioni del modello su attività di rilevamento binario o quando le distinzioni di classe non sono importanti. |
visualize | bool | False | Visualizza le ground truth, i veri positivi, i falsi positivi e i falsi negativi per ogni immagine. Utile per il debug e l'interpretazione del modello. |
compile | bool o str | False | Abilita la compilazione del grafo torch.compile di PyTorch 2.x con backend='inductor'. Accetta True → "default", False → disabilita, oppure una modalità stringa come "default", "reduce-overhead", "max-autotune-no-cudagraphs". Torna a eager con un avviso se non supportato. |
end2end | bool | None | Sovrascrive la modalità end-to-end nei modelli YOLO che supportano l'inferenza senza NMS (YOLO26, YOLOv10). Impostandolo su False ti consente di eseguire la convalida utilizzando la pipeline NMS tradizionale, permettendoti inoltre di utilizzare l'argomento iou. |
La calibrazione attenta e la sperimentazione sono fondamentali per garantire prestazioni ottimali e per rilevare e prevenire l'overfitting.
Impostazioni di esportazione
Le impostazioni di esportazione per i modelli YOLO includono configurazioni per salvare o esportare il 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 l'attività del modello e i vincoli dell'ambiente di destinazione influenzano il processo di esportazione.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'torchscript' | Formato di destinazione per il modello esportato, come 'onnx', 'torchscript', 'engine' (TensorRT) o altri. Ogni formato abilita la compatibilità con diversi ambienti di distribuzione. |
imgsz | int o tuple | 640 | Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate (es. 640 per 640×640) o una tupla (height, width) per dimensioni specifiche. |
keras | bool | False | Abilita l'esportazione nel formato Keras per TensorFlow SavedModel, fornendo compatibilità con i servizi e le API di TensorFlow. |
optimize | bool | False | Applica l'ottimizzazione per dispositivi mobili durante l'esportazione in TorchScript, riducendo potenzialmente le dimensioni del modello e migliorando le prestazioni di inferenza. Non compatibile con il formato NCNN o dispositivi CUDA. Per DeepX, abilita una maggiore ottimizzazione del compilatore che riduce la latenza di inferenza e aumenta il tempo di compilazione. |
half | bool | False | Abilita la quantizzazione FP16 (mezza precisione), riducendo le dimensioni del modello e accelerando potenzialmente l'inferenza sull'hardware supportato. Non compatibile con la quantizzazione INT8 o esportazioni solo CPU. Disponibile solo per determinati formati, ad esempio ONNX (vedi sotto). |
int8 | bool | False | Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita minima di accuratezza, principalmente per edge device. Quando utilizzato con TensorRT, esegue la quantizzazione post-addestramento (PTQ). |
dynamic | bool | False | Consente dimensioni di input dinamiche per le esportazioni TorchScript, ONNX, OpenVINO, TensorRT e CoreML, migliorando la flessibilità nella gestione di dimensioni immagine variabili. Automaticamente impostato su True quando si utilizza TensorRT con INT8. |
simplify | bool | True | Semplifica il grafo del modello per le esportazioni ONNX con onnxslim, migliorando potenzialmente le prestazioni e la compatibilità con i motori di inferenza. |
opset | int | None | Specifica la versione dell'opset ONNX per la compatibilità con diversi parser e runtime ONNX. Se non impostato, utilizza 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'utilizzo della memoria e le prestazioni. Usa None per l'allocazione automatica da parte di TensorRT fino al massimo consentito dal dispositivo. |
nms | bool | False | Aggiunge 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 i modelli end2end. |
batch | int | 1 | Specifica la dimensione dell'inferenza in batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict. Per le esportazioni Edge TPU, questo valore è impostato automaticamente su 1. |
device | str | None | Specifica 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 usano automaticamente la GPU. |
data | str | '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. |
fraction | float | 1.0 | Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente di calibrare su un sottoinsieme dell'intero dataset, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset. |
end2end | bool | None | Sovrascrive la modalità end-to-end nei modelli YOLO che supportano l'inferenza senza NMS (YOLO26, YOLOv10). Impostandolo su False ti permette di esportare questi modelli rendendoli compatibili con la pipeline di post-elaborazione tradizionale basata su NMS. Vedi la guida al rilevamento End-to-End per i dettagli. |
Una configurazione attenta assicura che il modello esportato sia ottimizzato per il suo caso d'uso e funzioni efficacemente nell'ambiente di destinazione.
Impostazioni delle Soluzioni
Le impostazioni di configurazione delle Ultralytics Solutions offrono flessibilità per personalizzare i modelli per attività come il conteggio degli oggetti, la creazione di mappe di calore, il monitoraggio degli allenamenti, l'analisi dei dati, il tracciamento delle zone, la gestione delle code e il conteggio basato su regioni. Queste opzioni consentono facili regolazioni per risultati accurati e utili su misura per esigenze specifiche.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso verso un file modello Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Elenco di punti che definiscono la regione di conteggio. |
show_in | bool | True | Flag per controllare se visualizzare i conteggi in entrata sul flusso video. |
show_out | bool | True | Flag per controllare se visualizzare i conteggi in uscita sul flusso video. |
analytics_type | str | 'line' | Tipo di grafico, es. line, bar, area o pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mappa colori da utilizzare per la mappa di calore. |
json_file | str | None | Percorso al file JSON che contiene tutti i dati delle coordinate di parcheggio. |
up_angle | float | 145.0 | Soglia dell'angolo per la posa 'up'. |
kpts | list[int] | '[6, 8, 10]' | Elenco di tre indici dei punti chiave utilizzati per monitorare gli allenamenti. Questi punti chiave corrispondono alle articolazioni o parti del corpo, come spalle, gomiti e polsi, per esercizi come piegamenti, trazioni, squat e addominali. |
down_angle | int | 90 | Soglia dell'angolo per la posa 'down'. |
blur_ratio | float | 0.5 | Regola la percentuale di intensità della sfocatura, con valori nell'intervallo 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nome della directory per archiviare i rilevamenti ritagliati. |
records | int | 5 | Conteggio totale dei rilevamenti per attivare un'email con il sistema di allarme di sicurezza. |
vision_point | tuple[int, int] | (20, 20) | Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando la VisionEye Solution. |
source | str | None | Percorso verso la sorgente di input (video, RTSP, ecc.). Utilizzabile solo con l'interfaccia a riga di comando (CLI) delle Solutions. |
figsize | tuple[int, int] | (12.8, 7.2) | Dimensione della figura per grafici analitici come mappe di calore o grafici. |
fps | float | 30.0 | Fotogrammi al secondo utilizzati per i calcoli della velocità. |
max_hist | int | 5 | Punti storici massimi da tracciare per oggetto per i calcoli di velocità/direzione. |
meter_per_pixel | float | 0.05 | Fattore di scala utilizzato per convertire la distanza in pixel in unità del mondo reale. |
max_speed | int | 120 | Limite massimo di velocità nelle sovrapposizioni visive (utilizzato negli avvisi). |
data | str | 'images' | Percorso verso la directory delle immagini utilizzata per la ricerca di similarità. |
Impostazioni di Aumento
Le tecniche di aumento dei dati sono essenziali per migliorare la robustezza e le prestazioni del modello YOLO introducendo variabilità nei dati di addestramento, aiutando il modello a generalizzare meglio verso dati non visti. La seguente tabella delinea lo scopo e l'effetto di ogni argomento di aumento:
| Argomento | Tipo | Predefinito | Attività Supportate | Intervallo | Descrizione |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Regola la tonalità dell'immagine di una frazione della ruota dei colori, introducendo variabilità cromatica. Aiuta il modello a generalizzare in diverse condizioni di illuminazione. |
hsv_s | float | 0.7 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Altera la saturazione dell'immagine di una frazione, influenzando l'intensità dei colori. Utile per simulare diverse condizioni ambientali. |
hsv_v | float | 0.4 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Modifica il valore (luminosità) dell'immagine di una frazione, aiutando il modello a funzionare bene in varie condizioni di illuminazione. |
degrees | float | 0 | detect, segment, pose, obb | 0.0 - 180 | Ruota l'immagine casualmente entro l'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere oggetti a vari orientamenti. |
translate | float | 0.1 | detect, segment, pose, obb | 0.0 - 1.0 | Trasla l'immagine orizzontalmente e verticalmente di una frazione della dimensione dell'immagine, aiutando nell'imparare a rilevare oggetti parzialmente visibili. |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | Scala l'immagine di un fattore di guadagno, simulando oggetti a diverse distanze dalla fotocamera. |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | Inclina (shear) l'immagine di un grado specificato, mimando l'effetto di oggetti visti da diverse angolazioni. |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | Applica una trasformazione prospettica casuale all'immagine, migliorando la capacità del modello di comprendere gli oggetti nello spazio 3D. |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Capovolge l'immagine sottosopra con la probabilità specificata, aumentando la variabilità dei dati senza influenzare le caratteristiche dell'oggetto. |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Capovolge l'immagine da sinistra a destra con la probabilità specificata, utile per apprendere oggetti simmetrici e aumentare la diversità del dataset. |
bgr | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Scambia i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza contro ordinamenti errati dei canali. |
mosaic | float | 1 | detect, segment, pose, obb | 0.0 - 1.0 | Combina quattro immagini di addestramento in una, simulando diverse composizioni di scena e interazioni tra oggetti. Estremamente efficace per la comprensione di scene complesse. |
mixup | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Miscela due immagini e le relative etichette, creando un'immagine composita. Migliora la capacità del modello di generalizzare introducendo rumore nelle etichette e variabilità visiva. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Combina porzioni di due immagini, creando una miscela parziale pur mantenendo regioni distinte. Migliora la robustezza del modello creando scenari di occlusione. |
copy_paste | float | 0 | segment | 0.0 - 1.0 | Copia e incolla oggetti tra le immagini per aumentare le istanze degli oggetti. |
copy_paste_mode | str | flip | segment | - | Specifica la strategia copy-paste da utilizzare. Le opzioni includono 'flip' e 'mixup'. |
auto_augment | str | randaugment | classify | - | Applica una politica di aumento predefinita ('randaugment', 'autoaugment' o 'augmix') per migliorare le prestazioni del modello attraverso la diversità visiva. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Cancella casualmente regioni dell'immagine durante l'addestramento per incoraggiare il modello a concentrarsi su caratteristiche meno ovvie. |
augmentations | list | `` | detect, segment, pose, obb | - | Trasformazioni personalizzate di Albumentations 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 aumento ottimale per ottenere le migliori prestazioni del modello.
Impostazioni di logging, checkpoint e plotting
Il logging, i checkpoint, il plotting e la gestione dei file sono importanti quando si addestra un modello YOLO:
- Logging: Traccia il progresso del modello e diagnostica i 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 il progresso 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 tracciare i progressi e rende più semplice il debug e l'ottimizzazione.
| Argomento | Predefinito | Descrizione |
|---|---|---|
project | 'runs' | Specifica la directory principale per salvare le esecuzioni di addestramento. Ogni esecuzione viene salvata in una sottodirectory separata. |
name | 'exp' | Definisce il nome dell'esperimento. Se non specificato, YOLO incrementa questo nome per ogni esecuzione (ad esempio exp, exp-2) per evitare la sovrascrittura. |
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 validazione. Imposta su True per creare grafici come curve di perdita, curve di precision-recall e previsioni di esempio per il tracciamento visivo delle prestazioni. |
save | True | Abilita 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. |
File di configurazione personalizzato
Carica un YAML salvato per riutilizzare un set completo di argomenti senza passarli in linea. L'argomento cfg sovrascrive i valori di default.yaml, mentre gli argomenti aggiuntivi passati insieme hanno comunque la precedenza.
| Argomento | Predefinito | Descrizione |
|---|---|---|
cfg | None | Percorso verso un file YAML i cui valori sostituiscono le voci di default.yaml. Vedi Sovrascrittura del file di configurazione predefinito per un esempio pratico CLI. |
FAQ
Come 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 usa tecniche come l'arresto anticipato o la mixed precision. Per i dettagli, vedi la Guida all'addestramento.
Quali sono gli iperparametri chiave per l'accuratezza del modello YOLO?
Gli iperparametri chiave che influenzano l'accuratezza includono:
- Batch Size (
batch): Dimensioni maggiori possono stabilizzare l'addestramento ma richiedono più memoria. - Learning Rate (
lr0): Tassi minori offrono aggiustamenti fini ma una convergenza più lenta. - Momentum (
momentum): Accelera i vettori del gradiente, smorzando le oscillazioni. - Dimensione immagine (
imgsz): Dimensioni maggiori migliorano l'accuratezza ma aumentano il carico computazionale.
Regolali in base al tuo dataset e hardware. Scopri di più in Impostazioni di addestramento.
Come imposto il learning rate per addestrare un modello YOLO?
Il learning rate (lr0) è cruciale; inizia con 0.01 per SGD o 0.001 per l'ottimizzatore Adam. Monitora le metriche e regola secondo necessità. Usa scheduler del learning rate a coseno (cos_lr) o riscaldamento (warmup_epochs, warmup_momentum). I dettagli sono nella Guida all'addestramento.
Quali sono le impostazioni di inferenza predefinite per i modelli YOLO?
Le impostazioni predefinite includono:
- Soglia di confidenza (
conf=0.25): Confidenza minima per le rilevazioni. - Soglia IoU (
iou=0.7): Per la Non-Maximum Suppression (NMS). - Dimensione immagine (
imgsz=640): Ridimensiona le immagini di input. - Dispositivo (
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.
Perché usare l'addestramento in precisione mista con i modelli YOLO?
L'addestramento in precisione mista (amp=True) riduce l'utilizzo della memoria e velocizza l'addestramento usando FP16 e FP32. È vantaggioso per le GPU moderne, consentendo modelli più grandi e calcoli più veloci senza una perdita significativa di accuratezza. Scopri di più nella Guida all'addestramento.