0. 版权声明

本博客参考Bubbliiiing博主博文,仅供学习交流,如有侵权,请联系删除!

1. 制作工具Labelme

这里要用到Labelme工具。
在cmd终端运行

pip install labelme

即可安装!

使用labelme进行语义分割数据集标注_人工智能

安装完成后直接使用:

使用labelme进行语义分割数据集标注_人工智能_02

运行结果如下:

使用labelme进行语义分割数据集标注_语义分割_03

2. Labelme的使用

点击画面上的open就可以打开图片。

使用labelme进行语义分割数据集标注_语义分割_04

点击create polygons就可以开始描点了。

使用labelme进行语义分割数据集标注_人工智能_05

比如我们对猫描点。

使用labelme进行语义分割数据集标注_语义分割_06

点击Save就可以保存了!

然后新建一个cmd窗口。

cd到json文件所放的地方。

使用labelme进行语义分割数据集标注_语义分割_07

运行如下代码:

labelme_json_to_dataset  <文件名>.json

即:

使用labelme进行语义分割数据集标注_语义分割_08

得到如下文件:

使用labelme进行语义分割数据集标注_人工智能_09

其中label.png就是所得标签。

3. 标签文件内容

利用如下代码查看label.png的格式。

img = Image.open("猫_json/label.png")
img = np.array(img)
print(img.shape)

输出为:

(1080, 1920)

其实现在这个png文件已经是单通道的了,一个通道8个字节。对于本例而言,里面最后一维度只有两个值,背景为0,猫身上的像素点为1。

我之前在对语义分割训练内容进行讲解的时候说到过,标签文件里面RGB三个通道的值都是它的类,这个标签与之同理,只是从三个通道数减少到了一个通道数,对于这个通道数仅为1的标签文件而言,其实直接获取它单个像素点上的值就是它的类