COCO数据集介绍

article/2025/9/10 3:04:50

COCO数据集详细介绍

  • 前言
  • 一、什么是COCO数据集?
    • COCO数据集可以应用到的Task:
    • 一个简单的数据集实例展示:
    • 附录
      • 80个类别
  • 二、COCO数据集的格式介绍
    • 基础的数据格式介绍
    • 不同Task下的annotation
      • Object Detection annotation
      • other task:
    • Result format 输出格式
  • 三、COCO数据集的下载

前言

以下内容均来自COCO官方
以及Microsoft COCO: Common Objects in Context

一、什么是COCO数据集?

COCO数据集是一个可用于图像检测(image detection),语义分割(semantic segmentation)和图像标题生成(image captioning)的大规模数据集。它有超过330K张图像(其中220K张是有标注的图像),包含150万个目标,80个目标类别(object categories:行人、汽车、大象等),91种材料类别(stuff categoris:草、墙、天空等),每张图像包含五句图像的语句描述,且有250,000个带关键点标注的行人。

COCO数据集可以应用到的Task:

  1. 目标检测(object detection),使用 bounding box 或者 object segmentation (也称为instance segmentation)将不同的目标进行标定。
    在这里插入图片描述
    COCO数据集用于image segmentation的教程:Master the COCO Dataset for Semantic Image Segmentation
  2. Densepose(密集姿势估计),DensePose任务涉及同时检测人、分割他们的身体并将属于人体的所有图像像素映射到身体的3D表面。用于不可控条件下的密集人体姿态估计。1
  3. Key-points detection(关键点检测),在任意姿态下对人物的关键点进行定位,该任务包含检测行人及定位到行人的关键点。
    0
  4. Stuff Segmentation,语义分割中针对stuff class类的分割。(草,墙壁,天空等)
    在这里插入图片描述
  5. Panoptic Segmentation(全景分割)。其目的是生成丰富且完整的连贯场景分割,这是实现自主驾驶或增强现实等真实世界视觉系统的重要一步。
    在这里插入图片描述
  6. image captioning(图像标题生成),根据图像生成一段文字。
    在这里插入图片描述

一个简单的数据集实例展示:

一张包含汽车,行人,画板的图片:
1
1

附录

80个类别

0

person(人)

交通工具:bicycle(自行车) car(汽车) motorbike(摩托车) aeroplane(飞机) bus(公共汽车) train(火车) truck(卡车) boat(船)

公共设施:traffic light(信号灯) fire hydrant(消防栓) stop sign(停车标志) parking meter(停车计费器) bench(长凳)

动物:bird(鸟) cat(猫) dog(狗) horse(马) sheep(羊) cow(牛) elephant(大象) bear(熊) zebra(斑马) giraffe(长颈鹿)

生活用品:backpack(背包) umbrella(雨伞) handbag(手提包) tie(领带) suitcase(手提箱)

运动装备:frisbee(飞盘) skis(滑雪板双脚) snowboard(滑雪板) sports ball(运动球) kite(风筝) baseball bat(棒球棒) baseball glove(棒球手套) skateboard(滑板) surfboard(冲浪板) tennis racket(网球拍)

餐具:bottle(瓶子) wine glass(高脚杯) cup(茶杯) fork(叉子) knife(刀)
spoon(勺子) bowl(碗)

水果:banana(香蕉) apple(苹果) sandwich(三明治) orange(橘子) broccoli(西兰花) carrot(胡萝卜) hot dog(热狗) pizza(披萨) donut(甜甜圈) cake(蛋糕)

家居:chair(椅子) sofa(沙发) pottedplant(盆栽植物) bed(床) diningtable(餐桌) toilet(厕所) tvmonitor(电视机)

电子产品:laptop(笔记本) mouse(鼠标) remote(遥控器) keyboard(键盘) cell phone(电话)
家用电器:microwave(微波炉) oven(烤箱) toaster(烤面包器) sink(水槽) refrigerator(冰箱)
家用产品:book(书) clock(闹钟) vase(花瓶) scissors(剪刀) teddy bear(泰迪熊) hair drier(吹风机) toothbrush(牙刷)

二、COCO数据集的格式介绍

