文章目录

  • 1. 工作场景
  • 2. 资料收集
  • 3. 解决方案
    • 3.1 探究coco数据集中ann file 协议
      • 3.1.1 annotations字段:重要程度☆☆☆
      • 3.1.2 images和categories字段:重要程度☆☆
      • 3.1.2 info和licenses字段:重要程度☆
    • 3.2 制作一个coco标签形式的小规模数据集
  • 4. 结语
  • 5. 注意
  • 6.参考资料

1. 工作场景

    Coco数据集是当前目标检测领域最为流行的一个公开学术集。许多目标检测领域相关的开源工作,在描述自己的ann file的时候,会使用如下的方式进行描述:

The annotation files follows the json format of the Object Detection task of MS COCO[引1].

    看起来,coco的数据标签形式是一个默认大家都知道的常识。那么,coco数据的标签形式到底是什么样子的?鉴于coco数据标签形式使用的广泛性,有必要对其进行一定的了解。
    另外一方面,coco常用的训练集train_2017和验证集val_2017全集在实际工作中具有如下的不便之处:

  • 图片压缩包分别为18G和1G, 由于网络原因,下载速度慢且易中断。
  • coco数据集的ann file是一个数据集对应一个整体json文件,仅val集的json文件大小可达到20M, 不方便直接打开查看。
  • 大部分场景下,并不是想使用coco全集,仅仅是因为开源框架或者算法提供的是coco数据集接口,为了安装、跑通该框架(或算法)需要coco集的存在。

    因此本篇博文的内容聚焦两点内容:

  1. 探究coco数据集中ann file 协议。
  2. 制作一个coco标签形式的小规模数据集。

2. 资料收集

    coco数据集的官网提供了相关的介绍,见[引2]。该github提供了instances_val2017.json, 大小为20M可以有一个直观感受, 见[引3]。

3. 解决方案

3.1 探究coco数据集中ann file 协议

    首先回答第一个问题,coco的anno file协议是什么样子?以instances_val2017.json为例,它是一个大的dict数据结构。其key值包含五项[注1]:

'info', 'licenses', 'images', 'annotations', 'categories'

3.1.1 annotations字段:重要程度☆☆☆

    这里的’annotations’是我们最应该关注的字段。它本身是一个长度为36781的list。表示当前val集中有36781个目标。以list中一个item为例,如下截图所示:这里的bbox和category_id就是我们最为关心的目标坐标框gt和类别gt。各个目标并没有按照是否为一张图片进行划分,但可以通过image_id来进行collect。这里有一个iscrowd字段,也是一个需要注意的点,但这里不做展开,后续计划会另外写一篇关于coco评测的博文,会对该字段的作用进行阐述。


{'segmentation': [[510.66,423.01,...510.03,423.01,510.45,423.01]],'area': 702.1057499999998,'iscrowd': 0,'image_id': 289343,'bbox': [473.07, 395.93, 38.65, 28.67],'category_id': 18,'id': 1768}

3.1.2 images和categories字段:重要程度☆☆

    这里的’images’和’categories’字段有一定的用处,可以稍微的留意一下。'images’是一个list, 其长度为5000,与coco2017 val集的5000张图片数量相对应。仍旧以list中一个item为例,如下截图所示,这里强调两点:

  1. 在代码逻辑层面,图片的id数字是一个比图片名更加常用的值,这里可以看到id事实上就是图片名称中的数字去除前缀无效的0。
  2. 在该字段中,保留了图片的宽和高。如果一些预处理操作需要这一信息,不需要再借助于PIL或者cv等图像处理库来获取。open一个图片会花费较多不必要的时间。
