(记录)PaddleHub创意赛:AI人像抠图及图像合成
文章目录
- 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人像抠图及图像合成相关推荐
- Paddlehub创意赛---给人像增加背景
Paddlehub创意赛---给人像增加背景 Paddlehub创意赛 首先配置环境 导入相关的库 展示原图 使用Paddlehub进行抠图操作 关键点检测 合并背景 Paddlehub创意赛总结 P ...
- PaddleHub人像分割模型:AI人像抠图及图像合成
点击上方"AI搞事情"关注我们 本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_h ...
- AI人像抠图及图像合成:让你一键环游世界
本程序基于百度飞浆 PaddlePaddle 平台完成. 该程序通过DeepLabv3+模型完成一键抠图. encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, ...
- python人像精细分割_PaddleHub人像分割模型:AI人像抠图及图像合成
本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)和python图像处理库opencv ...
- 百度AIStudio之PaddleHub创意赛:你的名字,你的Face
百度AIStudio之PaddleHub创意赛:你的名字,你的Face 使用<你的名字>动漫中的图片拼出你的人脸.本项目为 PaddleHub:人脸检测主题创意赛.实现自动检测人脸,然后实 ...
- 蓝松视觉科技 AI人像抠图说明
AI人像抠图的API 文章目录 AI人像抠图的API 1. 初始化 2.1 抠图API (nv21输入格式) 2.2 抠图API (rgba输入格式) 3. 释放抠图对象 4. 其他API 赠送的解释 ...
- 蓝松AI人像抠图的接口说明
AI人像抠图的API 文章目录 AI人像抠图的API 1. 初始化 2.1 抠图API (nv21输入格式) 2.2 抠图API (rgba输入格式) 3. 释放抠图对象 4. 其他API 赠送的解释 ...
- paddlehub创意赛《王者四大美女--红昭愿》
楔子 西施沉鱼自苎萝 当为复越首功臣 昭君落雁出边塞 一平烽火即五旬 貂蝉月下邀对酌 离间巧计除奸恶 玉环香消马嵬坡 舍身为国安大唐----<王者四大美女–红昭愿> 目的 将b站很火的4小 ...
- AI人像抠图及视频合成:让你体验复仇者联盟的终局之战
本程序基于百度飞浆 PaddlePaddle 平台完成. 该程序通过DeepLabv3+模型完成一键抠图. encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, ...
最新文章
- 背景减除(Background Segment)
- ST表 (模板) 洛谷3865
- 4、大数字运算(BigInteger类和BigDecimal类)
- Angular变化检测机制:改善的脏检查
- python保存的图片不完整
- 吉林大学计算机专业宿舍研究生,吉林大学计算机系的研究生宿舍怎么样?我想考那的..._在职考研_帮考网...
- Selenium Firefox 官方Webdriver -- Geckodriver 下载地址
- java day34【ECMAScript 、BOM 、DOM 、事件】
- 前端基础-html 介绍和head标签 ( 1 )
- 极光短信验证码JAVA_Android如何集成极光短信验证
- 手动清理Windows系统目录
- php 网上支付之易宝支付
- iphone 文件夹连接服务器 百度云,iPhone与电脑共享文件夹
- 爬虫 微博评论记录_记录或评论?
- python translate 中文_Python translate()方法
- java中13%(-3)_Java13版本特性【一文了解】
- 邓白氏码申请以及企业级账号申请流程
- 【数据分析与挖掘】基于Apriori算法的中医证型的关联规则挖掘(有数据集和代码)
- OCR文本识别系统项目文档——欢迎探讨交流
- 从零开始完成YOLOv5目标识别(七)一种完成目标计数的简单方法