Ir para o conteúdo

Conjunto de Dados COCO12-Formats

Introdução

O conjunto de dados Ultralytics COCO12-Formats é 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 a formatos de imagem: Verificar se todos os formatos suportados carregam corretamente
  • Pipelines de CI/CD: Testes automatizados de compatibilidade de formato
  • Depuração: Isolar problemas específicos de formato em pipelines de treino
  • Desenvolvimento: Validar novas adições ou alterações de formato

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:

FormatoExtensãoDescriçãoTreino/Validação
AVIF.avifFormato de Ficheiro de Imagem AV1 (moderno)Treinar
BMP.bmpBitmap - formato raster não comprimidoTreinar
DNG.dngDigital Negative - formato RAW da AdobeTreinar
HEIC.heicCodificação de Imagem de Alta EficiênciaTreinar
JPEG.jpegJPEG com extensão completaTreinar
JPG.jpgJPEG com extensão curtaTreinar
JP2.jp2JPEG 2000 - médico/geoespacialValidar
MPO.mpoObjeto Multi-Imagem (imagens estéreo)Validar
PNG.pngPortable Network GraphicsValidar
TIF.tifTIFF com extensão curtaValidar
TIFF.tiffFormato de Arquivo de Imagem MarcadoValidar
WebP.webpFormato de imagem moderno para webValidar

Estrutura do Conjunto de Dados

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 do Conjunto de Dados

O conjunto de dados COCO12-Formats é configurado usando um arquivo yaml que define os caminhos do conjunto de dados e os nomes das classes. Você pode revisar o oficial coco12-formats.yaml arquivo no repositório Ultralytics GitHub.

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

Requisitos

Alguns formatos exigem dependências adicionais:

pip install pillow pillow-heif pillow-avif-plugin

Biblioteca de Sistema AVIF (Opcional)

Para que o OpenCV leia arquivos AVIF diretamente, libavif deve ser instalado antes ao compilar o 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

Nota

O pacote instalado via pip opencv-python pode não incluir suporte a AVIF, pois é pré-compilado. A Ultralytics usa Pillow com pillow-avif-plugin como alternativa para imagens AVIF quando o OpenCV não tem suporte.

Utilização

Para treinar um modelo YOLO no conjunto de dados COCO12-Formats, use os seguintes exemplos:

Exemplo de Treinamento

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

Notas Específicas do Formato

AVIF (Formato de Arquivo de Imagem AV1)

AVIF é um formato de imagem moderno baseado no codec de vídeo AV1, oferecendo excelente compressão. Requer pillow-avif-plugin:

pip install pillow-avif-plugin

DNG (Digital Negative)

DNG é o formato RAW aberto da Adobe baseado em TIFF. Para fins de teste, o conjunto de dados usa arquivos baseados em TIFF com a .dng extensão.

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. Comumente usado em imagens médicas (DICOM), aplicações geoespaciais e cinema digital. Suportado nativamente por OpenCV e Pillow.

MPO (Multi-Picture Object)

Os arquivos MPO são usados para imagens estereoscópicas (3D). O conjunto de dados armazena dados JPEG padrão com a .mpo extensão para teste de formato.

HEIC (High Efficiency Image Coding)

HEIC requer o pillow-heif pacote para codificação adequada:

pip install pillow-heif

Casos 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 None

Validaçã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 você usar o conjunto de dados COCO em sua pesquisa, por favor, cite:

@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 projetado para testar a compatibilidade de formatos de imagem em pipelines de treinamento Ultralytics YOLO. Ele garante que todos os 12 formatos de imagem suportados (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) carreguem e sejam processados corretamente.

Por Que Testar Múltiplos Formatos de Imagem?

Diferentes formatos de imagem possuem 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 diversos conjuntos de dados
  • Detecção precoce de bugs específicos de formato

Quais Formatos Requerem Dependências Especiais?

  • AVIF: Requer pillow-avif-plugin
  • HEIC: Requer pillow-heif


📅 Criado há 2 meses ✏️ Atualizado há 1 mês
onuralpszrglenn-jocher

Comentários