表情控制大法,让所有人成为你的提线木偶!first-order-model
先上个图,大家一起跟马斯克摇摆起来。
玩过换脸,换过高清人脸生成,今天来玩一玩表情控制。虽然前面两个也可以做表情控制,但是这种控制是不一样的。今天的方式对时间,配置,素材的要求低很多。而且控制形式也不一样,相当于直接整个脑袋背景都换了,更专业的说其实是:表情同步。这就像是有一个用一种江湖秘术去控制另外一个的表情神态。
先说一下软硬件环境。
硬件方面主要是显卡,我这里使用的为GTX10708G(N卡),这个项目的主页并没有明确指出需要什么样的显卡支持,看了下内部代码,支持CPU运行。所以应该大部分设备都能跑,只是快慢的问题。
软件方面:
1.操作系统为win10
2.CDUA10
3.CuDNNv7.5.0
4.Miniconda4.2.8(Python3.7)
这些是必须的,一般都是直接下载安装即可,如果不会装可以参考之前Stylegan系列的安装篇。安装的时候一般都是默认参数,直接下一步即可。注意软件的版本号,这是一个非常严谨的问题。
万事俱备之后,就可以开始下来的步骤了。
1.通过conda创建虚拟虚拟环境。
开始菜单中找到Anacondaprompt打开。然后输入一下命令:
conda create -n firstorder python=3.6
这行命令的目的是创建一个名为firstorder的python环境,conda还会自动为你安装一些必要的python包。如果慢的话记得设置conda镜像源。
输入命令回车之后,等一会儿会跳出上面的内容,问你是否继续,你输入y回车即可。
当进度条跑完,出现done就代表成功了。然后你需要激活一下这个虚拟环境。
输入命令:
conda activate firstorder
如果命令行前面出现了firstorder的字样,就证明虚拟环境以及启动成功。
2.获取软件(源代码)
如果你本地电脑有安装git工具,并且熟悉git命令,可以通过如下命令获取:
git clone https://github.com/AliaksandrSiarohin/first-order-model.git firstorder
这一部分的快慢取决于网络环境,最好是有代理,因为某些大家都懂的情况,即便是最大的程序员基地github.com网速也不是太好,clone大一点的项目会慢到怀疑人生。
如果全部下载成功,会看到done
除了源代码,还需要下载一个torch的本地安装包和预训练模型,我会在文末给出完整的资源包。
3.安装python依赖
新创建的环境直接用pip命令会报错,所以要先修复pip:
easy_install pip
这东西一直困扰我很久,因为用condainstall和pipinstall其实还是有差别。用conda安装有些包装不上,还有就是导致环境目录文件特别大,动不动就好几个G,所以我倾向于使用pip来安装依赖,但是尝试各种conda版本,创建的新环境往往无法使用这个命令。后来发现只需要再次之前执行一个命令即可!
然后,进入firstorder找到requirements.txt打开
在torch前面添加#,代表不安装这两个包。然后执行命令:
cd G:\firstorder
pip install -r requirements.txt
这里只要过程中不出现红色内容,最后看到successfully即代表成功。如果慢的话记得设置一下pip镜像
安装Torch
这个步骤官方有提供在线安装的方式,但是由于版本,网络,环境的问题,很容易出错(pip我就没成功过,用conda命令可以成功,但是安装包巨大)。所以最好是自己下载好特定的版本,在本地安装。这个文件我会放在我分享的资源包里。
pip install torch-1.0.0-cp36-cp36m-win_amd64.whl
pip install torchvision==0.2.1
因为本地安装,会非常快,只要软件环境和我一致不会出现错误。
4.准备素材
这个素材非常简单,就是一张图片和一个视频。图片要求长宽比例为1:1,后缀为jpg/png的图。视频也要求长宽比例为1:1,帧率30fps,视频中必须有居中的人脸。除了素材之外还需要一个预训练的模型。
在firstorder目录下面创一个path目录,进入目录后创建一个to目录。
然后创建上图所示的三个目录
checkpoint:预训练目录,放置一个名为vox–adv–cpk.pth.tar的目录
driving:驱动视频目录,放置一个说话的视频1.mp4
source:图片目录,防止一张静态的图片1.png
万事俱备,开始换脸(同步人脸表情):
python demo.py --config config/vox-adv-256.yaml --driving_video path/to/driving/1.mp4 --source_image path/to/source/1.png --checkpoint path/to/checkpoint/vox-adv-cpk.pth.tar --relative --adapt_scale
这么顺利?不可能的!
报了一个出错,不过提示非常友好,给出了非常简单的解决方法:
conda install ffmpeg -c conda-forge
然后就是等待啦,进度条到100%即可。
结束之后会生成一个result.mp4的文件,打开视频就可以看到上面给得那张图片动起来了,而且表情和给得视频一模一样。
接下来你可尝试更换素材,比如拍个自己的脸部的视频,找一张帅哥的图片,然后就可以让他成为你的提线木偶了。
甚至可以把这个应用到视频聊天软件或者直接去抖音直播骗小姑娘咯!如何直播且听下回分解。
======================
本文相关资源,公众号【托尼不是塔克】输入【1004】
======================