针对上述提到不同的TASK(object detection, keypoint detection, stuff segmentation, panoptic segmentation, densepose, and image captioning),COCO数据集有不同的标注类型。这些标注类型都用“JSON”格式进行存储。接下来将针对性的对其JSON内的标注格式进行详细介绍。

基础的数据格式介绍

针对所有的TASK,所有的annotation都有如下的相同的数据结构/格式:

{
"info": info, "images": [image], "annotations": [annotation], "licenses": [license],
}info{
"year": int, "version": str, "description": str, "contributor": str, "url": str, "date_created": datetime,
}image{
"id": int, "width": int, "height": int, "file_name": str, "license": int, "flickr_url": str, "coco_url": str, "date_captured": datetime,
}license{
"id": int, "name": str, "url": str,
}

提示:info内的信息不需要怎么管,是数据来源和贡献者等信息。license也不需要管。annotation是指不同的TASK的annotation,(那六种task)。image内是图片的size,id,file_name等等。

不同Task下的annotation

针对不同task的annotation,我们分别进行描述:

Object Detection annotation

annotation{
"id": int, "image_id": int, "category_id": int, "segmentation": RLE or [polygon], "area": float, "bbox": [x,y,width,height], "iscrowd": 0 or 1,
}categories[{
"id": int, "name": str, "supercategory": str,
}]

iscrowd:0 对应polygon (多边形) 注意:单个对象也可能需要多个多边形,例如我们上面例子中的汽车的多边形的分割,就是两个多边形。(蓝色代表为汽车)0

iscrowd:1 对应segmentation:RLE编码 。 一般用于标注大量的密集对象。

除此之外,还为每个对象提供了一个封闭的bounding box(框坐标从图像左上角开始测量,并为0索引)。最后,注释结构的categories字段用于存储类别id到类别和超类别名称的映射。 (例如 id:0 对应映射 为people)

other task:

其它annotation的介绍略过,可以参考 https://cocodataset.org/#format-data

Result format 输出格式

为了便于比较,COCO采用统一的输出格式。具体格式形式可以参考:https://cocodataset.org/#format-results。
便于后续可以通过官方的测试集来和公共榜单上的结果比较。

三、COCO数据集的下载

下载网址:官网下载链接
1
不用全部下载,只需要下载2017 Train images\2017 Val images\和对应的所需的Task的annotation即可。


http://chatgpt.dhexx.cn/article/TiDw2prl.shtml

相关文章

COCO数据集的介绍和使用

这篇文章是我研究生阶段入学期间学习所记,主要供自己使用,结合了论文原作和源码,中间借鉴的一些b站的视频以及他人博客的解释,会在文章末尾贴出链接。 目录 COCO数据集的介绍 COCO数据集标注格式 pycocotools的安装和coco api…

数据结构与算法之基础概述

目录 数据结构和算法的重要性数据结构概述逻辑结构存储结构 算法概述如何理解“大O记法”时间复杂度空间复杂度 数据结构和算法的重要性 算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算 数据结构和算法的关系: 程序 数…

1.0 JAVA数据结构与算法

