Panoramica dei dataset per il rilevamento degli oggetti#
Per addestrare un modello di rilevamento degli oggetti robusto e accurato, serve un dataset completo. Questa guida presenta diversi formati di dataset compatibili con il modello Ultralytics YOLO e ne illustra la struttura, l'utilizzo e la conversione da un formato all'altro.
Formati di dataset supportati#
Formato Ultralytics YOLO#
Il formato Ultralytics YOLO è un formato di configurazione dei dataset che 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 di nomi delle classi. Ecco un 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.zipOgnuno tra train, val e test accetta una directory, un elenco di directory oppure un file *.txt con un percorso di immagine per riga (i percorsi che iniziano con ./ sono relativi al file *.txt). Un file *.txt è utile per addestrare un modello su un sottoinsieme di una directory, escludere le immagini senza etichetta o combinare immagini provenienti da più fonti in un'unica suddivisione.
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: personLe etichette per questo formato devono essere esportate nel formato YOLO, con un file *.txt per immagine. Se un'immagine non contiene oggetti, non è necessario alcun file *.txt. Il file *.txt deve contenere una riga per oggetto nel formato class x_center y_center width height. Le coordinate dei box devono essere nel formato xywh normalizzato (da 0 a 1). Se i box sono espressi in pixel, dividi x_center e width per la larghezza dell'immagine e y_center e height per l'altezza dell'immagine. Gli indici delle classi partono da zero (iniziano da 0).

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

Quando usi il formato Ultralytics YOLO, organizza le immagini e le etichette di addestramento e validazione come mostrato nell'esempio del dataset COCO8 qui sotto.

