Ultralytics YOLO27:

Dataset COCO128#

Introduzione#

Ultralytics COCO128 è un dataset piccolo ma versatile per il rilevamento degli oggetti, composto dalle prime 128 immagini del set COCO train 2017. Questo dataset è ideale per testare e sottoporre a debug i modelli di rilevamento degli oggetti o per sperimentare nuovi approcci al rilevamento. Con 128 immagini, è abbastanza piccolo da essere facilmente gestibile, ma abbastanza vario da consentire di verificare la presenza di errori nelle pipeline di addestramento e fungere da controllo preliminare prima di addestrare dataset più grandi.



Watch: Ultralytics COCO Dataset Overview

Questo dataset è destinato all'uso con Ultralytics Platform e YOLO26.

Struttura del dataset#

COCO128 contiene le prime 128 immagini del set COCO train 2017 e comprende tutte le 80 classi di oggetti COCO nel formato delle etichette YOLO. Le stesse 128 immagini vengono utilizzate sia per il training sia per la validazione, mantenendo il dataset leggero per rapidi controlli preliminari:

coco128/
├── images/
│   └── train2017/   # 128 images (used for both train and val)
└── labels/
    └── train2017/

YAML del dataset#

Un file YAML viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e su altri dati rilevanti. Nel caso del dataset COCO128, il file coco128.yaml è mantenuto all'indirizzo https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco128.yaml.

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

# COCO128 dataset https://www.kaggle.com/datasets/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco128
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco128 ← downloads here (7 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: coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 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/coco128.zip

Utilizzo#

Il dataset COCO128 (7 MB) viene scaricato automaticamente la prima volta che avvii il training. Per addestrare un modello YOLO26n su COCO128 per 100 epoche con una dimensione delle immagini pari a 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina Training del modello.

Esempio di addestramento
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="coco128.yaml", epochs=100, imgsz=640)

Immagini ed esempi di annotazioni#

Ecco alcuni esempi di immagini del dataset COCO128, insieme alle relative annotazioni:

COCO128 object detection dataset mosaic training batch
  • Immagine a mosaico: questa immagine mostra un batch di addestramento composto da immagini del dataset unite a mosaico. La composizione a mosaico è una tecnica utilizzata durante l'addestramento che combina più immagini in un'unica immagine per aumentare la varietà di oggetti e scene all'interno di ogni batch di addestramento. Questo contribuisce a migliorare la capacità del modello di generalizzare a diverse dimensioni degli oggetti, proporzioni e contesti.

L'esempio mostra la varietà e la complessità delle immagini nel dataset COCO128 e i vantaggi dell'utilizzo del mosaicing durante il processo di training.

Citazioni e ringraziamenti#

Se utilizzi il dataset COCO nelle tue attività di ricerca o sviluppo, cita il seguente articolo:

Citazione
@misc{lin2015microsoft,
      title={Microsoft COCO: Common Objects in Context},
      author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Desideriamo ringraziare il COCO Consortium per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision. Per ulteriori informazioni sul dataset COCO e sui suoi creatori, visita il sito web del dataset COCO.

FAQ#

  • Il dataset COCO128 di Ultralytics è un sottoinsieme compatto che contiene le prime 128 immagini del dataset COCO train 2017. Viene utilizzato principalmente per testare e sottoporre a debug i modelli di rilevamento degli oggetti, sperimentare nuovi approcci al rilevamento e convalidare le pipeline di training prima di passare a dataset più grandi. Le sue dimensioni gestibili lo rendono perfetto per iterazioni rapide, offrendo comunque una varietà sufficiente per costituire un caso di test significativo.

  • Per addestrare un modello YOLO26 sul dataset COCO128, puoi utilizzare Python o i comandi CLI. Ecco come:

    Esempio di addestramento
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n.pt")
    
    # Train the model
    results = model.train(data="coco128.yaml", epochs=100, imgsz=640)

    Per ulteriori opzioni e parametri di training, consulta la documentazione Training.

  • L'augmentation mosaico, come mostrato nelle immagini di esempio, combina più immagini di training in un'unica immagine composita. Questa tecnica offre diversi vantaggi durante il training con COCO128:

    • Aumenta la varietà degli oggetti e dei contesti all'interno di ogni batch di training
    • Migliora la generalizzazione del modello tra oggetti di dimensioni e rapporti d'aspetto diversi
    • Migliora le prestazioni di rilevamento degli oggetti a diverse scale
    • Massimizza l'utilità di un dataset piccolo creando campioni di training più diversificati

    Questa tecnica è particolarmente preziosa per dataset più piccoli come COCO128, poiché aiuta i modelli ad apprendere feature più robuste da dati limitati.

  • COCO128 (128 immagini) si colloca tra COCO8 (8 immagini) e il dataset COCO completo (oltre 118.000 immagini) in termini di dimensioni:

    • COCO8: contiene solo 8 immagini (4 per il training e 4 per la validazione), ideale per test rapidi e debugging
    • COCO128: contiene 128 immagini, con un equilibrio tra dimensioni e varietà
    • COCO completo: contiene oltre 118.000 immagini di training, completo ma impegnativo in termini di risorse

    COCO128 offre un buon compromesso, con una varietà maggiore rispetto a COCO8, pur rimanendo molto più gestibile del dataset COCO completo per la sperimentazione e lo sviluppo iniziale dei modelli.

  • Sebbene COCO128 sia progettato principalmente per il rilevamento degli oggetti, le annotazioni del dataset possono essere adattate ad altre attività di computer vision:

    • Segmentazione delle istanze: utilizzando le maschere di segmentazione fornite nelle annotazioni
    • Rilevamento dei keypoint: per immagini contenenti persone con annotazioni dei keypoint
    • Transfer learning: come punto di partenza per il fine-tuning dei modelli per attività personalizzate

    Per attività specializzate come la segmentazione, valuta l'utilizzo di varianti progettate appositamente, come COCO8-seg, che includono le annotazioni appropriate.

Commenti