欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色

程序员文章站 2022-05-27 16:09:12
...

ubuntu16.04 Anaconda 环境
labelme 安装与使用

不同label指定不同颜色

1. 打标签

labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色

2. 修改 json_to_dataset.py 这个文件在解析.json文件的时候会用到

我的路径为:/home/sj/anaconda3/envs/labelme/lib/python3.6/site-packages/labelme/cli
也有可能在.conda文件夹里
找不到可以搜一下文件名

	# 添加指定标签对应的label_value
    label_name_to_value = {'_background_': 0, 'eye' : 1, 'mouth' : 2}

    # 下面注释掉
    # for shape in sorted(data['shapes'], key=lambda x: x['label']):
    #     label_name = shape['label']
    #     if label_name in label_name_to_value:
    #         label_value = label_name_to_value[label_name]
    #     else:
    #         label_value = len(label_name_to_value)
    #         label_name_to_value[label_name] = label_value

3. 修改label.py 文件

路径  /home/sj/anaconda3/envs/labelme/lib/python3.6/site-packages/imgviz
for i in range(0, n_label):
        id = i
        r, g, b = 0, 0, 0
        for j in range(0, 8):
            r = np.bitwise_or(r, (bitget(id, 0) << 7 - j))
            g = np.bitwise_or(g, (bitget(id, 1) << 7 - j))
            b = np.bitwise_or(b, (bitget(id, 2) << 7 - j))
            id = id >> 3

        cmap[i, 0] = r
        cmap[i, 1] = g
        cmap[i, 2] = b

    #  自己加的colormap
    cmap[1, :] = [0,255,0]  # eye
    cmap[2, :] = [255,0,0]  # mouth


    if value is not None:
        hsv = color_module.rgb2hsv(cmap.reshape(1, -1, 3))
        if isinstance(value, float):
            hsv[:, 1:, 2] = hsv[:, 1:, 2].astype(float) * value
        else:
            assert isinstance(value, int)
            hsv[:, 1:, 2] = value
        cmap = color_module.hsv2rgb(hsv).reshape(-1, 3)
    return cmap

不同版本的labelme指定cmap的文件好像不太一样,有的是在draw.py文件里
cmap的值要跟刚才的label_name_to_value对应

4. labelme_json_to_dataset 解析json文件, 生成label.png

labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色
labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色

相关标签: label