使用标注工具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文件
数据格式转换
代码下载地址:
使用方法:
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类型