利用python进行抠图的一次实践AssertionError: In PaddlePaddle 2.x,

boss有个需求,是希望将某demo公司的所有人员信息头像改为白底。

一开始是想网上找在线抠图处理,付了一季度的费用。到用时才发觉一季度每个月只能提供100张抠图。而我的demo要抠180多张,好气!

难道又要交一笔额外的费用,或者再等一个月?

稍微耐心地搜了下java有啥方案然后再是其它语言,python的5行代码抠图貌似不错,正好在犹豫着后端的第二语言抉择到底是python还是go。

趁此机会就用python练练手。

原始代码。我的python版本是3.8.6。

import os
import paddlehub as hub

humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')
path = 'D:/img/'
files = os.listdir(path)
imgs = []
for i in files:
    imgs.append(path + i)
results = humanseg.segmentation(data={'image': imgs})

首先是报缺少paddlehub模块的错误,网上搜了下 在cmd下执行

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

pip install -i https://mirror.baidu.com/pypi/simple paddlehub

其间我还记得还报了几个缺少module的错误 ,反正就是缺少哪个,百度下再pip install安装就是了(我的python自从安装后就一直放着吃灰缺的模块比较多)

所有的依赖module都安装完后,在cmd执行下这个的安装

hub install deeplabv3p_xception65_humanseg==1.0.0

就可以在cmd执行python 你的代码.py执行抠图操作。

这其间有个印象相对深的错误【JSONDecodeError】,根据这位同学的操作可以 处理

python安装paddlehub时出现JSONDecodeError的解决方法_qq_17219645的博客-CSDN博客_安装paddlehub出现的问题

最后一个问题是

AssertionError: In PaddlePaddle 2.x, we turn on dynamic graph mode by default, and 'load_inference_model()' is only supported in static graph mode. So if you want to use this api, please call 'paddle.enable_static()' before this api to enter static graph mode.

通过增加两行代码解决,最终的代码如下图:

至此,我的抠图能正式跑起来了。将我放在D盘img下的180多张图片都进行了抠图处理。

实际效果嘛,还是差强人意,不知道还有没有啥优化空间,姑且上些差强人意的例图给诸位看官看下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值