Configurazione
Le impostazioni e gli iperparametri di YOLO svolgono un ruolo fondamentale per le prestazioni, la velocità e l'accuratezza del modello. Queste impostazioni possono influenzare il comportamento del modello in varie fasi, tra cui l'addestramento, la validazione e la previsione.
Guarda: Padroneggiare Ultralytics YOLO: Configurazione
Guarda: Mastering Ultralytics YOLO : Configurazione
Ultralytics I comandi utilizzano la seguente sintassi:
Esempio
Dove:
TASK
(opzionale) è uno dei seguenti (rilevare, segmento, classificare, posa, obb)MODE
(richiesto) è uno di (treno, valore, prevedere, esportazione, traccia, parametro di riferimento)ARGS
(opzionale) sonoarg=value
coppie comeimgsz=640
che sovrascrivono le impostazioni predefinite.
Predefinito ARG
I valori sono definiti in questa pagina e provengono dal file cfg/defaults.yaml
file.
Compiti
I modelli Ultralytics YOLO sono in grado di eseguire una serie di compiti di computer vision, tra cui:
- Rilevamento: Il rilevamento degli oggetti identifica e localizza gli oggetti all'interno di un'immagine o di un video.
- Segmento: La segmentazione delle istanze divide un'immagine o un video in regioni corrispondenti a diversi oggetti o classi.
- Classificare: la classificazione delle immagini predice l'etichetta di classe di un'immagine in ingresso.
- Pose: La stima della posa identifica gli oggetti e stima i loro punti chiave in un'immagine o in un video.
- OBB: Oriented Bounding Boxes utilizza caselle di delimitazione ruotate, adatte per immagini satellitari o mediche.
Argomento | Predefinito | Descrizione |
---|---|---|
task |
'detect' |
Specifica l'attività YOLO : detect per rilevamento degli oggetti, segment per la segmentazione, classify per la classificazione, pose per la stima della posa e obb per le bounding box orientate. Ogni compito è adattato a risultati e problemi specifici nell'analisi di immagini e video. |
Modalità
I modelli Ultralytics YOLO funzionano in diverse modalità, ciascuna progettata per una fase specifica del ciclo di vita del modello:
- Addestrare: Addestra un modello YOLO su un set di dati personalizzato.
- Val: convalida di un modello YOLO addestrato.
- Prevedere: Utilizzare un modello YOLO addestrato per fare previsioni su nuove immagini o video.
- Esportazione: Esporta un modello YOLO per la distribuzione.
- Traccia: Traccia gli oggetti in tempo reale utilizzando un modello YOLO .
- Benchmark: Eseguire un benchmark della velocità e della precisione delle esportazioni di 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 in formati di distribuzione, track per il tracciamento degli oggetti e benchmark per la valutazione delle prestazioni. Ogni modalità supporta fasi diverse, dallo sviluppo alla distribuzione. |
Impostazioni del treno
Le impostazioni di addestramento per i modelli YOLO comprendono iperparametri e configurazioni che influenzano le prestazioni, la velocità e la precisione del modello. Le impostazioni principali includono la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento del peso. Anche la scelta dell'ottimizzatore, della funzione di perdita e della composizione del set di dati hanno un impatto sulla formazione. La messa a punto e la sperimentazione sono fondamentali per ottenere prestazioni ottimali. Per maggiori dettagli, consultare la funzione entrypoint diUltralytics .
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Specifica il file del modello per l'addestramento. Accetta il percorso di un file .pt modello preaddestrato o un .yaml file di configurazione. Essenziale per definire la struttura del modello o per inizializzare i pesi. |
data |
str |
None |
Percorso del file di configurazione del set di dati (ad es, coco8.yaml ). Questo file contiene i parametri specifici del set di dati, compresi i percorsi per l'addestramento e la formazione. dati di convalida, nomi delle classi e numero di classi. |
epochs |
int |
100 |
Numero totale di epoche di addestramento. Ogni epoch rappresenta un passaggio completo sull'intero set di dati. La regolazione di questo valore può influire sulla durata dell'addestramento e sulle prestazioni del modello. |
time |
float |
None |
Tempo massimo di formazione in ore. Se impostato, sostituisce il valore epochs che consente di interrompere automaticamente l'addestramento dopo la durata specificata. Utile per scenari di addestramento con vincoli di tempo. |
patience |
int |
100 |
Numero di epoche da attendere senza miglioramenti nelle metriche di validazione prima di interrompere anticipatamente l'addestramento. Aiuta a prevenire l'overfitting, interrompendo l'addestramento quando le prestazioni raggiungono il livello massimo. |
batch |
int |
16 |
Dimensione del lottocon tre modalità: impostazione come numero intero (ad es, batch=16 ), modalità automatica per un utilizzo del 60% della memoria di GPU (batch=-1 ), o modalità automatica con frazione di utilizzo specificata (batch=0.70 ). |
imgsz |
int o list |
640 |
Dimensione dell'immagine target per l'addestramento. Tutte le immagini vengono ridimensionate a questa dimensione prima di essere inserite nel modello. Influisce sull'accuratezza 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 la distribuzione 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 i modelli intermedi durante lunghe sessioni di allenamento. |
cache |
bool |
False |
Abilita la cache delle immagini del dataset in memoria (True /ram ), su disco (disk ), oppure disattivarlo (False ). Migliora la velocità di addestramento riducendo l'I/O su disco al costo di un maggiore utilizzo della memoria. |
device |
int o str o list |
None |
Specifica il/i dispositivo/i di calcolo per l'addestramento: un singolo GPU (device=0 ), GPU multiple (device=0,1 ), CPU (device=cpu ), o MPS per il silicio Apple (device=mps ). |
workers |
int |
8 |
Numero di thread worker per il caricamento dei dati (per RANK se formazione multiGPU ). Influenza la velocità di preelaborazione dei dati e di alimentazione del modello, particolarmente utile nelle configurazioni multiGPU . |
project |
str |
None |
Nome della directory del progetto in cui vengono salvati i risultati dell'allenamento. Consente l'archiviazione organizzata di diversi esperimenti. |
name |
str |
None |
Nome della sessione di allenamento. Utilizzato per creare una sottocartella all'interno della cartella del progetto, in cui memorizzare i registri e i risultati dell'allenamento. |
exist_ok |
bool |
False |
Se è vero, consente di sovrascrivere una cartella di progetto/nome esistente. Utile per la sperimentazione iterativa senza dover cancellare manualmente i risultati precedenti. |
pretrained |
bool o str |
True |
Determina se iniziare l'addestramento da un modello preaddestrato. Può essere un valore booleano o un percorso stringa a un modello specifico da cui caricare i pesi. Migliora l'efficienza dell'addestramento e le prestazioni del modello. |
optimizer |
str |
'auto' |
Scelta dell'ottimizzatore per la formazione. Le opzioni includono SGD , Adam , AdamW , NAdam , RAdam , RMSProp ecc. auto per la selezione automatica in base alla 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 le 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 della limitazione degli algoritmi non deterministici. |
single_cls |
bool |
False |
Tratta tutte le classi in insiemi di dati multiclasse come una singola classe durante l'addestramento. Utile per compiti di classificazione binaria o quando ci si concentra sulla presenza di oggetti piuttosto che sulla classificazione. |
classes |
list[int] |
None |
Specifica un elenco di ID di classi su cui allenarsi. Utile per filtrare e concentrarsi solo su alcune classi durante l'addestramento. |
rect |
bool |
False |
Consente l'addestramento rettangolare, ottimizzando la composizione dei batch per ottenere un padding minimo. Può migliorare l'efficienza e la velocità, ma può influire sull'accuratezza del modello. |
multi_scale |
bool |
False |
Consente la formazione su più scale aumentando/diminuendo il numero di ore di formazione. imgsz fino a un fattore di 0.5 durante l'addestramento. Addestra il modello a essere più accurato con più imgsz durante l'inferenza. |
cos_lr |
bool |
False |
Utilizza uno scheduler del tasso di apprendimento del coseno, che regola il tasso di apprendimento seguendo una curva del coseno nel corso delle epoche. Aiuta a gestire il tasso di apprendimento per una migliore convergenza. |
close_mosaic |
int |
10 |
Disabilita l'aumento dei dati del mosaico nelle ultime N epoche per stabilizzare l'addestramento prima del completamento. L'impostazione a 0 disabilita questa funzione. |
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 automatico di precisione mista (AMP), riducendo l'uso della memoria e possibilmente accelerando l'addestramento con un impatto minimo sulla precisione. |
fraction |
float |
1.0 |
Specifica la frazione del set di dati da utilizzare per l'addestramento. Consente l'addestramento su un sottoinsieme dell'intero set di dati, utile per gli esperimenti o quando le risorse sono limitate. |
profile |
bool |
False |
Consente di profilare le velocità di ONNX e TensorRT durante l'addestramento, utile per ottimizzare la distribuzione del modello. |
freeze |
int o list |
None |
Congela i primi N strati del modello o strati specificati per indice, riducendo il numero di parametri addestrabili. Utile per la messa a punto o l'apprendimento per trasferimento. |
lr0 |
float |
0.01 |
Tasso di apprendimento iniziale (cioè SGD=1E-2 , Adam=1E-3 ). La regolazione di questo valore è fondamentale per il processo di ottimizzazione, in quanto influisce sulla velocità di aggiornamento dei pesi del modello. |
lrf |
float |
0.01 |
Tasso di apprendimento finale come frazione del tasso iniziale = (lr0 * lrf ), utilizzato insieme agli schedulatori per regolare il tasso di apprendimento nel tempo. |
momentum |
float |
0.937 |
Fattore di momentum per SGD o beta1 per gli ottimizzatori Adam, che influenza l'incorporazione dei gradienti passati nell'aggiornamento corrente. |
weight_decay |
float |
0.0005 |
Termine di regolarizzazione L2, che penalizza i pesi grandi per evitare l'overfitting. |
warmup_epochs |
float |
3.0 |
Numero di epoche per il riscaldamento del tasso di apprendimento, aumentando gradualmente il tasso di apprendimento da un valore basso al tasso di apprendimento iniziale per stabilizzare l'addestramento all'inizio. |
warmup_momentum |
float |
0.8 |
Slancio iniziale per la fase di riscaldamento, con regolazione graduale dello slancio impostato nel corso del periodo di riscaldamento. |
warmup_bias_lr |
float |
0.1 |
Tasso di apprendimento dei parametri di polarizzazione durante la fase di riscaldamento, che aiuta a stabilizzare l'addestramento del modello nelle epoche iniziali. |
box |
float |
7.5 |
Peso della componente box loss nella funzione di perdita, che influenza l'importanza attribuita alla previsione accurata delle coordinate del rettangolo di selezione. |
cls |
float |
0.5 |
Peso della perdita di classificazione nella funzione di perdita totale, che influisce sull'importanza della previsione della classe corretta rispetto agli altri componenti. |
dfl |
float |
1.5 |
Peso della perdita focale della distribuzione, utilizzato in alcune versioni di YOLO per una classificazione a grana fine. |
pose |
float |
12.0 |
Peso della perdita di posa nei modelli addestrati per la stima della posa, che influenza l'enfasi sulla previsione accurata dei punti chiave della posa. |
kobj |
float |
2.0 |
Peso della perdita di oggettività dei punti chiave nei modelli di stima della posa, bilanciando la fiducia nel rilevamento con l'accuratezza della posa. |
nbs |
int |
64 |
Dimensione nominale del lotto per la normalizzazione della perdita. |
overlap_mask |
bool |
True |
Determina se le maschere degli oggetti devono essere unite in un'unica maschera per l'addestramento o se devono essere mantenute separate per ogni oggetto. In caso di sovrapposizione, la maschera più piccola viene sovrapposta a quella più grande durante la fusione. |
mask_ratio |
int |
4 |
Rapporto di downsample per le maschere di segmentazione, che influisce sulla risoluzione delle maschere utilizzate durante l'addestramento. |
dropout |
float |
0.0 |
Tasso di abbandono per la regolarizzazione nei compiti di classificazione, per evitare l'overfitting mediante l'omissione casuale di unità durante l'addestramento. |
val |
bool |
True |
Abilita la convalida durante l'addestramento, consentendo una valutazione periodica delle prestazioni del modello su un set di dati separato. |
plots |
bool |
False |
Genera e salva i grafici delle metriche di addestramento e di convalida, nonché gli esempi di predizione, fornendo indicazioni visive sulle prestazioni del modello e sulla progressione dell'apprendimento. |
Nota sulle impostazioni delle dimensioni del batch
Il batch
argomento offre tre opzioni di configurazione:
- Dimensione fissa del lotto: Specificare il numero di immagini per batch con un numero intero (ad esempio, il numero di immagini per batch),
batch=16
). - Modalità Auto (60% GPU Memoria): Utilizzo
batch=-1
per la regolazione automatica a circa il 60% di utilizzo della memoria CUDA . - Modalità automatica con frazione di utilizzo: Impostare una frazione (ad es,
batch=0.70
) da regolare in base all'utilizzo della memoria GPU specificata.
Prevedere le impostazioni
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 principali includono 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 e le caratteristiche supplementari come le maschere influiscono sulle previsioni. La regolazione di queste impostazioni è essenziale per ottenere prestazioni ottimali.
Argomenti di inferenza:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Specifica l'origine dei dati per l'inferenza. Può essere un percorso di immagine, un file video, una directory, un URL o un ID dispositivo per i feed live. Supporta un'ampia gamma di formati e fonti, consentendo un'applicazione flessibile a 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. La regolazione di questo valore può contribuire a ridurre i falsi positivi. |
iou |
float |
0.7 |
Soglia di Intersection Over Union (IoU) per la soppressione non massima (NMS). Valori più bassi determinano un minor numero di rilevamenti eliminando le caselle sovrapposte, utili per ridurre i duplicati. |
imgsz |
int o tuple |
640 |
Definisce la dimensione dell'immagine per l'inferenza. Può essere un singolo numero intero 640 per il ridimensionamento quadrato o una tupla (altezza, larghezza). Un dimensionamento corretto può migliorare il rilevamento precisione e velocità di elaborazione. |
half |
bool |
False |
Abilita l'inferenza a mezza precisione (FP16), che può accelerare l'inferenza del modello sulle GPU supportate con un impatto minimo sulla precisione. |
device |
str |
None |
Specifica il dispositivo per l'inferenza (ad es, cpu , cuda:0 o 0 ). Consente agli utenti di scegliere tra CPU, uno specifico GPU 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 .txt file). Una dimensione maggiore del batch può garantire una maggiore 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, prevenendo un numero eccessivo di risultati in scene dense. |
vid_stride |
int |
1 |
Frame stride per gli ingressi video. Consente di saltare i fotogrammi nei video per accelerare l'elaborazione a scapito 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 abbandonati per ospitare quelli nuovi (ottimizzati per le applicazioni in tempo reale). Se True accoda i nuovi fotogrammi in un buffer, assicurando che nessun fotogramma venga saltato, ma causerà latenza se l'FPS dell'inferenza è inferiore all'FPS del flusso. |
visualize |
bool |
False |
Attiva la visualizzazione delle caratteristiche del modello durante l'inferenza, fornendo informazioni su ciò che il modello "vede". Utile per il debugging e l'interpretazione del modello. |
augment |
bool |
False |
Consente l'aumento del tempo di test (TTA) per le previsioni, migliorando potenzialmente la robustezza del rilevamento al costo della velocità di inferenza. |
agnostic_nms |
bool |
False |
Abilita la soppressione non massimale (NMS), che unisce le caselle sovrapposte di classi diverse. Utile in scenari di rilevamento multiclasse in cui la sovrapposizione di classi è comune. |
classes |
list[int] |
None |
Filtra le previsioni in base a un insieme di ID di classe. Verranno restituiti solo i rilevamenti appartenenti alle classi specificate. Utile per concentrarsi sugli oggetti rilevanti in compiti di rilevamento multiclasse. |
retina_masks |
bool |
False |
Restituisce maschere di segmentazione ad alta risoluzione. Le maschere restituite (masks.data ) corrisponderanno alle dimensioni dell'immagine originale, se abilitati. Se sono disabilitati, hanno la dimensione dell'immagine usata durante l'inferenza. |
embed |
list[int] |
None |
Specifica i livelli da cui estrarre 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 i risultati della predizione, se save è abilitato. |
name |
str |
None |
Nome della corsa di predizione. Utilizzato per creare una sottocartella all'interno della cartella del progetto, dove vengono memorizzati gli output della predizione se save è abilitato. |
stream |
bool |
False |
Consente un'elaborazione efficiente della memoria per video lunghi o numerose immagini, restituendo un generatore di oggetti Risultati invece di caricare tutti i fotogrammi in memoria in una sola volta. |
verbose |
bool |
True |
Controlla se visualizzare i log dettagliati dell'inferenza nel terminale, fornendo un feedback in tempo reale sul processo di predizione. |
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 |
Consente di salvare su file le immagini o i video annotati. Utile per la documentazione, per ulteriori analisi o per la condivisione dei risultati. Predefinito a True quando si usa CLI e False quando si usa 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. Aumenta i dettagli disponibili per la post-elaborazione e l'analisi. |
save_crop |
bool |
False |
Salva le immagini ritagliate dei rilevamenti. Utile per aumentare il set di dati, per l'analisi o per creare set di dati mirati per 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. Fornisce indicazioni 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 nelle immagini o nei fotogrammi video. |
line_width |
None or int |
None |
Specifica la larghezza della linea delle caselle di delimitazione. Se None La larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza. |
font_size |
float |
None |
Dimensione del carattere del testo per le annotazioni. Scala automaticamente con le dimensioni dell'immagine se impostata su None . |
font |
str |
'Arial.ttf' |
Nome o percorso del carattere per le annotazioni di testo nella visualizzazione. |
pil |
bool |
False |
Restituisce l'immagine come oggetto immagine PIL invece che come array numpy. |
kpt_radius |
int |
5 |
Raggio dei punti chiave quando si visualizzano i risultati della stima della posa. |
kpt_line |
bool |
True |
Collegare i punti chiave con linee quando si visualizza la stima della posa. |
masks |
bool |
True |
Visualizza le maschere di segmentazione nell'output di visualizzazione. |
probs |
bool |
True |
Includere le probabilità di classificazione nella visualizzazione. |
filename |
str |
None |
Percorso e nome del file per salvare l'immagine annotata. save=True . |
color_mode |
str |
'class' |
Specificare la modalità di colorazione delle visualizzazioni, ad esempio 'istanza' o 'classe'. |
txt_color |
tuple[int, int, int] |
(255, 255, 255) |
Colore del testo RGB per le annotazioni dei compiti di classificazione. |
Impostazioni di convalida
Le impostazioni di validazione per i modelli YOLO coinvolgono iperparametri e configurazioni per valutare le prestazioni su un set di dati di validazione. Queste impostazioni influenzano le prestazioni, la velocità e l'accuratezza. Le impostazioni più comuni includono la dimensione del lotto, la frequenza di convalida e le metriche di prestazione. Anche le dimensioni e la composizione del set di dati di convalida, insieme al compito specifico, influiscono sul processo.
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
data |
str |
None |
Specifica il percorso del file di configurazione del set di dati (ad esempio, coco8.yaml ). Questo file include i percorsi per dati di convalida, nomi delle classi e numero di classi. |
imgsz |
int |
640 |
Definisce la dimensione delle immagini in ingresso. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. Dimensioni maggiori possono migliorare la precisione per gli oggetti piccoli, ma aumentano il tempo di calcolo. |
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. Regolare in base alle risorse hardware disponibili. |
save_json |
bool |
False |
Se True salva i risultati in un file JSON per ulteriori analisi, per l'integrazione con altri strumenti o per l'invio a server di valutazione come COCO. |
save_hybrid |
bool |
False |
Se True salva una versione ibrida delle etichette che combina le annotazioni originali con le previsioni aggiuntive del modello. Utile per l'apprendimento semi-supervisionato e per il miglioramento dei set di dati. |
conf |
float |
0.001 |
Imposta la soglia minima di confidenza per i rilevamenti. Valori più bassi aumentano il richiamo, ma possono introdurre un maggior numero di falsi positivi. Utilizzato durante la convalida per calcolare le curve precisione-richiamo. |
iou |
float |
0.6 |
Imposta la soglia di intersezione sopra l'unione per la soppressione non massima. Controlla l'eliminazione dei 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 di calcolo. |
half |
bool |
True |
Consente il calcolo a mezza precisione (FP16), riducendo l'utilizzo della memoria e aumentando potenzialmente la velocità con un impatto minimo sulla precisione. |
device |
str |
None |
Specifica il dispositivo per la convalida (cpu , cuda: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 OpenCV Modulo DNN per l'inferenza del modello ONNX , che offre un'alternativa a PyTorch metodi di inferenza. |
plots |
bool |
False |
Quando è impostato su True genera e salva i grafici delle previsioni rispetto alla verità a terra, le matrici di confusione e le curve PR per una valutazione visiva delle prestazioni del modello. |
rect |
bool |
True |
Se True utilizza l'inferenza rettangolare per il batching, riducendo il padding e potenzialmente aumentando la velocità e l'efficienza dell'elaborazione delle immagini nel loro rapporto di aspetto originale. |
split |
str |
'val' |
Determina la suddivisione del set di dati da utilizzare per la validazione (val , test , o train ). Permette una certa flessibilità nella scelta del segmento di dati per la valutazione delle prestazioni. |
project |
str |
None |
Nome della directory del progetto in cui vengono salvati i risultati della convalida. Aiuta a organizzare i risultati di diversi esperimenti o modelli. |
name |
str |
None |
Nome dell'esecuzione di convalida. Utilizzato per creare una sottocartella all'interno della cartella del progetto, dove vengono memorizzati i log e gli output della convalida. |
verbose |
bool |
False |
Se True visualizza informazioni dettagliate durante il processo di convalida, comprese le metriche per classe, l'avanzamento del 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 e fornisce un output più dettagliato per l'analisi e il filtraggio. |
save_crop |
bool |
False |
Se True salva le immagini ritagliate degli oggetti rilevati, che possono essere utili per creare insiemi di dati mirati, per la verifica visiva o per un'ulteriore analisi dei singoli rilevamenti. |
workers |
int |
8 |
Numero di thread worker per il caricamento dei dati. Valori più alti possono accelerare la preelaborazione dei dati, ma possono aumentare l'utilizzo CPU . L'impostazione a 0 utilizza il thread principale, che può essere più stabile in alcuni ambienti. |
augment |
bool |
False |
Consente l'aumento del tempo di prova (TTA) durante la convalida, migliorando potenzialmente l'accuratezza del rilevamento al costo della velocità di inferenza, eseguendo l'inferenza su versioni trasformate dell'input. |
agnostic_nms |
bool |
False |
Abilita la soppressione non massimale indipendente dalla classe, che unisce le caselle sovrapposte indipendentemente dalla classe prevista. Utile per le applicazioni incentrate sull'istanza. |
single_cls |
bool |
False |
Tratta tutte le classi come un'unica classe durante la validazione. Utile per valutare le prestazioni del modello su compiti di rilevamento binari o quando le distinzioni di classe non sono importanti. |
Un'attenta messa a punto e la sperimentazione sono fondamentali per garantire prestazioni ottimali e per individuare e prevenire l 'overfitting.
Impostazioni di esportazione
Le impostazioni di esportazione per i modelli YOLO includono le configurazioni per il salvataggio o l'esportazione del modello per l'uso in ambienti diversi. Queste impostazioni influiscono sulle prestazioni, sulle dimensioni e sulla compatibilità. Le impostazioni principali includono il formato del file esportato (ad esempio, ONNX, TensorFlow SavedModel), il dispositivo di destinazione (ad esempio, CPU, GPU) e caratteristiche 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 per il modello esportato, ad esempio 'onnx' , 'torchscript' , 'engine' TensorRT) o altri. Ogni formato consente la compatibilità con diversi ambienti di distribuzione. |
imgsz |
int o tuple |
640 |
Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per le immagini quadrate (ad esempio, 640 per 640×640) o una tupla (height, width) per le dimensioni specifiche. |
keras |
bool |
False |
Consente l'esportazione in formato Keras per TensorFlow SavedModel, garantendo la compatibilità con i servizi e le API di TensorFlow . |
optimize |
bool |
False |
Applica l'ottimizzazione per i dispositivi mobili quando si esporta in TorchScript, riducendo potenzialmente le dimensioni del modello e migliorando le prestazioni dell'inferenza. Non è compatibile con il formato NCNN o con i dispositivi CUDA . |
half |
bool |
False |
Abilita la quantizzazione FP16 (mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza sull'hardware supportato. Non è compatibile con la quantizzazione INT8 o con le esportazioni CPU per ONNX. |
int8 |
bool |
False |
Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita minima di precisione, soprattutto per i dispositivi edge. Se usato con TensorRT, esegue la quantizzazione post-training (PTQ). |
dynamic |
bool |
False |
Consente dimensioni di input dinamiche per le esportazioni ONNX, TensorRT e OpenVINO , migliorando la flessibilità nella gestione di immagini di dimensioni diverse. Imposta automaticamente su True quando si usa TensorRT con INT8. |
simplify |
bool |
True |
Semplifica il grafico del modello per le esportazioni di ONNX con onnxslim potenzialmente migliorando le prestazioni e la compatibilità con i motori di inferenza. |
opset |
int |
None |
Specifica la versione dell'opset ONNX per la compatibilità con i vari ONNX e runtime diversi. Se non è impostata, utilizza l'ultima versione supportata. |
workspace |
float o None |
None |
Imposta la dimensione massima dell'area di lavoro in GiB per i file TensorRT ottimizzazioni, bilanciando l'uso della memoria e le prestazioni. Utilizzo None per l'assegnazione automatica da parte di TensorRT fino al massimo del dispositivo. |
nms |
bool |
False |
Aggiunge la soppressione non massima (NMS) al modello esportato, se supportata (vedere 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 batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in predict modalità. Per le esportazioni di Edge TPU , questo valore è automaticamente impostato su 1. |
device |
str |
None |
Specifica il dispositivo da esportare: GPU (device=0 ), CPU (device=cpu ), MPS per il silicio Apple (device=mps ) o DLA per NVIDIA Jetson (device=dla:0 o device=dla:1 ). Le esportazioni di TensorRT utilizzano automaticamente la GPU. |
data |
str |
'coco8.yaml' |
Percorso verso il set di dati file di configurazione (predefinito: coco8.yaml ), essenziale per la calibrazione della quantizzazione INT8. Se non viene specificato con INT8 abilitato, verrà assegnato un set di dati predefinito. |
Una configurazione accurata garantisce che il modello esportato sia ottimizzato per il caso d'uso e funzioni efficacemente nell'ambiente di destinazione.
Soluzioni Impostazioni
Le impostazioni di configurazione 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 sulle regioni. Queste opzioni consentono facili regolazioni per ottenere risultati accurati e utili, adattati alle esigenze specifiche.
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Percorso del file del modelloYOLO Ultralytics . |
region |
list |
[(20, 400), (1260, 400)] |
Elenco dei punti che definiscono la regione di conteggio. |
show_in |
bool |
True |
Flag per controllare se visualizzare o meno i conteggi nel flusso video. |
show_out |
bool |
True |
Flag per controllare se visualizzare i conteggi di uscita nel flusso video. |
analytics_type |
str |
line |
Tipo di grafico, cioè, line , bar , area , o pie . |
colormap |
int |
cv2.COLORMAP_JET |
Mappa dei colori da utilizzare per la mappa di calore. |
json_file |
str |
None |
Percorso del file JSON che contiene tutti i dati delle coordinate del parcheggio. |
up_angle |
float |
145.0 |
Soglia di angolazione per la posa "up". |
kpts |
list[int, int, int] |
[6, 8, 10] |
Elenco dei punti chiave utilizzati 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 e addominali. |
down_angle |
float |
90.0 |
Soglia di angolazione per la posa "giù". |
blur_ratio |
float |
0.5 |
Regola la percentuale dell'intensità della sfocatura, con valori compresi nell'intervallo 0.1 - 1.0 . |
crop_dir |
str |
"cropped-detections" |
Nome della directory per la memorizzazione dei rilevamenti ritagliati. |
records |
int |
5 |
Conteggio dei rilevamenti totali per attivare un'e-mail con il sistema di allarme di sicurezza. |
vision_point |
tuple[int, int] |
(50, 50) |
Il punto in cui la visione traccerà gli oggetti e disegnerà i percorsi utilizzando VisionEye Solution. |
tracker |
str |
'botsort.yaml' |
Specifica l'algoritmo di tracciamento da utilizzare, ad es, bytetrack.yaml o botsort.yaml . |
conf |
float |
0.3 |
Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare un maggior numero di oggetti, ma possono includere falsi positivi. |
iou |
float |
0.5 |
Imposta la soglia Intersection over Union (IoU) per il filtraggio dei rilevamenti sovrapposti. |
classes |
list |
None |
Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] tiene traccia solo delle classi specificate. |
verbose |
bool |
True |
Controlla la visualizzazione dei risultati del tracciamento, fornendo un output visivo degli oggetti tracciati. |
device |
str |
None |
Specifica il dispositivo per l'inferenza (ad es, cpu , cuda:0 o 0 ). Consente agli utenti di scegliere tra CPU, uno specifico GPU o altri dispositivi di calcolo per l'esecuzione del modello. |
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. |
line_width |
None or int |
None |
Specifica la larghezza della linea delle caselle di delimitazione. Se None La larghezza della linea viene regolata automaticamente in base alle dimensioni dell'immagine. Fornisce una personalizzazione visiva per la chiarezza. |
Impostazioni di aumento
Le tecniche di incremento dei dati sono essenziali per migliorare la robustezza e le prestazioni del modello YOLO introducendo variabilità nei dati di addestramento, aiutando il modello a generalizzarsi meglio ai dati non visti. La tabella seguente illustra lo scopo e l'effetto di ciascun argomento di incremento:
Argomento | Tipo | Predefinito | Gamma | Descrizione |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Regola la tonalità dell'immagine di una frazione della ruota dei colori, introducendo la variabilità del colore. Aiuta il modello a generalizzarsi in diverse condizioni di illuminazione. |
hsv_s |
float |
0.7 |
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 |
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.0 |
-180 - +180 |
Ruota l'immagine in modo casuale all'interno dell'intervallo di gradi specificato, migliorando la capacità del modello di riconoscere gli oggetti con diversi orientamenti. |
translate |
float |
0.1 |
0.0 - 1.0 |
Traduce l'immagine in orizzontale e in verticale di una frazione delle dimensioni dell'immagine, aiutando l'apprendimento del rilevamento di oggetti parzialmente visibili. |
scale |
float |
0.5 |
>=0.0 |
Ridimensiona l'immagine con un fattore di guadagno, simulando oggetti a distanze diverse dalla telecamera. |
shear |
float |
0.0 |
-180 - +180 |
Taglia l'immagine di un grado specifico, simulando l'effetto di oggetti visti da angolazioni diverse. |
perspective |
float |
0.0 |
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.0 |
0.0 - 1.0 |
Capovolge l'immagine con la probabilità specificata, aumentando la variabilità dei dati senza influire sulle caratteristiche dell'oggetto. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Capovolge l'immagine da sinistra a destra con la probabilità specificata, utile per l'apprendimento di oggetti simmetrici e per aumentare la diversità del set di dati. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Inverte i canali dell'immagine da RGB a BGR con la probabilità specificata, utile per aumentare la robustezza di un ordine errato dei canali. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Combina quattro immagini di addestramento in una sola, simulando diverse composizioni della scena e interazioni di oggetti. Molto efficace per la comprensione di scene complesse. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Fonde due immagini e le loro etichette, creando un'immagine composita. Migliora la capacità di generalizzazione del modello introducendo il rumore delle etichette e la variabilità visiva. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Copia e incolla gli oggetti tra le immagini, utile per aumentare le istanze degli oggetti e imparare l'occlusione degli oggetti. Richiede etichette di segmentazione. |
copy_paste_mode |
str |
'flip' |
- | Selezione del metodo di incremento copia-incolla tra le opzioni di ("flip" , "mixup" ). |
auto_augment |
str |
'randaugment' |
- | Applica automaticamente una politica di incremento predefinita (randaugment , autoaugment , augmix ), ottimizzando i compiti di classificazione attraverso la diversificazione delle caratteristiche visive. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Cancella a caso una parte dell'immagine durante l'addestramento alla classificazione, incoraggiando il modello a concentrarsi su caratteristiche meno evidenti per il riconoscimento. |
crop_fraction |
float |
1.0 |
0.1 - 1.0 |
Ritaglia l'immagine di classificazione a una frazione delle sue dimensioni per enfatizzare le caratteristiche centrali e adattarsi alle scale degli oggetti, riducendo le distrazioni dello sfondo. |
Regolare queste impostazioni per soddisfare i requisiti del set di dati e dell'attività. La sperimentazione di diversi valori può aiutare a trovare la strategia di incremento ottimale per ottenere le migliori prestazioni del modello.
Impostazioni di registrazione, checkpoint e plottaggio
La registrazione, i punti di controllo, il tracciamento e la gestione dei file sono importanti quando si addestra un modello YOLO :
- Registrazione: Tracciare i progressi del modello e diagnosticare i problemi utilizzando librerie come TensorBoard o scrivendo su un file.
- Punti di controllo: Salvare il modello a intervalli regolari per riprendere l'addestramento o sperimentare diverse configurazioni.
- Tracciatura: Visualizzare le prestazioni e i progressi dell'allenamento utilizzando librerie come matplotlib o TensorBoard.
- Gestione dei file: Organizzare i file generati durante l'allenamento, come i checkpoint, i file di log e i grafici, per facilitarne l'accesso e l'analisi.
Una gestione efficace di questi aspetti aiuta a tracciare i progressi e facilita il debugging e l'ottimizzazione.
Argomento | Predefinito | Descrizione |
---|---|---|
project |
'runs' |
Specifica la directory principale per il salvataggio delle sessioni di allenamento. Ogni sessione viene salvata in una sottodirectory separata. |
name |
'exp' |
Definisce il nome dell'esperimento. Se non specificato, YOLO incrementa questo nome per ogni esecuzione (ad esempio, exp , exp2 ) per evitare la sovrascrittura. |
exist_ok |
False |
Determina se sovrascrivere una directory di esperimenti esistente. True consente la sovrascrittura; False lo impedisce. |
plots |
False |
Controlla la generazione e il salvataggio dei grafici di formazione e convalida. Impostare su True per creare grafici come le curve di perdita, precisione-richiamo curve e previsioni di campioni per il monitoraggio visivo delle prestazioni. |
save |
False |
Consente di salvare i checkpoint di addestramento e i pesi finali del modello. Impostare su True per salvare periodicamente gli stati del modello, consentendo la ripresa dell'addestramento o la distribuzione del modello. |
FAQ
Come posso migliorare le prestazioni del mio modello YOLO durante l'allenamento?
Migliorate le prestazioni regolando iperparametri come la dimensione del batch, il tasso di apprendimento, il momentum e il decadimento del peso. Regolate le impostazioni di incremento dei dati, selezionate il giusto ottimizzatore e utilizzate tecniche come l'arresto anticipato o la precisione mista. Per maggiori dettagli, consultare la Guida all'addestramento.
Quali sono gli iperparametri chiave per l'accuratezza del modello YOLO ?
Gli iperparametri chiave che influenzano l'accuratezza includono
- Dimensione del lotto (
batch
): Le dimensioni più grandi possono stabilizzare l'allenamento, ma richiedono più memoria. - Tasso di apprendimento (
lr0
): I tassi più piccoli offrono regolazioni fini ma una convergenza più lenta. - Momento (
momentum
): Accelera i vettori del gradiente, smorzando le oscillazioni. - Dimensione immagine (
imgsz
): Dimensioni maggiori migliorano l'accuratezza ma aumentano il carico computazionale.
Regolare questi parametri in base al set di dati e all'hardware. Per saperne di più, consultate Impostazioni treno.
Come si imposta il tasso di apprendimento per l'addestramento di un modello YOLO ?
Il tasso di apprendimento (lr0
) è fondamentale; iniziare con 0.01
per SGD o 0.001
per Ottimizzatore Adam. Monitorare le metriche e regolare se necessario. Utilizzare gli scheduler del tasso di apprendimento del coseno (cos_lr
) o di riscaldamento (warmup_epochs
, warmup_momentum
). I dettagli sono riportati nella sezione Guida ai treni.
Quali sono le impostazioni di inferenza predefinite per i modelli di YOLO ?
Le impostazioni predefinite includono:
- Soglia di confidenza (
conf=0.25
): Fiducia minima per i rilevamenti. - Soglia IoU (
iou=0.7
): Per Soppressione non massima (NMS). - Dimensione immagine (
imgsz=640
): Ridimensiona le immagini in ingresso. - Dispositivo (
device=None
): Seleziona CPU o GPU.
Per una panoramica completa, vedere Impostazioni di Predict e la Guida di Predict.
Perché utilizzare una formazione mista di precisione con i modelli YOLO ?
Precisione mista formazione (amp=True
) riduce l'uso della memoria e velocizza l'addestramento utilizzando FP16 e FP32. È vantaggioso per le moderne GPU, in quanto consente modelli più grandi e calcoli più veloci senza una significativa perdita di precisione. Per saperne di più Guida ai treni.