-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PaddleHub/hub_module/modules/image/semantic_segmentation/deeplabv3p_xception65_humanseg内存溢出问题 #603
Comments
你好! |
你说的很对,分批传入可以解决问题的。 |
我的临时办法:
|
感谢反馈!batch_size的意义是运行program一次处理的样本数量,这个预测接口 |
这个里面,分割结果包含图片二进制数据,特别大。
…---原始邮件---
发件人: "Steffy-zxf"<[email protected]>
发送时间: 2020年5月18日(周一) 下午4:08
收件人: "PaddlePaddle/PaddleHub"<[email protected]>;
抄送: "Author"<[email protected]>;"livingbody"<[email protected]>;
主题: Re: [PaddlePaddle/PaddleHub] PaddleHub/hub_module/modules/image/semantic_segmentation/deeplabv3p_xception65_humanseg内存溢出问题 (#603)
但是,这个segmentation对输入都做了batch size了,感觉分批传入,batch size基本就没啥用了。或者返回的话,直接只返回保存的image地址,或许会好点。
感谢反馈!batch_size的意义是运行program一次处理的样本数量,这个预测接口segmentation 返回的是所有样本预测结果(分割结果以及分割图片保存路径)。
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
def segmentation(images=None, paths=None, batch_size=1, use_gpu=False, visualization=False, output_dir='humanseg_output')
预测API,用于人像分割。
参数
images (list[numpy.ndarray]): 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
paths (list[str]): 图片的路径;
batch_size (int): batch 的大小;
use_gpu (bool): 是否使用 GPU;
visualization (bool): 是否将识别结果保存为图片文件;
output_dir (str): 图片的保存路径。
返回
res (list[dict]): 识别结果的列表,列表中每一个元素为 dict,关键字有 'save_path', 'data',对应的取值为:
save_path (str, optional): 可视化图片的保存路径(仅当visualization=True时存在);
data (numpy.ndarray): 人像分割结果,仅包含Alpha通道,取值为0-255 (0为全透明,255为不透明),也即取值越大的像素点越可能为人体,取值越小的像素点越可能为背景
可以看出,输入很小,只是图片名,
输出很大,输出data为抠图后的alpha通道分割结果,这个特别大,作为返回值一起返回了。如果存下来也和输入一样返回文件名就好了。
|
追加一问,每次都要运行这个模块吗 |
环境:截止2020年5月17日
模块:paddlehub人像分割模块
PaddleHub/hub_module/modules/image/semantic_segmentation/deeplabv3p_xception65_humanseg
错误现象:数据量很大的情况下内存溢出
错误原因分析:该模块进行分割时,能够设置batch size ,使用少量多次的办法处理图像,但是返回值是一次性返回所有数据,包括处理后的图像numpy二进制数据,这个量特别大,所以很容易就内存溢出了。
代码看了,问题就在那。
The text was updated successfully, but these errors were encountered: