文章目录

  • PaddleHub创意赛:AI人像抠图及图像合成
  • 一、安装环境(这里面有几个坑)
  • 二、接下来就``开始P图
    • 1. 引入包
    • 2. 加载预训练模型(挺厉害的不得不说)
    • 3. 图像合成

PaddleHub创意赛:AI人像抠图及图像合成

本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)和python图像处理库opencv、PIL等完成。在最新作中,作者通过encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, 其骨干网络使用了Xception模型,提高了语义分割的健壮性和运行速率,在 PASCAL VOC 2012 dataset取得新的state-of-art performance,该PaddleHub Module使用百度自建数据集进行训练,可用于人像分割,支持任意大小的图片输入。在完成一键抠图之后,通过图像合成,实现扣图比赛任务。

PaddleHub 是基于 PaddlePaddle 开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作,目前的预训练模型涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。

PaddleHub官网:PaddleHub官网

PaddleHub项目地址:PaddleHub github

更多PaddleHub预训练模型应用可见:教程合集课程

NOTE: 如果您在本地运行该项目示例,需要首先安装PaddleHub。如果您在线运行,需要首先fork该项目示例。之后按照该示例操作即可。

一、安装环境(这里面有几个坑)

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

虽然说这样就可以了,但是你会发现,你打开本地运行环境以后会出错???
以下为出错的内容

JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

既然如此我们就进源码看一下到底怎么回事

最主要就是这个东西出了问题,在Github上的issue里面说了,在最新版里面已经解决,但其实在windows里面,仍然存在该类问题
然后分析代码后我得知,原来在C盘当中,缺失了config.json文件,然后把这个放到这个根目录的文件里面去.paddle/conf/config.json,如果没有就自己建立一个

{
"server_url": [
"http://paddlepaddle.org.cn/paddlehub"
],
"resource_storage_server_url": "https://bj.bcebos.com/paddlehub-data/",
"debug": false,
"log_level": "DEBUG"
}

然后还有一个坑就是,虚拟环境里面运行可能会出错,所以最好在Pycharm真实环境运行

二、接下来就``开始P图

1. 引入包

# 测试图片路径和输出路径
test_path = 'image/test/'
output_path = 'image/out/'# 待预测图片
test_img_path = ["test.jpg"]
test_img_path = [test_path + img for img in test_img_path]
img = mpimg.imread(test_img_path[0]) # 展示待预测图片
plt.figure(figsize=(10,10))
plt.imshow(img)
plt.axis('off')
plt.show()

这是效果图!!

2. 加载预训练模型(挺厉害的不得不说)

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

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)# 预测结果展示
out_img_path = 'humanseg_output/' + os.path.basename(test_img_path[0]).split('.')[0] + '.png'
img = mpimg.imread(out_img_path)
plt.figure(figsize=(10,10))
plt.imshow(img)
plt.axis('off')
plt.show()

测试结果还挺不错的!!!但是在处理其他图片还有瑕疵,比如手里拿了手机,可能会给你P调

3. 图像合成

# 合成函数
def blend_images(fore_image, base_image, output_path):"""将抠出的人物图像换背景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] / 255scope_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(output_path)return res_imageoutput_path_img = output_path + 'blend_res_img.jpg'blend_images('humanseg_output/test.png', 'image/test/bg.jpg', output_path_img)# 展示合成图片plt.figure(figsize=(10,10))img = mpimg.imread(output_path_img)plt.imshow(img) plt.axis('off') plt.show()

结束了,就当一次娱乐!!!

(记录)PaddleHub创意赛:AI人像抠图及图像合成相关推荐

  1. Paddlehub创意赛---给人像增加背景

    Paddlehub创意赛---给人像增加背景 Paddlehub创意赛 首先配置环境 导入相关的库 展示原图 使用Paddlehub进行抠图操作 关键点检测 合并背景 Paddlehub创意赛总结 P ...

  2. PaddleHub人像分割模型:AI人像抠图及图像合成

    点击上方"AI搞事情"关注我们 本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_h ...

  3. AI人像抠图及图像合成:让你一键环游世界

    本程序基于百度飞浆 PaddlePaddle 平台完成. 该程序通过DeepLabv3+模型完成一键抠图. encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, ...

  4. python人像精细分割_PaddleHub人像分割模型:AI人像抠图及图像合成

    本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)和python图像处理库opencv ...

  5. 百度AIStudio之PaddleHub创意赛:你的名字,你的Face

    百度AIStudio之PaddleHub创意赛:你的名字,你的Face 使用<你的名字>动漫中的图片拼出你的人脸.本项目为 PaddleHub:人脸检测主题创意赛.实现自动检测人脸,然后实 ...

  6. 蓝松视觉科技 AI人像抠图说明

    AI人像抠图的API 文章目录 AI人像抠图的API 1. 初始化 2.1 抠图API (nv21输入格式) 2.2 抠图API (rgba输入格式) 3. 释放抠图对象 4. 其他API 赠送的解释 ...

  7. 蓝松AI人像抠图的接口说明

    AI人像抠图的API 文章目录 AI人像抠图的API 1. 初始化 2.1 抠图API (nv21输入格式) 2.2 抠图API (rgba输入格式) 3. 释放抠图对象 4. 其他API 赠送的解释 ...

  8. paddlehub创意赛《王者四大美女--红昭愿》

    楔子 西施沉鱼自苎萝 当为复越首功臣 昭君落雁出边塞 一平烽火即五旬 貂蝉月下邀对酌 离间巧计除奸恶 玉环香消马嵬坡 舍身为国安大唐----<王者四大美女–红昭愿> 目的 将b站很火的4小 ...

  9. AI人像抠图及视频合成:让你体验复仇者联盟的终局之战

    本程序基于百度飞浆 PaddlePaddle 平台完成. 该程序通过DeepLabv3+模型完成一键抠图. encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, ...

最新文章

  1. 背景减除(Background Segment)
  2. ST表 (模板) 洛谷3865
  3. 4、大数字运算(BigInteger类和BigDecimal类)
  4. Angular变化检测机制:改善的脏检查
  5. python保存的图片不完整
  6. 吉林大学计算机专业宿舍研究生,吉林大学计算机系的研究生宿舍怎么样?我想考那的..._在职考研_帮考网...
  7. Selenium Firefox 官方Webdriver -- Geckodriver 下载地址
  8. java day34【ECMAScript 、BOM 、DOM 、事件】
  9. 前端基础-html 介绍和head标签 ( 1 )
  10. 极光短信验证码JAVA_Android如何集成极光短信验证
  11. 手动清理Windows系统目录
  12. php 网上支付之易宝支付
  13. iphone 文件夹连接服务器 百度云,iPhone与电脑共享文件夹
  14. 爬虫 微博评论记录_记录或评论?
  15. python translate 中文_Python translate()方法
  16. java中13%(-3)_Java13版本特性【一文了解】
  17. 邓白氏码申请以及企业级账号申请流程
  18. 【数据分析与挖掘】基于Apriori算法的中医证型的关联规则挖掘(有数据集和代码)
  19. OCR文本识别系统项目文档——欢迎探讨交流
  20. 从零开始完成YOLOv5目标识别(七)一种完成目标计数的简单方法

热门文章

  1. 面向移动支付过程中网络安全的研究与分析
  2. git如何清空历史commit?
  3. 深度解读,In-consistent, Crash-consistent, Application-consistent
  4. 软件生命周期之需求分析和设计
  5. 如何解决电脑弹窗广告?
  6. php生成zip压缩包、thinkphp压缩和打包下载实例
  7. 《Java特种兵》5.2 线程安全(一)
  8. 陶喆小16岁未婚妻曝光 皮肤白外型亮丽
  9. android 图片显示崩溃
  10. win7旗舰版安装Windows Virtual PC虚拟机