第一次使用paddlepaddle的心得

最近做了一个项目,需求是用户上传一张人物图片,一张背景图,将人物扣下来换一下背景图
听着十分简单的功能,(因为之前做过计算机视觉相关的功能)就一口答应了

功能开始做的时候脑子里大致的流程是
1.用户上传  人物图 背景图两个参数
2.使用opencv抠人物,其他区域设置为白色或透明
3.使用opencv将扣下来的图重绘至背景图
但是到第二部卡住了,因为我网上搜了一大堆资料发现,opencv抠图需要人为框出人物点位
想想也是,用ps都需要用笔框出人物边缘

后面网上搜了一大堆发现python竟然可以轻而易举的实现
gitee上发现一个开源ai模型的开源社区
飞桨PaddlePaddle-源于产业实践的开源深度学习平台
里面有好多类似的实战,以前也看见过一直不知道是干嘛的,长知识了

废话不多说,上干货


1.安装python并配置环境变量

官网下载

Python Release Python 3.8.0 | Python.org

根据自己的操作系统下载,觉得慢的就科学上网

下面一步一步按着点就行

安装好直接关掉就行

配置环境变量

刚刚的安装地址

配置好后一个一个的点击 确定 !!!

测试

win+r
cmd 呼出 命令提示符

按照我下面输入

python

python --version




2.安装paddlepaddle

确认 pip 的版本是否满足要求,要求 pip 版本为 20.2.2 或更高版本

python -m ensurepip

或者

python -m pip --version

不满足,直接运行

python -m pip install --upgrade pip

安装paddlepaddle

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

3.安装paddlehub

pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple

4.安装xception65

hub install deeplabv3p_xception65_humanseg

5.执行抠图测试
 

cmd命令提示符输入

hub run deeplabv3p_xception65_humanseg --input_path "1.jpg" --visualization True

1.jpg记得换成想要抠的图片的地址

若成功返回如下信息:

[{'save_path': 'humanseg_output\\base.png', 'data': array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]], dtype=float32)}]

humanseg_output\\base.png
输出的图片地址为:执行抠图命令的盘符地地址\\humanseg_output\\base.png


由于我是java开发,python实在写不来
最终在java中使用,命令行执行获取资源
用的huool工具 
命令行工具-RuntimeUtil | Hutool

6.报错

如果在第四步一直报错:
Error: Can not import paddle core while this file exists: E:\prod_environment\python3.8\lib\site-packages\paddle\base\libpaddle.pyd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\prod_environment\python3.8\lib\site-packages\paddle\__init__.py", line 28, in <module>
    from .base import core  # noqa: F401
  File "E:\prod_environment\python3.8\lib\site-packages\paddle\base\__init__.py", line 36, in <module>
    from . import core
  File "E:\prod_environment\python3.8\lib\site-packages\paddle\base\core.py", line 380, in <module>
    raise e
  File "E:\prod_environment\python3.8\lib\site-packages\paddle\base\core.py", line 268, in <module>
    from . import libpaddle
ImportError: DLL load failed while importing libpaddle: 找不到指定的模块。

说明当前电脑cpu不支持avx指令集,官网也声明了新版不再支持noavx 

如果是旧版可以试试

paddle 安装报错无法加载核心,由于 libpddle.pyd 问题_libpaddle.pyd-优快云博客

以上就是本次功能的实现方案,其实就是飞桨提供的模型在帮我实现类似ps框出人物边缘的工作,我看到这个项目的里面还是opencv,又浪费了我一天时间,🥹
我这只是为了实现需求的下下之策,有需要的java领域,有此需求无法解决的可以试试我这个方案
python ai人工智能领域的大佬轻喷
java领域的大佬可以评论区告诉小弟有没有其他实现方式

7.效果展示


下面是我的实现效果(对不起了陶喆老师)

原图

背景

抠图后

合并


文章引用:

开始使用_飞桨-源于产业实践的开源深度学习平台

Windows上安装 Python 环境并配置环境变量 (超详细教程)_windows配置python环境变量-优快云博客【paddlepaddle】一键人物抠图_paddlepaddle 抠图命令-优快云博客

paddle 安装报错无法加载核心,由于 libpddle.pyd 问题_libpaddle.pyd-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值