前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >太魔性了,用 Python 实现火爆全网的「蚂蚁呀嘿」视频特效!

太魔性了,用 Python 实现火爆全网的「蚂蚁呀嘿」视频特效!

作者头像
AirPython
发布2021-03-12 14:22:32
6300
发布2021-03-12 14:22:32
举报
文章被收录于专栏:Python 自动化Python 自动化

大家好,我是安果!

最近在抖音上看到很多「蚂蚁呀嘿」的魔性视频,各方大佬齐齐上阵

刚好看到百度的开源项目,基于 PaddleGAN 实现表情迁移,于是也来玩一把!

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

没配音,感觉不是很精彩,后面上视频。

那么需要如何实现呢,下面小F来手把手教学。

参考地址:

https://aistudio.baidu.com/aistudio/projectdetail/1586056

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

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

首先,从码云上将 PaddleGAN 的源码下载下来

代码语言:javascript
复制
# 从gitee上克隆PaddleGAN代码
git clone https://gitee.com/paddlepaddle/

下载解压后,使用 PyCharm 打开项目文件

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

代码语言:javascript
复制
# 终端打开文件夹
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 源,速度真的很快

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

代码语言:javascript
复制
# 打开文件夹
cd applications/

# 新建文件夹
mkdir output

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

其中,

  • paddlepaddle 是基础
  • paddlehub 则是用来检测人脸用的

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

代码语言:javascript
复制
# 安装库
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install paddlehub -i https://mirror.baidu.com/pypi/simple

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

代码语言:javascript
复制
export PYTHONPATH=$PYTHONPATH:../PycharmProjects/mayiyahei/PaddleGAN && python -u tools/first-order-demo.py  --driving_video ../PycharmProjects/mayiyahei/MaYiYaHei.MP4  --source_image ../PycharmProjects/mayiyahei/input.jpeg --relative --adapt_scale

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

命令行参数说明如下

代码语言:javascript
复制
driving_video: 驱动视频,视频中人物的表情动作作为待迁移的对象。

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

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

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

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

比如,我选择了一张编程创始人集合照

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

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

代码语言:javascript
复制
# 视频和音频合并
ffmpeg -i MaYiYaHei.mp4 -i MYYH.mp3 -vcodec copy -acodec copy result.mp4

最终实现项目的视频效果如下。

如果你想生成 GIF,分享给其他人,同样可以使用 FFmpeg 生成 GIF

代码语言:javascript
复制
# 生成GIF
ffmpeg -ss 0 -t 8 -i result.mp4 -s 600*400 -r 15 result.gif

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

总结

好了,到此本期的实践就结束了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AirPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档