COCO数据集的标注格式

COCO数据集的介绍:全称是Common Objects in COntext,是微软团队提供的一个可以用来进行图像识别的数据集。MS COCO数据集中的图像分为训练、验证和测试集。COCO通过在Flickr上搜索80个对象类别和各种场景类型来收集图像,其使用了亚马逊的Mechanical Turk(AMT)。

COCO数据集的标注类型:object instances(目标实例), object keypoints(目标上的关键点), and image captions(看图说话)

COCO数据集存储方式:数据集以json文件存储,每个标注类型有训练和验证两个数据集划分,因此3种标注类型共有6个jason文件。

基本的JSON结构体类型

每个json文件又包括info、image、license、annotation四个部分,其中annotation(图像标注)的格式每种标注类型各不相同。

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

object instances的标注格式

1. 整体json文件格式:

{"info": info,"licenses": [license],"images": [image],"annotations": [annotation],"categories": [category]
}

2. annotation格式:
annotations字段是包含多个annotation实例的一个数组,annotation类型本身又包含了一系列的字段,如这个目标的category id和segmentation mask。segmentation格式取决于这个实例是一个单个的对象(即iscrowd=0,将使用polygons格式)还是一组对象(即iscrowd=1,将使用RLE格式)。如下所示:

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

单个的对象(iscrowd=0)可能需要多个polygon来表示,比如这个对象在图像中被挡住了。而iscrowd=1时(将标注一组对象,比如一群人)的segmentation使用的就是RLE格式。
另外,每个对象(不管是iscrowd=0还是iscrowd=1)都会有一个矩形框bbox ,矩形框左上角的坐标和矩形框的长宽会以数组的形式提供,数组第一个元素就是左上角的横坐标值。
area是area of encoded masks。
最后,annotation结构中的categories字段存储的是当前对象所属的category的id,以及所属的supercategory的name。
下面是从instances_val2017.json文件中摘出的一个annotation的实例:

