AI人像抠图及图像合成:让你一键环游世界
本程序基于百度飞浆 PaddlePaddle 平台完成。
该程序通过DeepLabv3+模型完成一键抠图。
encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, 其骨干网络使用了Xception模型,提高了语义分割的健壮性和运行速率,在 PASCAL VOC 2012 dataset取得新的state-of-art performance,该PaddleHub Module使用百度自建数据集进行训练,可用于人像分割,支持任意大小的图片输入。
在完成一键抠图之后,通过图像合成,实现有趣的应用!
程序实现
首先安装 paddlehub
!pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
然后查看下我要要抠图的目标文件
# 待预测图片
img_name = 'ty.jpg'
test_img_path = ["./"+img_name]
#test_img_path = ["./meditation.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()
通过加载PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)实现一键抠图
import paddlehub as hubmodule = 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/"+img_name.split('.')[0]+'.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 npdef blend_images(fore_image, base_image, img_num):
#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] / 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('./humanseg_output/'+str(img_num)+".jpg")
根据需要运行合成程序
# 合成几张图片
img_num = 4for i in range(img_num):blend_images('./humanseg_output/'+img_name.split('.')[0]+'.png', str(i+1)+'.jpg', i+1)# 展示合成图片
plt.figure(figsize=(10,10))
for i in range(img_num):plt.subplot(2,2,i+1)img = mpimg.imread('./humanseg_output/'+str(i+1)+".jpg")plt.imshow(img) plt.axis('off')
plt.show()
欢迎大家用AI环游世界!
AI人像抠图及图像合成:让你一键环游世界相关推荐
- (记录)PaddleHub创意赛:AI人像抠图及图像合成
文章目录 PaddleHub创意赛:AI人像抠图及图像合成 一.安装环境(这里面有几个坑) 二.接下来就``开始P图 1. 引入包 2. 加载预训练模型(挺厉害的不得不说) 3. 图像合成 Paddl ...
- PaddleHub人像分割模型:AI人像抠图及图像合成
点击上方"AI搞事情"关注我们 本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_h ...
- python人像精细分割_PaddleHub人像分割模型:AI人像抠图及图像合成
本项目根据DeepLabv3+模型一键抠图示例,主要采用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg)和python图像处理库opencv ...
- 蓝松视觉科技 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 赠送的解释 ...
- AI人像抠图及视频合成:让你体验复仇者联盟的终局之战
本程序基于百度飞浆 PaddlePaddle 平台完成. 该程序通过DeepLabv3+模型完成一键抠图. encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, ...
- 蓝松AI人像抠图SDK(无绿幕实时抠图)
- App Inventor:一键人像抠图App
App Inventor:一键人像抠图App 一.功能分析 1.预设一张图片,把图片里的人体勾勒出来,并迁移到另一个图片里.如下图(app里的图像素材来源与网络): 二.知识点分析 1.App Inv ...
- 不惧繁杂背景,视频编辑服务一键实现人像抠图
最近,"你这背景太假了"席卷全网.由于身后风景太优美,被网友质疑背景太假,某主播为了自证,直接把手里的桶扔进了背后的水里.短短几天时间播放量几十亿,引发了全网P图狂潮,网友在短视频 ...
最新文章
- 嘿 Siri,有没有「三天速成深度学习」的课程?
- phpc.sinaapp.com 加密的解密方法
- 深入讲解配置Cisco路由器日志中的速率限制问题(三)
- 第九章:文件系统管理
- java nextintln_Java对正则表达式的支持(二)
- R 语言学习过程全记录 ~
- linux内核常用函数或宏
- axios在IE下的兼容性处理
- 如何建立队列c语言_什么是优先队列
- html判断数组中存在不,js判断数组中是否已存在某个值,indexOf的使用说明
- c语言程序如何生成软件,用c语言编写的程序怎么样生成可执行软件。
- 教务信息管理系统的设计与实现
- 网卡驱动DM9000-基于uboot
- Shiny的架构浅析
- Mycat 读写分离、主从切换、分库分表的操作记录
- 黑苹果引导工具 Clover 配置详解及Clover Configurator使用
- linux mysql 备份 恢复_[转]linux下如何备份与恢复mysql数据库。
- 面向6G网络的太赫兹通信技术研究综述
- oracle数据库系统学习,Oracle数据库学习第二天
- postman登录获取token,接口header中添加token发送请求
热门文章
- javase统计一段文章的某个关键字或词出现了几次
- taobao.trades.sold.increment.get( 淘宝店铺订单交易数据接口,淘宝店铺订单解密提额接口,淘宝店铺订单解密接口)代码对接教程
- java建造者模式--给一个你一看就懂的建造者模式
- 一看就舒心的图片「唯美仙境」
- 数据标注实习报告 一实习基本情况 二实习内容 三实习收获与体会 四不足与努力方向 1500字以上...
- 大片幕后:《移动迷宫》视觉特效
- hhvm_HHVM和WordPress入门
- 源“ySQL 8.0 Community Server”的GPG密钥已安装,但是不适用于此软件包。请检查源的公钥URL是否配置正确。
- 如何选择合适的分表键,路由规则及分片数
- Java游戏服务器开发之二--导航帖