「AI 换脸」这几天又热起来了。雷锋网(公众号:雷锋网) AI 科技评论秉承以往的风格,从技术角度简单回顾一下近几年重要的 AI 换脸技术。
Cycle GAN
Cycle GAN 可以说是所有人脸转换尝试重要早期尝试。在对抗性生成式网络(GANs)的风潮中,大家发现只要给定源类别的样本和目标类别的样本,GANs 可以便捷地学习到两个类别之间的转换关系,就天然地适用于「图像到图像转换」问题,比如同一张风景照的冬天到夏天、一匹马到一匹斑马;Cycle GAN 核心思路在于,如果能从源转换到目标、还能从源转换回来,就可以认为模型很好地学习到了两个类别间的转换关系,也更好地保证了转换后的图像的品质。不过 Cycle GAN 的换脸效果并不怎么好,它毕竟是一个对所有类别的图像通用的方法。
Face2Face
Face2Face 可以说是一次「标准的、规矩的」的尝试,它借助 dlib 和 OpenCV,首先人脸检测器检测出源图片中的人脸、找到人脸上的关键标记点,然后再使用针对人脸的 pix2pix 转换模型把关键标记点转换为目标人脸图像。也许是因为这个方法没有给深度学习留下足够的发挥空间,所以它的效果也一般般。
在此之后,英伟达和 UC 伯克利的研究人员们根据 pix2pix 改进出了 pix2pixHD,提升了人脸图像的生成效果,而且也依然保持了原 pix2pix 模型的多类别通用能力。论文地址,开源地址。
DeepFakes
最火热、最广为流传的深度学习换脸模型无疑是 DeepFakes。出现于 2017 年底的 DeepFakes 是一个深度自动编解码器模型(Autoencoder-Decoder),通过用源人物和目标人物的几百张照片(越多越好)训练模型分别识别、还原两人面部的能力。最后用源人物的照片搭配目标人物的解码器就可以完成转换。它也对视频到视频的转换有良好支持。
DeepFakes 的缺点在于,它无法在小样本上工作,意味着无法凭一两张照片替换任意两个人的脸部;模型的训练过程也需要消耗大量资源。
DeepFakes 刚刚公开时也仅限于技术爱好者们之间交流,也并没有发布正式的论文。但一些盖尔·加朵的换脸动图一下子引爆了关注。今年年初曾经热炒的「杨幂换脸朱茵」视频也很可能是用这个方法实现的,因为 DeepFakes 中的编码器经过足够的训练后确实能够具有将任意输入人脸(比如朱茵的人脸)转换为高质量、高逼真度的目标人脸(杨幂人脸)的能力。
DeepFakes 的 GitHub 地址为 https://github.com/deepfakes/faceswap,如今它还在持续更新升级;后来推出了还名为 FakeApp 的桌面应用程序,便于更多 TensorFlow 玩不转的小白用户尝试。雷锋网深度解析文章参见
一张照片转换面部动作
DeepFakes 式的「把目标图像中的人脸换成另一张脸」可能未来也很难减小样本数量要求和资源要求,所以也有另一种思路,那就是给定一张人脸图像,然后根据给定的动作让图中的人「动起来」。三星莫斯科 AI 研究中心联合斯科尔科沃科学技术研究所在今年 5 月发表的一篇论文就带来了不错的结果。不仅是真人的照片,他们甚至可以让油画中的人自然地开口说话。
以上提到的论文和博客 PDF 打包
本文转自雷锋网,如需转载请至雷锋网官网申请授权。