Py学习  »  Git

GitHub 开源神器!让你一键秒变迪丽热巴!

GitCube • 2 年前 • 992 次点击  

公众号关注 “GitCube”

设为 “星标”,每天带你逛 GitHub!


来自新智元

【导读】AI 换脸技术全新升级,DeepFaceLive 推出实时换脸软件,一键安装,新手友好,换脸后丝毫看不出破绽。


欢迎光临「DeepFace 整容所」!

 

无需开刀!无需微创!

 

双眼皮、开眼角、瘦脸统统都不在话下!

 

让你秒变帅哥美女!

 

给你看看现在已经非常成熟的「整容技术」:

 

 
一个软件就能直接将 Angela Baby 整成迪丽热巴!
 
只要迪丽热巴的泪痣和嘴?没问题!
 
 
还能让发福的沈腾换成马爸爸的脸:
 
 
而这次,「整容技术」有了全新的升级!

给直播间的网红「实时整容」!


换上范冰冰的脸,毫无维和感。 
 
没错,这就是 DeepFaceLive 的实时换脸软件。
 
DeepFaceLive 项目地址:https://github.com/iperov/DeepFaceLive

只要打开软件,就能够实时处理直播中的视频,给主播换脸。

 
此处祭出一个大杀器:刘亦菲模型!
 
 
放大看一下,五官完美替换。
 
 
不同性别换脸,DeepFaceLive 也能够完全驾驭。
 
 
团队这次推出的软件除了能够给直播视频实时换脸,还能在视频通话的时候换脸。
 
当然了,人脸替换的模型要先经过 DeepFaceLab 算法训练。
 
论文地址: https://arxiv.org/pdf/2005.05535.pdf

现在网络上 95% 以上的 Deep Fake 视频都是用 DeepFaceLab 制作的。
 
例如下面这些流行的 YouTube 频道:
 

DeepFaceLab 项目地址:https://github.com/iperov/DeepFaceLab
 
这次 DeepFaceLive 的推出,肯定会有更多好玩的视频甚至是直播了。
 
软件运行起来也非常简单,只需要有 64 位的 Win 10 系统和 NV 的显卡就可以了。
 
 
That's it!就这么简单!
 

DeepFaceLive

 

点击就「换」!
 
(记得更新显卡驱动)
 

人脸检测

 
人脸检测器集成了 YoloV5、S3FD 以及 CenterFace。
 
此外,也可以选择使用用 CPU 进行处理。
 
 

人脸对齐

 
可以修改简单的参数,调整人脸对齐的效果。
 
 

人脸标记器

 
人脸标记器提供了基于 CPU 加速的 OpenCV LBF 和基于 GPU 加速的 Google FaceMesh。
 
 

人脸交换器

 
在人脸交换器中,需要载入用户提前用 DeepFaceLab 训练好的模型。
 
 
详细教程可以访问:https://github.com/iperov/DeepFaceLive/blob/master/doc/setup_tutorial_windows/index.md

 

DeepFaceLab


Lab 不需要手工挑选特征就可以实现流畅和逼真的换脸效果。
 
只需要两个视频:源视频(src)和目标视频(dst)。
 
不仅如此,两个视频之间还不需要匹配相同的面部表情。
 

Part 1 提取人脸

 
Lab 的第一个阶段是从 src 和 dst 数据中提取人脸。
 
 
人脸检测 
 
在 Lab 中,S3FD 被用作默认的人脸检测器。
 
人脸对齐
 
Lab 提供了两种典型的面部坐标提取算法来解决这个问题:
 
  1. 基于热图的面部坐标算法 2DFAN(适用于具有标准姿势的人脸)
  2. 具有三维面部先验信息的 PRNet(适用于具有大欧拉角的人脸,例如其中的一侧不在视线之内)。
 
在检索出面部坐标后,Lab 提供了一个可配置时间步长的可选函数,以平滑单次拍摄中连续帧的面部坐标,进一步确保稳定性。
 
然后,利用经典的点模式映射和转换方法来计算用于面部对齐的相似性转换矩阵。
 
由于在计算相似性转换矩阵时需要标准的面部坐标模板,因此 Lab 提供了一个规范的对齐的面部坐标模板。
 
此外,Lab 可以利用获得的面部坐标自动预测欧拉角。
 
面部分割 
 
在对齐之后,得到了一个带有标准正面或侧面视图的脸部数据文件夹。
 
我们在此基础上采用精细的人脸分割网络(TernausNet),准确地分割出有头发、手指或眼镜遮挡的人脸,同时也可以移除不规则的遮挡物。
 
由于一些 SOTA 人脸分割模型在某些特定的镜头中无法生成细粒度的掩码,因此 Lab 将 XSeg 引入。
 
