YOLO Vision 2026:

COCO-Seg-Datensatz#

Das COCO-Seg Dataset stellt COCO (Common Objects in Context) Instanz-Segmentierungsmasken bereit — 118.287 Trainings- und 5.000 Validierungsbilder mit Polygon-Masken für 80 Objektkategorien — im Ultralytics YOLO-Labelformat. Es verwendet die originalen COCO-Bilder und die nativen Segmentierungs-Annotationen, konvertiert für das YOLO-Training, was es zu einer entscheidenden Ressource für Forscher und Entwickler macht, die an instance segmentation-Aufgaben arbeiten.

COCO-Seg vortrainierte Modelle#

ModellGröße
(Pixel)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Parameter
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052,544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054,445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

Hauptfunktionen#

  • COCO-Seg bietet Instanz-Segmentierungsmasken für 123.287 annotierte COCO train2017/val2017 Bilder (118.287 train + 5.000 val), aus der umfassenderen ~330.000 Bilder umfassenden COCO-Veröffentlichung.
  • Der Datensatz besteht aus denselben 80 Objektkategorien, die auch im ursprünglichen COCO-Datensatz enthalten sind.
  • Annotationen bieten Instanz-Segmentierungsmasken im YOLO-Polygon-Labelformat.
  • COCO-Seg stellt standardisierte mAP- und mAR-Metriken zur Bewertung der Instanz-Segmentierungsleistung bereit, was einen effektiven Vergleich der Modellleistung ermöglicht.
  • Downloadgröße: ~20,3 GB bei der ersten Verwendung (train2017.zip + val2017.zip + Labels). Die 7 GB große Datei test2017.zip wird nicht automatisch abgerufen, da diese Bilder keine Ground Truth enthalten und nur für eine test-dev2017-Einreichung benötigt werden.

Datensatzstruktur#

Der COCO-Seg-Datensatz ist in drei Teilmengen unterteilt:

  1. Train2017: 118.287 Bilder für das Training von Instanz-Segmentierungsmodellen.
  2. Val2017: 5.000 Bilder, die zur Validierung während der Modellentwicklung verwendet werden.
  3. Test-dev2017: 20.288 der 40.670 test2017-Bilder, die für Benchmarks verwendet werden. Ground-Truth-Annotationen für diese Teilmenge sind nicht öffentlich verfügbar, daher müssen Vorhersagen zur Bewertung beim COCO evaluation server eingereicht werden.

Für kleinere Experimente sieh dir die Teilmengen COCO128-Seg (128 Bilder) und COCO8-Seg (8 Bilder) an.

Anwendungen#

COCO-Seg wird häufig für das Training und die Evaluierung von deep learning-Modellen für instance segmentation verwendet, wie etwa die YOLO-Modelle. Die große Anzahl annotierter Bilder, die Vielfalt der Objektkategorien und die standardisierten Bewertungsmetriken machen es zu einer unverzichtbaren Ressource für computer vision-Forscher und Praktiker. Vollständige COCO-Seg-Annotationen können auch auf der Ultralytics Platform durchsucht und verwaltet werden.

Datensatz-YAML#

Eine YAML-Datei wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade, Klassen und andere relevante Daten des Datasets. Im Fall des COCO-Seg-Datasets wird die Datei coco.yaml unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml gepflegt.

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)

Verwendung#

Um ein YOLO26n-seg-Modell auf dem COCO-Seg-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Snippets verwenden. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite Training für Modelle.

Trainingsbeispiel
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)

Beispielbilder und Annotationen#

COCO-Seg enthält dieselben vielfältigen Bilder, Objektkategorien und komplexen Szenen wie COCO, wobei Instanz-Segmentierungsmasken im YOLO-Labelformat bereitgestellt werden. Hier sind einige Beispiele von Bildern aus dem Datensatz, zusammen mit ihren entsprechenden Instanz-Segmentierungsmasken:

COCO-Segmentierungsdatensatz Mosaik-Trainingsbatch

  • Mosaiced Image: Dieses Bild zeigt einen Trainings-Batch, der aus mosaikierten Dataset-Bildern besteht. Mosaicing ist eine Technik, die während des Trainings verwendet wird und mehrere Bilder zu einem einzigen kombiniert, um die Vielfalt der Objekte und Szenen innerhalb jedes Trainings-Batches zu erhöhen. Dies unterstützt die Fähigkeit des Modells, auf verschiedene Objektgrößen, Seitenverhältnisse und Kontexte zu generalisieren.

