Meet YOLO26: next-gen vision AI.

Link to this sectionPanoramica sui dataset di rilevamento oggetti#

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

Link to this sectionFormati di dataset supportati#

Link to this sectionFormato Ultralytics YOLO#

Il formato Ultralytics YOLO è un formato di configurazione del dataset che ti consente di definire la directory principale del dataset, i percorsi relativi alle directory delle immagini di addestramento/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

Le etichette per questo formato devono essere esportate nel formato YOLO con un file *.txt per ogni 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 riquadri devono essere in formato xywh normalizzato (da 0 a 1). Se i tuoi riquadri sono in pixel, dovresti 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 essere indicizzati a zero (iniziare con 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 e le etichette di addestramento e validazione come mostrato nell'esempio del dataset COCO8 qui sotto.

YOLO dataset directory structure with train and val folders

Link to this sectionEsempio 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)

Link to this sectionFormato 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"
}

Link to this sectionEsempio di utilizzo#

Per utilizzare un dataset 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)

Link to this sectionVantaggi 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

Link to this sectionDataset supportati#

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

  • African-wildlife: Un dataset che presenta immagini di fauna selvatica africana, inclusi bufali, elefanti, rinoceronti e zebre.
  • Argoverse: Un dataset contenente dati di tracciamento 3D e previsione del movimento da ambienti urbani con ricche annotazioni.
  • Brain-tumor: Un dataset per il rilevamento di tumori cerebrali che include immagini di scansioni MRI o CT con dettagli su presenza, posizione e caratteristiche del tumore.
  • COCO: Common Objects in Context (COCO) è un dataset su larga scala per rilevamento oggetti, segmentazione e didascalie con 80 categorie di oggetti.
  • COCO8: Un subset più piccolo delle prime 4 immagini dal train e 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 sensibili allo spettro.
  • COCO12-Formats: Un dataset di test con 12 immagini che coprono 12 formati immagine supportati (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) per la validazione delle pipeline di caricamento immagini.
  • COCO128: Un sottoinsieme più piccolo delle prime 128 immagini di COCO train2017, adatto per i test.
  • Construction-PPE: Un dataset che presenta lavoratori in cantieri edili con dispositivi di sicurezza etichettati come caschi, giubbotti, guanti, stivali e occhiali protettivi, includendo annotazioni per attrezzature mancanti come no_helmet, no_goggle per il monitoraggio della conformità nel mondo reale.
  • Global Wheat 2020: Un dataset contenente immagini di spighe di grano per la Global Wheat Challenge 2020.
  • HomeObjects-3K: Un dataset di oggetti domestici per interni inclusi letti, sedie, TV e altro — ideale per applicazioni in automazione domestica smart, robotica, realtà aumentata e analisi del layout delle stanze.
  • KITTI: Un dataset che presenta scene di guida nel mondo reale con dati stereo, LiDAR e GPS/IMU, utilizzato qui per attività di rilevamento oggetti 2D come identificare auto, pedoni e ciclisti in ambienti urbani, rurali e autostradali.
  • LVIS: Un dataset su larga scala per rilevamento oggetti, segmentazione e didascalie con 1203 categorie di oggetti.
  • Medical-pills: Un dataset che presenta immagini di pillole mediche, annotate per applicazioni come controllo qualità farmaceutico, smistamento pillole e conformità normativa.
  • Objects365: Un dataset di alta qualità su larga scala per il rilevamento di oggetti con 365 categorie e oltre 600.000 immagini annotate.
  • OpenImagesV7: Un dataset completo di Google con 1,7 milioni di immagini di addestramento e 42.000 immagini di validazione.
  • Roboflow 100: Un benchmark diversificato per il rilevamento oggetti con 100 dataset che spaziano in sette domini di immagini per una valutazione completa del modello.
  • Signature: Un dataset che presenta immagini di vari documenti con firme annotate, supportando la ricerca sulla verifica dei documenti e il rilevamento delle frodi.
  • SKU-110K: Un dataset che presenta il rilevamento di oggetti densi in ambienti di vendita al dettaglio con oltre 11.000 immagini e 1,7 milioni di riquadri di delimitazione.
  • TT100K: Esplora il dataset di segnali stradali Tsinghua-Tencent 100K (TT100K) con 100.000 immagini di vista stradale e oltre 30.000 segnali stradali annotati per rilevamento e classificazione robusti.
  • VisDrone: Un dataset contenente dati di rilevamento oggetti e tracciamento multi-oggetto da immagini catturate da droni con oltre 10.000 immagini e sequenze video.
  • VOC: Il dataset Pascal Visual Object Classes (VOC) per rilevamento oggetti e segmentazione con 20 classi di oggetti e oltre 11.000 immagini.
  • xView: Un dataset per il rilevamento di oggetti in immagini aeree con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.

Link to this sectionAggiungere 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.

Link to this sectionPortare o convertire formati di etichette#

Link to this sectionFormato dataset COCO a formato YOLO#

Puoi facilmente convertire le etichette dal popolare formato del dataset 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 dataset COCO o qualsiasi dataset in formato COCO nel formato Ultralytics YOLO. Il processo trasforma le annotazioni COCO basate su JSON nel più semplice formato YOLO basato su testo, 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.

Link to this sectionFAQ#

Link to this sectionQual è 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 sono salvate in file *.txt con un file per immagine, formattati come class x_center y_center width height con coordinate normalizzate. Per una guida dettagliata, vedi l'esempio del dataset COCO8.

Link to this sectionCome converto un dataset COCO nel formato YOLO?#

Puoi convertire un dataset 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 nel formato YOLO, consentendo un'integrazione fluida con i modelli Ultralytics YOLO. Per ulteriori dettagli, visita la sezione Portare o convertire formati di etichette.

Link to this sectionQuali dataset sono supportati da Ultralytics YOLO per il rilevamento oggetti?#

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

Ogni pagina del dataset fornisce informazioni dettagliate sulla struttura e sull'utilizzo su misura per un efficiente addestramento di YOLO26. Esplora l'elenco completo nella sezione Dataset supportati.

Link to this sectionCome 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 ulteriori dettagli sull'utilizzo delle diverse modalità, inclusi i comandi CLI.

Link to this sectionDove 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 rilevamento oggetti, segmentazione e altro con YOLO26. Per esempi specifici, controlla la sezione Utilizzo nella documentazione.

Commenti