{"segmentation": [[510.66,423.01,511.72,420.03,510.45,416.0,510.34,413.02,510.77,410.26,\510.77,407.5,510.34,405.16,511.51,402.83,511.41,400.49,510.24,398.16,509.39,\397.31,504.61,399.22,502.17,399.64,500.89,401.66,500.47,402.08,499.09,401.87,\495.79,401.98,490.59,401.77,488.79,401.77,485.39,398.58,483.9,397.31,481.56,\396.35,478.48,395.93,476.68,396.03,475.4,396.77,473.92,398.79,473.28,399.96,\473.49,401.87,474.56,403.47,473.07,405.59,473.39,407.71,476.68,409.41,479.23,\409.73,481.56,410.69,480.4,411.85,481.35,414.93,479.86,418.65,477.32,420.03,\476.04,422.58,479.02,422.58,480.29,423.01,483.79,419.93,486.66,416.21,490.06,\415.57,492.18,416.85,491.65,420.24,492.82,422.9,493.56,424.39,496.43,424.6,\498.02,423.01,498.13,421.31,497.07,420.03,497.07,415.15,496.33,414.51,501.1,\411.96,502.06,411.32,503.02,415.04,503.33,418.12,501.1,420.24,498.98,421.63,\500.47,424.39,505.03,423.32,506.2,421.31,507.69,419.5,506.31,423.32,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. categories字段
从instances_val2017.json文件中摘出的2个category实例如下所示:

{"supercategory": "person","id": 1,"name": "person"
},
{"supercategory": "vehicle","id": 2,"name": "bicycle"
},

Object Keypoint 类型的标注格式

1. annotations字段
包含了Object Instance中annotation结构体的所有字段,再加上2个额外的字段。
新增的keypoints是一个长度为3*k的数组,其中k是category中keypoints的总数量。每一个keypoint是一个长度为3的数组,第一和第二个元素分别是x和y坐标值,第三个元素是个标志位v,v为0时表示这个关键点没有标注(这种情况下x=y=v=0),v为1时表示这个关键点标注了但是不可见(被遮挡了),v为2时表示这个关键点标注了同时也可见。
num_keypoints表示这个目标上被标注的关键点的数量(v>0),比较小的目标上可能就无法标注关键点。

{"segmentation": [[125.12,539.69,140.94,522.43,100.67,496.54,84.85,469.21,73.35,450.52,104.99,342.65,168.27,290.88,179.78,288,189.84,286.56,191.28,260.67,202.79,240.54,221.48,237.66,248.81,243.42,257.44,256.36,253.12,262.11,253.12,275.06,299.15,233.35,329.35,207.46,355.24,206.02,363.87,206.02,365.3,210.34,373.93,221.84,363.87,226.16,363.87,237.66,350.92,237.66,332.22,234.79,314.97,249.17,271.82,313.89,253.12,326.83,227.24,352.72,214.29,357.03,212.85,372.85,208.54,395.87,228.67,414.56,245.93,421.75,266.07,424.63,276.13,437.57,266.07,450.52,284.76,464.9,286.2,479.28,291.96,489.35,310.65,512.36,284.76,549.75,244.49,522.43,215.73,546.88,199.91,558.38,204.22,565.57,189.84,568.45,184.09,575.64,172.58,578.52,145.26,567.01,117.93,551.19,133.75,532.49]],"num_keypoints": 10,"area": 47803.27955,"iscrowd": 0,"keypoints": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142,309,1,177,320,2,191,398,2,237,317,2,233,426,2,306,233,2,92,452,2,123,468,2,0,0,0,251,469,2,0,0,0,162,551,2],"image_id": 425226,"bbox": [73.35,206.02,300.58,372.5],"category_id": 1,"id": 183126
},

2. categories字段

对于每一个category结构体,相比Object Instance中的category新增了2个额外的字段,keypoints是一个长度为k的数组,包含了每个关键点的名字;skeleton定义了各个关键点之间的连接性(比如人的左手腕和左肘就是连接的,但是左手腕和右手腕就不是)。目前,COCO的keypoints只标注了person category (分类为人)。
从person_keypoints_val2017.json文件中摘出一个category的实例如下:

{"supercategory": "person","id": 1,"name": "person","keypoints": ["nose","left_eye","right_eye","left_ear","right_ear","left_shoulder","right_shoulder","left_elbow","right_elbow","left_wrist","right_wrist","left_hip","right_hip","left_knee","right_knee","left_ankle","right_ankle"],"skeleton": [[16,14],[14,12],[17,15],[15,13],[12,13],[6,12],[7,13],[6,7],[6,8],[7,9],[8,10],[9,11],[2,3],[1,2],[1,3],[2,4],[3,5],[4,6],[5,7]]
}

摘自:https://blog.csdn.net/yeyang911/article/details/78675942?utm_source=blogkpcl11

COCO数据集图像和注解下载地址:

Images
2014 Train images [83K/13GB]
2014 Val 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]

摘自:https://blog.csdn.net/u014734886/article/details/78830713

MsCOCO数据集标注详解相关推荐

  1. MSCOCO数据标注详解

    参考: cocodataset/cocoapi philferriere/cocoapi- support Windows build and python3 COCO 标注详解 COCO数据集ann ...

  2. mscoco数据集_caffe详解之数据层

    从零开始,一步一步学习caffe的使用,期间贯穿深度学习和调参的相关知识! 更多优质内容欢迎订阅公众号[AI异构] 数据层参数说明 layer { name: "cifar" #层 ...

  3. Labelme使用——数据集标注详解

     1.Labelme的安装: Windows下首先安装Anaconda,安装教程:Windows下Anaconda的下载与安装_一诺长安的博客-CSDN博客 安装成功后,电计电脑左下角"开始 ...

  4. [Python图像识别] 五十.Keras构建AlexNet和CNN实现自定义数据集分类详解

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  5. python从date目录导入数据集_PyTorch加载自己的数据集实例详解

    数据预处理在解决深度学习问题的过程中,往往需要花费大量的时间和精力. 数据处理的质量对训练神经网络来说十分重要,良好的数据处理不仅会加速模型训练, 更会提高模型性能.为解决这一问题,PyTorch提供 ...

  6. tensorflow入门数据集:mnist详解

    文章目录 python处理二进制 mnist介绍 mnist显示 方法一:读取解压后的原始文件 方法二:使用TensorFlow封装代码读取 需求一:同时显示图片和标签,验证图片和标签一一对应 需求二 ...

  7. BraTS数据集处理详解(附代码详解)

    代码参考:https://github.com/sinclairjang/3D-MRI-brain-tumor-segmentation-using-autoencoder-regularizatio ...

  8. voc数据集格式详解

    计算机视觉经常会用到voc数据集 以如下数据集为例 http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic ...

  9. pytorch保存准确率_初学Pytorch:MNIST数据集训练详解

    前言 本文讲述了如何使用Pytorch(一种深度学习框架)构建一个简单的卷积神经网络,并使用MNIST数据集(28*28手写数字图片集)进行训练和测试.针对过程中的每个步骤都尽可能的给出了详尽的解释. ...

最新文章

  1. Asp.net MVC JsonResult 忽略属性
  2. 程序猿的日常——Java基础之equals与hashCode
  3. 理解ABR及其工作原理
  4. 航海学校高级课程任务讲义--海事课程
  5. jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
  6. 进行判断使用class_记一次使用 Arthas 热更新线上代码
  7. Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
  8. common java socket,JAVA I/O(四)网络Socket和ServerSocket
  9. BERT模型实战之多文本分类(附源码)
  10. Windows服务创建及安装
  11. 推荐一个Github上很酷的开源项目——The Octo-Bouncer
  12. HDU -2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(DP,贪心)
  13. Python math.comb() 方法
  14. 毕设 数据库ER图绘制过程中的参考资料
  15. linux内核态延时函数及头文件,Linux内核延时函数
  16. debian linux fcitx 小鹤双拼
  17. 扬帆优配|高送转+高分红+高增长潜力股揭秘
  18. Linux防火墙firewalld只允许特定IP访问
  19. Django如何发送电子邮件?
  20. es6 新增 常用 语法 知识点 汇总

热门文章

  1. 字节跳动今日头条笔试题目经历2018
  2. Samba 服务使用的端口和协议
  3. 数据结构课设—图型结构题目—行车路线
  4. JNLP文件及JWS
  5. windows MNN 的使用流程(Python版)
  6. 数据项、数据字典、模式等基本概念辨析 数据库系统结构
  7. 微信JS-SDK的使用
  8. 计算与推断思维 九、经验分布
  9. 二维数组作为函数参数的传递
  10. 怎么压缩视频到最小,什么操作简单