COCO系列文章:

MS COCO数据集目标检测评估(Detection Evaluation)(来自官网)

MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)

MS COCO数据集输出数据的结果格式(result format)和如何参加比赛(participate)(来自官网)

MS COCO官网数据集(百度云)下载,COCO API、MASK API和Annotation format介绍(来自官网)

由于coco的官网老是打不开,因此把官网内容记录在此

包括MS COCO官网数据集下载地址,COCO API介绍和Result Format介绍

下面是图像和注解下载地址:

Images

2014 Train images [83K/13GB]
2014 Val images [41K/6GB]
2014 Test images [41K/6GB]
2015 Test images [81K/12GB]
2017 Train images [118K/18GB]
2017 Val images [5K/1GB]
2017 Test images [41K/6GB]
2017 Unlabeled images [123K/19GB]

Annotations

2014 Train/Val annotations [241MB]
2014 Testing Image info [1MB]
2015 Testing Image info [2MB]
2017 Train/Val annotations [241MB]
2017 Stuff Train/Val annotations [401MB]
2017 Testing Image info [1MB]
2017 Unlabeled Image info [4MB]

如果下载不下来可以用百度云下载

tinyval2014(用于调试,一共只有4张图片)

链接: https://pan.baidu.com/s/1iKYH86Gr4tAVUSpcXicaEA 提取码: 81v2 复制这段内容后打开百度网盘手机App,操作更方便哦
大家可以使用tinyval2014.py自己生成一些图片的注解,只需要修改image_ids文件下的tinyval2014.txt里面的图片id,不需要后缀jpg

coco2014-2015,coco2017数据集

链接: https://pan.baidu.com/s/18uPgVV1whp1zChpq5pIykA 提取码: bk1m 复制这段内容后打开百度网盘手机App,操作更方便哦

coco2014

链接: https://pan.baidu.com/s/1uHLM56W8W6HPXCi6kjPCvg 提取码: 3yti 复制这段内容后打开百度网盘手机App,操作更方便哦

coco2015

链接: https://pan.baidu.com/s/17aKTmiEftElEzWxL54nGgA 提取码: shtw 复制这段内容后打开百度网盘手机App,操作更方便哦

coco2017

链接: https://pan.baidu.com/s/1iAZmJkaq_raJdKJDVLe6rQ 提取码: fsn9 复制这段内容后打开百度网盘手机App,操作更方便哦

instances_minival2014.json.zip https://dl.dropboxusercontent.com/s/o43o90bna78omob/instances_minival2014.json.zip?dl=0

链接: https://pan.baidu.com/s/1WEoVD8QRF9ZCEKN4-NJfLg 提取码: 5uca 复制这段内容后打开百度网盘手机App,操作更方便哦

instances_valminusminival2014.json.zip https://dl.dropboxusercontent.com/s/s3tw5zcg7395368/instances_valminusminival2014.json.zip?dl=0

链接:https://pan.baidu.com/s/1ffkttgyMif5aH5B6qms2fQ
提取码:klr4 链接: https://pan.baidu.com/s/1XYUqKRKSKrP1Co3WA02ABg 提取码: 64bn 复制这段内容后打开百度网盘手机App,操作更方便哦

test2015.json和test-dev2015

2015 Testing Image info [2MB]

1. 概述

你应该下载哪个数据集?每年的拆分(split)都与不同的挑战有关。特别地:

2014 Train/Val Detection 2015 , Captioning 2015 , Detection 2016 , Keypoints 2016

2014 Testing Captioning 2015

2015 Testing Detection 2015 , Detection 2016 , Keypoints 2016

2017 Train/Val Detection 2017 , Keypoints 2017 , Stuff 2017

2017 Testing Detection 2017 , Keypoints 2017 , Stuff 2017

2017 Unlabeled [optional data for any competition]

如果您提交2017年的挑战,只需要下载2017年的数据。您可以忽略较早的数据拆分。

为了有效地下载图像,我们建议使用gsutil rsync来避免下载大的zip文件。但由于我下不下来这个工具就没有用

我们的数据托管在Google云端平台(GCP)上。gsutil提供了有效访问这些数据的工具。您不需要GCP帐户即可使用gsutil。下载数据的说明如下:

(1) Install gsutil via:

curl https://sdk.cloud.google.com | bash

(2) Make local dir:

mkdir val2017

(3) Synchronize via:

