实例分割和语义分割使用labelme制作的数据集如何转换为voc和coco格式的数据

1.首选使用labelme进行数据集制作,制作完成后,会获取到图片和.json的文件,如下:

2.转换数据集为coco或者voc数据集

其实官方已经提供了,转换一个实例的代码,但是没有批量的转换代码,于是网上很多批量转换代码,其实呢,官方作者已经完成了转换代码,大家可以去官网看看:labelme官网,从官网获取两个文件:labelme2coco.py和labelme2voc.py,使用方法,作者有教程,大家研究一下,我这里以转换为voc数据集为例实现一下:

./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt

这里简单介绍一下,data_annotated就是你标注的数据集的目标,就是第一步的包含图片和.json的路径, data_dataset_voc是转换后的路径,这里说明转换结果在本路径下的data_dataset_voc文件下, --labels labels.txt 就是你的标签信息了,

这里提醒一下,制作标签时应该首先把类别确定下来为labels.txt,然后标注时读入这个信息就可以了,如下:

labelme data_annotated --labels labels.txt 

转换完成后会在对应的目录出现如下的文件:

这里就说明转换完成了。

 

3.这时你会发现标签图片居然是彩色的,是不是需要转换呢?如果想要黑色的那种如何转换呢?

其实这个问题,网上的人说需要转换,说明他根本不懂,这个彩色的只是伪彩色,显示用的,其实他的信息还是8位,对应的像素值就是类别值,如果我们通过代码就可以观察,大家可以看我的另一篇博客,使用labelme进行图片语义分割数据的标注(如何转换为训练的灰度图,即像素值为类别值), 这里我只是简单的说明了一下,并没有细说,但是发现还是有很多人不懂,我这里仔细的说明一下,其实很简单,但是看一下转换代码就好了,就是对应得labelme2voc.py,这里代码很清晰,可以修改代码生成你们习惯的黑色的那种,下面我们来看看代码:

从图中可以看到保存我们标签的代码是labelme.utils.lblsave(out_png_file, lbl), 那我们进入看看 :

通过上面大家不难看出,其实在伪彩色的情况下,直接使用PIL.Image进行读取数据即可,但是使用opencv无法读取,只能转换为灰度即L模式,这里给大家链接一个他们模式的讲解:model的讲解

4.总结

其实有时候一件事如果你觉得很麻烦,多数可能是方法错了,这是你需要深入源码全看他是怎么生成的,而不是其他乱七八糟的转换,所以知其然更要知其所以然。

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值