Conjunto de dados COCO12-Formats
Introdução
O conjunto de dados COCO12-Formats da Ultralytics é um conjunto de dados de teste especializado concebido para validar o carregamento de imagens em todas as 12 extensões de formato de imagem suportadas. Contém 12 imagens (6 para treino, 6 para validação), cada uma guardada num formato diferente para garantir um teste abrangente do pipeline de carregamento de imagens.
Este conjunto de dados é inestimável para:
- Testar o suporte de formatos de imagem: Verifica se todos os formatos suportados carregam corretamente
- Pipelines de CI/CD: Testes automatizados da compatibilidade de formatos
- Depuração: Isolar problemas específicos de formato nos pipelines de treino
- Desenvolvimento: Validar a adição ou alteração de novos formatos
Formatos Suportados
O conjunto de dados inclui uma imagem para cada uma das 12 extensões de formato suportadas, definidas em ultralytics/data/utils.py:
| Formato | Extensão | Descrição | Treino/Val |
|---|---|---|---|
| AVIF | .avif | AV1 Image File Format (moderno) | Train |
| BMP | .bmp | Bitmap - formato raster não comprimido | Train |
| DNG | .dng | Digital Negative - formato RAW da Adobe | Train |
| HEIC | .heic | High Efficiency Image Coding | Train |
| JPEG | .jpeg | JPEG com extensão completa | Train |
| JPG | .jpg | JPEG com extensão curta | Train |
| JP2 | .jp2 | JPEG 2000 - médico/geoespacial | Val |
| MPO | .mpo | Multi-Picture Object (imagens estéreo) | Val |
| PNG | .png | Portable Network Graphics | Val |
| TIF | .tif | TIFF com extensão curta | Val |
| TIFF | .tiff | Tagged Image File Format | Val |
| WebP | .webp | Formato de imagem web moderno | Val |
Estrutura do Dataset
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 configurationYAML do Dataset
O conjunto de dados COCO12-Formats está configurado através de um ficheiro YAML que define os caminhos do conjunto de dados e os nomes das classes. Podes consultar o ficheiro oficial coco12-formats.yaml no repositório GitHub da Ultralytics.
# 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.zipRequisitos
Alguns formatos requerem dependências adicionais:
pip install pillow pillow-heif pillow-avif-pluginBiblioteca de sistema AVIF (Opcional)
Para que o OpenCV leia ficheiros AVIF diretamente, o libavif deve ser instalado antes de compilar o OpenCV:
brew install libavifO pacote opencv-python instalado via pip pode não incluir suporte a AVIF, uma vez que é pré-compilado. A Ultralytics utiliza Pillow com pillow-avif-plugin como reserva para imagens AVIF quando o OpenCV não possui suporte.
Utilização
Para treinar um modelo YOLO no conjunto de dados COCO12-Formats, utiliza os seguintes exemplos:
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)Notas Específicas sobre Formatos
AVIF (AV1 Image File Format)
AVIF é um formato de imagem moderno baseado no codec de vídeo AV1, que oferece uma excelente compressão. Requer pillow-avif-plugin:
pip install pillow-avif-pluginDNG (Digital Negative)
DNG é o formato RAW aberto da Adobe baseado em TIFF. Para fins de teste, o conjunto de dados utiliza ficheiros baseados em TIFF com a extensão .dng.
JP2 (JPEG 2000)
JPEG 2000 é um padrão de compressão de imagem baseado em wavelets que oferece melhor compressão e qualidade do que o JPEG tradicional. É comummente utilizado em imagiologia médica (DICOM), aplicações geoespaciais e cinema digital. Suportado nativamente tanto pelo OpenCV como pelo Pillow.
MPO (Multi-Picture Object)
Os ficheiros MPO são utilizados para imagens estereoscópicas (3D). O conjunto de dados armazena dados JPEG padrão com a extensão .mpo para testes de formato.
HEIC (High Efficiency Image Coding)
HEIC requer o pacote pillow-heif para uma codificação correta:
pip install pillow-heifCasos de Uso
Testes de 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 NoneValidação de Formato
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}"Citações e Agradecimentos
Se utilizares o conjunto de dados COCO na tua investigação, por favor cita:
@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
Para que serve o conjunto de dados COCO12-Formats?
O conjunto de dados COCO12-Formats foi concebido para testar a compatibilidade de formatos de imagem nos pipelines de treino YOLO da Ultralytics. Garante que todos os 12 formatos de imagem suportados (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) são carregados e processados corretamente.
Porquê testar múltiplos formatos de imagem?
Diferentes formatos de imagem têm características únicas (compressão, profundidade de bits, espaços de cor). Testar todos os formatos garante:
- Código robusto de carregamento de imagens
- Compatibilidade entre conjuntos de dados diversos
- Deteção precoce de erros específicos de formato
Quais os formatos que requerem dependências especiais?
- AVIF: Requer
pillow-avif-plugin - HEIC: Requer
pillow-heif