Zum Inhalt springen

COCO12-Formate-Datensatz

Einführung

Die Ultralytics COCO12-Formats-Datensatz ist ein spezieller Testdatensatz, der zum Validieren des Bildladens für alle 12 unterstützten Bildformaterweiterungen entwickelt wurde. Er enthält 12 Bilder (6 für das Training, 6 für die Validierung), die jeweils in einem anderen Format gespeichert sind, um ein umfassendes Testen der Bildlade-Pipeline zu gewährleisten.

Dieser Datensatz ist von unschätzbarem Wert für:

  • Unterstützung von Bildformaten testen: Überprüfen Sie, ob alle unterstützten Formate korrekt geladen werden.
  • CI/CD-Pipelines: Automatisierte Prüfung der Formatkompatibilität
  • Debugging: Isolieren Sie formatspezifische Probleme in Trainingspipelines.
  • Entwicklung: Validierung neuer Formate oder Änderungen

Unterstützte Formate

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

FormatErweiterungBeschreibungZug/Val
AVIF.avifAV1-Bilddateiformat (modern)Trainieren
BMP.bmpBitmap – unkomprimiertes RasterformatTrainieren
DNG.dngDigitales Negativ – Adobe RAW-FormatTrainieren
HEIC.heicHocheffiziente BildkodierungTrainieren
JPEG.jpegJPEG mit vollständiger ErweiterungTrainieren
JPG.jpgJPEG mit kurzer ErweiterungTrainieren
JP2.jp2JPEG 2000 – Medizin/GeodatenValidieren
MPO.mpoMehrfachbildobjekt (Stereobilder)Validieren
PNG.pngPortable Network GraphicsValidieren
TIF.tifTIFF mit kurzer ErweiterungValidieren
TIFF.tiffGetaggtes BilddateiformatValidieren
WebP.webpModernes Web-BildformatValidieren

Dataset-Struktur

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

Datensatz-YAML

Der COCO12-Formats-Datensatz wird mithilfe einer YAML-Datei konfiguriert, die Datensatzpfade und Klassennamen definiert. Sie können die offizielle coco12-formats.yaml Datei in der Ultralytics GitHub-Repositorys.

ultralytics.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

Dataset-Generierung

Der Datensatz kann mit dem bereitgestellten Skript generiert werden, das Quellbilder aus COCO8 COCO128 alle unterstützten Formate konvertiert:

from ultralytics.data.scripts.generate_coco12_formats import generate_coco12_formats

# Generate the dataset
generate_coco12_formats()

Anforderungen

Einige Formate erfordern zusätzliche Abhängigkeiten:

pip install pillow pillow-heif pillow-avif-plugin

AVIF-Systembibliothek (optional)

Damit OpenCV AVIF-Dateien direkt lesen OpenCV , libavif muss installiert werden vorher OpenCV erstellen:

brew install libavif
sudo apt install libavif-dev libavif-bin
git clone -b v1.2.1 https://github.com/AOMediaCodec/libavif.git
cd libavif
cmake -B build -DAVIF_CODEC_AOM=SYSTEM -DAVIF_BUILD_APPS=ON
cmake --build build --config Release --parallel
sudo cmake --install build

Hinweis

Die pip-installierte opencv-python Das Paket enthält möglicherweise keine AVIF-Unterstützung, da es vorgefertigt ist. Ultralytics Pillow mit pillow-avif-plugin als Fallback für AVIF-Bilder, wenn OpenCV Unterstützung OpenCV .

Nutzung

Um ein YOLO auf dem COCO12-Formats-Datensatz zu trainieren, verwenden Sie die folgenden Beispiele:

Trainingsbeispiel

from ultralytics import YOLO

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

# Train on COCO12-Formats to test all image formats
results = model.train(data="coco12-formats.yaml", epochs=1, imgsz=640)
# Train YOLO on COCO12-Formats
yolo detect train data=coco12-formats.yaml model=yolo26n.pt epochs=1 imgsz=640

Formatspezifische Hinweise

AVIF (AV1-Bilddateiformat)

AVIF ist ein modernes Bildformat, das auf dem AV1-Videocodec basiert und eine hervorragende Komprimierung bietet. Erfordert pillow-avif-plugin:

pip install pillow-avif-plugin

DNG (Digitales Negativ)

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

JP2 (JPEG 2000)

JPEG 2000 ist ein auf Wavelets basierender Bildkomprimierungsstandard, der eine bessere Komprimierung und Qualität als herkömmliches JPEG bietet. Er wird häufig in der medizinischen Bildgebung (DICOM), in Geodatenanwendungen und im digitalen Kino verwendet. Er wird sowohl von OpenCV von Pillow nativ unterstützt.

MPO (Multi-Bild-Objekt)

MPO-Dateien werden für stereoskopische (3D-)Bilder verwendet. Der Datensatz speichert Standard-JPEG-Daten mit dem .mpo Erweiterung für Formatprüfungen.

HEIC (High Efficiency Image Coding)

HEIC erfordert die pillow-heif Paket für die korrekte Kodierung:

pip install pillow-heif

Anwendungsfälle

CI/CD-Tests

from ultralytics import YOLO


def test_all_image_formats():
    """Test that all 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 formats are represented
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"Missing formats: {IMG_FORMATS - found_formats}"

Zitate und Danksagungen

Wenn Sie den COCO in Ihrer Forschung verwenden, zitieren Sie bitte:

@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

Wofür wird der COCO12-Formats-Datensatz verwendet?

Der Datensatz COCO12-Formats dient zum Testen der Bildformatkompatibilität in Ultralytics YOLO . Er stellt sicher, dass alle 12 unterstützten Bildformate (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) korrekt geladen und verarbeitet werden.

Warum mehrere Bildformate testen?

Verschiedene Bildformate haben einzigartige Eigenschaften (Komprimierung, Bittiefe, Farbräume). Das Testen aller Formate gewährleistet:

  • Robuster Code zum Laden von Bildern
  • Kompatibilität zwischen verschiedenen Datensätzen
  • Frühzeitige Erkennung formatspezifischer Fehler

Welche Formate erfordern besondere Abhängigkeiten?

  • AVIFErfordert pillow-avif-plugin
  • HEICErfordert pillow-heif

Kann ich neue Format-Tests hinzufügen?

Ja! Ändern Sie die generate_coco12_formats.py Skript, um zusätzliche Formate einzubinden. Stellen Sie sicher, dass Sie auch IMG_FORMATS in ultralytics/data/utils.py.



📅 Erstellt vor 0 Tagen ✏️ Aktualisiert vor 0 Tagen
glenn-jocher

Kommentare