Salta para o conteĆŗdo

Conjunto de dados COCO-Seg

O conjunto de dados COCO-Seg, uma extensĆ£o do conjunto de dados COCO (Common Objects in Context), foi especialmente concebido para ajudar a investigaĆ§Ć£o na segmentaĆ§Ć£o de instĆ¢ncias de objectos. Utiliza as mesmas imagens que o COCO, mas introduz anotaƧƵes de segmentaĆ§Ć£o mais detalhadas. Este conjunto de dados Ć© um recurso crucial para investigadores e programadores que trabalham em tarefas de segmentaĆ§Ć£o de instĆ¢ncias, especialmente para treinar modelos YOLO .

CaracterĆ­sticas principais

  • COCO-Seg mantĆ©m as 330K imagens originais de COCO.
  • O conjunto de dados Ć© constituĆ­do pelas mesmas 80 categorias de objectos que se encontram no conjunto de dados COCO original.
  • As anotaƧƵes incluem agora mĆ”scaras de segmentaĆ§Ć£o de instĆ¢ncias mais detalhadas para cada objeto nas imagens.
  • O COCO-Seg fornece mĆ©tricas de avaliaĆ§Ć£o padronizadas, como a precisĆ£o mĆ©dia (mAP) para a deteĆ§Ć£o de objectos e a recuperaĆ§Ć£o mĆ©dia (mAR) para tarefas de segmentaĆ§Ć£o de instĆ¢ncias, permitindo uma comparaĆ§Ć£o eficaz do desempenho do modelo.

Estrutura do conjunto de dados

O conjunto de dados COCO-Seg estĆ” dividido em trĆŖs subconjuntos:

  1. Treina2017: Este subconjunto contĆ©m 118K imagens para treinar modelos de segmentaĆ§Ć£o de instĆ¢ncias.
  2. Val2017: Este subconjunto inclui 5K imagens utilizadas para efeitos de validaĆ§Ć£o durante a formaĆ§Ć£o do modelo.
  3. Test2017: Este subconjunto engloba 20 mil imagens utilizadas para testar e aferir os modelos treinados. As anotaƧƵes da verdade terrestre para este subconjunto nĆ£o estĆ£o disponĆ­veis publicamente e os resultados sĆ£o enviados para o servidor de avaliaĆ§Ć£o COCO para avaliaĆ§Ć£o do desempenho.

AplicaƧƵes

O COCO-Seg Ć© amplamente utilizado para treinar e avaliar modelos de aprendizagem profunda na segmentaĆ§Ć£o de instĆ¢ncias, como os modelos YOLO . O grande nĆŗmero de imagens anotadas, a diversidade de categorias de objectos e as mĆ©tricas de avaliaĆ§Ć£o normalizadas fazem dele um recurso indispensĆ”vel para investigadores e profissionais da visĆ£o computacional.

Conjunto de dados YAML

Um ficheiro YAML (Yet Another Markup Language) Ć© utilizado para definir a configuraĆ§Ć£o do conjunto de dados. ContĆ©m informaƧƵes sobre os caminhos do conjunto de dados, classes e outras informaƧƵes relevantes. No caso do conjunto de dados COCO-Seg, o ficheiro coco.yaml Ć© mantido em https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.

ultralytics/cfg/datasets/coco.yaml

# Ultralytics YOLO šŸš€, AGPL-3.0 license
# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco.yaml
# parent
# ā”œā”€ā”€ ultralytics
# ā””ā”€ā”€ datasets
#     ā””ā”€ā”€ coco  ā† downloads here (20.1 GB)

# 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: ../datasets/coco # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# 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: |
  from ultralytics.utils.downloads import download
  from pathlib import Path

  # Download labels
  segments = True  # segment or box labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
  urls = [url + ('coco2017labels-segments.zip' if segments else 'coco2017labels.zip')]  # labels
  download(urls, dir=dir.parent)
  # Download data
  urls = ['http://images.cocodataset.org/zips/train2017.zip',  # 19G, 118k images
          'http://images.cocodataset.org/zips/val2017.zip',  # 1G, 5k images
          'http://images.cocodataset.org/zips/test2017.zip']  # 7G, 41k images (optional)
  download(urls, dir=dir / 'images', threads=3)

UtilizaĆ§Ć£o

Para treinar um modelo YOLOv8n-seg no conjunto de dados COCO-Seg para 100 Ć©pocas com um tamanho de imagem de 640, podes usar os seguintes trechos de cĆ³digo. Para obter uma lista abrangente dos argumentos disponĆ­veis, consulta a pĆ”gina de treinamento do modelo.

Exemplo de comboio

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-seg.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco-seg.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco-seg.yaml model=yolov8n.pt epochs=100 imgsz=640

Exemplos de imagens e anotaƧƵes

O COCO-Seg, tal como o seu antecessor COCO, contĆ©m um conjunto diversificado de imagens com vĆ”rias categorias de objectos e cenas complexas. No entanto, o COCO-Seg introduz mĆ”scaras de segmentaĆ§Ć£o de instĆ¢ncia mais detalhadas para cada objeto nas imagens. Aqui estĆ£o alguns exemplos de imagens do conjunto de dados, juntamente com as mĆ”scaras de segmentaĆ§Ć£o de instĆ¢ncia correspondentes:

Imagem de amostra do conjunto de dados

  • Imagem em mosaico: Esta imagem demonstra um lote de treino composto por imagens do conjunto de dados em mosaico. O mosaico Ć© uma tĆ©cnica utilizada durante o treino que combina vĆ”rias imagens numa Ćŗnica imagem para aumentar a variedade de objectos e cenas em cada lote de treino. Isto ajuda a capacidade do modelo de generalizar para diferentes tamanhos de objectos, proporƧƵes e contextos.

O exemplo mostra a variedade e complexidade das imagens no conjunto de dados COCO-Seg e as vantagens da utilizaĆ§Ć£o de mosaicos durante o processo de formaĆ§Ć£o.

CitaƧƵes e agradecimentos

Se utilizares o conjunto de dados COCO-Seg no teu trabalho de investigaĆ§Ć£o ou desenvolvimento, cita o documento COCO original e reconhece a extensĆ£o ao COCO-Seg:

@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Ɣr},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Agradecemos ao COCO Consortium por criar e manter este recurso inestimĆ”vel para a comunidade de visĆ£o computacional. Para obter mais informaƧƵes sobre o conjunto de dados COCO e seus criadores, visita o site do conjunto de dados COCO.



Criado em 2023-11-12, Atualizado em 2023-11-22
Autores: glenn-jocher (3), Laughing-q (1)

ComentƔrios