跳转至内容

COCO 数据集

The COCO(通用对象上下文)数据集是一个大规模目标 detect、segmentation 和图像描述数据集。它旨在鼓励对各种对象类别的研究,并常用于基准测试计算机视觉模型。对于从事目标 detect、segmentation 和姿势估计任务的研究人员和开发人员来说,这是一个必不可少的数据集。



观看: Ultralytics COCO 数据集概述

COCO 预训练模型

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLO11n64039.556.1 ± 0.81.5 ± 0.02.66.5
YOLO11s64047.090.0 ± 1.22.5 ± 0.09.421.5
YOLO11m64051.5183.2 ± 2.04.7 ± 0.120.168.0
YOLO11l64053.4238.6 ± 1.46.2 ± 0.125.386.9
YOLO11x64054.7462.8 ± 6.711.3 ± 0.256.9194.9

主要功能

  • COCO包含33万张图像,其中20万张图像带有用于目标检测、分割和图像描述任务的标注。
  • 该数据集包含80个对象类别,包括常见的对象,如汽车、自行车和动物,以及更具体的类别,如雨伞、手提包和运动器材。
  • 注释包括每个图像的对象边界框、分割掩码和描述。
  • COCO 提供了标准化的评估指标,例如用于目标 detect 的平均精度 (mAP),以及用于 segment 任务的平均召回率 (mAR),使其适用于比较模型性能。

数据集结构

COCO 数据集分为三个子集:

  1. Train2017:此子集包含 118K 张图像,用于训练目标检测、分割和图像描述模型。
  2. Val2017:此子集包含 5K 张图像,在模型训练期间用于验证。
  3. Test2017:此子集包含2万张图像,用于测试和基准评估训练好的模型。此子集的真实标注未公开,结果将提交至 COCO 评估服务器 进行性能评估。

应用

COCO 数据集广泛用于训练和评估深度学习模型,涵盖目标检测(例如Ultralytics YOLOFaster R-CNNSSD)、实例分割(例如Mask R-CNN)和关键点检测(例如OpenPose)。该数据集多样化的目标类别、大量的标注图像以及标准化评估指标,使其成为计算机视觉研究人员和从业者的重要资源。

数据集 YAML

YAML(Yet Another Markup Language)文件用于定义数据集配置。它包含数据集的路径、类别及其他相关信息。对于COCO数据集, coco.yaml 文件保存在 https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.

ultralytics/cfg/datasets/coco.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/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: 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 pathlib import Path

  from ultralytics.utils import ASSETS_URL
  from ultralytics.utils.downloads import download

  # Download labels
  segments = True  # segment or box labels
  dir = Path(yaml["path"])  # dataset root dir
  urls = [ASSETS_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)

用法

要在 COCO 数据集上训练一个图像尺寸为 640、进行 100 个epoch的 YOLO11n 模型,您可以使用以下代码片段。有关可用参数的完整列表,请参阅模型训练页面。

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

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

Sample Images 和注释

COCO 数据集包含一系列多样化的图像,涵盖各种目标类别和复杂场景。以下是数据集中一些图像及其相应标注的示例:

数据集样本图像

  • Mosaiced Image:此图像演示了一个由 mosaiced 数据集图像组成的训练批次。Mosaicing 是一种在训练期间使用的技术,它将多个图像组合成一个图像,以增加每个训练批次中对象和场景的多样性。这有助于提高模型泛化到不同对象大小、纵横比和上下文的能力。

该示例展示了 COCO 数据集中图像的多样性和复杂性,以及在训练过程中使用马赛克增强的好处。

引用和致谢

如果您在研究或开发工作中使用 COCO 数据集,请引用以下论文:

@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}
}

我们感谢 COCO 联盟为计算机视觉社区创建和维护这一宝贵资源。有关 COCO 数据集及其创建者的更多信息,请访问 COCO 数据集网站

常见问题

COCO数据集是什么,它对计算机视觉为何重要?

The COCO 数据集(通用对象上下文)是一个大规模数据集,用于目标 detect、segmentation 和图像描述。它包含 33 万张图像,带有 80 个对象类别的详细注释,对于基准测试和训练计算机视觉模型至关重要。研究人员使用 COCO 是因为它具有多样化的类别和标准化的评估指标,例如平均 AP (mAP)。

如何使用 COCO 数据集训练 YOLO 模型?

要使用 COCO 数据集训练 YOLO11 模型,您可以使用以下代码片段:

训练示例

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

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

有关可用参数的更多详细信息,请参阅训练页面

COCO数据集的主要特性是什么?

COCO 数据集包括:

  • 330K 张图像,其中 200K 张已标注用于目标检测、分割和图像描述。
  • 80 个对象类别,范围从汽车和动物等常见物品到手提包和运动器材等特定物品。
  • 目标检测 (mAP) 和分割 (平均召回率, mAR) 的标准化评估指标。
  • 训练批次中的 Mosaicing 技术,以增强模型在各种对象大小和上下文中的泛化能力。

在哪里可以找到在 COCO 数据集上训练的预训练 YOLO11 模型?

可以在文档中提供的链接下载COCO数据集上的预训练YOLO11模型。示例包括:

这些模型在尺寸、mAP 和推理速度方面各不相同,为不同的性能和资源需求提供了选择。

COCO数据集的结构是怎样的,以及如何使用它?

COCO 数据集分为三个子集:

  1. Train2017:118K 张图像用于训练。
  2. Val2017:5K 张图像,用于训练期间的验证。
  3. Test2017:2万张图像用于基准测试训练模型。结果需要提交到 COCO 评估服务器进行性能评估。

该数据集的yaml配置文件可在coco.yaml获取,其中定义了路径、类别和数据集详细信息。



📅 创建于 2 年前 ✏️ 9 个月前更新
glenn-jocherRizwanMunawarjk4eambitious-octopusUltralyticsAssistantMatthewNoyceRizwanMunawar

评论