# images是一个len为5000的list, 这里展示的是其中的一个元素
{'license': 4,'file_name': '000000397133.jpg','coco_url': 'http://images.cocodataset.org/val2017/000000397133.jpg','height': 427,'width': 640,'date_captured': '2013-11-14 17:02:52','flickr_url': 'http://farm7.staticflickr.com/6116/6255196340_da26cf2c9e_z.jpg','id': 397133}

    categories字段,展示了该数据集中的类别信息,对应的id以及物理名称。需要注意的是,这里的类别id并不是连续的。

# categories是一个len为80的list, 但要注意这里的id并不是连续的[{'supercategory': 'person', 'id': 1, 'name': 'person'},...{'supercategory': 'furniture', 'id': 65, 'name': 'bed'},{'supercategory': 'furniture', 'id': 67, 'name': 'dining table'},{'supercategory': 'furniture', 'id': 70, 'name': 'toilet'},{'supercategory': 'electronic', 'id': 72, 'name': 'tv'},...{'supercategory': 'appliance', 'id': 82, 'name': 'refrigerator'},{'supercategory': 'indoor', 'id': 84, 'name': 'book'},...{'supercategory': 'indoor', 'id': 90, 'name': 'toothbrush'}]

3.1.2 info和licenses字段:重要程度☆

    这里的‘info’项和’licenses’项是一些无太多实际意义的声明,可以直接跳过。

# info字段的内容
{'description': 'COCO 2017 Dataset','url': 'http://cocodataset.org','version': '1.0','year': 2017,'contributor': 'COCO Consortium','date_created': '2017/09/01'}
# license字段的内容
[{'url': 'http://creativecommons.org/licenses/by-nc-sa/2.0/','id': 1,'name': 'Attribution-NonCommercial-ShareAlike License'},{'url': 'http://creativecommons.org/licenses/by-nc/2.0/','id': 2,'name': 'Attribution-NonCommercial License'},{'url': 'http://creativecommons.org/licenses/by-nc-nd/2.0/','id': 3,'name': 'Attribution-NonCommercial-NoDerivs License'},{'url': 'http://creativecommons.org/licenses/by/2.0/','id': 4,'name': 'Attribution License'},{'url': 'http://creativecommons.org/licenses/by-sa/2.0/','id': 5,'name': 'Attribution-ShareAlike License'},{'url': 'http://creativecommons.org/licenses/by-nd/2.0/','id': 6,'name': 'Attribution-NoDerivs License'},{'url': 'http://flickr.com/commons/usage/','id': 7,'name': 'No known copyright restrictions'},{'url': 'http://www.usa.gov/copyright.shtml','id': 8,'name': 'United States Government Work'}]

3.2 制作一个coco标签形式的小规模数据集

    针对第二个问题,其实际意义在于,coco数据集在很多时候,它的作用仅仅是为了跑通一些开源框架。但该集较大,下载起来速度较慢,存储空间较大。因此这里抽取了一个子集,共64张图片,可用于日常的快速使用, github链接[引3]。
    这里的json标签文件只有1M不到,可以方便的用json文件打开工具(例如,右键,使用FireFox浏览器打开),打开直接直观的查看,3.1节的内容会更加清晰。

4. 结语

    本篇文章探究了当前目标检测领域最为流行的MS coco数据集的ann file协议,并提供了一个含有64张图片及其对应anno file的coco子数据集,方便日常工作中开源算法和框架的安装、调试等工作。

5. 注意

[注1]如果查看引用2链接中的官方说明,会缺少’categories’这一项,但实际如果解析json文件,会看到是有该项的。可能是由于历史版本的原因。

6.参考资料

[引1] 文档版面解析任务: publayNet
[引2]MS COCO annotation files 官方介绍
[引3]coco子数据集

