使用Paddlehub进行图像抠人的总结

文章目录

  • 前言
  • 一、工作背景
  • 二、工作步骤
    • 1.安装相应的依赖包
    • 2.验证安装成功
    • 3.完善python代码
  • 总结


前言

总结一下使用Paddlehub进行人像抠图的方法。


一、工作背景

App中需要使用人体分析和人像抠图,这里对抠图过程做一个总结,方便今后查找,也方便有同样需要的小伙伴。

二、工作步骤

1.安装相应的依赖包

注意由于Paddle在我写这篇总结的时候还不支持python3.8以上,所以有较高版本的小伙伴需要将python降级,太高的版本不要轻易装,我也是掉坑里了,无奈降级到python3.8。如何删除已有的python
安装步骤可以查看飞桨官方文档,链接地址:飞桨官方文档
按照官方文档检查python和pip的版本,pip版本不够的话升级pip。
python2

python -m pip install --upgrade pip

python3

python3 -m pip install --upgrade pip

由于我使用的是mac下的python3,官方的命令行指令如下:

官方提供的命令行方法:

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

2.验证安装成功

安装完成后您可以使用 python 或 python3 进入python解释器,输入import paddle ,再输入 paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully! Let’s start deep learning with PaddlePaddle now.,说明您已成功安装。

命令行输入:

import paddle
paddle.utils.run_check()

3.完善python代码

除了安装paddle库,还要安装cv2,paddlehub以及matplotlib库。安装很简单pip3 install 加上库名即可,cv2的库名是opencv-python。
依赖安装完成后,打开PyCharm完善抠图代码:

抠图方法的示例代码如下:

def paddleHubGetHuman(count):
    import os
    import cv2
    import numpy as np
    import paddle
    import paddlehub as hub
    import matplotlib.image as mpimg
    import matplotlib.pyplot as plt

    print(paddle.__version__)
    print(hub.__version__)

    #加载模型
    humanseg = hub.Module(name = "deeplabv3p_xception65_humanseg")
    image = '/Users/longxiang/Public/Unity3D/PaiPaiLu/testMaskAI/temp/%d.png'%count
    # 展示待预测图片,可以关闭减少干扰
    # plt.figure(figsize=(10,10))
    # plt.imshow(image)
    # plt.axis('off')
    # plt.show()

    # execute predict and print the result
    results = humanseg.segmentation(images=[cv2.imread(image)],visualization=True)
    print(results[0]['save_path'])

    # 预测结果展示
    test_img_path = results[0]['save_path']
    img = mpimg.imread(test_img_path)
    blend_image(test_img_path,image)
    # plt.imshow(img)
    # plt.axis('off')
    # plt.show()
    os.remove(test_img_path)

总结

以上是使用paddle的抠图api进行抠图操作的方法总结,希望对大家有所帮助。

你可能感兴趣的:(python,opencv,机器学习)