mask-RCNN笔记——标注工具以及各式转换

使用标注工具lablem

1、下载

https://github.com/wkentaro/labelme

2、安装

使用环境,ubuntu16.04,python3

进入labelme文件夹下,打开终端,进入虚拟环境,运行代码

pip install pyqt5  # pyqt5 can be installed via pip on python3
pip install labelme

3、运行

在labelme目录下打开终端,输入一下代码,即可运行labelme窗口

labelme

4、使用

a、点击1处导入图片文件夹

b、点击2处在当前文件中打开标记工具

c、在图中的3处用标注工具标注目标

d、标注框封闭之后输入目标名称,如4处所示

e、标注完成1张图片之后点击5保存json文件

f、点击6进入下一张图片

5、json文件

在保存目录下会生成与文件同名的一个json文件

数据格式转换

代码下载地址:

https://github.com/wucng/TensorExpand/tree/master/TensorExpand/Object%20detection/Data_interface/MSCOCO/labelme%20data

使用方法:

1、直接复制代码labelme2COCO.py到json目录下

2、配置虚拟环境与labelme相同,应为执行的时候需要用到Qt5的包

3、运行代码,会将多个json文件保存到一个new.json中

使用过程中遇到了三个问题:

1、红框处的函数原代码是utils.img_b64_to_array()

在运行时报错了,查看utils文件后发现我的代码当中的函数是img_b64_to_arr()

修改为如图之后运行正确

2、类型格式不一致

代码中对对象的命名方式是:猫-布偶猫-对象编号,这种形式

在此处读入信息之后会获得label的list

我在使用时,由于一张图片上只有一个对象,且只有一个类,所以需要修改

方便起见,我直接将label修改为固定字符串,如红框

3、json保存问题,TypeError: 104 is not JSON serializable

发现是由于segment中的数据类型导致的,虽然不知道为什么int64的数据格式不能保存到json中

在读取segmentation的时候直接修改数据类型为float类型

猜你喜欢

转载自blog.csdn.net/Diana_Z/article/details/83585071