Ultralytics YOLO27:

Dataset COCO12-Formats#

Introdução#

O dataset COCO12-Formats da Ultralytics é um dataset de teste especializado, concebido para validar o carregamento de imagens em 12 extensões de formato de imagem suportadas. Contém 12 imagens (6 para treino e 6 para validação), cada uma guardada num formato diferente para garantir testes abrangentes do pipeline de carregamento de imagens.

Este dataset é indispensável para:

  • Testar o suporte a formatos de imagem: Verificar se os formatos de imagem comuns são carregados corretamente
  • Pipelines de CI/CD: Testes automatizados de compatibilidade de formatos
  • Depuração: Isolar problemas específicos de formatos nos pipelines de treino
  • Desenvolvimento: Validar adições ou alterações a formatos

Quando geres datasets na Ultralytics Platform, as imagens em qualquer um destes formatos são processadas automaticamente — não é necessária conversão manual.

Formatos suportados#

O dataset 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 — aplicações médicas/geoespaciaisValidação
MPO.mpoObjeto multip imagem (imagens estereoscópicas)Validação
PNG.pngPortable Network GraphicsValidação
TIF.tifTIFF com extensão curtaValidação
TIFF.tiffFormato de ficheiro de imagem com etiquetasValidação
WebP.webpFormato moderno de imagem para a WebValidação

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 dataset COCO12-Formats é configurado através de um ficheiro YAML que define os caminhos do dataset e os nomes das classes. Podes consultar o ficheiro oficial coco12-formats.yaml no repositório do Ultralytics no 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#

Nenhuma configuração manual é necessária. O OpenCV lê a maioria dos formatos diretamente, e o Ultralytics recorre ao Pillow para AVIF, HEIC e HEIF. O AVIF é decodificado nativamente pelo Pillow 11.3 ou mais recente, portanto atualize o Pillow se os arquivos AVIF falharem ao carregar, e a decodificação HEIC/HEIF instala o pacote leve pi-heif automaticamente no primeiro uso.

Utilização#

O dataset COCO12-Formats (1 MB) é transferido automaticamente na primeira vez que inicias o treino. Para treinar um modelo YOLO no dataset COCO12-Formats, utiliza os seguintes exemplos:

Exemplo de treino
from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo26n.pt")

# Train on COCO12-Formats to test 12 supported image formats
results = model.train(data="coco12-formats.yaml", epochs=1, imgsz=640)

Notas específicas dos formatos#

AVIF (formato de ficheiro de imagem AV1)#

O AVIF é um formato de imagem moderno baseado no codec de vídeo AV1, que oferece excelente compressão. O Ultralytics o decodifica através do Pillow 11.3 ou mais recente quando o OpenCV carece de suporte a AVIF, sem exigir pacotes extras.

DNG (Digital Negative)#

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

JP2 (JPEG 2000)#

JPEG 2000 é um padrão de compressão de imagens baseado em wavelets que oferece melhor compressão e qualidade do que o JPEG tradicional. É utilizado frequentemente em imagiologia médica (DICOM), aplicações geoespaciais e cinema digital. É suportado nativamente pelo OpenCV e pelo Pillow.

MPO (objeto multip imagem)#

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

HEIC / HEIF (formato de ficheiro de imagem de alta eficiência)#

Tanto as extensões .heic como .heif referenciam o mesmo contentor ISO/IEC 23008-12. Por convenção, .heic denota ficheiros HEIF codificados com HEVC (a variante produzida por dispositivos Apple), enquanto .heif é a extensão abrangente.

A Ultralytics descodifica ambos através da alternativa OpenCV → Pillow em ultralytics/utils/patches.py, que instala automaticamente pi-heif (leve e apenas para descodificação) na primeira utilização — não é necessária configuração manual para a leitura. Para produzires ficheiros HEIC/HEIF por tua conta (por exemplo, para recodificar imagens de exemplo), instala o pacote completo pillow-heif, que inclui codificadores:

pip install pillow-heif

Casos de uso#

Testes de CI/CD#

from ultralytics import YOLO

def test_image_formats():
    """Test that 12 supported 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 formatos#

from pathlib import Path

from ultralytics.data.utils import IMG_FORMATS

# Verify all dataset formats are supported
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"Unsupported formats: {found_formats - IMG_FORMATS}"

Citações e agradecimentos#

Se utilizares o dataset COCO na tua investigação, cita:

Citação
@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}
}

Perguntas frequentes#

  • O dataset COCO12-Formats foi concebido para testar a compatibilidade de formatos de imagem nos pipelines de treino de YOLO da Ultralytics. Garante que os 12 formatos de imagem suportados (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) são carregados e processados corretamente.

  • 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 de carregamento de imagens
    • Compatibilidade entre datasets diversificados
    • Deteção precoce de erros específicos de formatos
  • Nenhum precisa de instalação manual. O AVIF é decodificado nativamente pelo Pillow 11.3 ou mais recente, e a decodificação HEIC/HEIF instala o pacote pi-heif automaticamente no primeiro uso. Instale o pacote completo pillow-heif apenas se precisares de gravar arquivos HEIC/HEIF por ti próprio.

Comentários