用ace2p这个模型哪里修改分割出来的部位的颜色
收藏
请问 用ace2p这个模型哪里修改分割出来的部位的颜色 比如脖子我要改成蓝色 头发我要改成棕色 现在脖子和背景色都是黑色不好分辨
0
收藏
请登录后评论
我刚好今天用到这个,研究结果:
源码在modules/image/semantic_segmentation/ace2p/module.py中
进行解析的核心方法在PaddleHub/modules/image/semantic_segmentation/ace2p /processor.py中postprocess()方法
postprocess方法最后一个参数palette指明各个部位的颜色数值,该参数默认是在实例化ACE2P类的调用的processor.py的get_palette方法
方法入参num_cls是读取的label_list.txt中行的个数,也就是为每行数据构建一个颜色值,返回。 get_palette方法源码:
def get_palette(num_cls):
"""
Returns the color map for visualizing the segmentation mask.
Args:
num_cls: Number of classes
Returns:
The color map
"""
n = num_cls
palette = [0] * (n * 3)
for j in range(0, n):
lab = j
palette[j * 3 + 0] = 0
palette[j * 3 + 1] = 0
palette[j * 3 + 2] = 0
i = 0
while lab:
palette[j * 3 + 0] |= (((lab >> 0) & 1) << (7 - i))
palette[j * 3 + 1] |= (((lab >> 1) & 1) << (7 - i))
palette[j * 3 + 2] |= (((lab >> 2) & 1) << (7 - i))
i += 1
lab >>= 3
return palette
modules/image/semantic_segmentation/ace2p/label_list.txt原始内容:
background
Hat
Hair
Glove
Sunglasses
UpperClothes
Dress
Coat
Socks
Pants
Jumpsuits
Scarf
Skirt
Face
Left-arm
Right-arm
Left-leg
Right-leg
Left-shoe
Right-shoe
所以,替换颜色的方法就是替换module.palette的值即可。
另外我发现他这个模型貌似没有处理脖子。。。