gsutil -m rsync gs://images.cocodataset.org/val2017 val2017

The splits are available for download via rsync are: train2014, val2014, test2014, test2015, train2017, val2017, test2017, unlabeled2017. Simply replace 'val2017' with the split you wish to download and repeat steps (2)-(3). Finally, you can also download all the annotation zip files via:

(4) Get annotations:

gsutil -m rsync gs://images.cocodataset.org/annotations [localdir]

The download is multi-threaded, you can control other options of the download as well (see gsutil rsync ). Please do not contact us with help installing gsutil (we note only that you do not need to run gcloud init).


请按照 COCO API Readme 自述文件中的说明设置下载的COCO数据(图像和注释)。通过下载这个数据集,您同意我们的使用条款。

2017更新:2017年的主要变化是,根据社区反馈,而不是一个80K / 40K train/ val拆分,现在train/ val的拆分是115K / 5K。使用相同的准确的图像,并且不提供用于检测/关键点的新注释。然而,2017年新增了40Ktrain图片(2017年全部115K训练图片的子集)和5K val图片的注释。此外,为了进行测试,在2017年,测试集只有两个拆分(dev / challenge),而不是前几年使用的四个拆分(dev / standard / reserve / challenge)。最后,2017年的新作品发布了COCO的120K无标签图片,与标签图片一样,这可能对COCO的半监督学习有用。

注意:注释最后更新09/05/2017(添加了注释)。如果您发现有关数据的任何问题,请让我们知道!

2. COCO API

COCO API帮助加载,解析和可视化COCO中的注释。API支持对象实例(object instance),对象关键点(object keypoint)和图像标题(image caption)注释(对于标题,并非所有功能都已定义)。有关更多详情,请参阅: CocoApi.m , coco.py , and CocoApi.lua for Matlab, Python, and Lua code, respectively, and also the Python API demo .

Throughout the API "ann"=annotation, "cat"=category, and "img"=image.

download           从mscoco.org服务器下载COCO图像。

getAnnIds          获取满足给定过滤器条件的ann ids。

getCatIds           获取满足给定过滤条件的cat ID。

getImgIds          获取满足给定过滤条件的img ids。

loadAnns           用指定的id加载anns。

loadCats           使用指定的ID加载类别。

loadImgs          用指定的id加载imgs。

loadRes           加载算法结果并创建用于访问它们的API。

showAnns        显示指定的注释。

3. MASK API

COCO为每个对象实例提供分割掩码。这产生了两个挑战:紧凑地存储掩码并有效地执行掩码计算。我们使用自定义运行长度编码(RLE,Run Length Encoding)方案来解决这两个挑战。RLE表示的大小与掩码的边界像素的数量成比例,并且可以直接在RLE上有效地计算诸如面积,联合或相交(area, union, or intersection)的操作。具体而言,假设相当简单的形状,RLE表示是O(√n),其中n是对象中像素的数量,并且公共计算同样是O(√n)。天真地计算解码掩码(存储为数组)相同的操作将是O(n)。

MASK API提供了一个操作以RLE格式存储的掩码的界面。该API定义如下,其他细节请参阅: MaskApi.m , mask.py , or MaskApi.lua .。 最后,我们注意到,大部分的实际真值(ground truth)掩码被存储为多边形(polygons)(非常紧凑),这些多边形在需要时被转换为RLE。

encode                 使用RLE编码二进制掩码。

decode                解码通过RLE编码的二进制掩码。

merge                  计算编码掩码的联合或交集(union, or intersection)。

iou                        计算掩码之间的联合的交集(intersection over union)。

area                     计算编码掩码的区域(area)。

toBbox                获取围绕编码掩码的边界框(bounding boxes)。

frBbox                 将边界框转换为编码的掩码(Convert bounding boxes to encoded masks.)。

frPoly                  将多边形转换为编码掩码(Convert polygon to encoded mask)。

4. Annotation format

COCO目前有三种注解类型:对象实例,对象关键点和图像标题。注释使用 JSON 文件格式存储。所有注释共享下面的基本数据结构:

"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,


下面介绍各种注释类型特有的数据结构。

4.1. Object Instance Annotations

