YOLO Vision 2026:

Panoramica sui dataset di rilevamento oggetti#

Addestrare un modello di rilevamento oggetti robusto e accurato richiede un set di dati completo. Questa guida introduce vari formati di set di dati compatibili con il modello Ultralytics YOLO e fornisce approfondimenti sulla loro struttura, sull'utilizzo e su come convertirli tra diversi formati.

Formati di dataset supportati#

Formato Ultralytics YOLO#

Il formato Ultralytics YOLO è un formato di configurazione dei set di dati che consente di definire la directory principale del set di dati, i percorsi relativi alle directory delle immagini di training/validazione/test o ai file *.txt contenenti i percorsi delle immagini e un dizionario dei nomi delle classi. Ecco un esempio:

ultralytics/cfg/datasets/coco8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

Ognuno tra train, val e test accetta una directory, un elenco di directory o un file *.txt che elenca un percorso di immagine per riga (i percorsi che iniziano con ./ si risolvono rispetto al file *.txt). Un file *.txt è utile per eseguire il training su un sottoinsieme di una directory, saltare le immagini senza etichetta o combinare immagini da più fonti in un unico split.

Percorsi immagine come file `*.txt`
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

Le etichette per questo formato devono essere esportate nel formato YOLO con un file *.txt per immagine. Se non ci sono oggetti in un'immagine, non è richiesto alcun file *.txt. Il file *.txt deve essere formattato con una riga per oggetto nel formato class x_center y_center width height. Le coordinate dei box devono essere in formato xywh normalizzato (da 0 a 1). Se i tuoi box sono in pixel, devi dividere x_center e width per la larghezza dell'immagine e y_center e height per l'altezza dell'immagine. I numeri delle classi devono iniziare da zero (partire da 0).

YOLO labeled image with bounding boxes on persons and tie

Il file di etichette corrispondente all'immagine sopra contiene 2 persone (classe 0) e una cravatta (classe 27):

YOLO format label file with normalized coordinates

Quando usi il formato Ultralytics YOLO, organizza le tue immagini ed etichette di training e validazione come mostrato nell'esempio del set di dati COCO8 sottostante.

YOLO dataset directory structure with train and val folders

Esempio di utilizzo#

Ecco come puoi utilizzare i dataset in formato YOLO per addestrare il tuo modello:

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Formato Ultralytics NDJSON#

Il formato NDJSON (Newline Delimited JSON) fornisce un modo alternativo per definire dataset per i modelli Ultralytics YOLO. Questo formato memorizza metadati e annotazioni del dataset in un singolo file in cui ogni riga contiene un oggetto JSON separato.

Un file di dataset NDJSON contiene:

  1. Record del dataset (prima riga): Contiene i metadati del dataset inclusi il tipo di attività, i nomi delle classi e le informazioni generali
  2. Record delle immagini (righe successive): Contiene i dati delle singole immagini inclusi dimensioni, annotazioni e percorsi dei file
Esempio di NDJSON
{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://app.ultralytics.com/user/datasets/example",
    "class_names": { "0": "person", "1": "bicycle", "2": "car" },
    "bytes": 426342,
    "version": 0,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z"
}

Metadati immagine personalizzati#

Ogni record di immagine può includere un oggetto JSON metadata per contesti specifici dell'applicazione come condizioni di cattura, identificatori di apparecchiature o stato di revisione. I valori annidati sono supportati. Quando vengono importati in Ultralytics Platform, i metadati vengono memorizzati con quell'immagine e possono essere visualizzati o modificati dal pannello delle informazioni a schermo intero.

{
    "type": "image",
    "file": "airbus-wing.jpg",
    "url": "https://example.com/airbus-wing.jpg",
    "split": "train",
    "metadata": { "aircraft": { "family": "A350", "section": "wing" }, "inspectionStatus": "reviewed" }
}

La piattaforma limita le chiavi dei metadati di livello superiore a 128 caratteri, l'oggetto di metadati serializzato di ciascuna immagine a 500.000 caratteri e i metadati effettivi combinati in una singola importazione NDJSON a 500.000 caratteri.

Esempio di utilizzo#

Per utilizzare un set di dati NDJSON con YOLO26, specifica semplicemente il percorso del file .ndjson:

Esempio
from ultralytics import YOLO

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

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

