闲来无事,用几行Python代码实现批量抠图,运行时报错 “No module named ‘paddlehub’”,pip install 后,又出现其他一连串错误,过程记录如下:
这是Python抠图代码:
import os,paddlehub as hub
huseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型
path = 'E:/pycharm_code/funny/images/' # 在这里设置文件目录
files = [path + i for i in os.listdir(path)] # 获取文件列表
results = huseg.segmentation(visualization=True,data={'image': files}) # 抠图
Ctrl+shift+F10运行代码,报错如下:
ModuleNotFoundError: No module named 'paddlehub’
打开cmd:
C:\Users\lfyang>pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装了一大堆东西,完成后回到pycharm,再次运行python文件:
再次报错:
ModuleNotFoundError: No module named 'paddle’
回到cmd:
C:\Users\lfyang>pip install paddle -i https://pypi.tuna.tsinghua.edu.cn/simple
发现代码红了一片,有错误,提示:
ModuleNotFoundError: No module named 'common’
安装common模块:
C:\Users\lfyang>pip install common -i https://pypi.tuna.tsinghua.edu.cn/simple
有错误,提示:
ModuleNotFoundError: No module named 'dual’
安装dual模块:
C:\Users\lfyang>pip install dual -i https://pypi.tuna.tsinghua.edu.cn/simple
这次没有提示:
重新安装paddle:
pip install paddle -i https://pypi.tuna.tsinghua.edu.cn/simple
这次提示需要安装这些模块,按照提示依次安装:
import common, dual, tight, data, prox
ModuleNotFoundError: No module named 'tight’
安装tight模块:
pip install tight -i https://pypi.tuna.tsinghua.edu.cn/simple
安装data模块:
pip install data -i https://pypi.tuna.tsinghua.edu.cn/simple
安装prox模块:
pip install prox -i https://pypi.tuna.tsinghua.edu.cn/simple
安装prox的时候好像提示了一个操作超时的错误,我再次执行了一遍安装prox模块,第二次没有出现错误
至此再次运行
pip install paddle -i https://pypi.tuna.tsinghua.edu.cn/simple
成功安装无报错。
回到pycharm,再次运行python代码:
又……提示:
import paddle.fluid as fluid
ModuleNotFoundError: No module named 'paddle.fluid’
后面安装不太顺利,查阅资料发现安装paddle这个模块需要安装的是paddlepaddle模块:
于是回到cmd:
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
这里提示我的opencv_python版本为4.4.0.46,而paddlepaddle需要opencv_python版本<=4.2.0.32:
于是,重新安装了符合要求的版本:
pip install opencv_contrib-python==4.2.0.32
接下来,抠图!
回到pycharm,编写python文件,代码如下:
import os,paddlehub as hub
huseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型
path = 'E:/pycharm_code/funny/images/' # 在这里设置文件目录
files = [path + i for i in os.listdir(path)] # 获取文件列表
results = huseg.segmentation(visualization=True,data={'image': files}) # 抠图实现
终端依次输入:
Ctrl+shift+F10运行代码。
无错误。
找到文件目录E:\pycharm_code\funny,发现生成了一个目录humanseg_output,点开会有.png文件,即是抠图后的文件。
效果图如下:
至此,实验完成!