Zitate und Danksagungen#

Wenn du den COCO-Seg-Datensatz in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das ursprüngliche COCO-Paper und erkenne die Erweiterung zu COCO-Seg an:

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

Wir danken dem COCO-Konsortium für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community. Weitere Informationen über den COCO-Datensatz und seine Ersteller findest du auf der COCO-Datensatz-Website.

FAQ#

Was ist der COCO-Seg-Datensatz und wie unterscheidet er sich vom ursprünglichen COCO-Datensatz?#

COCO-Seg ist das Ultralytics YOLO-formatierte Paket der nativen COCO (Common Objects in Context) Instanz-Segmentierungsmasken für dieselben 118.287 train2017- und 5.000 val2017-Bilder. Die ursprünglichen COCO-Annotationen enthalten bereits diese Polygon-Masken für alle 80 Objektkategorien; COCO-Seg konvertiert sie in das YOLO-Labelformat, das für das object instance segmentation-Training verwendet wird.

Wie kann ich ein YOLO26-Modell mit dem COCO-Seg-Datensatz trainieren?#

Um ein YOLO26n-seg-Modell auf dem COCO-Seg-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Snippets verwenden. Eine detaillierte Liste der verfügbaren Trainingsargumente findest du auf der Modell-Training-Seite.

Trainingsbeispiel
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)

Was sind die Hauptmerkmale des COCO-Seg-Datensatzes?#

Der COCO-Seg-Datensatz umfasst mehrere Hauptmerkmale:

  • Bietet Instanz-Segmentierungsmasken für 123.287 annotierte COCO train2017/val2017-Bilder (118.287 train + 5.000 val).
  • Annotiert dieselben 80 Objektkategorien, die auch im ursprünglichen COCO gefunden wurden.
  • Bietet Instanz-Segmentierungsmasken im YOLO-Polygon-Labelformat.
  • Verwendet standardisierte Bewertungsmetriken wie mean Average Precision (mAP) und mean Average Recall (mAR) für instance segmentation-Aufgaben.

Welche vortrainierten Modelle sind für COCO-Seg verfügbar und wie sind ihre Leistungsmetriken?#

Der COCO-Seg-Datensatz unterstützt mehrere vortrainierte YOLO26-Segmentierungsmodelle mit unterschiedlichen Leistungsmetriken. Hier ist eine Zusammenfassung der verfügbaren Modelle und ihrer wichtigsten Metriken:

ModellGröße
(Pixel)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Parameter
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052,544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054,445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

Diese Modelle reichen vom leichtgewichtigen YOLO26n-seg bis zum leistungsstärkeren YOLO26x-seg und bieten unterschiedliche Kompromisse zwischen Geschwindigkeit und Genauigkeit, um verschiedenen Anwendungsanforderungen gerecht zu werden. Weitere Informationen zur Modellauswahl findest du auf der Ultralytics models page.

Wie ist der COCO-Seg-Datensatz strukturiert und welche Teilmengen enthält er?#

Der COCO-Seg-Datensatz ist für spezifische Trainings- und Evaluierungsanforderungen in drei Teilmengen unterteilt:

  1. Train2017: Enthält 118.287 Bilder, die hauptsächlich zum Training von Instanz-Segmentierungsmodellen verwendet werden.
  2. Val2017: Umfasst 5.000 Bilder, die für die Validierung während des Trainingsprozesses genutzt werden.
  3. Test-dev2017: Umfasst 20.288 der 40.670 test2017-Bilder, die für Tests und Benchmarks trainierter Modelle reserviert sind. Beachte, dass Ground-Truth-Annotationen für diese Teilmenge nicht öffentlich verfügbar sind und die Leistungsergebnisse zur Beurteilung beim COCO evaluation server eingereicht werden müssen.

Für kleinere Experimente kannst du auch das COCO128-Seg dataset (128 Bilder) oder das COCO8-Seg dataset in Betracht ziehen, eine kompakte Version, die nur 8 Bilder aus dem COCO train 2017 Set enthält.

Kommentare