Ultralytics YOLO27:

COCO12-Formats-Datensatz#

Einleitung#

Der Ultralytics-COCO12-Formats-Datensatz ist ein spezieller Testdatensatz zur Validierung des Ladens von Bildern mit 12 unterstützten Bildformaterweiterungen. Er enthält 12 Bilder (6 für das Training, 6 für die Validierung), die jeweils in einem anderen Format gespeichert sind, um eine umfassende Prüfung der Bildladepipeline zu gewährleisten.

Dieser Datensatz ist besonders wertvoll für:

  • Unterstützung von Bildformaten testen: Überprüfe, ob gängige Bildformate korrekt geladen werden
  • CI/CD-Pipelines: Automatisierte Tests der Formatkompatibilität
  • Fehlerbehebung: Isoliere formatspezifische Probleme in Trainingspipelines
  • Entwicklung: Validiere neue Formaterweiterungen oder Änderungen

Wenn du Datensätze auf der Ultralytics Platform verwaltest, werden Bilder in allen diesen Formaten automatisch verarbeitet – eine manuelle Konvertierung ist nicht erforderlich.

Unterstützte Formate#

Der Datensatz enthält ein Bild für jede der 12 unterstützten Formaterweiterungen, die in ultralytics/data/utils.py definiert sind:

FormatErweiterungBeschreibungTraining/Validierung
AVIF.avifBilddateiformat auf Basis von AV1 (modern)Trainieren
BMP.bmpBitmap – unkomprimiertes RasterformatTrainieren
DNG.dngDigitales Negativ – Adobe-RAW-FormatTrainieren
HEIC.heicBildcodierung mit hoher EffizienzTrainieren
JPEG.jpegJPEG mit vollständiger ErweiterungTrainieren
JPG.jpgJPEG mit kurzer ErweiterungTrainieren
JP2.jp2JPEG 2000 – medizinische/geografische AnwendungenValidierung
MPO.mpoMehrbildobjekt (Stereobilder)Validierung
PNG.pngPortables Netzwerk-GrafikformatValidierung
TIF.tifTIFF mit kurzer ErweiterungValidierung
TIFF.tiffMarkiertes BilddateiformatValidierung
WebP.webpModernes WebbildformatValidierung

Datensatzstruktur#

coco12-formats/
├── images/
│   ├── train/          # 6 images (avif, bmp, dng, heic, jpeg, jpg)
│   └── val/            # 6 images (jp2, mpo, png, tif, tiff, webp)
├── labels/
│   ├── train/          # Corresponding YOLO format labels
│   └── val/
└── coco12-formats.yaml # Dataset configuration

Dataset-YAML#

Der COCO12-Formats-Datensatz wird mithilfe einer YAML-Datei konfiguriert, in der die Pfade des Datensatzes und die Klassennamen definiert sind. Du kannst die offizielle Datei coco12-formats.yaml im Ultralytics-GitHub-Repository einsehen.

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

# COCO12-Formats dataset (12 images testing all supported image formats) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco12-formats
# Example usage: yolo train data=coco12-formats.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco12-formats ← downloads here (1 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: coco12-formats # dataset root dir
train: images/train # train images (relative to 'path') 6 images
val: images/val # val images (relative to 'path') 6 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/coco12-formats.zip

Anforderungen#

Es ist keine manuelle Einrichtung erforderlich. OpenCV liest die meisten Formate direkt ein, und Ultralytics greift für AVIF, HEIC und HEIF auf Pillow zurück. AVIF wird von Pillow 11.3 oder neuer nativ dekodiert; aktualisiere daher Pillow, falls das Laden von AVIF-Dateien fehlschlägt, während die HEIC-/HEIF-Dekodierung das lightweight pi-heif-Paket bei der ersten Verwendung automatisch installiert.

Verwendung#

Der COCO12-Formats-Datensatz (1 MB) wird beim ersten Start des Trainings automatisch heruntergeladen. Um ein YOLO-Modell mit dem COCO12-Formats-Datensatz zu trainieren, verwende die folgenden Beispiele:

Trainingsbeispiel
from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo26n.pt")

# Train on COCO12-Formats to test 12 supported image formats
results = model.train(data="coco12-formats.yaml", epochs=1, imgsz=640)

