COCO12-Formats Datensatz
Einführung
Der Ultralytics COCO12-Formats Datensatz ist ein spezieller Testdatensatz, der dazu entwickelt wurde, das Laden von Bildern für alle 12 unterstützten Bildformaterweiterungen zu validieren. 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 Bildlade-Pipeline zu gewährleisten.
Dieser Datensatz ist von unschätzbarem Wert für:
- Testen der Unterstützung von Bildformaten: Überprüfe, ob alle unterstützten Formate korrekt geladen werden
- CI/CD-Pipelines: Automatisierte Prüfung der Formatkompatibilität
- Debugging: Isoliere formatspezifische Probleme in Trainings-Pipelines
- Entwicklung: Validierung neuer Formaterweiterungen 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 definiert sind:
| Format | Erweiterung | Beschreibung | Train/Val |
|---|---|---|---|
| AVIF | .avif | AV1 Image File Format (modern) | Trainieren |
| BMP | .bmp | Bitmap - unkomprimiertes Rasterformat | Trainieren |
| DNG | .dng | Digital Negative - Adobe RAW-Format | Trainieren |
| HEIC | .heic | High Efficiency Image Coding | Trainieren |
| JPEG | .jpeg | JPEG mit voller Erweiterung | Trainieren |
| JPG | .jpg | JPEG mit kurzer Erweiterung | Trainieren |
| JP2 | .jp2 | JPEG 2000 - medizinisch/geospatial | Validieren |
| MPO | .mpo | Multi-Picture Object (Stereobilder) | Validieren |
| PNG | .png | Portable Network Graphics | Validieren |
| TIF | .tif | TIFF mit kurzer Erweiterung | Validieren |
| TIFF | .tiff | Tagged Image File Format | Validieren |
| WebP | .webp | Modernes Web-Bildformat | Validieren |
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 configurationDatensatz-YAML
Der COCO12-Formats Datensatz wird über eine YAML-Datei konfiguriert, die Datensatzpfade und Klassennamen definiert. Du kannst die offizielle coco12-formats.yaml Datei im Ultralytics GitHub Repository einsehen.
# 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.zipAnforderungen
Einige Formate erfordern zusätzliche Abhängigkeiten:
pip install pillow pillow-heif pillow-avif-pluginAVIF Systembibliothek (Optional)
Damit OpenCV AVIF-Dateien direkt lesen kann, muss libavif vor dem Kompilieren von OpenCV installiert werden:
brew install libavifDas via pip installierte opencv-python Paket enthält möglicherweise keine AVIF-Unterstützung, da es vorkompiliert ist. Ultralytics verwendet Pillow mit pillow-avif-plugin als Fallback für AVIF-Bilder, wenn OpenCV keine Unterstützung bietet.
Verwendung
Um ein YOLO Modell mit dem COCO12-Formats Datensatz zu trainieren, verwende die folgenden Beispiele:
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)Formatspezifische Hinweise
AVIF (AV1 Image File Format)
AVIF ist ein modernes Bildformat, das auf dem AV1-Videocodec basiert und eine hervorragende Kompression bietet. Erfordert pillow-avif-plugin:
pip install pillow-avif-pluginDNG (Digital Negative)
DNG ist Adobes offenes RAW-Format, 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 Bildkompressionsstandard, der eine bessere Kompression und Qualität als das herkömmliche JPEG bietet. Wird häufig in der medizinischen Bildgebung (DICOM), in Geodatenanwendungen und im digitalen Kino verwendet. Wird nativ sowohl von OpenCV als auch von Pillow unterstützt.
MPO (Multi-Picture Object)
MPO-Dateien werden für stereoskopische (3D) Bilder verwendet. Der Datensatz speichert Standard-JPEG-Daten mit der .mpo Erweiterung zum Testen des Formats.
HEIC (High Efficiency Image Coding)
HEIC erfordert das Paket pillow-heif für eine korrekte Kodierung:
pip install pillow-heifAnwendungsfä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 NoneFormatvalidierung
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 du den COCO-Datensatz in deiner Forschung verwendest, zitiere 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 COCO12-Formats Datensatz wurde für das Testen der Kompatibilität von Bildformaten in Ultralytics YOLO Trainings-Pipelines entwickelt. 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 (Kompression, Farbtiefe, Farbräume). Das Testen aller Formate stellt sicher:
- Robuster Code zum Laden von Bildern
- Kompatibilität über verschiedene Datensätze hinweg
- Frühe Erkennung von formatspezifischen Fehlern
Welche Formate erfordern spezielle Abhängigkeiten?
- AVIF: Erfordert
pillow-avif-plugin - HEIC: Erfordert
pillow-heif