对MS coco数据集的ann file协议的探究相关推荐

  1. MS COCO数据集

    1. MS COCO数据集介绍 MS COCO的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集. 官网 ...

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

    COCO系列文章: MS COCO数据集目标检测评估(Detection Evaluation)(来自官网) MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网) ...

  3. MS COCO数据集详解

    这是我的推广信息,以激励自己更好的分享自己的知识和经验!也希望看到的你能够多多支持,谢谢! 1. 滴滴云AI大师: 目前滴滴云正在大力推广自己的云计算服务,需要购买的朋友们用我的AI大师码 「2049 ...

  4. MS coco数据集下载链接

    coco数据集因为官网被墙了,所以无法看到下载链接,翻墙后拷贝过来,直接用链接下载就可以. 网页格式拷贝过来后就与官网的不一样, 凑合看. Images 2014 Train images [83K/ ...

  5. MS COCO数据集标注格式解析

    COCO是微软提供的一个图像识别的数据集.其中包括3个tasks,分别是object instances, object keypoints, 和image captions,存储格式为JSON. 基 ...

  6. MS coco数据集下载

    登录ms-co-co数据集官网,一直不能进入,翻墙之后开看到下载链接.有了下载链接下载还是很快的,在我这儿晚上下载,速度能达到7M/s,所以也不上传到网盘了,有需要的人等夜深人静的时候下载效果更佳哦. ...

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

    https://blog.csdn.net/u014734886/article/details/78831382 coco2019关节点挑战赛服务器 https://competitions.cod ...

  8. 目标检测实战篇1——数据集介绍(PASCAL VOC,MS COCO)

    前言   前面我们讲过了目标检测的YOLO系列算法,SSD算法.从这个博文开始,我们要真实开启实战篇章.在正式介绍实战篇之前,我们需要先知道两个数据集:PASCAL VOC和COCO数据集. 一.PA ...

  9. 计算机视觉常用数据集总结:包括MS COCO、ImageNet、VOC、人脸识别、行人检测等...

    1.PASCAL VOC(权威鼻祖) PASCAL VOC是一个图像集,由Mark Everingham (University ofLeeds).Luc van Gool (ETHZ, Zurich ...

最新文章

  1. 【JQUBAR1.1】jQuery 插件发布
  2. openSUSE中启用apache mod_rewrite
  3. xbox虚拟服务器,Xbox One平台真相:原生Win8/虚拟化运行
  4. tomcat远程调试_docker容器远程debug(Tomcat)
  5. Leetcode每日一题:4.寻找两个有序数组的中位数
  6. MATLAB 写入 txt
  7. js常用方法之Array对象方法扩展
  8. 期货反跟单软件介绍与反跟单交易中的骗局
  9. python规模大小的指标是_Python 做证券指数三种策略分析 - 最高收益,最大规模,最小风险...
  10. mem leak debug
  11. Chrome 插件下载、安装、加载正在开发的扩展程序和打包扩展程序
  12. 统信桌面操作系统V20专业版(1020)正式发布
  13. Java练习题:算法(冒泡排序)
  14. pycharm运行Project Interpreter是空的怎么办?
  15. 财路网每日原创推送: 科普:区块链在其他领域的一些应用
  16. python如何打开服务器文件大小,关于字符串:Python可以打开的文件的最大大小?...
  17. (三)独立集、支配集及匹配——图论笔记系列
  18. 国际护士节活动策划PPT模板
  19. 嚼得菜根做得大事·《菜根谭》·十一
  20. 【Unity开发小技巧】AudioManager声音管理器

热门文章

  1. 图纸文档管理系统的基础功能有哪些?
  2. stm32毕设分享 RFID门禁防盗报警系统(源码+论文)
  3. C语言:题目:将输入的一个字符串按反序存放
  4. hdu 5465 (树状数组 + 博弈)
  5. 阿里云服务器地域及可用区选择、节点测速IP地址分布表
  6. Mac上免费批量转换heic为JPG
  7. 【UE4 虚幻引擎 学习笔记一】常见的基类(二) Actor、Pawn、Character、Controller
  8. 微信授权(三)微信调用摄像头和相机
  9. 【Quartz】定时任务小练习
  10. 【C++学习】类与对象(下)