首页 Paddle框架 帖子详情
用ace2p这个模型哪里修改分割出来的部位的颜色
收藏
快速回复
Paddle框架 问答学习资料 428 2
用ace2p这个模型哪里修改分割出来的部位的颜色
收藏
快速回复
Paddle框架 问答学习资料 428 2

请问 用ace2p这个模型哪里修改分割出来的部位的颜色  比如脖子我要改成蓝色  头发我要改成棕色  现在脖子和背景色都是黑色不好分辨

0
收藏
回复
全部评论(2)
时间顺序
嘉木隐香
#2 回复于2023-10

我刚好今天用到这个,研究结果:

源码在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的值即可。

0
回复
嘉木隐香
#3 回复于2023-10

另外我发现他这个模型貌似没有处理脖子。。。

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户