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 🚀 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 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.
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 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).

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

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.

Esempio di utilizzo#
Ecco come puoi utilizzare i dataset in formato YOLO per addestrare il tuo modello:
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:
- 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): Contiene i dati delle singole immagini inclusi dimensioni, annotazioni e percorsi dei file
{
"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:
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:
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.zipLe 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:
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.