Python实战案例,paddlepaddle模块,Python实现「蚂蚁呀嘿」视频特效!

208 阅读3分钟

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」。

前言

Python实战案例,paddlepaddle模块,Python实现「蚂蚁呀嘿」视频特效!

让我们愉快地开始吧~

开发工具

Python版本: 3.6.4

相关模块:

paddlepaddle模块;

paddlehub模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

先来看一下小F的成果,各大编程创始人齐唱「蚂蚁呀嘿」!

3a1b8ab4914fb349c8f8805d1e21f061.jpg

目前该项目适合在Windows和Linux上操作,Mac在调用ffmpeg这一步会出错。

不知道是不是和mac不支持gpu安装paddlepaddle有关系。

首先将PaddleGAN的源码从gitee上下载下来。

# 从gitee上克隆PaddleGAN代码
git clone https://gitee.com/paddlepaddle

下载解压后,将PaddleGAN文件夹放置在PyCharm的项目中

9a57f0f2ecccb05a2bdbaea3cfd4652d.png

如此就能在PyCharm项目的虚拟环境中,进行相关的安装操作了

# 终端打开文件夹
cd PaddleGAN

# 安装相关依赖
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
pip install imageio-ffmpeg -i https://mirror.baidu.com/pypi/simple

终端打开文件夹,安装所需要的依赖。

毕竟是百度的开源项目,所以使用了百度的pip源,速度真的很快。

下面再创建一个输出文件夹,生成的视频会保存在这里。

# 打开文件夹
cd applications/

# 新建文件夹
mkdir output

最后还需要安装百度的paddlepaddle和paddlehub。

paddlepaddle是基础,而paddlehub则是用来检测人脸用的。

将「输入图片」中的所有人脸检测出来,然后使用PaddleGAN对每个人脸进行表情迁移,最后生成视频。

# 安装库
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install paddlehub -i https://mirror.baidu.com/pypi/simple

下面就可在终端运行如下命令

41d029b9c8b07c59b7a6029a0e57981f.png

其中,“../”处应该修改成为你自己的路径。

命令行参数说明如下

driving_video: 驱动视频,视频中人物的表情动作作为待迁移的对象。

source_image: 原始图片,视频中人物的表情动作将迁移到该原始图片中的人物上 。

relative: 指示程序中使用视频和图片中人物关键点的相对坐标还是绝对坐标,建议使用相对坐标,若使用绝对坐标,会导致迁移后人物扭曲变形。

adapt_scale: 根据关键点凸包自适应运动尺度。

此处,大家可以使用自己设计的图片,生成你想要的视频。

比如我的原始图片input.jpeg,就是编程创始人集合照,如下图

9a212593dd3749f6d9d37932d2473ec0.jpg

对于其他的视频特效,就需要更改驱动视频,即修改driving_video。

另外生成的视频是不带声音的,所以需要使用FFmpeg将视频与音频进行合并。

# 视频和音频合并
ffmpeg -i MaYiYaHei.mp4 -i MYYH.mp3 -vcodec copy -acodec copy result.mp4

如果你想生成GIF,分享给其他人,比如整蛊你的好朋友。

同样可以使用FFmpeg生成GIF。

# 生成GIF\
ffmpeg -ss 0 -t 8 -i result.mp4 -s 600*400 -r 15 result.gif

需要设定视频截取时间及GIF图像大小