前言
由于需要批量抠图,原本是想用MODNet的,可惜最新的模型官方不开源,旧模型扣的人物边缘有白边。最后发现了PP飞桨。
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件、丰富的工具组件于一体,是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台。
本程序封装自PP飞桨的PaddleSeg(飞桨高性能图像分割开发套件,端到端完成从训练到部署的全流程图像分割应用。)
工具内置了两个模型PP-Matting和PP-MattingV2
以下说明节选自官方文档:
PP-Matting是PaddleSeg自研的高精度抠图模型,通过引导流设计实现语义引导下高分辨率图像抠图。追求更高精度,推荐使用该模型。 且该模型提供了512和1024两个分辨率级别的预训练模型。
PP-MattingV2是PaddleSeg自研的轻量级抠图SOTA模型,通过双层金字塔池化及空间注意力提取高级语义信息,并利用多级特征融合机制兼顾语义和细节的预测。 对比MODNet模型推理速度提升44.6%, 误差平均相对减小17.91%。追求更高速度,推荐使用该模型。
图片预览
使用说明
1、工具应解压到非中文路径,含中文的路径必出错。
2、完整解压后,运行main.exe。将单个/多个图片拖入工具,等待提示完成后,在运行目录下的out目录内可找到扣好的图片。
3、如果需要alpha图,可勾选输出-保留蒙版
注:
1、模型菜单内,效率优先为PP-MattingV2(默认),精度优先为PP-Matting,可根据具体需求选择。
2、如果使用精度优先,等待时间会比较长
3、工具使用CPU版的PaddlePaddle,非GPU版本
前排提示
目前已发现的报错提示有:
1、ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 1 and the array at index 1 has size
目前无解
2、UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xe6’ in position 63: illegal multibyte sequence
使用了中文目录
3、ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败。 或 ImportError: DLL load failed with error code 3221225501
可能与CPU不支持某些指令集有关,也可能和VC运行库不全有关。具体原因未知
4、OSError: Invalid enum backend type `64`.
查询结果:paddle从2.3开始在phi模块里用到了__lzcnt64指令 这个指令只有在支持BMI的CPU上才有,不支持BMI的CPU会跑出错误的结果。
不过该问题于两周前已在develop版本中修复,待正式实装后再重新打包
5、 ‘xxxx’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
原本设计是会将路径转换为短路径的,可能系统里没有相关API?把程序换到路径没有空格的地方再试
@逍遥一仙
原文链接:https://www.huabangshou.com/1464.html,转载请注明出处~~~
评论0