Vantaggi del formato NDJSON#

  • File singolo: Tutte le informazioni del dataset contenute in un unico file
  • Streaming: Può elaborare dataset di grandi dimensioni riga per riga senza caricare tutto in memoria
  • Integrazione cloud: Supporta URL di immagini remote per l'addestramento basato su cloud
  • Estensibile: Facile aggiungere campi di metadati personalizzati
  • Controllo versione: Il formato a file singolo funziona bene con git e i sistemi di controllo versione

Dataset supportati#

Ecco un elenco dei dataset supportati e una breve descrizione per ciascuno:

  • African-wildlife: Un set di dati che include immagini di fauna selvatica africana, tra cui bufali, elefanti, rinoceronti e zebre.
  • Argoverse: Un set di dati contenente dati di tracciamento 3D e previsione del movimento da ambienti urbani con annotazioni ricche.
  • Brain-tumor: Un set di dati per il rilevamento di tumori cerebrali che include immagini di scansione MRI o CT con dettagli sulla presenza, posizione e caratteristiche del tumore.
  • COCO: Common Objects in Context (COCO) è un set di dati su larga scala per il rilevamento oggetti, la segmentazione e la generazione di didascalie con 80 categorie di oggetti.
  • COCO8: Un sottoinsieme più piccolo delle prime 4 immagini del train e del val di COCO, adatto per test rapidi.
  • COCO8-Grayscale: Una versione in scala di grigi di COCO8 creata convertendo RGB in scala di grigi, utile per la valutazione di modelli a canale singolo.
  • COCO8-Multispectral: Una versione multispettrale a 10 canali di COCO8 creata interpolando le lunghezze d'onda RGB, utile per la valutazione di modelli consapevoli dello spettro.
  • COCO12-Formats: Un set di dati di test con 12 immagini che coprono 12 formati di immagine supportati (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) per la validazione delle pipeline di caricamento delle immagini.
  • COCO16: Un sottoinsieme delle prime 16 immagini di COCO train2017 (8 train + 8 val), adatto per test rapidi.
  • COCO32: Un sottoinsieme delle prime 32 immagini di COCO train2017 (16 train + 16 val), adatto per test rapidi.
  • COCO64: Un sottoinsieme delle prime 64 immagini di COCO train2017 (32 train + 32 val), adatto per test rapidi.
  • COCO128: Un sottoinsieme più piccolo delle prime 128 immagini di COCO train2017, adatto per i test.
  • Construction-PPE: Un set di dati con lavoratori di cantieri edili dotati di dispositivi di protezione individuale etichettati come elmetti, giubbotti, guanti, stivali e occhiali protettivi, che include annotazioni di attrezzature mancanti come no_helmet e no_goggle per il monitoraggio della conformità nel mondo reale.
  • Global Wheat 2020: Un set di dati contenente immagini di spighe di grano per la Global Wheat Challenge 2020.
  • HomeObjects-3K: Un set di dati di articoli domestici da interno inclusi letti, sedie, televisori e altro, ideale per applicazioni nell'automazione domestica intelligente, robotica, realtà aumentata e analisi del layout della stanza.
  • KITTI: Un set di dati con scene di guida reali con dati stereo, LiDAR e GPS/IMU, utilizzato qui per attività di rilevamento oggetti 2D come l'identificazione di auto, pedoni e ciclisti in ambienti urbani, rurali e autostradali.
  • LVIS: Un set di dati su larga scala per il rilevamento oggetti, la segmentazione e la generazione di didascalie con 1203 categorie di oggetti.
  • Medical-pills: Un set di dati con immagini di pillole mediche, annotate per applicazioni come il controllo qualità farmaceutico, la cernita delle pillole e la conformità normativa.
  • Objects365: Un set di dati di alta qualità su larga scala per il rilevamento oggetti con 365 categorie di oggetti e oltre 600.000 immagini annotate.
  • OpenImagesV7: Un set di dati completo di Google con 1,7 milioni di immagini di training e 42k immagini di validazione.
  • Roboflow 100: Un benchmark diversificato per il rilevamento oggetti con 100 set di dati che coprono sette domini di immagini per una valutazione completa del modello.
  • Signature: Un set di dati con immagini di vari documenti con firme annotate, a supporto della verifica dei documenti e della ricerca sul rilevamento delle frodi.
  • SKU-110K: Un set di dati con rilevamento oggetti denso in ambienti retail con oltre 11k immagini e 1,7 milioni di bounding box.
  • TT100K: Esplora il set di dati di segnali stradali Tsinghua-Tencent 100K (TT100K) con 16.817 immagini street-view in 221 categorie di segnali per un rilevamento e una classificazione robusti.
  • VisDrone: Un set di dati contenente dati di rilevamento oggetti e tracciamento multi-oggetto da immagini catturate da droni con oltre 10k immagini e sequenze video.
  • VOC: Il set di dati Pascal Visual Object Classes (VOC) per il rilevamento oggetti e la segmentazione con 20 classi di oggetti e oltre 11k immagini.
  • xView: Un set di dati per il rilevamento oggetti in immagini dall'alto con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.

Aggiungere il tuo dataset#

Se hai il tuo dataset e desideri utilizzarlo per addestrare modelli di rilevamento con il formato Ultralytics YOLO, assicurati che segua il formato specificato sopra in "Formato Ultralytics YOLO". Converti le tue annotazioni nel formato richiesto e specifica i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.

Portare o convertire formati di etichette#

Formato dataset COCO a formato YOLO#

Puoi convertire facilmente le etichette dal popolare formato del set di dati COCO al formato YOLO utilizzando il seguente frammento di codice:

Esempio
from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Questo strumento di conversione può essere utilizzato per convertire il set di dati COCO o qualsiasi set di dati nel formato COCO nel formato Ultralytics YOLO. Il processo trasforma le annotazioni COCO basate su JSON nel formato YOLO basato su testo, più semplice, rendendolo compatibile con i modelli Ultralytics YOLO.

Ricordati di ricontrollare se il dataset che vuoi usare è compatibile con il tuo modello e segue le necessarie convenzioni di formato. Dataset formattati correttamente sono cruciali per addestrare modelli di rilevamento oggetti di successo.

Cosa succede dopo#

Con il tuo set di dati formattato, inizia ad addestrare il tuo modello. Non sai da quale modello preaddestrato iniziare? Confronta le opzioni nella famiglia di modelli YOLO26.

FAQ#

Qual è il formato del dataset Ultralytics YOLO e come strutturarlo?#

Il formato Ultralytics YOLO è una configurazione strutturata per definire dataset nei tuoi progetti di addestramento. Comporta l'impostazione dei percorsi per le tue immagini di addestramento, validazione e test e le relative etichette. Per esempio:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

Le etichette vengono salvate nei file *.txt con un file per immagine, formattato come class x_center y_center width height con coordinate normalizzate. Per una guida dettagliata, consulta l'esempio del set di dati COCO8.

Come converto un dataset COCO nel formato YOLO?#

Puoi convertire un set di dati COCO nel formato YOLO utilizzando gli strumenti di conversione Ultralytics. Ecco un metodo rapido:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Questo codice convertirà le tue annotazioni COCO in formato YOLO, consentendo un'integrazione perfetta con i modelli Ultralytics YOLO. Per ulteriori dettagli, visita la sezione Porta o converti i formati delle etichette.

Quali dataset sono supportati da Ultralytics YOLO per il rilevamento oggetti?#

Ultralytics YOLO supporta una vasta gamma di dataset, tra cui:

Ogni pagina del set di dati fornisce informazioni dettagliate sulla struttura e sull'utilizzo su misura per un efficiente training di YOLO26. Esplora l'elenco completo nella sezione Set di dati supportati.

Come inizio ad addestrare un modello YOLO26 utilizzando il mio dataset?#

Per iniziare ad addestrare un modello YOLO26, assicurati che il tuo dataset sia formattato correttamente e che i percorsi siano definiti in un file YAML. Usa il seguente script per iniziare l'addestramento:

Esempio
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

Fai riferimento alla sezione Utilizzo per maggiori dettagli sull'utilizzo delle diverse modalità, inclusi i comandi CLI.

Dove posso trovare esempi pratici sull'utilizzo di Ultralytics YOLO per il rilevamento oggetti?#

Ultralytics fornisce numerosi esempi e guide pratiche per l'utilizzo di YOLO26 in diverse applicazioni. Per una panoramica completa, visita il Blog di Ultralytics dove puoi trovare casi studio, tutorial dettagliati e storie della community che mostrano il rilevamento oggetti, la segmentazione e altro ancora con YOLO26. Per esempi specifici, controlla la sezione Utilizzo nella documentazione.

Commenti