程序员体验AI换脸就不要用ZAO了,详解Github周冠军项目Faceswap的变脸攻略

本文连接:https://blog.csdn.net/BEYONDMA/article/details/100594136
       上个月笔者曾在《银行家杂志》发文传统银行如何引领开放银行时代潮流,就曾指出AI换脸等技术的兴起将会咱们将来的身份认证手段形成必定的麻烦。而最近ZAO换脸软件再次爆红社交媒体,并且其接近于霸王条款的使用协议也将对于用户隐私形成必定的风险,虽而后来ZAO公开致歉,不过这波热点效应也让Faceswap这个开源的AI换脸项目登顶Github周排行的榜首。git

       AI换脸历程简介       
         AI换脸首次走进国人视线是在19年3月,一名叫作换脸哥的网友,就上传了一段轰动全网的视频,将扮演94版射雕中黄蓉的演员由朱菌换成了杨幂,并且几乎真假难辩。github

       而AI换脸在学界早就有所涉及,在18年年中人工智能替换人脸面部特征的技术在科研学术研究领域和开源社区两个方向上都得到了不小的发展,首先是在SIGGRAPH(暨国际计算机图形学会)的18年年会上一个由斯坦福大学、慕尼黑技术大学、巴斯大学等科研究机构联系研发的”Deep Video portrait”系统横空出世,该技术不但能让被替换的人脸彻底模板原视频中人物的表情,甚至在放大对比时,两个视频在发丝和睫毛的表现上都能作到极度的精确,后来描述该技术的论文被发表在了《ACM图形交易上》,不过所幸的是研发”Deep Video portrait”技术的几家机构并无公开其项目的源代码。     windows

       而在开源社区中“AI换脸技术”也是获得了至关多的关注,先是一种叫作Reddit上的deepfakes论坛发布多款使用AI换脸技术生成的不雅视频,使多名女星中招,后来Reddit被迫直接关闭了deepfakes的板块,后来在Github由deepfakes衍生而来的开源项目数量不下十几个,其中以faceswap、Openfaceswap等开源项目为代码的换脸技术在github上的更新与讨论十分热烈,极快的推进了开源换脸技术的迭代速度。安全

     Faceswap安装教程
       而在以前AI换脸软件还通常只能安装在LINUX平台,而有算力不低于1.0的N卡、装有PYTHON、CONDA环境及CUDA和CUDAN等苛刻要求,这一番操做下来至少不是专业的IT人员还真是难以搞定,不过笔者亲测了一下最新的Faceswap for windows版本的程序,其安装布署的简单快捷程度出乎个人意料,下面我就来详细介绍一下安装步骤。ide

    1.下载Faceswap安装程序人工智能

    首先到Githhub上下载最新的Release版本目前最新的连接以下https://github.com/deepfakes/faceswap/releases/latest/download/faceswap_setup_x64.exe.net

特别揭示:deepfakes相关软件在github被限制使用,必须登录用户才能够访问,因此若是出现如下页面,请登录Github:视频

 

 

2.双击安装程序进行安装blog

      只须要在开始界面选择安装路径,在如下界面选择显卡类型,其他就不须要关心了,安装程序会自行配置好Git和conda,还会自行配置环境变量。排序

 

 

      Faceswap使用教程
      首先须要明确一下AI换脸的基本概念,我在以前的博文终于把AI换脸的原理搞清了曾经介绍过AI换脸的基本原理,AI换脸当中两大最重要的技术就是人脸检测和人脸对齐。其中人脸检测顾名思义就是在图像中将人脸的部分检测出来,人脸对齐其实就是要把从不一样角度、光照、遮挡等状况下获得的人脸信息还原同标准场景下。

     虽然安装步骤比以前简单了,不过Faceswap使用起来仍是相对比较麻烦的,其基本流程以下:

     获取人脸A的信息:首先对于含有人脸A信息的视频进行处理,侦测全部人脸并及人脸的对齐信息,而后须要用户确认对于人脸A的侦测结果正确,若是含有其它人脸不属于人脸A的信息则进行删除,固然若是其它视频中也包含人脸A的信息你也能够将上述文件合并,造成更大的人脸、人脸对齐信息

    获取人脸A的信息:重复上述步骤获得人脸B的侦测和对齐信息

    模型训练:使用人脸A和人脸B的侦测及对齐信息进行训练。

    视频转换:使用刚刚训练好的模型就能够进行视频转换了。

    接下来我们分步介绍Faceswap的通常使用流程

   一、启动程序

  在上面安装成功后桌面上会自动多出一个“Faceswap"的图标,双击程序会自动调起对应的Python及conda版本进行启动

 

