labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色
程序员文章站
2022-05-27 16:09:12
...
ubuntu16.04 Anaconda 环境
labelme 安装与使用
不同label指定不同颜色
1. 打标签
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
上一篇: java 获取指定天数之前的日期