Meet YOLO26: next-gen vision AI.

Link to this sectionRisoluzione dei problemi comuni con YOLO#

YOLO common training and deployment issues

Link to this sectionIntroduzione#

Questa guida funge da aiuto completo per la risoluzione dei problemi comuni riscontrati durante il lavoro con YOLO26 nei tuoi progetti Ultralytics. Orientarsi tra questi problemi può essere semplice con la giusta guida, garantendo che i tuoi progetti rimangano sulla strada giusta senza ritardi inutili.



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 alcuni problemi di installazione comuni riscontrati dagli utenti, insieme alle rispettive soluzioni:

  • Errori di importazione o problemi di dipendenze - Se ricevi errori durante l'importazione di YOLO26, o riscontri problemi relativi alle dipendenze, prendi in considerazione i seguenti passaggi per la risoluzione dei problemi:

    • Installazione pulita: A volte, ricominciare con un'installazione pulita può risolvere problemi imprevisti. Soprattutto con librerie come Ultralytics, dove gli aggiornamenti potrebbero introdurre cambiamenti nella struttura dell'albero dei file o nelle funzionalità.

    • Aggiorna regolarmente: Assicurati di utilizzare l'ultima versione della libreria. Le versioni precedenti potrebbero non essere compatibili con i recenti aggiornamenti, portando a potenziali conflitti o problemi.

    • Controlla le dipendenze: Verifica che tutte le dipendenze richieste siano installate correttamente e siano delle versioni compatibili.

    • Rivedi i cambiamenti: Se hai inizialmente clonato o installato una versione precedente, tieni presente che aggiornamenti significativi potrebbero influenzare la struttura o le funzionalità della libreria. Fai sempre riferimento alla documentazione ufficiale o ai changelog per comprendere eventuali cambiamenti importanti.

    • Ricorda, mantenere le tue librerie e le dipendenze aggiornate è fondamentale per un'esperienza fluida e priva di errori.

  • Esecuzione di YOLO26 su GPU - Se hai difficoltà a eseguire YOLO26 su 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-smi per 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.

    • Verifica la compatibilità della GPU: Il supporto per le architetture GPU precedenti a Turing e capacità di calcolo (SM) < 7.5 è stato abbandonato da cuDNN 9.11.0. Quindi, se hai una GPU più vecchia - come una 1080Ti - potresti dover utilizzare una versione di PyTorch costruita con una versione precedente di CUDA/cuDNN. Puoi verificarlo eseguendo 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}")

    • 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 programma o il codice specifica l'utilizzo della GPU. In YOLO26, questo potrebbe essere nelle impostazioni o nella configurazione.

Link to this sectionProblemi di addestramento del modello#

Questa sezione affronterà i problemi comuni riscontrati durante l'addestramento e le relative spiegazioni e soluzioni.

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 .yaml sia corretto.

  • Assicurati di passare il percorso al tuo file .yaml come argomento data quando chiami model.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 dimensione del batch può accelerare l'addestramento, ma è essenziale considerare la capacità di memoria della GPU. Per velocizzare l'addestramento con più GPU, segui questi passaggi:

  • Assicurati di avere più GPU a disposizione.

  • Imposta l'argomento device su una lista di indici GPU, ad esempio device=[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:

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 toolkit esteso 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, fornendoti una panoramica completa del tuo ciclo di esperimento.
  • 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.

Ognuno di questi strumenti offre la propria serie di vantaggi, quindi potresti voler considerare le esigenze specifiche del tuo progetto quando fai una scelta.

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 utilizzare automaticamente una GPU disponibile, che è il comportamento predefinito. Per assicurarti che l'addestramento avvenga su una specifica GPU, puoi impostare manualmente il valore 'device' sull'indice della GPU (ad esempio, '0' per la prima GPU) nel tuo file di configurazione .yaml:

device: 0

Questo assegnerà esplicitamente il processo di addestramento alla GPU specificata. Se desideri addestrare sulla CPU, imposta 'device' su 'cpu'.

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#

Questa sezione affronterà i problemi comuni riscontrati durante la previsione del modello.

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=2

Link 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 del bounding box, usa prima il modello Ultralytics YOLO26 per prevedere oggetti in un'immagine. Quindi, estrai le informazioni di larghezza e altezza dei bounding box dai risultati di previsione.

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:

  • 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#

Interagire con una community di persone che la pensano allo stesso modo può migliorare significativamente la tua esperienza e il tuo successo nel lavorare con YOLO26. Di seguito sono riportati alcuni canali e risorse che potresti trovare utili.

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.

Queste risorse dovrebbero fornirti una solida base per la risoluzione dei problemi e per migliorare i tuoi progetti YOLO26, oltre che per connetterti con altri nella community di YOLO26.

Link to this sectionConclusione#

La risoluzione dei problemi è una parte integrante di qualsiasi processo di sviluppo ed essere dotati delle giuste conoscenze può ridurre significativamente il tempo e lo sforzo spesi per risolvere i problemi. Questa guida ha lo scopo di affrontare le sfide più comuni incontrate dagli utenti del modello YOLO26 all'interno dell'ecosistema Ultralytics. Comprendendo e risolvendo questi problemi comuni, puoi garantire un progresso più fluido del progetto e ottenere risultati migliori con le tue attività di computer vision.

Ricorda, la community di Ultralytics è una risorsa preziosa. Collaborare con altri sviluppatori ed esperti può fornire ulteriori approfondimenti e soluzioni che potrebbero non essere trattati nella documentazione standard. Continua sempre ad imparare, sperimentare e condividere le tue esperienze per contribuire alla conoscenza collettiva della community.

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 il valore 'device' mostra 'null' nei log di addestramento, significa generalmente che il processo di addestramento è impostato per utilizzare automaticamente una GPU disponibile. Per assegnare esplicitamente una GPU specifica, imposta il valore 'device' nel tuo file di configurazione .yaml. Ad esempio:

device: 0

Questo imposta il processo di addestramento sulla prima GPU. Consulta il comando nvidia-smi per confermare la tua configurazione CUDA.

Link to this sectionCome posso monitorare e tracciare i progressi dell'addestramento del mio modello YOLO26?#

Il tracciamento e la visualizzazione dei progressi 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 loss, precision, recall e mAP. L'implementazione dell'early stopping basata 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 tue etichette siano conformi al formato previsto. Verifica che le annotazioni siano accurate e di alta qualità. Se riscontri problemi, fai riferimento alla guida Raccolta e annotazione dei dati per le best practice. Per una guida più specifica sul dataset, controlla la sezione Dataset nella documentazione.

Commenti