XSeg 允许用户使用多张照片来训练模型,从而分割特定的人脸。
 

在 XSeg 的帮助下,用户可以用它来消除手、眼镜和任何其他可能覆盖面部的物体的遮挡,并控制特定的区域进行交换。
 

Part 2 模型训练

 
由于作者希望不用对 src 和 dst 的面部表情进行严格的匹配,因此 Lab 提出了两种结构来解决这个问题。
 
DF 结构
 
LIAE 结构
 
DF 结构包括一个编码器以及 src 和 dst 之间共享权重的 Inter,两个分别属于 src 和 dst 的解码器。
 
src 和 dst 的泛化是通过共享的 Encoder 和 Inter 实现的。
 
DF 结构可以完成换脸的任务,但不能从 dst 继承足够的信息, LIAE 结构则可以用来解决光线 的一致性问题。
 
LIAE 的结构要更复杂,有一个共享权重的编码器,一个解码器和两个独立的输入器。
 
此外,Lab 默认使用混合损失(DSSIM+MSE)。DSSIM 可以更快成人脸,而 MSE 可以提供更好的清晰度。
 
此外,作者采用了一种真实面孔模式 TrueFace,它可以在转换阶段使生成的面孔与 dst 有更好的相似性。
 
从结果来看,最终生成的脸的质量有着明显的提升。
 

Part 3 人脸交换

 
以前的方法往往忽略了转换阶段的重要性。
 
而 Lab 可以让用户将 src 的脸换到 dst,也可以逆向操作。
 
 
为了保持人脸肤色一致,Lab 又提供了五种颜色转移算法(Reinhard 颜色转移、迭代分布转移等)。
 
Lab 的 liae 架构模型自带光影学习,在处理不同的肤色、脸型和光照条件的混合时,只要边缘羽化一下两张脸的结合处就不会显得突兀。
 
最后则是对人脸进行锐化。
 
由于 SOTA 模型所生成的脸部,或多或少都是平滑的,缺乏微小的细节(例如,痣,皱纹)。
 
因此,Lab 集成了一个预先训练好的脸部超分辨率神经网络用作混合后脸部的锐化。
 

结果比较

 
作者采用来自 FaceForensics++ 数据集的开源项目来测试换脸结果。
 
不同表情和脸型的换脸例子
 
为了公平起见,作者将训练时间限制在 3 小时内,并采用了一个具有 DF 结构的轻量级的模型:Quick96,其输出分辨率为 96×96。
 
此外,作者使用 Adam 优化器(lr=0.00005,β1=0.5,β2=0.999)对模型进行优化。
 
这些模型的训练都是在 NVIDIA GeForce GTX 1080Ti GPU 和 Intel Core i7-8700 CPU 上训练的。
 
FaceForensics++ 人脸图像的定性换脸结果
 
与 DeepFakes 和 Nirkin 的模型相比,Lab 可以保留更多的姿势和表情。
 

此外,转换阶段加入了超分辨率网络,Lab 可以输出更有灵气的眼睛和线条明显的牙齿。
 
不过这种效果无法在 SSIM 的分数上体现出来。
 

实时换脸,是喜是忧?


研究人员不断追求效果自然,AI 换脸技术也变得越来越「无懈可击」。
 
如今直播带货行业乘着技术发展的翅膀,让商家们能够获利更多。
 
软件的开发者「不愿透露姓名的滚石」表示,如果直播带货行业能够使用这个换脸软件,灵魂有趣但颜值不够的带货主播就能拥有高颜值,提高直播间吸引力。
 
大大降低了商家开直播间成本的同时,还能够提高直播间的吸引力。
 
这位开发者同时也表达了他的担忧:一但软件得到广泛应用,心怀不轨的人可能会利用实时换脸技术进行诈骗勒索。
 
以往的换脸技术最多只能对视频换脸,如果要诈骗,只要保持警惕,视频很快就会露馅儿。
 
但如果实时换脸技术被用于诈骗,在这个真真假假的虚拟世界中,可能大部分人都没有办法分辨屏幕那端是不是「本尊」。
 
如果诈骗的是我们的父母这样年纪大一点的人,对方能够和父母互动,原本辨别力就不高的他们可能很容易就会被骗转账。
 
在这个 AI 世界里,人与人之间还能保有最后一份真诚吗?


参考资料:

DeepFaceLive 项目地址:https://github.com/iperov/DeepFaceLive

DeepFaceLab 项目地址:https://github.com/iperov/DeepFaceLab

DeepFaceLab 论文地址:https://arxiv.org/pdf/2005.05535.pdf

中文论坛地址:https://dfldata.xyz

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119059
 
992 次点击