让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

2020年8月21日09:00:13 8 2,817 °C
摘要

DeepFake一阶运动模型,让万物皆可动。利用这项技术,让特朗普和蒙娜丽莎合唱一首《Unravel》,是什么效果?今天,它来了!

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,技术干货文章、学习资料、一线大厂面试经验等应有尽有,欢迎 Star 和 完善。

一、前言

让一张图片,动起来,应该怎么做?

DeepFake 一阶运动模型,让万物皆可动。

利用这项技术,用特朗普蒙娜丽莎的图片,合唱一首《Unravel》,是什么效果?

今天,它来了!

 

今天,继续手把手教学

算法原理、环境搭建、效果实现,一条龙服务,尽在下文!

二、算法原理

First Order Motion,也就是一阶运动模型,来自 NeurIPS 2019 论文。

「First Order Motion Model for Image Animation」

论文最初的目的是让「静态图片」动起来。如下图所示:“你动,它也动”。

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

这个模型可以轻易地让「权利的游戏」中的人物模仿特朗普进行讲话,还可以让静态的马跑起来等。

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

一阶运动模型的思想是用一组自学习的关键点和局部仿射变换来建立复杂运动模型。

模型由运动估计模块和图像生成模块两个主要部分组成。

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

首先进行关键点检测,然后根据关键点,进行运动估计,最后使用图像生成模块,生成最终效果。

在运动估计模块中,该模型通过自监督学习将目标物体的外观和运动信息进行分离,并进行特征表示。

而在图像生成模块中,模型会对目标运动期间出现的遮挡进行建模,然后从给定的图片中提取外观信息,结合先前获得的特征表示,生成图片。

作者使用该算法在四个数据集上进行了训练和测试。

VoxCeleb 数据集、UvA-Nemo 数据集、The BAIR robot pushing dataset、作者自己收集的数据集。

其中,VoxCeleb 是一个大型人声识别数据集。

它包含来自 YouTube 视频的 1251 位名人的约 10 万段语音,同时数据基本上是性别平衡的(男性占 55%),这些名人有不同的口音、职业和年龄。

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

First Order Motion 利用了这个数据集的视频图像,进行了模型训练。

我们就可以利用这个训练好的,人脸的运动估计模型,完成我们今天的任务。

「特朗普和蒙娜丽莎的深情合唱」。

除了需要用到这个一阶运动模型,还需要使用 OpenCV 和 ffmpeg 做视频、音频和图像的处理。

具体的实现,在下文的「效果实现」中说明。

三、环境搭建

效果实现上,我们可以直接用已有的库去实现我们想要的功能。

「Real Time Image Animation」

项目地址:https://github.com/anandpawara/Real_Time_Image_Animation

Python 为什么这么受欢迎,就是因为这一点

有很多开源项目,方便我们快速实现自己想要的功能,极大降低了开发成本。

真是,谁用谁知道啊。

环境搭建,还是建议使用 Anaconda,安装一些必要的第三方库,可以参考这篇开发环境搭建的内容:

Pytorch深度学习实战教程(一):语义分割基础与环境搭建

这个项目需要用到的第三方库,也都写的很全:

https://github.com/anandpawara/Real_Time_Image_Animation/blob/master/requirements.txt

直接使用 pip 安装即可:

此外,为了处理音频和视频,还需要配置 ffmpeg。

安装好 ffmpeg 并配置好环境变量即可。

ffmpeg 下载地址:https://ffmpeg.zeranoe.com/builds/

四、效果实现

实现也非常简单。

首先,整理一下思路:

「Real Time Image Animation」使用一阶运动模型,根据已有视频,让静态图动起来。

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

左图为原始图片,中间为生成结果,右侧为原始视频。

但是,这个项目只能处理图像不能保留音频

所以,我们需要先将音频保存,再将处理好的视频和音频进行合成。

这个功能,就用我们下载好的 ffmpeg 实现。

编写如下代码:

搞定,视频转音频,以及音频合成都搞定了。

我们需要对「Real Time Image Animation」这个项目进行修改,修改 image_animation.py 文件。

然后下载算法需要的权重文件视频图片素材

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

修改好的代码权重文件视频图片素材我都已经打包好了拿来直接用也可以

下载链接(密码:amz5):https://pan.baidu.com/s/1TEd7SOaO5mzPaxpOh2pALQ 

运行命令:

path_to_input_file 是输入的模板图片

path_to_checkpoint 是权重文件路径

path_to_video_file 是输入的视频文件

如果使用我打包好的程序,可以使用如下指令直接运行,获得文章开头的视频:

最后生成的视频存放在 output 文件夹下。

大功告成!

五、最后

算法处理视频的速度很快,用 GPU 几秒钟就能搞定。

我还生成了 PPD 演唱《Unravel》版,最后再回味一下。

 

兄弟,我裂开了呀!

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

weinxin
微信公众号
分享技术,乐享生活:微信公众号搜索「JackCui-AI」关注一个在互联网摸爬滚打的潜行者。
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:8   其中:访客  5   博主  3

    • avatar ~淡忘※ 来自天朝的朋友 谷歌浏览器 Windows 10 广东省广州市越秀区 电信 2

      大佬,想要玩一下时候python -m pip install -r requirements.txt,这里报错,是需要自己一个一个去下载吗

      • avatar 123 来自天朝的朋友 谷歌浏览器 Windows 10 广东省广州市 电信 0

        大佬

        • avatar from M87 来自天朝的朋友 谷歌浏览器 Windows 10 陕西省西安市 联通 1

          so 如果用cpu会多慢呢

            • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器 Windows 10 北京市 电信

              @from M87 几个小时一个图。

              • avatar from M87 来自天朝的朋友 QQ浏览器  LRA-AL00 Build/HONORLRA-AL00 陕西省西安市 联通 1

                @from M87 啊,我试了,十秒的视频做了四十分钟,还有个问题,为什么我渲染出来的视频是效果图那样的,就是左边是原图片中间是做的视频,右边是原视频那种,谢谢大佬。

                  • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器 Mac OS X 10_14_4 北京市 百度网讯科技联通节点

                    @from M87 因为代码就是这么写的。
                    下载云盘我打包好的代码吧,已经改好了。

                • avatar HighFly 来自天朝的朋友 谷歌浏览器 Windows 10 天津市宝坻区 联通 0

                  python image_animation.py -i path_to_input_file -c path_to_checkpoint -v path_to_video_file
                  大佬,这个指令去哪里运行