Formatspezifische Hinweise#

AVIF (Bilddateiformat auf Basis von AV1)#

AVIF ist ein modernes Bildformat auf Basis des AV1-Videocodecs und bietet eine hervorragende Komprimierung. Ultralytics dekodiert das Format über Pillow 11.3 oder neuer, wenn OpenCV keine AVIF-Unterstützung bietet, wobei keine zusätzlichen Pakete erforderlich sind.

DNG (Digitales Negativ)#

DNG ist das offene RAW-Format von Adobe auf Basis von TIFF. Zu Testzwecken verwendet der Datensatz TIFF-basierte Dateien mit der Erweiterung .dng.

JP2 (JPEG 2000)#

JPEG 2000 ist ein wellenletternbasiertes Bildkompressionsformat, das eine bessere Komprimierung und Qualität als herkömmliches JPEG bietet. Es wird häufig in der medizinischen Bildgebung (DICOM), geografischen Anwendungen und im digitalen Kino eingesetzt. Es wird sowohl von OpenCV als auch von Pillow nativ unterstützt.

MPO (Mehrbildobjekt)#

MPO-Dateien werden für stereoskopische (3D-)Bilder verwendet. Der Datensatz speichert für Formatprüfungen standardmäßige JPEG-Daten mit der Erweiterung .mpo.

HEIC / HEIF (Bilddateiformat mit hoher Effizienz)#

Sowohl die Erweiterungen .heic als auch .heif verweisen auf denselben Container nach ISO/IEC 23008-12. Üblicherweise bezeichnet .heic HEVC-codierte HEIF-Dateien (die von Apple-Geräten erzeugte Variante), während .heif die umfassendere Erweiterung darstellt.

Ultralytics dekodiert beide Formate über die OpenCV-→-Pillow-Ausweichlösung in ultralytics/utils/patches.py, die bei der ersten Verwendung automatisch pi-heif (schlank, nur zum Dekodieren) installiert – für das Lesen ist keine manuelle Einrichtung erforderlich. Um selbst HEIC-/HEIF-Dateien zu erzeugen (z. B. zum erneuten Codieren von Beispielbildern), installiere das vollständige Paket pillow-heif, das Encoder enthält:

pip install pillow-heif

Anwendungsfälle#

CI/CD-Tests#

from ultralytics import YOLO

def test_image_formats():
    """Test that 12 supported image formats load correctly."""
    model = YOLO("yolo26n.pt")
    results = model.train(data="coco12-formats.yaml", epochs=1, imgsz=64)
    assert results is not None

Formatvalidierung#

from pathlib import Path

from ultralytics.data.utils import IMG_FORMATS

# Verify all dataset formats are supported
dataset_dir = Path("datasets/coco12-formats/images")
found_formats = {f.suffix[1:].lower() for f in dataset_dir.rglob("*.*")}
assert found_formats <= IMG_FORMATS, f"Unsupported formats: {found_formats - IMG_FORMATS}"

Zitate und Danksagungen#

Wenn du den COCO-Datensatz in deiner Forschung verwendest, zitiere bitte:

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{\'a}r},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

FAQ#

  • Der COCO12-Formats-Datensatz dient zum Testen der Kompatibilität von Bildformaten in Trainingspipelines für Ultralytics YOLO. Er stellt sicher, dass 12 unterstützte Bildformate (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) korrekt geladen und verarbeitet werden.

  • Verschiedene Bildformate haben jeweils eigene Eigenschaften (Komprimierung, Bittiefe, Farbräume). Das Testen aller Formate stellt Folgendes sicher:

    • Robuster Code zum Laden von Bildern
    • Kompatibilität mit vielfältigen Datensätzen
    • Früherkennung formatspezifischer Fehler
  • Keine erfordert eine manuelle Installation. AVIF wird von Pillow 11.3 oder neuer nativ dekodiert, und die HEIC-/HEIF-Dekodierung installiert das pi-heif-Paket bei der ersten Verwendung automatisch. Installiere das vollständige pillow-heif-Paket nur, wenn du HEIC-/HEIF-Dateien selbst schreiben musst.

Kommentare