我们相信:世界是美好的,你是我也是。 来玩一下解压小游戏吧! 在使用yolo做物品识别的时候,总是绕不开coco数据集。coco数据集分为coco8,coco64,coco2017等,区别在于数据集所包含数据的多少。那么,本文对于coco数据集做个具体的介绍。以解释在yolo编程过程中,可能会遇到的疑惑。

coco数据集是什么?如何下载coco数据集?格式解读(图9-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10,python@3.12.9,pycocotools@2.0.8。coco数据集是由微软研究院发布的。coco2017是原版的,其它的coco系列,都是第三方随机筛选生成的,所以并不具有唯一性。或者说,你自己也可以发布一个coco100之类的集合,完全没有问题的。

COCO 数据集COCO(Common Objects in Context)是一个广泛使用的计算机视觉数据集,主要用于图像识别、目标检测、实例分割、关键点检测等任务。COCO数据集以其丰富的标注、多样的场景和高质量的图像而闻名,是计算机视觉领域的重要基准数据集之一。

COCO是由微软研究院发布的一个大规模图像数据集,旨在推动计算机视觉领域的发展。它的全称是 "Common Objects in Context",强调了数据集中物体的上下文信息。COCO 数据集的目标是提供一个多样化的、真实世界的图像集合,帮助研究者开发和评估视觉算法。

官方网站:

https://cocodataset.org/ (基本上是个瘫痪状态,国内访问不访问没有啥区别)

coco数据集是什么?如何下载coco数据集?格式解读(图9-2)

coco数据集不同版本COCO 数据集根据不同的用途和规模被分为多个版本,例如 COCO8、COCO64、COCO128、COCO256 和 COCO2017 等。除了coco2017是官方提供的版本,其它的coco,都是使用第三方工具随机抽取对应数量的图片而形成的子集。所以,不同渠道下载到的coco8数据集,很大概率是不同的。

COCO2017

用途: 官方完整版本,广泛用于目标检测、分割、关键点检测等任务。规模: 包含训练集(约 118,000 张图像)、验证集(约 5,000 张图像)和测试集(约 40,000 张图像)。COCO数据集根据任务和用途分为多个子集:

训练集(train2017):用于训练模型。验证集(val2017):用于模型验证。测试集(test2017):用于模型测试(无标注)。挑战数据集:用于 COCO 挑战赛,包含额外的测试数据。此外,COCO 数据集还根据任务分为不同的标注文件,例如 instances, captions, person_keypoints 等。

COCO 数据集下载地址COCO数据集可以从其官方网站下载,但是官方网站是崩溃的状态:

官网地址:COCO 数据集官网下载页面:COCO 数据集下载可以把下面的地址,放到迅雷里面下载。

训练集图片 (118K images)【约18G】 http://images.cocodataset.org/zips/train2017.zip验证集图片 (5K images)【约1G】 http://images.cocodataset.org/zips/val2017.zip测试集图片 (41K images) http://images.cocodataset.org/zips/test2017.zip训练/验证标注文件 http://images.cocodataset.org/annotations/annotations_trainval2017.zip测试集标注文件 http://images.cocodataset.org/annotations/image_info_test2017.zip

coco数据集是什么?如何下载coco数据集?格式解读(图9-3)

json 文件解读下面的这个压缩包是重点文件,解压出来的instances_train2017.json,就是coco数据集的核心配置。

http://images.cocodataset.org/annotations/annotations_trainval2017.zip

coco数据集是什么?如何下载coco数据集?格式解读(图9-4)

这个文件由于太大,可以使用Huge-JSON-Viewer或者notepad--打开。下载地址:

https://wellisolutions.de/downloads/Huge-JSON-Viewer-0.4.12.19-Setup.exe_.ziphttps://gitee.com/cxasm/notepad--/releases/download/v3.2.1/Notepad--v3.2.1-win10-portable.zip

coco数据集是什么?如何下载coco数据集?格式解读(图9-5)

主要就看三个字段:images[图像],annotations[标注]【重点】,categories[分类]。

images 图像包含超过 20 万张高质量的日常场景图像。图像中包含多种物体,且物体之间有丰富的上下文关系。

{

"images": [

{

"license": 3,

"file_name": "000000391895.jpg",

"coco_url": "http://images.cocodataset.org/train2017/000000391895.jpg",

"height": 360,

"width": 640,

"date_captured": "2013-11-14 11:18:45",

"flickr_url": "http://farm9.staticflickr.com/8186/8119368305_4e622c8349_z.jpg",

"id": 391895

}

],

"annotations": [],

"categories": []

}

coco数据集是什么?如何下载coco数据集?格式解读(图9-6)

从图中可以看到,它是包含两个外网地址的。也就是说,如何使用的话,可以临时下载也可以。

annotations 标注目标检测:每个物体都有边界框(Bounding Box)标注。实例分割:每个物体都有像素级的分割掩码。关键点检测:人体关键点(如关节、头部等)标注。图像描述:每张图像有 5 条自然语言描述。{

"images": [],

"annotations": [

{

"segmentation": [

[

325.9,

332.73,

325.35,

338.18,

329.99,

345.53,

343.07,

344.72,

347.7,

339.81,

365.41,

340.36,

368.13,

338.99,

360.78,

310.65,

361.05,

300.03,

362.41,

298.12,

347.43,

303.57,

334.07,

312.02,

326.44,

332.45

]

],

"area": 1292.1561000000002,

"iscrowd": 0,

"image_id": 62200,

"bbox": [

325.35,

298.12,

42.78,

47.41

],

"category_id": 3,

"id": 1356124

}

],

"categories": []

}

coco数据集是什么?如何下载coco数据集?格式解读(图9-7)

categories 类别包含 80 个物体类别(如人、动物、交通工具等)。91 个东西类别(Stuff Categories)用于语义分割。{

"images": [],

"annotations": [],

"categories": [

{

"supercategory": "person",

"id": 1,

"name": "person"

},

{

"supercategory": "vehicle",

"id": 2,

"name": "bicycle"

},

{

"supercategory": "vehicle",

"id": 3,

"name": "car"

}

]

}

coco数据集是什么?如何下载coco数据集?格式解读(图9-8)

从截图上可以看到,这里的分类是有"supercategory"的说法的。

使用 COCO 数据集COCO 提供了官方的API,方便加载和处理数据。可以通过以下命令安装:

pip install pycocotools使用 COCO API 加载数据并进行操作,例如读取标注、可视化数据等。

from pycocotools.coco import COCO

import matplotlib.pyplot as plt

import cv2

import random

# 加载标注文件

coco = COCO("annotations/instances_train2017.json")

# 获取某个类别的所有图像 ID

cat_ids = coco.getCatIds(catNms=["dog","cat"])

img_ids = coco.getImgIds(catIds=cat_ids)

# 随机选择一张图像

img_info = coco.loadImgs(random.choice(img_ids))[0]

img_path = f"train2017/{img_info['file_name']}"

# 加载图像

img = cv2.imread(img_path)

# 获取标注信息

ann_ids = coco.getAnnIds(imgIds=img_info['id'], catIds=cat_ids, iscrowd=None)

anns = coco.loadAnns(ann_ids)

# 绘制标注框

for ann in anns:

x, y, w, h = ann['bbox']

cv2.rectangle(img, (int(x), int(y)), (int(x + w), int(y + h)), (255, 0, 0), 2)

# 显示图像

plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

plt.axis("off") # 禁用工具栏

plt.show()

coco数据集是什么?如何下载coco数据集?格式解读(图9-9)

在训练模型之前,可以对COCO数据集进行数据增强和预处理,例如图像缩放、裁剪、归一化等。将COCO数据集加载到深度学习框架(如PyTorch、TensorFlow)中,训练目标检测、分割或关键点检测模型。

总结所以,结论是这样的:

分类很多,分类之间有包含关系。一张图片可能对应很多个标注。每个标注对应一个分类。但是由于父级分类的存在,实际上导致一个图片对应的(标注)分类更多。COCO数据集是计算机视觉领域的重要基准数据集,涵盖了多种任务和丰富的标注信息。通过COCO数据集,可以做:目标检测、实例分割还是关键点检测,也可以开发和评估各种视觉算法。

https://newsn.net/tag/coco/ 如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。 本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

【源码】本文代码片段及相关软件,请点此获取更多信息

【绝密】秘籍文章入口,仅传授于有缘之人 yolo coco

2025-08-30 18:52:45