我们相信:世界是美好的,你是我也是。 来玩一下解压小游戏吧! 在使用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