Ir para o conteúdo

Conjunto de dados COCO12-Formatos

Introdução

O 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 suporte ao formato de imagem: Verifique se todos os formatos suportados carregam corretamente
  • Pipelines de CI/CD: testes automatizados de compatibilidade de formatos
  • Depuração: isolar problemas específicos de formato em pipelines de treinamento
  • Desenvolvimento: Validar novas adições ou alterações no 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çãoComboio/Val
AVIF.avifFormato de ficheiro de imagem AV1 (moderno)Treinar
BMP.bmpBitmap - formato raster não comprimidoTreinar
DNG.dngNegativo digital - formato Adobe RAWTreinar
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 com várias imagens (imagens estéreo)Validar
PNG.pngPortable Network GraphicsValidar
TIF.tifTIFF com extensão curtaValidar
TIFF.tiffFormato de ficheiro de imagem etiquetadaValidar
WebP.webpFormato moderno de imagem para a 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 ficheiro YAML que define os caminhos do conjunto de dados e os nomes das classes. Pode consultar o documento oficial coco12-formats.yaml arquivo no repositório Ultralytics GitHub.

ultralytics/cfg/conjuntos de 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

Geração de Conjunto de Dados

O conjunto de dados pode ser gerado usando o script fornecido que converte imagens de origem do COCO8 COCO128 todos os formatos suportados:

from ultralytics.data.scripts.generate_coco12_formats import generate_coco12_formats

# Generate the dataset
generate_coco12_formats()

Requisitos

Alguns formatos requerem dependências adicionais:

pip install pillow pillow-heif pillow-avif-plugin

Biblioteca do sistema AVIF (opcional)

Para OpenCV leia arquivos AVIF diretamente, libavif deve ser instalado antes construindo 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 pip instalado opencv-python O pacote pode não incluir suporte para AVIF, uma vez que é pré-compilado. Ultralytics o Pillow com pillow-avif-plugin como alternativa para imagens AVIF quando OpenCV suporte.

Utilização

Para treinar um 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 sobre o formato

AVIF (Formato de Ficheiro de Imagem AV1)

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

pip install pillow-avif-plugin

DNG (Negativo Digital)

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

JP2 (JPEG 2000)

JPEG 2000 é um padrão de compressão de imagens baseado em wavelet 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 pelo OpenCV pelo Pillow.

MPO (Objeto Multifotográfico)

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

HEIC (Codificação de Imagem de Alta Eficiência)

O 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 do 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 utilizar o COCO na sua investigação, 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 concebido para testar a compatibilidade de formatos de imagem nas pipelinesYOLO Ultralytics YOLO . Ele garante que todos os 12 formatos de imagem suportados (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) sejam carregados e processados corretamente.

Por que testar vários formatos de imagem?

Os 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 para carregamento de imagens
  • Compatibilidade entre diversos conjuntos de dados
  • Detecção precoce de erros específicos do formato

Quais formatos requerem dependências especiais?

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

Posso adicionar novos testes de formato?

Sim! Modifique o generate_coco12_formats.py script para incluir formatos adicionais. Certifique-se de atualizar também IMG_FORMATS em ultralytics/data/utils.py.



📅 Criado há 0 dias ✏️ Atualizado há 0 dias
glenn-jocher

Comentários