Набор данных COCO12-Форматы
Введение
The Ultralytics COCO12-Formats — это специализированный тестовый набор данных, предназначенный для проверки загрузки изображений во всех 12 поддерживаемых форматах. Он содержит 12 изображений (6 для обучения, 6 для проверки), каждое из которых сохранено в отдельном формате, чтобы обеспечить всестороннее тестирование процесса загрузки изображений.
Этот набор данных имеет неоценимое значение для:
- Проверка поддержки форматов изображений: убедитесь, что все поддерживаемые форматы загружаются правильно.
- CI/CD-конвейеры: автоматическое тестирование совместимости форматов
- Отладка: выделение проблем, связанных с форматом, в конвейерах обучения
- Разработка: Проверка новых добавлений или изменений формата
Поддерживаемые форматы
Набор данных включает по одному изображению для каждого из 12 поддерживаемых расширений форматов, определенных в ultralytics/data/utils.py:
| Формат | Расширение | Описание | Поезд/Валь |
|---|---|---|---|
| AVIF | .avif | Формат файла изображения AV1 (современный) | Обучение |
| BMP | .bmp | Bitmap — несжатый растровый формат | Обучение |
| DNG | .dng | Цифровой негатив — формат Adobe RAW | Обучение |
| HEIC | .heic | Высокоэффективное кодирование изображений | Обучение |
| JPEG | .jpeg | JPEG с полным расширением | Обучение |
| JPG | .jpg | JPEG с коротким расширением | Обучение |
| JP2 | .jp2 | JPEG 2000 — медицина/геопространственные данные | Валидация |
| MPO | .mpo | Объект с несколькими изображениями (стереоизображения) | Валидация |
| PNG | .png | Portable Network Graphics | Валидация |
| TIF | .tif | TIFF с коротким расширением | Валидация |
| TIFF | .tiff | Формат файлов с тегами изображений | Валидация |
| WebP | .webp | Современный формат веб-изображений | Валидация |
Структура набора данных
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
YAML-файл набора данных
Набор данных COCO12-Formats настраивается с помощью файла YAML, в котором определяются пути к наборам данных и имена классов. Вы можете ознакомиться с официальным coco12-formats.yaml файл в репозиторий Ultralytics GitHub.
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
Генерация набора данных
Набор данных можно сгенерировать с помощью предоставленного скрипта, который конвертирует исходные изображения из COCO8 COCO128 все поддерживаемые форматы:
from ultralytics.data.scripts.generate_coco12_formats import generate_coco12_formats
# Generate the dataset
generate_coco12_formats()
Требования
Некоторые форматы требуют дополнительных зависимостей:
pip install pillow pillow-heif pillow-avif-plugin
Библиотека системы AVIF (опционально)
Чтобы OpenCV напрямую читать файлы AVIF, libavif должно быть установлено before создание OpenCV:
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
Примечание
Установленный с помощью pip opencv-python Пакет может не включать поддержку AVIF, так как он предварительно скомпилирован. Ultralytics Pillow с pillow-avif-plugin в качестве запасного варианта для изображений AVIF, когда OpenCV поддерживает их.
Использование
Чтобы обучить YOLO на наборе данных COCO12-Formats, используйте следующие примеры:
Пример обучения
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
Примечания по формату
AVIF (формат файлов изображений AV1)
AVIF — это современный формат изображений, основанный на видеокодеке AV1, который обеспечивает отличное сжатие. Требуется pillow-avif-plugin:
pip install pillow-avif-plugin
DNG (цифровой негатив)
DNG — это открытый формат RAW от Adobe, основанный на TIFF. Для тестирования в наборе данных используются файлы на основе TIFF с расширением .dng расширение.
JP2 (JPEG 2000)
JPEG 2000 — это стандарт сжатия изображений на основе вейвлетов, обеспечивающий лучшее сжатие и качество, чем традиционный JPEG. Обычно используется в медицинской визуализации (DICOM), геопространственных приложениях и цифровом кино. Нативно поддерживается как OpenCV Pillow.
MPO (объект с несколькими изображениями)
Файлы MPO используются для стереоскопических (3D) изображений. Набор данных хранит стандартные данные JPEG с .mpo расширение для тестирования формата.
HEIC (высокоэффективное кодирование изображений)
HEIC требует pillow-heif пакет для правильной кодировки:
pip install pillow-heif
Случаи использования
CI/CD-тестирование
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
Проверка формата
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}"
Цитирование и благодарности
Если вы используете набор COCO в своих исследованиях, пожалуйста, укажите следующую ссылку:
@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}
}
Часто задаваемые вопросы
Для чего используется набор данных COCO12-Formats?
Набор данных COCO12-Formats предназначен для тестирования совместимости форматов изображений в конвейерахYOLO Ultralytics YOLO . Он обеспечивает правильную загрузку и обработку всех 12 поддерживаемых форматов изображений (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP).
Зачем тестировать несколько форматов изображений?
Различные форматы изображений имеют уникальные характеристики (сжатие, битовая глубина, цветовые пространства). Тестирование всех форматов гарантирует:
- Надежный код загрузки изображений
- Совместимость между различными наборами данных
- Раннее обнаружение ошибок, связанных с форматом
Какие форматы требуют особых зависимостей?
- AVIF: Требуется
pillow-avif-plugin - HEIC: Требуется
pillow-heif
Могу ли я добавить новые тесты формата?
Да! Измените generate_coco12_formats.py скрипт, чтобы включить дополнительные форматы. Убедитесь, что вы также обновили IMG_FORMATS в ultralytics/data/utils.py.