Ultralytics YOLO27:

Dataset COCO-Seg#

Il dataset COCO-Seg fornisce maschere di segmentazione delle istanze del dataset COCO (oggetti comuni nei contesti) — 118.287 immagini di addestramento e 5.000 immagini di convalida con maschere poligonali distribuite in 80 categorie di oggetti — nel formato delle etichette Ultralytics YOLO. Utilizza le immagini originali di COCO e le annotazioni native di segmentazione, convertite per l'addestramento di YOLO, rendendolo una risorsa fondamentale per ricercatori e sviluppatori che lavorano su attività di segmentazione delle istanze.

Modelli preaddestrati COCO-Seg#

Modellodimensione
(pixel)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.3
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.5
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.7
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0140.1
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8314.0

Funzionalità principali#

  • COCO-Seg fornisce maschere di segmentazione delle istanze per 123.287 immagini COCO annotate di train2017/val2017 (118.287 di train + 5.000 di val), su una distribuzione complessiva di COCO di ~330.000 immagini.
  • Il dataset è composto dalle stesse 80 categorie di oggetti presenti nel dataset COCO originale.
  • Le annotazioni forniscono maschere di segmentazione delle istanze nel formato delle etichette poligonali YOLO.
  • COCO-Seg fornisce metriche standardizzate mAP e mAR per valutare le prestazioni nella segmentazione delle istanze, consentendo un confronto efficace delle prestazioni dei modelli.
  • Dimensioni del download: ~20,3 GB al primo utilizzo (train2017.zip + val2017.zip + etichette). I 7 GB di test2017.zip non vengono recuperati automaticamente, poiché queste immagini hanno il ground truth nascosto e sono necessarie solo per una sottomissione test-dev2017.

Struttura del dataset#

Il dataset COCO-Seg è suddiviso in tre sottoinsiemi:

  1. Train2017: 118.287 immagini per l'addestramento di modelli di segmentazione delle istanze.
  2. Val2017: 5.000 immagini utilizzate per la convalida durante lo sviluppo del modello.
  3. Test-dev2017: 20.288 delle 40.670 immagini test2017, utilizzate per il benchmarking. Le annotazioni ground truth per questo sottoinsieme non sono disponibili pubblicamente, quindi le predizioni devono essere inviate al server di valutazione COCO per ottenere un punteggio.

Per esigenze di sperimentazione più contenute, consulta i sottoinsiemi COCO128-Seg (128 immagini) e COCO8-Seg (8 immagini).

Applicazioni#

COCO-Seg è ampiamente utilizzato per addestrare e valutare modelli di deep learning sulla segmentazione delle istanze, come i modelli YOLO. L'elevato numero di immagini annotate, la varietà delle categorie di oggetti e le metriche di valutazione standardizzate lo rendono una risorsa indispensabile per ricercatori e professionisti della computer vision. Le annotazioni complete di COCO-Seg possono anche essere consultate e gestite su Ultralytics Platform.

YAML del dataset#

Un file YAML viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi del dataset, sulle classi e su altre informazioni pertinenti. Nel caso del dataset COCO-Seg, il file coco.yaml è mantenuto all'indirizzo https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.

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

# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/detect/coco
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco ← downloads here (20.3 GB)

# 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: coco # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit via https://cocodataset.org/#detection-eval

# 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: |
  from pathlib import Path

  from ultralytics.utils import ASSETS_URL
  from ultralytics.utils.downloads import download

  # Download labels
  segments = True  # segment or box labels
  dir = Path(yaml["path"])  # dataset root dir
  urls = [ASSETS_URL + ("/coco2017labels-segments.zip" if segments else "/coco2017labels.zip")]  # labels
  download(urls, dir=dir.parent)

  # Download data (test2017.zip excluded: ground truth is withheld, only used for the eval-server test-dev split)
  urls = [
      "http://images.cocodataset.org/zips/train2017.zip",  # 19G, 118k images
      "http://images.cocodataset.org/zips/val2017.zip",  # 1G, 5k images
  ]
  download(urls, dir=dir / "images", threads=3)

Utilizzo#

Per addestrare un modello YOLO26n-seg sul dataset COCO-Seg per 100 epoche con una dimensione delle immagini di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina Addestramento del modello.