首次启动大概须要几分钟,而后就能够进入相关图像界面了。

二、处理视频得到人脸A的信息

进行图型界面后直接在EXACT页进行视频的处理,其中

Input Dir: 若是是使用视频则须要选定一个文件,若是使用一组图片则选定一个文件夹。

Output Dir: Faceswap会把处理获得的人脸图像放在output文件夹中

Alignments:不须要填写,使用默认便可,注这里的对齐文件实际是指眉、眼、鼻子、嘴等68个

Serializer: 使用默认便可。

Detector:S3FD的效果的确比较不错。

其他选项不须要更改均使用默认便可。

 

点击Exact按扭便可开始。

揭示:这项操做很是吃内存,我这边的经验值是每1G内存能够处理40张1280*768的图像,以此类推。

具体以下:

 

3.删除没必要要的信息

咱们除了人脸的图像外,还会获得一些如杂志封面的图像,那么接下来咱们就要把咱们不须要处理的图像删除。

 

选择tools标签的sort选项,这时的input是实际是咱们刚刚解压完成的output文件压,确保Final process选为rename选项,其他按默承认。

 

而后点击Sort便可完成排序。

接下来将Sort完成的结果进行处理,删除不须要的对齐信息。

选择tools标签的Alignment选项,job选项Remove-Faces具体以下:

 

其中Alignments files是步骤2生成的对齐文件,Face Folder是咱们刚刚sort后的输出目录。设置完毕后点击Alignments 便可。

4.重复二、3步得到人脸B的相关侦测及对齐信息

5.训练模型

得到了人脸A和B的信息后就能够训练模型了,其中

Input A:人脸A的图像文件。

Alignments A:人脸A的对齐文件

Input B:人脸B的图像文件。

Alignments B:人脸B的对齐文件

选定完成以后点击Train按扭便可,不过这个时间通常比较长,笔者的2080处理的图像数量在1000张左右,截止目前已经运行了接近一天,还未结束。

 

6.正式换脸

训练完成后,就能够进行换脸了:

Input Dir: 要转换的包含有人脸A的视频。注意若是Input Dir中输入的视频不是步骤2中提取人脸A特征的视频,也须要对于此视频按照步骤2生成对齐文件。

Output Dir: 转换后视频的位置

Alignments:对齐文件位置

Model Dir:咱们在步骤5中生成模型的位置。

配置完成后点击convert便可完成转换。

 

       可是笔者的模型还没有训练完成,且为了不侵权,就放一个Github已训练完成的模型效果图吧(把詹尼佛.劳伦斯换成史蒂夫·布西密吧:

 

 

     写在最后 
      首先对于IT人员来讲Faceswap的代码质量上乘,值得一读,重点推荐https://github.com/deepfakes/faceswap/tree/master/lib/alignments.py这个有关对齐的代码质量不错,找时间能够给你们详细解读一下。

         其次目前尚没有可靠的技术可以鉴定视频的真伪,虽然目前脸书、微软t联合麻省理工学院等一票大学共同发起了Deepfake挑战赛,可是我以前的博客中也介绍过AI假新闻满天飞,打假神器GROVER帮你看清一切中利用AI去鉴定假新闻的尝试,不过其鉴定成功率和可靠率还很低,并且从目前AI换脸的原理来看,其技术破破绽更少,鉴定难度比NLP会更大。因此不排除从此实时的监控视频都须要按照《GB/T 25724-2017公共安全视频监控数字视音频编解码技术要求》进行安全加固,才算有效了。

相关文章
相关标签/搜索