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 .

Modelos pré-treinados COCO-Seg

Modelo tamanho
(pixéis)
mAPbox
50-95
mAPmask
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

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/assets/releases/download/v0.0.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 os benefícios 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.

FAQ

O que é o conjunto de dados COCO-Seg e em que é que difere do conjunto de dados COCO original?

O conjunto de dados COCO-Seg √© uma extens√£o do conjunto de dados COCO (Common Objects in Context) original, especificamente concebido para tarefas de segmenta√ß√£o de inst√Ęncias. Embora utilize as mesmas imagens que o conjunto de dados COCO, o COCO-Seg inclui anota√ß√Ķes de segmenta√ß√£o mais detalhadas, o que o torna um recurso poderoso para investigadores e programadores que se concentram na segmenta√ß√£o de inst√Ęncias de objectos.

Como posso treinar um modelo YOLOv8 utilizando o conjunto de dados COCO-Seg?

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 detalhada dos argumentos disponíveis, consulta a página 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

Quais são as principais características do conjunto de dados COCO-Seg?

O conjunto de dados COCO-Seg inclui várias características fundamentais:

  • Mant√©m as 330K imagens originais do conjunto de dados COCO.
  • Anota as mesmas 80 categorias de objectos que se encontram no COCO original.
  • Fornece m√°scaras de segmenta√ß√£o de inst√Ęncia mais detalhadas para cada objeto.
  • Utiliza m√©tricas de avalia√ß√£o normalizadas, 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 exemplos.

Que modelos pré-treinados estão disponíveis para o COCO-Seg e quais são os seus indicadores de desempenho?

O conjunto de dados COCO-Seg suporta vários modelos de segmentação YOLOv8 pré-treinados com diferentes métricas de desempenho. Segue um resumo dos modelos disponíveis e suas principais métricas:

Modelo tamanho
(pixéis)
mAPbox
50-95
mAPmask
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

Como é que o conjunto de dados COCO-Seg está estruturado e que subconjuntos contém?

O conjunto de dados COCO-Seg está dividido em três subconjuntos para necessidades específicas de formação e avaliação:

  1. Train2017: Cont√©m 118K imagens utilizadas principalmente para treinar modelos de segmenta√ß√£o de inst√Ęncias.
  2. Val2017: Inclui 5K imagens utilizadas para validação durante o processo de treino.
  3. Test2017: Abrange 20 mil imagens reservadas para testar e aferir modelos treinados. Tem em aten√ß√£o que as anota√ß√Ķes da verdade terrestre para este subconjunto n√£o est√£o dispon√≠veis publicamente e os resultados de desempenho s√£o enviados para o servidor de avalia√ß√£o COCO para avalia√ß√£o.


Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (7), RizwanMunawar (1), Laughing-q (1)

Coment√°rios