每个实例注释包含一系列字段,包括对象的类别ID和分割掩码(segmentation mask)。分割格式取决于实例是否代表单个对象(iscrowd = 0,在这种情况下使用多边形)或对象集合(iscrowd = 1,在这种情况下使用RLE)。请注意,单个对象(iscrowd = 0)可能需要多个多边形,例如,如果被遮挡。人群注释(Crowd annotations)(iscrowd = 1)用于标记大量对象(例如一群人)。此外,还为每个对象提供了一个封闭的边界框(框坐标是从左上角的图像角度测量的,并且是0索引的)。最后,注解结构的类别字段存储了类别ID到类别和超类别名称的映射。 See also the Detection Challenge .

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,

4.2. Object Keypoint Annotations

关键点注释包含对象注释的所有数据(包括id,bbox等)和两个附加字段。首先,“关键点”是长度为3k的数组,其中k是为该类别定义的关键点的总数。每个关键点有一个0索引的位置x,y和一个被定义为可见性标志。v = 0:没有标记(在这种情况下x = y = 0),v = 1:标记但不可见,v = 2:标记并可见。如果关键点位于对象段内部,则认为它是可见的。“num_keypoints”指示给定对象(许多对象,例如拥挤(即重叠)和小对象将具有num_keypoints = 0)的标记关键点的数量(v> 0)。最后,对于每个类别,类别struct还有两个附加字段:“keypoints”,它是关键点名称的长度为k的数组,以及“skeleton”,它通过关键点边缘对的列表定义连接,并用于可视化。目前,关键点仅标记为人物类别(对于大多数中/大型非人群人物实例)。See also the Keypoint Challenge .

