YOLO Vision 2026:

Creazione di un Esempio Minimo Riproducibile per le segnalazioni di bug#

Quando invii una segnalazione di bug per i repository Ultralytics YOLO, è essenziale fornire un Minimum Reproducible Example (MRE). Un MRE è un frammento di codice piccolo e autonomo che dimostra il problema che stai riscontrando. Fornire un MRE aiuta i manutentori e i contributori a comprendere il problema e a lavorare su una correzione in modo più efficiente. Questa guida spiega come creare un MRE quando si inviano segnalazioni di bug ai repository Ultralytics YOLO.

Isola il problema#

Il primo passo per creare un MRE è isolare il problema. Rimuovi qualsiasi codice o dipendenza non necessaria che non sia direttamente correlata al problema. Concentrati sulla parte specifica del codice che sta causando il problema ed elimina eventuali sezioni irrilevanti.

Usa modelli e dataset pubblici#

Quando crei un MRE, utilizza modelli e dataset pubblicamente disponibili per riprodurre il problema. Ad esempio, usa il modello yolo26n.pt e il dataset coco8.yaml. Ciò garantisce che i manutentori e i contributori possano eseguire facilmente il tuo esempio e indagare sul problema senza aver bisogno di accesso a dati proprietari o modelli personalizzati.

Includi tutte le dipendenze necessarie#

Assicurati che tutte le dipendenze necessarie siano incluse nel tuo MRE. Se il tuo codice si basa su librerie esterne, specifica i pacchetti richiesti e le loro versioni. Idealmente, elenca le dipendenze nella tua segnalazione di bug usando yolo checks se hai installato ultralytics o pip list per altri strumenti.

Scrivi una descrizione chiara del problema#

Fornisci una descrizione chiara e concisa del problema che stai riscontrando. Spiega il comportamento previsto e quello reale che stai incontrando. Se applicabile, includi eventuali messaggi di errore o log pertinenti.

Formatta il tuo codice correttamente#

Formatta il tuo codice correttamente usando blocchi di codice nella descrizione del problema. Questo rende più facile per gli altri leggere e comprendere il tuo codice. Su GitHub, puoi creare un blocco di codice racchiudendo il tuo codice tra tre backtick (```) e specificando il linguaggio:

```python
# Your Python code goes here
```

Testa il tuo MRE#

Prima di inviare il tuo MRE, testalo per assicurarti che riproduca accuratamente il problema. Assicurati che altri possano eseguire il tuo esempio senza problemi o modifiche.

Esempio di un MRE#

Ecco un esempio di un MRE per una ipotetica segnalazione di bug:

Descrizione del bug:

Quando eseguo l'inferenza su un'immagine a 0 canali, ricevo un errore relativo alle dimensioni del tensore di input.

MRE:

import torch

from ultralytics import YOLO

# Load the model
model = YOLO("yolo26n.pt")

# Load a 0-channel image
image = torch.rand(1, 0, 640, 640)

# Run the model
results = model(image)

Messaggio di errore:

RuntimeError: Expected input[1, 0, 640, 640] to have 3 channels, but got 0 channels instead

Dipendenze:

  • torch==2.3.0
  • ultralytics==8.2.0

In questo esempio, l'MRE dimostra il problema con una quantità minima di codice, utilizza un modello pubblico ("yolo26n.pt"), include tutte le dipendenze necessarie e fornisce una chiara descrizione del problema insieme al messaggio di errore.

Seguendo queste linee guida, aiuterai i manutentori e i contributori dei repository Ultralytics YOLO a comprendere e risolvere il tuo problema in modo più efficiente.

FAQ#

  • Per creare un Esempio Minimo Riproducibile (MRE) efficace per le segnalazioni di bug nei repository YOLO di Ultralytics, segui questi passaggi:

    1. Isola il problema: Rimuovi qualsiasi codice o dipendenza non direttamente correlata al problema.
    2. Usa modelli e dataset pubblici: Utilizza risorse pubbliche come yolo26n.pt e coco8.yaml per una maggiore riproducibilità.
    3. Includi tutte le dipendenze necessarie: Specifica i pacchetti richiesti e le loro versioni. Puoi elencare le dipendenze usando yolo checks se hai installato ultralytics o pip list.
    4. Scrivi una descrizione chiara del problema: Spiega il comportamento previsto e quello reale, includendo eventuali messaggi di errore o log.
    5. Formatta il tuo codice correttamente: Usa i blocchi di codice per formattare il tuo codice, rendendolo più facile da leggere.
    6. Testa il tuo MRE: Assicurati che il tuo MRE riproduca il problema senza modifiche.

    Per una guida dettagliata, vedi Creating a Minimum Reproducible Example.

  • L'uso di modelli e dataset pubblicamente disponibili nel tuo MRE garantisce che i manutentori possano eseguire facilmente il tuo esempio senza la necessità di accedere a dati proprietari. Ciò consente una risoluzione dei problemi più rapida ed efficiente. Ad esempio, l'uso del modello yolo26n.pt e del dataset coco8.yaml aiuta a standardizzare e semplificare il processo di debug. Scopri di più su modelli e dataset pubblici nella sezione Use Public Models and Datasets.

  • Una segnalazione di bug completa per Ultralytics YOLO dovrebbe includere:

    • Descrizione chiara: Spiega il problema, il comportamento previsto e il comportamento reale.
    • Messaggi di errore: Includi eventuali messaggi di errore o log pertinenti.
    • Dipendenze: Elenca le dipendenze richieste e le loro versioni.
    • MRE: Fornisci un Esempio Minimo Riproducibile.
    • Passaggi per riprodurre: Delinea i passaggi necessari per riprodurre il problema.

    Per una checklist completa, fai riferimento alla sezione Write a Clear Description of the Issue.

  • Per formattare correttamente il codice quando invii una segnalazione di bug su GitHub:

    • Usa tre backtick (```) per creare blocchi di codice.
    • Specifica il linguaggio di programmazione per l'evidenziazione della sintassi, ad esempio ```python.
    • Assicurati che il tuo codice sia indentato correttamente per la leggibilità.

    Esempio:

    ```python
    # Your Python code goes here
    ```

    Per ulteriori suggerimenti sulla formattazione del codice, vedi la sezione Format Your Code Properly.

  • Prima di inviare il tuo MRE, assicurati di:

    • Verificare che il problema sia riproducibile.
    • Assicurarti che tutte le dipendenze siano elencate e corrette.
    • Rimuovere qualsiasi codice non necessario.
    • Testare l'MRE per assicurarti che riproduca il problema senza modifiche.

    Per una checklist dettagliata, visita la sezione Test Your MRE.

Commenti