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

Python客栈

共 2574字,需浏览 6分钟

 ·

2021-03-06 03:00


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


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


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



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


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


项目地址:

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


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


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


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


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


没有安装git的小伙伴,在公众号回复「蚂蚁呀嘿」就可以获取到文件。


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



如此就能在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


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


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


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


命令行参数说明如下。


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

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

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

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


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


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



对于其他的视频特效,就需要更改驱动视频,即修改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图像大小。



总结


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


相关代码及文件已上传,在公众号内回复「蚂蚁呀嘿」即可获取


AI换脸有风险,一定要注意个人隐私安全!


这里需要注意,在使用PaddleGAN对人脸进行动作表情迁移,这期间耗费的时间比较多,慢慢等就好了。


············END············

昨日留言中奖名单


恭喜三位中奖的童鞋,快加小编微信(Mayyy530)来领奖吧!



1、调试Python代码,千万别再用Print了!

2、史上最全Python 操作 Excel库总结!

3、别再问我Python怎么打包成exe了!


在看”和“点赞”都是对我们最好的支持 
浏览 43
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报