语义分割数据集的制作-labelme的使用

概述

最近需要自己制作一个语义分割的数据集,查了查,大家普遍使用的是labelme 工具

https://blog.csdn.net/shwan_ma/article/details/77823281 从这位朋友的博客中我得到了很大的启发,在这里和他说一声谢谢。

一个python版的labelme( https://github.com/wkentaro/labelme ), 我用的是ubuntu16.04,上面的博主有用windows。

关于语义分割数据集的制作在最后面。

安装

直接使用pip安装,
# Python3
sudo apt-get install python3-pyqt5  # PyQt5
sudo pip3 install labelme

途中出现了一个错误:

Traceback (most recent call last):
File “/usr/bin/pip3”, line 9, in
from pip import main

我的解决方法是用 sudo gedit修改了 user/bin/pip3的内容。

#  原来的内容

from pip import main
if __name__ == '__main__':
    sys.exit(main())
#  修改为

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

测试

安装好之后转入我们的工作空间,(cd examples/tutorial),然后在终端运行 labelme 打开GUI

这里运行GUIde方法有多种

labelme     # just open gui
labelme apc2016_obj3.jpg     # specify image file
labelme apc2016_obj3.jpg -O apc2016_obj3.json    # close window after the save
labelme apc2016_obj3.jpg --nodata     # not include image data but relative image path in JSON file
labelme apc2016_obj3.jpg \
  --labels highland_6539_self_stick_notes,mead_index_cards,kong_air_dog_squeakair_tennis_ball     # specify label list

如果有兴趣的话,可以对这几种方法都尝试一下。

下面就是按照教程上的方法进行操作,

首先我们在工作空间下使用

labelme apc2016_obj3.jpg -O apc2016_obj3.json

来打开我们要处理的图像,PS:没有必要一定按照作者的命名方式给自己的图像命名。

之后,选择左侧的“create polygons”来对我们的目标区域进行框选(我要做一个语义分割的数据集,所以我在这里按照图像的语义信息为图像进行分类),框选的结果如下。

完成这步之后就可以保存了(左侧SAVE),之后在我们的工作空间中会出现一个json文件,大家有兴趣可以点开来看一下。

可视化

我们可以快速的对这个.json文件做一下可视化操作

labelme_draw_json apc2016_obj3.json

结果如下

label data的获取

到这里,我们便已经得到了json文件,但是我们的目的是要得到label data,接下来我们执行转换操作

labelme_json_to_dataset apc2016_obj3.json -o apc2016_obj3_json

这样一来,我们便从json中生成了如下的四个标准文件(standard files)

这是教程上的说法,但是我发现在我实际的操作中生成了一个  info.yaml  文件。

语义分割数据集的制作

好了,经过上面的一系列操作,我们已经得到了分割好的图像,如果对语义分割有一些了解,就会知道这之后还有一步,就是为图像中相同语义的物体标注上相同的颜色。(譬如将头部标记为红色,胳膊是蓝色等等。。。)

https://github.com/wkentaro/labelme/tree/master/examples/semantic_segmentation   这是作者给的案例。

下面的这些是我自己的理解:

作者案例中的代码只有这么一句

labelme data_annotated --labels labels.txt --nodata

这当中的data_annotated是一个文件夹,存放的是jpg文件和相应的json文件;labels.txt中写的是所有的类标记。

相应的,我也做了我自己的一个库用来实验。(名字是我瞎起的,哈哈)

然后在终端运行

labelme toto2 --labels labels.txt --nodata

结果如下:

选中保罗乔治的body部分,右击鼠标,选择 edit label,选中你要更改的label,OK了。

body 部分已经更改为了sofa 部分

这样我们就可以将分割的图像与自定义的标签做到一一对应了。

呃。。。。这部分是不是有些多余了,明明可以在标注的时候就全部做好的。。。。。。就先这样吧,具体的颜色如何修改,我也没有在作者的介绍中找到,如果哪位朋友找到了可以给我留言分享一下,在这里先谢谢啦!

猜你喜欢

转载自blog.csdn.net/Pierce_KK/article/details/86519050
今日推荐