应该不少小伙伴已经见识到AI的威力了,AI确实已经无处不在,融入我们的生活,诸如平时的智能推送、人脸识别、语音识别、OCR、智能美颜等都几乎摒弃传统算法,用AI来实现。 AI也并不是什么高深科技,人人都可以学,那么今天我们就来实现著名的Deepfake,实现视频人脸更换的技术,当然说的是傻瓜式的操作,各位按照本文教程来,应该可以实现AI换脸。
「软件概览」 今天说的这个开源项目叫做:DeepFaceLab,这个能实现很多内容,我们今天主要来讲视频换脸。 如下,此项目在Github上获得16.3K星,还是非常火爆的。
▼
「深度体验」 此开源项目提供打包好的运行包,全是bat可执行文件,什么Python环境、CUDA环境统统不需要配置,里面都配置好了。 软件大小1.89G,提供磁力连接,实测迅雷下载速度好几MB/s。
▼
下载完成后解压,如下解压后的目录。
▼
上面这么多文件,各位不要慌,因为简单的AI换脸不需要这么多文件。
我们先来了解一下整个流程。
〇、换脸的目标
如下软件附带示例视频,其中源视频(data_src.mp4)是钢铁侠,目标视频(data_dst.mp4)是马斯克,最终实现将马斯克的脸换成钢铁侠的。
注意:我们的教程是最精简的教程,中间很多图片、视频优化均没有做,以先跑通流程为主,显卡仅支持英伟达,AMD不支持,显卡不能太差,一般得10系列吧。
▼
一、源视频帧提取
先把源视频提取图片帧,我们在主目录中双击:2) extract images from video data_src.bat,然后弹出黑窗中,输入FPS一般30吧,回车,然后选择保存图片格式:选jpg吧,然后软件就会自动提取视频帧。
▼
二、目标视频帧提取
当然目标视频也得提取,如下双击:3) extract images from video data_dst FULL FPS.bat,选择jpg即可提取。
▼
三、源视频帧人脸提取
我们在主目录中双击:4) data_src faceset extract.bat,然后弹出黑窗中,输入f(代表提取人脸),选择显卡(我只有一个显卡,输入0),然后输入y,回车即可提取,速度视显卡性能而定。
▼
四、目标视频帧人脸提取
和三基本一致,我们在主目录中双击:5) data_dst faceset extract.bat,然后弹出黑窗中,输入f(代表提取人脸),选择显卡(我只有一个显卡,输入0),回车即可提取,速度视显卡性能而定。
▼
五、模型训练(开始啦)
我们双击:6) train Quick96.bat,如下,输入模型名字(自己随便命名),选择显卡。
不一会,会弹出右侧的预览窗,在预览窗里,切换成英文输入法,按:P即可刷新训练结果,当感觉训练效果不错的时候,按回车,即可停止训练,并自动保存模型。
▼
怎么看训练效果呢?一种是下面预览图,最后一列,越能看出人脸效果,越好。
▼
一种是训练损失要小,一般的零点几或者零点零几。
▼
六、图片换脸
这一步的操作就是将刚才训练的模型将目标视频帧的人脸换成源视频人脸,实现是每一张图片。我们双击:7) merge Quick96.bat,然后选择0(最近训练的模型),选择显卡,输入n。
然后,接下来的选项,一路回车就行。
▼
七、图片转视频
换完脸的图片,如下双击:8) merged to avi.bat,输入视频码率(Bitrate),我设定个1吧,即可转换成AVI格式,存在workspace目录下的result.avi。
▼
如下,GIF图展示效果(左侧为源视频,中间为目标视频,右侧为最终换脸结果视频),由于是简单流程,所以效果肯定不是太好,但能看出来换脸流程基本打通了。
▼
「小结」
总之,今天的流程应该可以帮助大家跑通流程,至于改善效果,大家就要多看看原项目的教程了