annotation{

"keypoints": [x1,y1,v1,...],

"num_keypoints": int,

"[cloned]": ...,

categories[{

"keypoints": [str],

"skeleton": [edge],

"[cloned]": ...,

"[cloned]": 表示从4.1中定义的对象实例注释复制的字段。

4.3. Stuff Segmentation Annotations

物体注释格式是完全相同和完全兼容上面的对象实例注释格式(除了iscrowd是不必要的,默认设置为0)。我们提供JSON和PNG格式的注释,以便于访问,以及两种格式之间的 conversion scripts 。在JSON格式中,图像中的每个类别都使用单个RLE注释进行编码(有关更多详细信息,请参阅上面的Mask API)。 category_id表示当前的东西类别的ID。有关东西类别和超类别的更多细节see the stuff evaluation page.

4.4. Image Caption Annotations

这些注释用于存储图像标题。每个标题描述指定的图像,每个图像至少有5个字幕(一些图像有更多)。See also the Captioning Challenge .

annotation{

"id": int,

"image_id": int,

"caption": str,

最近正在做实例分割的项目,需要 下载 MS 2017 的 COCO 数据集 ,但是呢,直接从 官网 下载 ,速度较慢(需要fq ) ,用迅雷更是完全不行滴。翻遍整个CSDN(误),都没有找到合适的 下载 源。最后在github上找到以下的方法来 下载 标签文件,图片文件,特此分享给大家。 在linux 终端中,新建 下载 脚本。 vim coco .sh 使用 wget 的方法获取2017的 数据集 。 #!/bin/sh COCO -CN是一个双语图像描述 数据集 ,通过手动书写的中文句子 标签丰富了 MS - COCO 。 新的 数据集 可用于多种任务,包括跨语言设置的图像标记,字幕 检索。 COCO -CN火车 COCO -CN值 COCO -CN测试 :check_mark_button: :check_mark_button: :check_mark_button: :cross_mark: :cross_mark: :check_mark_button: 机器翻译(百度) :check_mark_button: :check_mark_button: :check_mark_button: 201805版:20,341张图像(训练/验证/测试:18,341 / 1,000 / 1,000),与22,218个手动书写的中文句子 5,000个手动翻译的句子相关联。 可根据要求免费提供数据。 请通过提交您的请求。 :ResNext-101 :一种轻巧的工具,用于检查Tilburg大学的开发的 COCO -CN测试仪上不同图像字幕系统的结果
1. MS COCO 数据集 介绍 MS COCO 的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO 数据集 官网 地址:http:// coco dataset.org COCO 是一个具有非常高的行业地位且规模非常庞大的 数据集 ,用于目标检测、分割、图像描述等等场景。特点包括: Object segmentation:对象级分割 Recognition in context:上下文识别 Superpixel stuf
MS COCO 的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO 数据集 ,与ImageNet竞赛一样,被视为是计算机视觉领域最受关注 最权威的比赛之一。 COCO 数据集 是一个大型的、丰富的物体检测,分割 字幕 数据集 。这个 数据集 以scene understanding为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的segmentation进行位置的标定。图像包括91类目标,328,000影像 2,500,000个label。目前为止有语义分割的最大 数据集 ,提供的类别有80 类,有超过33 万张图片,其中20 万张有标注,整个 数据集 中个体的数目超过150 万
COCO 数据集 官方 下载 链接 [1] - train2014 images:## 标题 http://images. coco dataset.org/zips/train2014.zip [2] - val2014 images: http://images. coco dataset.org/zips/val2014.zip [3] - train2014/val2014 annotation s: http://images. coco dataset.org/ annotation s/ annotation s_tra
### COCO 数据集 注解格式及其使用 COCO ( Common Objects in Context ) 是一种广泛用于目标检测、实例分割 图像描述的任务的 数据集 。其注解文件通常是一个 JSON 文件,包含了丰富的信息来描述每张图片中的对象。 #### 注解文件的主要组成部分 注解文件主要包括以下几个部分: 1. **info**: 提供关于 数据集 的一般信息,例如版本号、贡献者列表以及日期等[^1]。 2. **licenses**: 描述 数据集 中使用的许可协议。 3. **categories**: 定义了所有的类别名称及其对应的 ID 号码。这些类别可以用来区分不同的物体种类。 4. **images**: 列出了所有图片的信息,包括唯一的ID, 文件名, 高度宽度等等。 5. ** annotation s**: 这是最核心的部分之一,它记录着每一个被标记的对象的具体位置 其他属性。对于每个 annotation 条目来说,至少应该包含如下字段: - `id`: 唯一标识符; - `image_id`: 对应到 images 中某一张具体照片的 id; - `category_id`: 表明该 object 属于哪个 category 的 id; - `bbox`: 边界框的位置参数[x,y,width,height], 即左上角坐标加上宽高表示矩形区域; - `segmentation`: 如果涉及到的是 instance segmentation 或者 stuff segmentation,则会给出多边形顶点序列或者 RLE 编码形式下的 mask 信息. 以下是加载并读取 COCO annotation s 的 Python 示例代码片段: ```python from py coco tools. coco import COCO # 初始化 COCO API 并指定路径至 annotation file. dataDir='/path/to/data' dataType='val2017' # 'train2017', etc. annFile='{}/ annotation s/instances_{}. json '. format ( dataDir,dataType ) # 使用 Py COCO Tools 库初始化 COCO 类型对象 coco = COCO ( annFile ) # 显示 categories image 数量 cats = coco .loadCats ( coco .getCatIds ( ) ) n ms =[cat['name'] for cat in cats] print ( ' COCO categories: \n{}\n'. format ( ' '.join ( n ms ) ) ) img_ids = list ( coco .imgs.keys ( ) ) [:10] # 获取前十个 img ids 来展示如何获取 annos for img_id in img_ids: img_info = coco .loadImgs ( img_id ) [0] print ( f"Image {img_id}: Name={img_info['file_name']}" ) anno_ids = coco .getAnnIds ( imgIds=img_id ) annos = coco .loadAnns ( anno_ids ) for i, a in enumerate ( annos ) : bbox = a["bbox"] segm = a["segmentation"] if "segmentation" in a else None print ( f"\t Annotation {i}:\nbbox:{bbox}\nsegm:{segm}" ) 上述脚本展示了怎样通过官方提供的工具包访问基本元数据以及边界框 分段详情等内容[^2]. #### 特定类别的随机裁剪 如果希望只保留某些特定类型的样本而忽略其余部分的话,可以通过筛选条件实现这一点。下面提供了一个简单的例子说明这一过程[^3]: ```python import random def filter_ annotation s_by_category ( coco _instance, target_categories=['person'] ) : filtered_annots = [] all_cat_ids = coco _instance.getCatIds ( catN ms =target_categories ) annot_ids = coco _instance.getAnnIds ( catIds=all_cat_ids ) selected_annots = coco _instance.loadAnns ( ids=annot_ids ) imgs_to_keep = set ( [a['image_id'] for a in selected_annots] ) return [im for im in coco _instance.dataset['images'] if im['id'] in imgs_to_keep] filtered_images = filter_ annotation s_by_category ( coco , ['car'] ) random_sampled_image = random.choice ( filtered_images ) print ( random_sampled_image ) 此函数接受一个已有的 COCO 实例作为输入,并返回仅限所选分类内的影像子集合。