MsCOCO数据集标注详解
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数据集标注详解相关推荐
- MSCOCO数据标注详解
参考: cocodataset/cocoapi philferriere/cocoapi- support Windows build and python3 COCO 标注详解 COCO数据集ann ...
- mscoco数据集_caffe详解之数据层
从零开始,一步一步学习caffe的使用,期间贯穿深度学习和调参的相关知识! 更多优质内容欢迎订阅公众号[AI异构] 数据层参数说明 layer { name: "cifar" #层 ...
- Labelme使用——数据集标注详解
1.Labelme的安装: Windows下首先安装Anaconda,安装教程:Windows下Anaconda的下载与安装_一诺长安的博客-CSDN博客 安装成功后,电计电脑左下角"开始 ...
- [Python图像识别] 五十.Keras构建AlexNet和CNN实现自定义数据集分类详解
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- python从date目录导入数据集_PyTorch加载自己的数据集实例详解
数据预处理在解决深度学习问题的过程中,往往需要花费大量的时间和精力. 数据处理的质量对训练神经网络来说十分重要,良好的数据处理不仅会加速模型训练, 更会提高模型性能.为解决这一问题,PyTorch提供 ...
- tensorflow入门数据集:mnist详解
文章目录 python处理二进制 mnist介绍 mnist显示 方法一:读取解压后的原始文件 方法二:使用TensorFlow封装代码读取 需求一:同时显示图片和标签,验证图片和标签一一对应 需求二 ...
- BraTS数据集处理详解(附代码详解)
代码参考:https://github.com/sinclairjang/3D-MRI-brain-tumor-segmentation-using-autoencoder-regularizatio ...
- voc数据集格式详解
计算机视觉经常会用到voc数据集 以如下数据集为例 http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic ...
- pytorch保存准确率_初学Pytorch:MNIST数据集训练详解
前言 本文讲述了如何使用Pytorch(一种深度学习框架)构建一个简单的卷积神经网络,并使用MNIST数据集(28*28手写数字图片集)进行训练和测试.针对过程中的每个步骤都尽可能的给出了详尽的解释. ...
最新文章
- Asp.net MVC JsonResult 忽略属性
- 程序猿的日常——Java基础之equals与hashCode
- 理解ABR及其工作原理
- 航海学校高级课程任务讲义--海事课程
- jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
- 进行判断使用class_记一次使用 Arthas 热更新线上代码
- Flask 框架下 Jinja2 模板引擎高层 API 类——Environment
- common java socket,JAVA I/O(四)网络Socket和ServerSocket
- BERT模型实战之多文本分类(附源码)
- Windows服务创建及安装
- 推荐一个Github上很酷的开源项目——The Octo-Bouncer
- HDU -2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(DP,贪心)
- Python math.comb() 方法
- 毕设 数据库ER图绘制过程中的参考资料
- linux内核态延时函数及头文件,Linux内核延时函数
- debian linux fcitx 小鹤双拼
- 扬帆优配|高送转+高分红+高增长潜力股揭秘
- Linux防火墙firewalld只允许特定IP访问
- Django如何发送电子邮件?
- es6 新增 常用 语法 知识点 汇总