Ultralytics YOLO27:

Dataset COCO-Seg#

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

Modelli preaddestrati COCO-Seg#

Modellodimensione
(pixel)
mAPbox
50-95(e2e)
mAPmaschera
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 di istanze per 123.287 immagini COCO train2017/val2017 etichettate (118.287 di addestramento + 5.000 di convalida), su circa ~330.000 immagini della versione più ampia di COCO.
  • Il dataset comprende le stesse 80 categorie di oggetti del dataset COCO originale.
  • Le annotazioni forniscono maschere di segmentazione di istanze nel formato delle etichette poligonali YOLO.
  • COCO-Seg fornisce metriche standardizzate mAP e mAR per valutare le prestazioni della segmentazione di istanze, consentendo confronti efficaci tra modelli.
  • Dimensione del download: ~20,3 GB al primo utilizzo (train2017.zip + val2017.zip + etichette). Il file test2017.zip da 7 GB non viene scaricato automaticamente, poiché le relative immagini non hanno le annotazioni di riferimento e serve solo per una submission test-dev2017.

Struttura del dataset#

Il dataset COCO-Seg è suddiviso in tre sottoinsiemi:

  1. Train2017: 118.287 immagini per addestrare modelli di segmentazione delle istanze.
  2. Val2017: 5.000 immagini usate per la validazione durante lo sviluppo del modello.
  3. Test-dev2017: 20.288 delle 40.670 immagini di test2017, usate per il benchmarking. Le annotazioni di 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 le sperimentazioni su scala ridotta, consulta i sottoinsiemi COCO128-Seg (128 immagini) e COCO8-Seg (8 immagini).

Applicazioni#

COCO-Seg è ampiamente usato per addestrare e valutare modelli di deep learning per la 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 ne fanno una risorsa indispensabile per ricercatori e professionisti della visione artificiale. Puoi anche esplorare e gestire tutte le annotazioni di COCO-Seg su Ultralytics Platform.

YAML del dataset#

Un file YAML viene usato per definire la configurazione del dataset. Contiene informazioni sui percorsi, sulle classi e su altri aspetti rilevanti del dataset. Per il dataset COCO-Seg, il file coco.yaml è gestito in 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 usare 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

# Carica un modello
model = YOLO("yolo26n-seg.pt")  # carica un modello preaddestrato (consigliato per l'addestramento)

# Addestra il modello
results = model.train(data="coco.yaml", epochs=100, imgsz=640)

Immagini di esempio e annotazioni#

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

Mosaico di un batch di addestramento del dataset di segmentazione COCO

  • Immagine con mosaico: questa immagine mostra un batch di addestramento composto da immagini del dataset disposte a mosaico. Il mosaico è una tecnica usata durante l'addestramento che combina più immagini in un'unica immagine per aumentare la varietà di oggetti e scene in ogni batch di addestramento. Questo aiuta il modello a generalizzare a dimensioni degli oggetti, rapporti d'aspetto e contesti diversi.

Citazioni e ringraziamenti#

Se usi il dataset COCO-Seg nel tuo lavoro di ricerca o sviluppo, cita il paper originale di COCO e menziona 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 preziosa risorsa per la comunità della visione artificiale. Per maggiori informazioni sul dataset COCO e sui suoi creatori, visita il sito web del dataset COCO.

Domande frequenti#

  • COCO-Seg è il confezionamento in formato Ultralytics YOLO delle maschere native di segmentazione delle istanze di COCO (Oggetti comuni nel contesto) 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 di etichette YOLO usato per l'addestramento alla segmentazione delle istanze di oggetti.

  • Per addestrare un modello YOLO26n-seg sul dataset COCO-Seg per 100 epoche con una dimensione delle immagini di 640, puoi usare 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
    
    # Carica un modello
    model = YOLO("yolo26n-seg.pt")  # carica un modello preaddestrato (consigliato per l'addestramento)
    
    # Addestra il modello
    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 train2017/val2017 etichettate (118.287 train + 5.000 val).
    • Annota le stesse 80 categorie di oggetti presenti nel COCO originale.
    • Fornisce maschere di segmentazione delle istanze nel formato di etichette poligonali YOLO.
    • Usa 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)
    mAPmaschera
    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 vanno dal leggero YOLO26n-seg al più potente YOLO26x-seg e offrono diversi compromessi tra velocità e precisione, per soddisfare vari requisiti applicativi. Per maggiori informazioni sulla scelta del modello, visita la pagina dei modelli Ultralytics.

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

    1. Train2017: contiene 118.287 immagini usate principalmente per addestrare modelli di segmentazione delle istanze.
    2. Val2017: comprende 5.000 immagini usate per la validazione 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. Le annotazioni di ground truth per questo sottoinsieme non sono disponibili pubblicamente e i risultati delle prestazioni vengono inviati al server di valutazione COCO per la valutazione.

    Per le sperimentazioni su scala ridotta, puoi anche valutare il dataset COCO128-Seg (128 immagini) oppure il dataset COCO8-Seg, una versione compatta che contiene solo 8 immagini del set COCO train 2017.

Commenti