学习总结 利用计算机来解决显示世界中的各种实际问题时,首先要将实际问题中的操作对象抽象为能够用计算机表示的数据,为这些数据建立一个数学模型(数据的逻辑结构),再面对数据以某种组织形式进行存储(数据…

数据结构和算法的区别

1.数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。 1.数据的逻辑结构 数据的逻辑结构分类图如下: 2.数据的存储结构 存储结构是指数据结构在计算机中的表示&#xf…

肝完了,一天掌握数据结构和算法面试题,吊打面试官,一起学习吧

最近有小伙伴面试,对数据结构和算法比较头疼,我整理了一波资料,帮助大家快速掌握数据结构和算法的面试,感觉有用的小伙伴,点赞支持哦! 不叨叨,直接上干货。 目录 Q1:数据结构和算…

大一新生先学C语言编程还是先学C语言的数据结构和算法?

大家好,我是辣条。 这是一位粉丝朋友给我的私信,今天就他这个问题好好聊聊。 先学C语言在学数据结构和算法 先说答案建议先学C语言,掌握基本的语法基础后,再学数据结构与算法,C语言编程与数据结构和算法这两个完全是…

【数据结构和算法】如何学习数据结构与算法 ?过来人的建议(一)【方法篇】

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

数据结构与算法简介

0. 内容说明 最近在自己编写一些小的算法的时候,深感自己的算法过于臃肿。碰巧Datawhale在新的一期组队学习中组织了数据结构与算法的课程学习。于是就参加了,再次感谢Datawhale~~ 首先跟大家分享一下两个自己感觉比较好的学习资料,一个是 …

数据结构和算法知识点整理

Q1:数据结构和算法的知识点整理: 数据结构和算法的需要掌握的知识点,我的好朋友启舰整理的: Q2:链表,队列和栈的区别 链表是一种物理存储单元上非连续的一种数据结构,看名字我们就知道他是一种…

如何学习数据结构和算法

首先掌握常用的、基础的。然后在此基础上往进行扩展学习。 常用的、基础的数据结构和算法有20个。 数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树 算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法…

Java的数据结构和算法

今天我们来简单介绍一下Java的数据结构和算法。 一、数据结构 1、数据结构的分类 2、数据结构的基本功能 二、算法 1、算法是什么 2、算法的特点 一、1、数据结构是计算机组织、存储数据的方式。简单来说就是,数据按指定的规则进行存储,从而得到一个有固定存储格式的数据集…

数据结构与算法——绪论

前言:数据结构与算法是计算机科学与工程的基础,它们的相互关系和作用是程序的本质。凭借一句话获得图灵奖的Pascal之父Nicklaus Wirth把它们表示为 算法数据结构程序 目录: 1、算法与数据结构的重要性①相关定义②为什么要学习算法③数据结构…

【建议收藏】数据结构和算法面试题

数据结构 数据结构分为两大类,线性结构和非线性结构。 线性结构:数组、队列、链表、栈非线性结构:多维数组、树结构、图结构 1.数组 数组是最常用的数据结构,用于存储相同类型的数据,数组的长度也是固定的。 数组…

数据结构和算法:什么是数据结构,什么是算法

文章目录 前言数据结构和算法1.数据结构1.1数据结构的类型2.算法2.1推导大O阶方法常数阶O(1)和线性阶O(n)为什么算法1时间复杂度为O(n)而不是O(1)呢?对数阶O( logn):平方阶O( n2): 前言 这几天复习数据结构,在看《大话数据结构》&…

python数据结构和算法

前面系统地学习了python相关的基础知识,接下来,我们将继续学习python的数据结构和算法。 我们知道,程序数据结构算法,那么,什么是数据结构,有什么是算法呢?如何系统的学习数据结构和算法呢&am…

【数据结构和算法】入门初识篇

目录 一、前言 二、数据结构的理解 物理结构和逻辑结构 1.逻辑结构 2. 物理结构 一、前言 我们前面我学了Java的内部类,现在来学习一下数据结构和算法,多科齐下不仅可以 学科交插学习互相帮助,还可以锻炼跳跃性思维。 二、数据结构的…

什么是数据结构和算法

从远古的汇编语言到现代编程语言,计算机编程已经变得更加强大、高效和先进。然而,计算机编程中的数据结构和算法的核心概念和使用并没有改变。从一开始,DSA就一直是计算机编程的核心。 备注: 下文统一使用DSA表示数据结构和算法。 你可能听说…

数据结构与算法——算法

😊数据结构与算法——算法 🚀什么是算法?🚢算法的特征(特性) 🚀算法的设计(要点)🚀算法效率的度量🚢事后统计法🚢事前分析估算法&…

数据结构与算法

数据结构与算法 1.数据结构的概念 数据结构指的是一组数据的存储结构。 2.算法的概念 算法是指操作数据的一组方法 3.二者的关系 数据结构是为算法服务的,而算法要作用在特定的数据结构上。 4.最常用的数据结构预算法 数据结构:数组、链表、栈、队列、散…

数据结构与算法学习笔记

本文是王争老师的《算法与数据结构之美》的学习笔记,详细内容请看王争的专栏 。有不懂的地方指出来,我做修改。 数据结构与算法思维导图 数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。 数据结构是为算法服务的&a…