Vai al contenuto

Panoramica dei set di dati per il rilevamento degli oggetti

Training a robust and accurate object detection model requires a comprehensive dataset. This guide introduces various formats of datasets that are compatible with the Ultralytics YOLO model and provides insights into their structure, usage, and how to convert between different formats.

Formati di dati supportati

Ultralytics YOLO formato

Il formato Ultralytics YOLO è un formato di configurazione del dataset che ti permette di definire la directory principale del dataset, i percorsi relativi alle directory delle immagini di formazione/validazione/test oppure *.txt file contenenti i percorsi delle immagini e un dizionario di nomi di classi. Ecco un esempio:

# 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: ../datasets/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 (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

Le etichette per questo formato devono essere esportate in formato YOLO con un solo *.txt file per immagine. Se non ci sono oggetti in un'immagine, non c'è alcun file *.txt è necessario. Il *.txt Il file deve essere formattato con una riga per ogni oggetto in class x_center y_center width height formato. Le coordinate della casella devono essere in xywh normalizzato (da 0 a 1). Se le tue caselle sono in pixel, devi dividere x_center e width per larghezza dell'immagine e y_center e height per altezza dell'immagine. I numeri delle classi devono essere indicizzati a zero (iniziano con 0).

Esempio di immagine etichettata

Il file di etichetta corrispondente all'immagine precedente contiene 2 persone (classe 0) e un pareggio (classe 27):

Esempio di file di etichetta

Quando utilizzi il formato Ultralytics YOLO , organizza le immagini di formazione e di convalida e le etichette come mostrato nell'esempio del set di dati COCO8.

Esempio di struttura della directory del dataset

Utilizzo

Ecco come puoi utilizzare questi formati per addestrare il tuo modello:

Esempio

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Set di dati supportati

Ecco un elenco dei set di dati supportati e una breve descrizione di ciascuno:

  • Argoverse: Un set di dati che contiene dati di tracciamento 3D e di previsione del movimento da ambienti urbani, con numerose annotazioni.
  • COCO: Common Objects in Context (COCO) è un set di dati su larga scala per il rilevamento, la segmentazione e la didascalia di oggetti con 80 categorie di oggetti.
  • LVIS: un set di dati su larga scala per il rilevamento, la segmentazione e la didascalia degli oggetti con 1203 categorie di oggetti.
  • COCO8: un sottoinsieme più piccolo delle prime 4 immagini di COCO train e COCO val, adatto a test rapidi.
  • COCO128: A smaller subset of the first 128 images from COCO train and COCO val, suitable for tests.
  • Grano globale 2020: Un set di dati contenente immagini di teste di grano per la Global Wheat Challenge 2020.
  • Objects365: Un dataset di alta qualità e su larga scala per il rilevamento di oggetti con 365 categorie di oggetti e oltre 600K immagini annotate.
  • OpenImagesV7: un set di dati completo di Google con 1,7 milioni di immagini di addestramento e 42.000 immagini di convalida.
  • SKU-110K: Un set di dati per il rilevamento di oggetti densi in ambienti di vendita al dettaglio con oltre 11.000 immagini e 1,7 milioni di caselle di delimitazione.
  • VisDrone: Un set di dati che contiene dati sul rilevamento di oggetti e sul tracciamento di più oggetti da immagini catturate da droni con oltre 10.000 immagini e sequenze video.
  • 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 set di dati per il rilevamento di oggetti in immagini dall'alto con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.
  • Roboflow 100: un benchmark di rilevamento di oggetti diversi con 100 set di dati che abbracciano sette domini di immagini per una valutazione completa dei modelli.
  • Tumore al cervello: Un set di dati per il rilevamento dei tumori cerebrali comprende immagini di risonanza magnetica o TAC con dettagli sulla presenza, la posizione e le caratteristiche del tumore.
  • African-wildlife: Un set di dati con immagini di animali selvatici africani, tra cui bufali, elefanti, rinoceronti e zebre.
  • Firma: Un set di dati che contiene immagini di vari documenti con firme annotate, a supporto delle ricerche sulla verifica dei documenti e sull'individuazione delle frodi.

Aggiungi il tuo set di dati

Se hai un tuo set di dati e vuoi utilizzarlo per addestrare i modelli di rilevamento con il formato Ultralytics YOLO , assicurati che segua il formato specificato sopra in "FormatoUltralytics 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.

Porta o converti i formati delle etichette

Formato del set di dati COCO in formato YOLO

Puoi convertire facilmente le etichette dal popolare formato 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 altro set di dati in formato COCO nel formato Ultralytics YOLO .

Ricordati di controllare due volte che il set di dati che vuoi utilizzare sia compatibile con il tuo modello e che segua le convenzioni di formato necessarie. I dataset correttamente formattati sono fondamentali per addestrare modelli di rilevamento di oggetti di successo.

DOMANDE FREQUENTI

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

Il formato Ultralytics YOLO è una configurazione strutturata per definire i set di dati nei tuoi progetti di formazione. Si tratta di impostare i percorsi delle immagini di formazione, convalida e test e le etichette corrispondenti. Ad esempio:

path: ../datasets/coco8 # dataset root directory
train: images/train # training images (relative to 'path')
val: images/val # validation images (relative to 'path')
test: # optional test images
names:
    0: person
    1: bicycle
    2: car
    # ...

Le etichette vengono salvate in *.txt file con un file per immagine, formattato come class x_center y_center width height con coordinate normalizzate. Per una guida dettagliata, consulta la sezione Esempio di set di dati COCO8.

Come posso convertire un set di dati COCO nel formato YOLO ?

Puoi convertire un set di dati COCO nel formato YOLO utilizzando gli strumenti di conversione di 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 una perfetta integrazione con i modelli Ultralytics YOLO . Per ulteriori dettagli, visita la sezione Porta o Converti i formati delle etichette.

Quali sono i set di dati supportati da Ultralytics YOLO per il rilevamento degli oggetti?

Ultralytics YOLO supporta un'ampia gamma di set di dati, tra cui:

Each dataset page provides detailed information on the structure and usage tailored for efficient YOLO11 training. Explore the full list in the Supported Datasets section.

How do I start training a YOLO11 model using my dataset?

To start training a YOLO11 model, ensure your dataset is formatted correctly and the paths are defined in a YAML file. Use the following script to begin training:

Esempio

from ultralytics import YOLO

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

Consulta la sezione Utilizzo per maggiori dettagli sull'utilizzo delle diverse modalità, inclusi i comandi di CLI .

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

Ultralytics provides numerous examples and practical guides for using YOLO11 in diverse applications. For a comprehensive overview, visit the Ultralytics Blog where you can find case studies, detailed tutorials, and community stories showcasing object detection, segmentation, and more with YOLO11. For specific examples, check the Usage section in the documentation.


📅 Created 11 months ago ✏️ Updated 8 days ago

Commenti