Esempio d'uso#
Ecco come puoi usare i dataset in formato YOLO per addestrare il tuo modello:
from ultralytics import YOLO
# Carica un modello
model = YOLO("yolo26n.pt") # carica un modello preaddestrato (consigliato per l'addestramento)
# Addestra il modello
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Formato Ultralytics NDJSON#
Il formato NDJSON (JSON delimitato da newline) offre un modo alternativo per definire dataset per i modelli Ultralytics YOLO. Questo formato memorizza i metadati e le annotazioni del dataset in un unico file, dove ogni riga contiene un oggetto JSON distinto.
Un file di dataset NDJSON contiene:
- Record del dataset (prima riga): contiene i metadati del dataset, inclusi il tipo di attività, i nomi delle classi e le informazioni generali
- Record delle immagini (righe successive): contengono i dati delle singole immagini, incluse dimensioni, annotazioni e percorsi dei file
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.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 personalizzati delle immagini#
Ogni record di immagine può includere un oggetto JSON metadata per fornire informazioni specifiche dell'applicazione, come le condizioni di acquisizione, gli identificativi delle apparecchiature o lo stato della revisione. Sono supportati valori annidati. Quando importi i dati in Ultralytics Platform, i metadati vengono salvati insieme all'immagine e puoi visualizzarli o modificarli dal pannello informativo 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"
}
}Platform limita le chiavi dei metadati di primo livello a 128 caratteri, l'oggetto dei metadati serializzato di ogni immagine a 500.000 caratteri e i metadati effettivi combinati di una singola importazione NDJSON a 500.000 caratteri.
Esempio d'uso#
Per usare un dataset NDJSON con YOLO26, basta specificare il percorso del file .ndjson:
from ultralytics import YOLO
# Carica un modello
model = YOLO("yolo26n.pt")
# Addestra usando un dataset NDJSON
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Vantaggi del formato NDJSON#
- File singolo: tutte le informazioni del dataset sono contenute in un unico file
- Elaborazione in streaming: consente di elaborare dataset di grandi dimensioni riga per riga senza caricare tutto in memoria
- Integrazione con il cloud: supporta URL di immagini remote per l'addestramento basato sul cloud
- Estensibilità: è facile aggiungere campi di metadati personalizzati
- Controllo delle versioni: il formato a file singolo è adatto a git e ai sistemi di controllo delle versioni
Dataset supportati#
Ecco un elenco dei dataset supportati, ciascuno con una breve descrizione. La maggior parte di questi dataset è disponibile anche su Ultralytics Platform, dove puoi esplorare immagini e annotazioni, consultare le statistiche dei dataset e clonarli per l'addestramento nel cloud.
- African-wildlife: un dataset di immagini della fauna selvatica africana, tra cui bufali, elefanti, rinoceronti e zebre.
- Argoverse: il dataset di rilevamento 2D Argoverse-HD, composto da 54.446 immagini urbane per la guida autonoma, suddivise in 8 classi di oggetti stradali.
- Brain-tumor: un dataset per il rilevamento di tumori cerebrali che include immagini di risonanze magnetiche o TAC con dettagli sulla presenza, la posizione e le caratteristiche dei tumori.
- COCO: Oggetti comuni nel contesto (COCO) è un dataset su larga scala per il rilevamento degli oggetti, la segmentazione e la generazione di didascalie, con 80 categorie di oggetti.
- COCO8: Un sottoinsieme ridotto delle prime 8 immagini di COCO train2017, di cui 4 per l'addestramento e 4 per la convalida, adatto a test rapidi.
- COCO8-Grayscale: Una versione in scala di grigi di COCO8, ottenuta convertendo RGB in scala di grigi, utile per valutare modelli a canale singolo.
- COCO8-Multispectral: Una versione multispettrale a 10 canali di COCO8, ottenuta interpolando le lunghezze d'onda RGB, utile per valutare modelli sensibili allo spettro.
- COCO12-Formats: un dataset di test con 12 immagini, ciascuna in uno dei 12 formati supportati (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP), per convalidare le pipeline di caricamento delle immagini.
- COCO16: un sottoinsieme delle prime 16 immagini di COCO train2017 (8 per l'addestramento + 8 per la validazione), adatto a test rapidi.
- COCO32: un sottoinsieme delle prime 32 immagini di COCO train2017 (16 per l'addestramento + 16 per la validazione), adatto a test rapidi.
- COCO64: un sottoinsieme delle prime 64 immagini di COCO train2017 (32 per l'addestramento + 32 per la validazione), adatto a test rapidi.
- COCO128: Un sottoinsieme ridotto delle prime 128 immagini di COCO train2017, adatto ai test.
- Construction-PPE: un dataset con operai nei cantieri e dispositivi di protezione individuale annotati, come caschi, giubbotti, guanti, stivali e occhiali; include annotazioni relative ai dispositivi mancanti, come no_helmet e no_goggle, per il monitoraggio della conformità in contesti reali.
- Global Wheat 2020: Un dataset con immagini di spighe di grano per la sfida Global Wheat Challenge 2020.
- HomeObjects-3K: un dataset di oggetti domestici da interni, tra cui letti, sedie, TV e altro, ideale per applicazioni di domotica, robotica, realtà aumentata e analisi della disposizione degli ambienti.
- KITTI: un dataset con scene di guida reali e dati stereo, LiDAR e GPS/IMU, usato qui per attività di rilevamento 2D degli oggetti, come l'identificazione di automobili, pedoni e ciclisti in ambienti urbani, rurali e autostradali.
- LVIS: Un dataset su larga scala per il rilevamento di oggetti e la segmentazione di istanze, con 1.203 categorie di oggetti.
- Medical-pills: un dataset di immagini di pillole medicinali, annotate per applicazioni come il controllo qualità farmaceutico, lo smistamento delle pillole e la conformità normativa.
- Objects365: un dataset di alta qualità e su larga scala per il rilevamento degli oggetti, con 365 categorie di oggetti e oltre 1,7 milioni di immagini di addestramento.
- OpenImagesV7: Un dataset completo di Google con 1,7 milioni di immagini di addestramento e 42.000 immagini di convalida.
- Roboflow 100: un benchmark diversificato per il rilevamento degli oggetti, con 100 dataset che coprono sette domini di immagini per una valutazione completa dei modelli.
- Signature: Un dataset con immagini di vari documenti e firme annotate, a supporto della ricerca sulla verifica documentale e sul rilevamento delle frodi.
- SKU-110K: un dataset con immagini dense per il rilevamento degli oggetti in ambienti di vendita al dettaglio, con oltre 11K immagini e 1,7 milioni di bounding box.
- TT100K: esplora il dataset dei segnali stradali Tsinghua-Tencent 100K (TT100K), con 16.817 immagini stradali suddivise in 221 categorie di segnali, per un rilevamento e una classificazione affidabili.
- VisDrone: Un dataset con dati di rilevamento di oggetti e tracking multi-oggetto da immagini e sequenze video riprese da droni, con oltre 10.000 immagini.
- VOC: il dataset Pascal Visual Object Classes (VOC) per il rilevamento e la segmentazione degli oggetti, con 20 classi di oggetti e oltre 11K immagini.
- xView: Un dataset per il rilevamento di oggetti in immagini aeree, con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.
Aggiungere il tuo dataset#
Se hai un tuo dataset e vuoi usarlo per addestrare modelli di rilevamento con il formato Ultralytics YOLO, assicurati che rispetti il formato specificato sopra nella sezione "Formato Ultralytics YOLO". Converti le annotazioni nel formato richiesto e specifica i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.
Trasferire o convertire i formati delle etichette#
Formato del dataset COCO nel formato YOLO#
Puoi convertire facilmente le etichette dal popolare formato del dataset COCO al formato YOLO usando il seguente frammento di codice:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Questo strumento di conversione può essere usato per convertire il dataset COCO o qualsiasi dataset nel formato COCO nel formato Ultralytics YOLO. Il processo trasforma le annotazioni COCO basate su JSON nel più semplice formato YOLO basato su testo, rendendole compatibili con i modelli Ultralytics YOLO. Per il flusso di lavoro completo — inclusi la mappatura degli ID delle classi, la struttura delle directory e le annotazioni di segmentazione o posa — consulta Convertire le annotazioni COCO in YOLO.
Ricordati di verificare che il dataset che vuoi usare sia compatibile con il tuo modello e rispetti le convenzioni di formato necessarie. I dataset formattati correttamente sono fondamentali per addestrare modelli di rilevamento degli oggetti efficaci.
E adesso?#
Una volta formattato il dataset, inizia ad addestrare il tuo modello. Non sai da quale modello preaddestrato iniziare? Confronta le opzioni nella famiglia di modelli YOLO26.
Domande frequenti#
Il formato Ultralytics YOLO è una configurazione strutturata per definire i dataset nei tuoi progetti di addestramento. Prevede l'impostazione dei percorsi delle immagini di addestramento, convalida e test e delle rispettive etichette. Ad 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.zipLe etichette vengono salvate in file
*.txt, uno per ogni immagine, formattati comeclass x_center y_center width heightcon coordinate normalizzate. Per una guida dettagliata, consulta l'esempio del dataset COCO8.Puoi convertire un dataset COCO nel formato YOLO usando 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 converte le tue annotazioni COCO nel formato YOLO, consentendo un'integrazione perfetta con i modelli Ultralytics YOLO. Per ulteriori dettagli, visita la sezione Trasferire o convertire i formati delle etichette.
Ultralytics YOLO supporta un'ampia gamma di dataset, tra cui:
La pagina di ogni dataset fornisce informazioni dettagliate sulla struttura e sull'utilizzo, pensate per un addestramento efficiente di YOLO26. Esplora l'elenco completo nella sezione Dataset supportati.
Per iniziare ad addestrare un modello YOLO26, assicurati che il dataset sia formattato correttamente e che i percorsi siano definiti in un file YAML. Usa il seguente script per iniziare l'addestramento:
Esempiofrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Carica un modello preaddestrato results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulta la sezione Utilizzo per maggiori dettagli sull'uso delle diverse modalità, inclusi i comandi CLI.
Ultralytics offre numerosi esempi e guide pratiche per usare YOLO26 in diverse applicazioni. Per una panoramica completa, visita il blog Ultralytics, dove trovi casi di studio, tutorial dettagliati e storie della community che mostrano il rilevamento degli oggetti, la segmentazione e altro con YOLO26. Per esempi specifici, consulta la pagina della modalità Predict nella documentazione.