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

Irene181
• 阅读 1759

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

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

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

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

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

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

项目地址:

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的小伙伴,在公众号回复「蚂蚁呀嘿」就可以获取到文件。

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

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

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

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

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

命令行参数说明如下。



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

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

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

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

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

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

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

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

总结

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

感兴趣的小伙伴也可以动手试一试。

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

万水千山总是情,点个 👍 行不行。

**-----**------**-----**---**** End **-----**--------**-----**-****

往期精彩文章推荐:

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/gMTzVRbl-DIBUpt9fs9mmQ,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Irene181 Irene181
2年前
Python分析5000+抖音大V,发现大家都喜欢这类视频!
最近,小F在知乎上看到一个关于抖音的问题。里面提到了,目前我国人均每天刷短视频110分钟。看这数据,看来小F又被平均了。不过老实说,只要一打开抖音,小F确实是有一种停不下来的感觉~所以还是少刷抖音,多看书。要不然时间全流逝了。本期就给大家用数据分析一下在抖音,什么类型的视频最受欢迎。/01/数据获取数据来自于第三方监
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
梦
3年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Karen110 Karen110
2年前
一篇文章教会你利用Python网络爬虫抓取百度贴吧评论区图片和视频
【一、项目背景】    百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢?今天,小编带大家通过搜索关键字来获取评论区的图片和视频。【二、项目目标】    实现把贴吧获取的图片或视频保存在一个文件。【三、涉及的库和网站】1、网址如下:https://tieba.baidu.com/f?ie
Wesley13 Wesley13
2年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Stella981 Stella981
2年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这