MS COCO 2014数据集获取类别semantic segmentation
2018-01-05 22:11
1236 查看
MS COCO 2014 数据集的cocoapi只能获得 instance mask(下图右);但是要是想获得 class semantic segmentation(下图左),现在的官方cocoapi貌似并没提供这个api。
在研究了2017的dataset和新版cocoapi后,发现2017的dataset的
新版cocoapi根据stuff categories来对同一个class赋予颜色,直接使用原来的category ids(1-91)无法进行stuff分类(所以一片黑),因此对代码稍作改动即可作用于2014的数据集!
2、进入
(1) Line141:
from:
to:
(2) Line142 后面加上:
3、进入
4、使用
5、运行即可
原因:2014的dataset可能存在一个pixel对应多个label的情况,2017的Stuff Segmentation应该不存在这个问题,所以新版cocoapi会检查异常
解决方法:不检查异常(多个label则由后者覆盖),即看一下 Line141 有没有加上
得到的图像全黑:
原因:检查原来 Line142的 labelMap 有没有加上91。若没加上,category ids仍为1-91,无法着色。
解决方法:查看上方实现步骤2-(2)
http://cocodataset.org/#stuff-eval
[2] cocoapi(旧版):https://github.com/cocodataset/cocoapi
[3] cocoapi(新版):https://github.com/nightrome/cocoapi
实现环境:
Python实现方法:
coco官网的2017年数据集中可以发现有Stuff Segmentation,同时提供了新版的能获取Stuff Segmentation的cocoapi:link 。里面的PythonAPI/cocostuff/cocoSegmentationToPngDemo.py可以获得类别的Segmentation,但是这个是仅针对2017年的dataset的(博主发现直接使用会报错或者只能得到一片黑的图)。
在研究了2017的dataset和新版cocoapi后,发现2017的dataset的
category ids与2014的dataset不一样,变成:
1-91 % thing categories (not used for stuff segmentation) 92-182 % stuff categories 183 % other category (all thing pixels)
新版cocoapi根据stuff categories来对同一个class赋予颜色,直接使用原来的category ids(1-91)无法进行stuff分类(所以一片黑),因此对代码稍作改动即可作用于2014的数据集!
实现步骤:
1、下载新版cocoapi:https://github.com/nightrome/cocoapi2、进入
PythonAPI/pycocotools/cocostuffhelper.py,改动:
(1) Line141:
from:
labelMap = cocoSegmentationToSegmentationMap(coco, imgId, includeCrowd=includeCrowd)
to:
labelMap = cocoSegmentationToSegmentationMap(coco, imgId, checkUniquePixelLabel=False, includeCrowd=includeCrowd)
(2) Line142 后面加上:
labelMap = labelMap + 91
3、进入
PythonAPI/:
make
4、使用
PythonAPI/cocostuff/cocoSegmentationToPngDemo.py,设置好
annPath为你自己的
coco/annotations/instances_train2014.json路径;然后把 Line75-Line88 注释掉
5、运行即可
结果:
常见问题:
“Exception: Error: Some pixels have more than one label”:原因:2014的dataset可能存在一个pixel对应多个label的情况,2017的Stuff Segmentation应该不存在这个问题,所以新版cocoapi会检查异常
解决方法:不检查异常(多个label则由后者覆盖),即看一下 Line141 有没有加上
checkUniquePixelLabel=False(查看上方实现步骤2-(1))
得到的图像全黑:
原因:检查原来 Line142的 labelMap 有没有加上91。若没加上,category ids仍为1-91,无法着色。
解决方法:查看上方实现步骤2-(2)
References:
[1] coco dataset官网:http://cocodataset.org/#downloadhttp://cocodataset.org/#stuff-eval
[2] cocoapi(旧版):https://github.com/cocodataset/cocoapi
[3] cocoapi(新版):https://github.com/nightrome/cocoapi
相关文章推荐
- MS COCO 2014数据集fine-tune FCN做语义分割
- 制作自己的物体检测数据集----MS COCO: Common Object in Context笔记
- MS COCO官网数据集(百度云)下载,COCO API、MASK API和Annotation format介绍(来自官网)
- MS coco数据集介绍及下载
- MS COCO数据集目标检测评估(Detection Evaluation)(来自官网)
- 简单的MS COCO数据集下载方法
- MS coco数据集下载
- MS COCO数据集输出数据的结果格式(result format)和如何参加比赛(participate)(来自官网)
- MS SQL Server2014链接到MS SQL Server 2000的解决方案及问题处理
- 将ipdata.dat 数据集导入 mysql 中并获取sql文件
- [笔试题]MS 2014
- Linux shell获取时间和时间间隔(ms级别)
- 使用ionice命令获取或设置程序的I/O调度类别和优先级
- Delphi 获取临时数据集 ClientDataSet
- 【Scikit-Learn 中文文档】成对的矩阵, 类别和核函数 - 数据集转换 - 用户指南 | ApacheCN
- 将COCO数据集整合成VOC格式xml
- MS SQLSERVER中如何快速获取表的记录总数
- sql server 获取每一个类别中值最大的一条数据
- sql server 获取每一个类别中值最大的一条数据
- php 获取优酷视频的真实地址(2014.6月新算法)