Link to this sectionRisoluzione dei problemi comuni con YOLO#
Questa guida copre i problemi più comuni che incontrerai lavorando con Ultralytics YOLO26, raggruppati in base a dove si verificano: installazione, addestramento del modello, predizione e distribuzione. Vai alla categoria che corrisponde al tuo errore, oppure consulta le FAQ per risposte rapide. Ogni voce espone il problema e una soluzione concreta che puoi applicare direttamente.
Watch: Ultralytics YOLO26 Common Issues | Installation Errors, Model Training Issues
Link to this sectionProblemi comuni#
Link to this sectionErrori di installazione#
Gli errori di installazione possono derivare da vari motivi, come versioni incompatibili, dipendenze mancanti o configurazioni dell'ambiente non corrette. Per prima cosa, assicurati di fare quanto segue:
- Stai usando Python 3.8 o versioni successive come raccomandato.
- Assicurati di avere installata la versione corretta di PyTorch (1.8 o successiva).
- Valuta l'utilizzo di ambienti virtuali per evitare conflitti.
- Segui la guida all'installazione ufficiale passo dopo passo.
Inoltre, ecco le soluzioni ai problemi comuni di installazione.
Molti errori di importazione, GPU ed esportazione si risolvono semplicemente eseguendo un aggiornamento. Esegui pip install -U ultralytics e verifica che le tue versioni di PyTorch e CUDA siano compatibili prima di procedere con un debug più approfondito.
Link to this sectionErrori di importazione o problemi di dipendenze#
Se ricevi errori durante l'importazione di YOLO26 o riscontri conflitti di dipendenze, prova questi passaggi:
- Installazione pulita: Partire da un'installazione pulita può risolvere problemi imprevisti, specialmente dopo aggiornamenti che modificano la struttura o la funzionalità del pacchetto.
- Aggiorna regolarmente: Utilizza l'ultima versione della libreria, poiché le versioni precedenti potrebbero non essere compatibili con gli aggiornamenti recenti.
- Controlla le dipendenze: Verifica che tutte le dipendenze necessarie siano installate correttamente e che le loro versioni siano compatibili.
- Rivedi i cambiamenti: Se hai installato una versione precedente, fai riferimento alla documentazione ufficiale o al changelog per comprendere eventuali modifiche strutturali importanti.
Link to this sectionEsecuzione di YOLO26 su GPU#
Se hai difficoltà a eseguire YOLO26 su una GPU, prendi in considerazione i seguenti passaggi per la risoluzione dei problemi:
- Verifica la compatibilità e l'installazione di CUDA: Assicurati che la tua GPU sia compatibile con CUDA e che CUDA sia installato correttamente. Usa il comando
nvidia-smiper controllare lo stato della tua GPU NVIDIA e la versione di CUDA. - Controlla l'integrazione tra PyTorch e CUDA: Assicurati che PyTorch possa utilizzare CUDA eseguendo
import torch; print(torch.cuda.is_available())in un terminale Python. Se restituisce 'True', PyTorch è configurato per utilizzare CUDA. - Attivazione dell'ambiente: Assicurati di essere nell'ambiente corretto dove sono installati tutti i pacchetti necessari.
- Aggiorna i tuoi pacchetti: I pacchetti obsoleti potrebbero non essere compatibili con la tua GPU. Mantienili aggiornati.
- Configurazione del programma: Controlla se il tuo codice richiede l'utilizzo della GPU. Puoi impostare l'argomento
devicedurante l'esecuzione dell'addestramento o della predizione (ad esempio,device=0).
Il supporto per architetture GPU precedenti a Turing — con capacità di calcolo (SM) inferiore a 7.5, come la 1080 Ti — è stato rimosso in cuDNN 9.11.0. Su una GPU meno recente potresti aver bisogno di una build di PyTorch compilata con una versione precedente di CUDA/cuDNN. Verifica la tua configurazione con:
import torch
cap = torch.cuda.get_device_capability(0) if torch.cuda.is_available() else (0, 0)
cudnn = torch.backends.cudnn.version() or 0
ok = "not compatible" if cudnn >= 91100 and (cap[0] < 7 or (cap[0] == 7 and cap[1] < 5)) else "should be ok"
print(f"Compute capability: SM {cap[0]}.{cap[1]}, cuDNN: {cudnn} => {ok}")Link to this sectionProblemi di addestramento del modello#
I problemi comuni di addestramento e le relative soluzioni sono trattati qui di seguito.
Link to this sectionVerifica delle impostazioni di configurazione#
Problema: Non sei sicuro se le impostazioni di configurazione nel file .yaml vengano applicate correttamente durante l'addestramento del modello.
Soluzione: Le impostazioni di configurazione nel file .yaml dovrebbero essere applicate quando si utilizza la funzione model.train(). Per assicurarti che queste impostazioni siano applicate correttamente, segui questi passaggi:
-
Conferma che il percorso al tuo file di configurazione
.yamlsia corretto. -
Assicurati di passare il percorso al tuo file
.yamlcome argomentodataquando chiamimodel.train(), come mostrato di seguito:model.train(data="/path/to/your/data.yaml", batch=4)
Link to this sectionAccelerare l'addestramento con più GPU#
Problema: L'addestramento è lento su una singola GPU e vuoi velocizzare il processo utilizzando più GPU.
Soluzione: Aumentare la batch size può accelerare l'addestramento, ma è essenziale considerare la capacità della memoria della GPU. Per velocizzare l'addestramento con più GPU, segui questi passaggi:
-
Assicurati di avere più GPU a disposizione.
-
Imposta l'argomento
devicesu una lista di indici GPU, ad esempiodevice=[0,1,2,3]. -
Aumenta la dimensione del batch di conseguenza per utilizzare appieno le molteplici GPU senza superare i limiti di memoria.
-
Modifica il tuo comando di addestramento per utilizzare più GPU:
# Adjust the batch size and other settings as needed to optimize training speed model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])
Link to this sectionParametri di monitoraggio continuo#
Problema: Vuoi sapere quali parametri dovrebbero essere monitorati continuamente durante l'addestramento, oltre alla perdita (loss).
Soluzione: Sebbene la perdita sia una metrica cruciale da monitorare, è anche essenziale tracciare altre metriche per l'ottimizzazione delle prestazioni del modello. Alcune metriche chiave da monitorare durante l'addestramento includono:
- Precision
- Recall
- Mean Average Precision (mAP)
Puoi accedere a queste metriche dai log di addestramento o utilizzando strumenti come TensorBoard o wandb per la visualizzazione. Implementare l'interruzione anticipata (early stopping) basata su queste metriche può aiutarti a ottenere risultati migliori.
Link to this sectionStrumenti per il tracciamento del progresso dell'addestramento#
Problema: Stai cercando consigli su strumenti per tracciare il progresso dell'addestramento.
Soluzione: Per tracciare e visualizzare il progresso dell'addestramento, puoi prendere in considerazione l'utilizzo dei seguenti strumenti:
- TensorBoard: TensorBoard è una scelta popolare per visualizzare le metriche di addestramento, inclusi perdita, accuratezza e altro. Puoi integrarlo con il tuo processo di addestramento YOLO26.
- Comet: Comet fornisce un ampio kit di strumenti per il tracciamento e il confronto degli esperimenti. Ti consente di tracciare metriche, iperparametri e persino i pesi del modello. Anche l'integrazione con i modelli YOLO è semplice e ti offre una panoramica completa del tuo ciclo di esperimenti.
- Piattaforma Ultralytics: La Piattaforma Ultralytics offre un ambiente specializzato per il tracciamento dei modelli YOLO, offrendoti una piattaforma unica per gestire metriche, dataset e persino collaborare con il tuo team. Dato il suo focus su misura per YOLO, offre opzioni di tracciamento più personalizzate.
Link to this sectionCome verificare se l'addestramento sta avvenendo sulla GPU#
Problema: Il valore 'device' nei log di addestramento è 'null' e non sei sicuro se l'addestramento stia avvenendo sulla GPU.
Soluzione: Il valore 'device' impostato su 'null' indica solitamente che il processo di addestramento è impostato per selezionare automaticamente una GPU disponibile, che è il comportamento predefinito. Per eseguire l'addestramento su una GPU specifica, imposta l'argomento device all'avvio dell'addestramento. device è un argomento di addestramento, pertanto impostarlo nel file .yaml del tuo dataset non ha alcun effetto:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Use GPU 0; device=[0, 1] for multiple GPUs, device="cpu" for CPU
model.train(data="path/to/data.yaml", device=0)Tieni d'occhio la cartella 'runs' per log e metriche per monitorare efficacemente il progresso dell'addestramento.
Link to this sectionConsiderazioni chiave per un addestramento efficace del modello#
Ecco alcune cose da tenere a mente, se stai affrontando problemi relativi all'addestramento del modello.
Formato del dataset ed etichette
- Importanza: Il fondamento di qualsiasi modello di machine learning risiede nella qualità e nel formato dei dati su cui viene addestrato.
- Raccomandazione: Assicurati che il tuo dataset personalizzato e le relative etichette aderiscano al formato previsto. È cruciale verificare che le annotazioni siano accurate e di alta qualità. Annotazioni errate o di scarsa qualità possono compromettere il processo di apprendimento del modello, portando a risultati imprevedibili.
Convergenza del modello
- Importanza: Raggiungere la convergenza del modello garantisce che il modello abbia imparato a sufficienza dai dati di addestramento.
- Raccomandazione: Quando addestri un modello 'da zero', è vitale assicurarsi che il modello raggiunga un livello soddisfacente di convergenza. Ciò potrebbe richiedere una durata di addestramento più lunga, con più epoche, rispetto a quando stai effettuando il fine-tuning di un modello esistente.
Learning Rate e dimensione del batch
- Importanza: Questi iperparametri giocano un ruolo fondamentale nel determinare come il modello aggiorna i suoi pesi durante l'addestramento.
- Raccomandazione: Valuta regolarmente se il learning rate e la dimensione del batch scelti sono ottimali per il tuo dataset specifico. Parametri non in armonia con le caratteristiche del dataset possono ostacolare le prestazioni del modello.
Distribuzione delle classi
- Importanza: La distribuzione delle classi nel tuo dataset può influenzare le tendenze di previsione del modello.
- Raccomandazione: Valuta regolarmente la distribuzione delle classi all'interno del tuo dataset. Se c'è uno squilibrio di classe, c'è il rischio che il modello sviluppi un pregiudizio verso la classe più prevalente. Questo pregiudizio può essere evidente nella matrice di confusione, dove il modello potrebbe prevedere prevalentemente la classe di maggioranza.
Verifica incrociata con pesi pre-addestrati
- Importanza: Sfruttare pesi pre-addestrati può fornire un solido punto di partenza per l'addestramento del modello, specialmente quando i dati sono limitati.
- Raccomandazione: Come passaggio diagnostico, considera di addestrare il tuo modello utilizzando gli stessi dati ma inizializzandolo con pesi pre-addestrati. Se questo approccio produce una matrice di confusione ben formata, potrebbe suggerire che il modello 'da zero' potrebbe richiedere ulteriore addestramento o aggiustamenti.
Link to this sectionProblemi relativi alle previsioni del modello#
I problemi comuni riscontrati durante la predizione del modello e le relative soluzioni sono trattati qui di seguito.
Link to this sectionOttenere previsioni di bounding box con il tuo modello personalizzato YOLO26#
Problema: Quando si eseguono previsioni con un modello YOLO26 personalizzato, ci sono sfide con il formato e la visualizzazione delle coordinate del bounding box.
Soluzione:
-
Formato delle coordinate: YOLO26 fornisce coordinate del bounding box in valori di pixel assoluti. Per convertirle in coordinate relative (che vanno da 0 a 1), devi dividere per le dimensioni dell'immagine. Ad esempio, diciamo che la dimensione della tua immagine è 640x640. Allora dovresti fare quanto segue:
# Convert absolute coordinates to relative coordinates x1 = x1 / 640 # Divide x-coordinates by image width x2 = x2 / 640 y1 = y1 / 640 # Divide y-coordinates by image height y2 = y2 / 640 -
Nome del file: Per ottenere il nome del file dell'immagine su cui stai effettuando la previsione, accedi direttamente al percorso del file immagine dall'oggetto risultato all'interno del tuo ciclo di previsione.
Link to this sectionFiltrare oggetti nelle previsioni di YOLO26#
Problema: Affrontare problemi su come filtrare e visualizzare solo oggetti specifici nei risultati di previsione quando si esegue YOLO26 utilizzando la libreria Ultralytics.
Soluzione: Per rilevare classi specifiche usa l'argomento classes per specificare le classi che vuoi includere nell'output. Ad esempio, per rilevare solo le auto (assumendo che le 'auto' abbiano indice di classe 2):
yolo task=segment mode=predict model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2Link to this sectionComprendere le metriche di precisione in YOLO26#
Problema: Confusione riguardo alla differenza tra precisione del box, precisione della maschera e precisione della matrice di confusione in YOLO26.
Soluzione: La precisione del box misura l'accuratezza dei bounding box previsti rispetto ai box di verità (ground truth) reali utilizzando IoU (Intersection over Union) come metrica. La precisione della maschera valuta l'accordo tra le maschere di segmentazione previste e le maschere di verità a livello di pixel nella classificazione degli oggetti. La precisione della matrice di confusione, d'altra parte, si concentra sull'accuratezza complessiva della classificazione su tutte le classi e non considera l'accuratezza geometrica delle previsioni. È importante notare che un bounding box può essere geometricamente accurato (vero positivo) anche se la previsione della classe è sbagliata, portando a differenze tra precisione del box e precisione della matrice di confusione. Queste metriche valutano aspetti distinti delle prestazioni di un modello, riflettendo la necessità di metriche di valutazione diverse in vari compiti.
Link to this sectionEstrarre le dimensioni dell'oggetto in YOLO26#
Problema: Difficoltà nel recuperare la lunghezza e l'altezza degli oggetti rilevati in YOLO26, specialmente quando vengono rilevati più oggetti in un'immagine.
Soluzione: Per recuperare le dimensioni della bounding box, usa prima il modello Ultralytics YOLO26 per predire gli oggetti in un'immagine. Successivamente, estrai le informazioni su larghezza e altezza delle bounding box dai risultati della predizione.
from ultralytics import YOLO
# Load a pretrained YOLO26 model
model = YOLO("yolo26n.pt")
# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"
# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.25)
# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
x, y, w, h = box
print(f"Width of Box: {w}, Height of Box: {h}")Link to this sectionSfide di distribuzione#
Link to this sectionProblemi di distribuzione GPU#
Problema: Distribuire modelli in un ambiente multi-GPU può talvolta portare a comportamenti imprevisti come uso di memoria imprevisto, risultati incoerenti tra le GPU, ecc.
Soluzione: Controlla l'inizializzazione predefinita della GPU. Alcuni framework, come PyTorch, potrebbero inizializzare operazioni CUDA su una GPU predefinita prima di passare alle GPU designate. Per evitare inizializzazioni predefinite impreviste, specifica direttamente la GPU durante la distribuzione e la previsione. Quindi, usa strumenti per monitorare l'utilizzo della GPU e l'uso della memoria per identificare eventuali anomalie in tempo reale. Inoltre, assicurati di utilizzare l'ultima versione del framework o della libreria.
Link to this sectionProblemi di conversione/esportazione del modello#
Problema: Durante il processo di conversione o esportazione di modelli di machine learning verso formati o piattaforme diverse, gli utenti potrebbero riscontrare errori o comportamenti imprevisti.
Soluzione: Rivedi i formati supportati e le opzioni specifiche per formato nella documentazione della modalità di esportazione, quindi esegui questi controlli:
- Controllo di compatibilità: Assicurati di utilizzare versioni di librerie e framework che siano compatibili tra loro. Versioni non corrispondenti possono portare a errori imprevisti durante la conversione.
- Ripristino dell'ambiente: Se stai utilizzando un ambiente interattivo come Jupyter o Colab, valuta di riavviare il tuo ambiente dopo aver apportato cambiamenti o installazioni significative. Un nuovo inizio può talvolta risolvere problemi sottostanti.
- Documentazione ufficiale: Fai sempre riferimento alla documentazione ufficiale dello strumento o della libreria che stai utilizzando per la conversione. Contiene spesso linee guida specifiche e migliori pratiche per l'esportazione del modello.
- Supporto della community: Controlla il repository ufficiale della libreria o del framework per problemi simili segnalati da altri utenti. I manutentori o la community potrebbero aver fornito soluzioni o soluzioni alternative nei thread di discussione.
- Aggiorna regolarmente: Assicurati di utilizzare l'ultima versione dello strumento o della libreria. Gli sviluppatori rilasciano frequentemente aggiornamenti che correggono bug noti o migliorano la funzionalità.
- Testa in modo incrementale: Prima di eseguire una conversione completa, testa il processo con un modello o un dataset più piccolo per identificare potenziali problemi fin dall'inizio.
Link to this sectionCommunity e supporto#
Ottieni aiuto e condividi soluzioni attraverso questi canali e risorse.
Link to this sectionForum e canali per ottenere aiuto#
GitHub Issues: Il repository di YOLO26 su GitHub ha una scheda Issues dove puoi porre domande, segnalare bug e suggerire nuove funzionalità. La community e i manutentori sono attivi qui, ed è un ottimo posto per ottenere aiuto con problemi specifici.
Server Discord di Ultralytics: Ultralytics ha un server Discord dove puoi interagire con altri utenti e con gli sviluppatori.
Link to this sectionDocumentazione ufficiale e risorse#
Documentazione di Ultralytics YOLO26: La documentazione ufficiale fornisce una panoramica completa di YOLO26, insieme a guide su installazione, utilizzo e risoluzione dei problemi.
Link to this sectionConclusione#
La maggior parte dei problemi con YOLO26 deriva da poche cause: discrepanze di versione, formattazione del dataset e configurazione della GPU. Quando un errore non è trattato qui, cerca nella scheda GitHub Issues o chiedi sul server Discord — è probabile che qualcuno l'abbia già risolto. Per problemi più profondi relativi all'addestramento, consulta la guida Consigli per l'addestramento dei modelli per consigli pratici su come ottenere risultati migliori nei tuoi progetti di visione artificiale.
Link to this sectionFAQ#
Link to this sectionCome risolvo gli errori di installazione con YOLO26?#
Gli errori di installazione possono spesso essere dovuti a problemi di compatibilità o dipendenze mancanti. Assicurati di utilizzare Python 3.8 o versioni successive e di avere installato PyTorch 1.8 o versioni successive. È utile utilizzare ambienti virtuali per evitare conflitti. Per una guida passo-passo all'installazione, segui la nostra guida ufficiale all'installazione. Se riscontri errori di importazione, prova una nuova installazione o aggiorna la libreria all'ultima versione.
Link to this sectionPerché il mio modello YOLO26 è lento durante l'addestramento su una singola GPU?#
L'addestramento su una singola GPU potrebbe essere lento a causa di dimensioni dei batch elevate o memoria insufficiente. Per velocizzare l'addestramento, utilizza più GPU. Assicurati che il tuo sistema abbia più GPU disponibili e imposta l'argomento device, ad esempio device=[0,1,2,3]. Aumenta la dimensione del batch di conseguenza per sfruttare appieno le GPU senza superare i limiti di memoria. Esempio di comando:
model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])Link to this sectionCome posso assicurarmi che il mio modello YOLO26 si stia addestrando sulla GPU?#
Se nei log di addestramento il valore 'device' mostra 'null', significa generalmente che il processo di addestramento è configurato per selezionare automaticamente una GPU disponibile. Per assegnare esplicitamente una GPU specifica, passa l'argomento device quando avvii l'addestramento, ad esempio yolo train data=path/to/data.yaml device=0 per la prima GPU. Consulta il comando nvidia-smi per confermare la configurazione di CUDA.
Link to this sectionCome posso monitorare e tracciare i progressi dell'addestramento del mio modello YOLO26?#
Il tracciamento e la visualizzazione dell'avanzamento dell'addestramento possono essere gestiti in modo efficiente tramite strumenti come TensorBoard, Comet e la piattaforma Ultralytics. Questi strumenti ti consentono di registrare e visualizzare metriche come perdita, precisione, richiamo e mAP. L'implementazione dell'arresto anticipato basato su queste metriche può anche aiutare a ottenere risultati di addestramento migliori.
Link to this sectionCosa devo fare se YOLO26 non riconosce il formato del mio dataset?#
Assicurati che il tuo dataset e le etichette siano conformi al formato previsto. Verifica che le annotazioni siano accurate e di alta qualità. Se riscontri problemi, fai riferimento alla guida Raccolta dati e annotazione per le migliori pratiche. Per una guida più specifica sui dataset, consulta la sezione Dataset nella documentazione.