Esempio di addestramento
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco.yaml", epochs=100, imgsz=640)

Immagini ed esempi di annotazioni#

COCO-Seg contiene le stesse immagini variegate, categorie di oggetti e scene complesse di COCO, con maschere di segmentazione delle istanze fornite nel formato delle etichette YOLO. Ecco alcuni esempi di immagini del dataset, insieme alle relative maschere di segmentazione delle istanze:

Mosaico del dataset di segmentazione COCO per il batch di addestramento

  • Immagine a mosaico: questa immagine mostra un batch di addestramento composto da immagini del dataset disposte a mosaico. Il mosaicing è 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 aiuta il modello a generalizzare rispetto a diverse dimensioni degli oggetti, proporzioni e contesti.

Citazioni e ringraziamenti#

Se utilizzi il dataset COCO-Seg nelle tue attività di ricerca o sviluppo, cita l'articolo originale su COCO e riconosci l'estensione COCO-Seg:

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}
}

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

FAQ#

  • COCO-Seg è il pacchetto nel formato Ultralytics YOLO delle maschere native di segmentazione delle istanze di COCO (oggetti comuni nei contesti) per le stesse 118.287 immagini train2017 e 5.000 immagini val2017. Le annotazioni COCO originali includono già queste maschere poligonali per tutte le 80 categorie di oggetti; COCO-Seg le converte nel formato delle etichette YOLO utilizzato per l'addestramento della segmentazione delle istanze degli oggetti.

  • Per addestrare un modello YOLO26n-seg sul dataset COCO-Seg per 100 epoche con una dimensione delle immagini di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco dettagliato degli argomenti di addestramento disponibili, consulta la pagina Addestramento del modello.

    Esempio di addestramento
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-seg.pt")  # load a pretrained model (recommended for training)
    
    # Train the model
    results = model.train(data="coco.yaml", epochs=100, imgsz=640)
  • Il dataset COCO-Seg include diverse caratteristiche principali:

    • Fornisce maschere di segmentazione delle istanze per 123.287 immagini COCO annotate di train2017/val2017 (118.287 di train + 5.000 di val).
    • Annota le stesse 80 categorie di oggetti presenti nel COCO originale.
    • Fornisce maschere di segmentazione delle istanze nel formato delle etichette poligonali YOLO.
    • Utilizza metriche di valutazione standardizzate come la Precisione media (mAP) e il richiamo medio (mAR) per le attività di segmentazione delle istanze.
  • Il dataset COCO-Seg supporta diversi modelli di segmentazione YOLO26 preaddestrati con metriche di prestazione variabili. Ecco un riepilogo dei modelli disponibili e delle relative metriche principali:

    Modellodimensione
    (pixel)
    mAPbox
    50-95(e2e)
    mAPmask
    50-95(e2e)
    Velocità
    CPU ONNX
    (ms)
    Velocità
    T4 TensorRT10
    (ms)
    parametri
    (M)
    FLOPs
    (B)
    YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.3
    YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.5
    YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.7
    YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0140.1
    YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8314.0

    Questi modelli spaziano dal leggero YOLO26n-seg al più potente YOLO26x-seg, offrendo diversi compromessi tra velocità e accuratezza per soddisfare vari requisiti applicativi. Per ulteriori informazioni sulla scelta del modello, visita la pagina dei modelli Ultralytics.

  • Il dataset COCO-Seg è suddiviso in tre sottoinsiemi per specifiche esigenze di addestramento e valutazione:

    1. Train2017: contiene 118.287 immagini utilizzate principalmente per l'addestramento di modelli di segmentazione delle istanze.
    2. Val2017: comprende 5.000 immagini utilizzate per la convalida durante il processo di addestramento.
    3. Test-dev2017: comprende 20.288 delle 40.670 immagini test2017 riservate al test e al benchmarking dei modelli addestrati. Tieni presente che le annotazioni ground truth per questo sottoinsieme non sono disponibili pubblicamente e che i risultati delle prestazioni vengono inviati al server di valutazione COCO per la valutazione.

    Per esigenze di sperimentazione più contenute, puoi anche prendere in considerazione il dataset COCO128-Seg (128 immagini) o il dataset COCO8-Seg, una versione compatta contenente solo 8 immagini del set COCO train 2017.

Commenti