paddlehub 使用体验-视频抠图_乘风破浪的姐姐_人美路子野

PaddleHub就是为了解决对深度学习模型的需求而开发的工具。 基于飞桨领先的核心框架, 精选效果优秀的算法, 提供了百亿级大数据训练的预训练模型, 方便用户不用花费大量精力从头开始训练一个模型。
PaddleHub的github地址: https://github.com/PaddlePaddle/PaddleHub
首先介绍paddlehub的主要优势:
- 模型一键下载、 管理、 预测
- 迁移学习
Fine-tune API: 十行代码完成迁移学习
AutoDL Finetuner: 一键自动超参搜索 - 端到端部署
Hub Serving: 一键模型服务化部署
接下来实践部分:
实践介绍:主要对乘风破浪的姐姐中人美路子野mv进行人像抠图,然后更换背景后,合并成新的一个视频。采用该mv是因为该视频中人物鲜明,为顺序出场安排,更加方便的查看模型抠图后的效果。
点击查看: 素材视频传送门
1.[ 模型即软件 ] 是paddlehub的使用原则,因此,使用paddlehub中的模型,重点应偏向于应用,拿来就用就OK了。
- PaddleHub的官网: https://www.paddlepaddle.org.cn/hub
- PaddleHub的课程地址: https://aistudio.baidu.com/aistudio/course/introduce/1070
- PaddleHub的官方教程地址: https://aistudio.baidu.com/aistudio/personalcenter/thirdview/79927
- 直接在AiStudio上对paddlehub进行一个安装。

2. 主要流程是:视频分帧–>进行抠图–>添加背景图片–>将每个图片合并成视频
首先看下文件目录结构:

然后加载预训练模型:加载模型时候是要输入模型名称即可,此处使用的模型是 “deeplabv3p_xception65_humanseg”
module = hub.Module(name="deeplabv3p_xception65_humanseg")
input_dict = {
"image": test_img_path}
# 执行并展示结果
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()

将扣出的人物图片与选择的背景图片进行融合主要函数:
# 合成函数
def blend_images(fore_image, base_image, output_path):
"""
将抠出的人物图像换背景
fore_image: 前景图片,抠出的人物图片
base_image: 背景图片
"""
# 读入图片
base_image = Image.open(base_image).convert('RGB')
fore_image

本文介绍了使用PaddleHub进行视频抠图的实践,通过一键下载的预训练模型“deeplabv3p_xception65_humanseg”对乘风破浪的姐姐MV进行人像抠图,并详细阐述了从视频分帧、抠图、添加背景到生成新视频的整个过程,展示了PaddleHub在深度学习应用上的便利性。
最低0.47元/天 解锁文章
884

被折叠的 条评论
为什么被折叠?



