美文网首页
运用paddlepaddle hub 对电商抠图的学习

运用paddlepaddle hub 对电商抠图的学习

作者: whong736 | 来源:发表于2020-04-03 11:33 被阅读0次

对于百度的Paddlepaddle深度学习框架的关注已经有一段时间,未来是希望能运用深度学习抠图和合成技术为跨境电商提供有价值的服务,今天刚好可以用傻瓜化的方式来测试一下抠图和合成的效果,对未来的生产应用,做一下技术可行性的探索。

最开始的图片:

找到需要抠图的图片:


待抠图人像

找到背景图片:


背景图片

图片合成的最终效果:

合成效果

项目代码地址:

https://aistudio.baidu.com/aistudio/projectdetail/370800

下面是执行的代码和步骤:

1.先安装相关的依赖包

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

2.上传或拷贝需要抠图的图片和背景图片放到对应的文件夹中,并通过代码加载需要抠图的图片,进行展示。


# 待预测图片
test_img_path = ["./girl.jpg"]


import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 

img = mpimg.imread(test_img_path[0]) 

# 展示待预测图片
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()
image.png

二、 加载预训练模型

通过加载PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)实现一键抠图

import paddlehub as hub

module = hub.Module(name="deeplabv3p_xception65_humanseg")

input_dict = {"image": test_img_path}

# execute predict and print the result
results = module.segmentation(data=input_dict)
for result in results:
    print(result)

# 预测结果展示
test_img_path = "./humanseg_output/girl.png"
img = mpimg.imread(test_img_path)
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()

三、图像合成

将抠出的人物图片合成在想要的背景图片当中。

from PIL import Image
import numpy as np

def blend_images(fore_image, base_image):
    """
    将抠出的人物图像换背景
    fore_image: 前景图片,抠出的人物图片
    base_image: 背景图片
    """
    # 读入图片
    base_image = Image.open(base_image).convert('RGB')
    fore_image = Image.open(fore_image).resize(base_image.size)

    # 图片加权合成
    scope_map = np.array(fore_image)[:,:,-1] / 255
    scope_map = scope_map[:,:,np.newaxis]
    scope_map = np.repeat(scope_map, repeats=3, axis=2)
    res_image = np.multiply(scope_map, np.array(fore_image)[:,:,:3]) + np.multiply((1-scope_map), np.array(base_image))
    
    #保存图片
    res_image = Image.fromarray(np.uint8(res_image))
    res_image.save("blend_res_img2.jpg")

    
blend_images('./humanseg_output/girl.png', 'bg.jpg')

# 展示合成图片
plt.figure(figsize=(10,10))
img = mpimg.imread("./blend_res_img.jpg")
plt.imshow(img) 
plt.axis('off') 
plt.show()


image.png

项目遇到的问题:

1.记载的模型对图片进行了一定的限制,需要抠图的图片,只能是给他们定义好的 512 * 341 ,上传了一个其他尺寸的时候,报错了。 未来在真正运用上需要自己来定义这个尺寸。

2.模型目前只支持人像抠图,未来需要自己训练支持不同商品的模型,进行抠图和识别。

相关文章

  • 运用paddlepaddle hub 对电商抠图的学习

    对于百度的Paddlepaddle深度学习框架的关注已经有一段时间,未来是希望能运用深度学习抠图和合成技术为跨境电...

  • 八月计划

    一、配合电商,熟悉店铺装修和电商运营,二、熟悉CAD制做平面图,三、学习3DMX,掌握基本运用,四、熟练五十音图。

  • 七月学习工作计划

    一、配合电商,熟悉店铺装修和电商运营,二、熟悉CAD制做平面图,三、学习3DMX,掌握基本运用,四、熟练五十音图。

  • 高手出品!10条让轮播图转化率更高的设计原则

    一、实际运用中的轮播图 在美国一份针对50家顶级零售电商网站的统计中,发现轮播图被广泛运用于电商网站:PC端52%...

  • 电子商务培训

    昨天,我大电商协会的第二次技术培训,真是干货满满,技术部的大大癸生为我们讲了如何运用四种方法抠图,讲的超级仔细。 ...

  • 电商设计

    一、电商设计三要素: 产品主图1、高清大图,抠图要干净2、可加上辅助元素 广告文案1、主标题:最大,对比最强,最突...

  • PS摄影后期之人像摄影(基础篇)蒙版抠图

    抠图的方法千千万,今天学习的是蒙版抠图。抠图可以使用钢笔去一点一点的抠图,也可以使用快速选择工具。但是要么太慢,要...

  • PS海报学习第三课——抠图

    这节课学习抠图,我们跟着李涛老师的抠图课程进行学习,课程链接:https://www.bilibili.com/v...

  • ps常见七种抠图方法,非常好用又高效

    PS软件可以抠图的工具有很多,针对不同的图可以采用不同的抠图方法。今天分享这七种抠图方法,对于学习PS的新手来说,...

  • 《认识商业》读书笔记

    在我学习电子商务之前,我对电商的认知很少,也就知道淘宝京东属于电商的范畴。但是,老师带领我们认识了电商,随后...

网友评论

      本文标题:运用paddlepaddle hub 对电商抠图的学习

      本文链接:https://www.haomeiwen.com/subject/jgxhphtx.html