人脸属性编辑是一个很广的应用领域,不仅可以用于辅助其他诸如人脸识别等相关的任务,也可以独立成若干新的任务,在人机交互,娱乐社交领域有广泛应用,本文我们简单介绍其中核心算法以及如何深入学习。

作者&编辑 | 言有三

1. 人脸属性编辑应用

所谓人脸属性编辑,即改变人脸的某些属性,比如姿态、年龄等,或者将人脸图转变为具有特定风格的图人脸属性编辑包含非常多的应用,比如人脸化妆去妆、人脸年龄的更改、人脸卡通头像生成、换脸等。

1.1 人脸年龄编辑

人脸年龄编辑,即更改人脸的年龄属性,可以用于仿真人脸随着年龄变化的过程,从而在相关领域进行应用。比如在影视等作品中预测年轻演员变老后模样,或者反之。

另外,它也可以用于辅助跨年龄的人脸识别问题,从而在寻找丢失多年的儿童等应用中提高算法的精度。

1.2 人脸表情编辑

人脸表情编辑即更改脸部的表情属性,包括嘴唇、鼻子等区域。可以广泛应用于人机交互和娱乐社交领域,也可以用于人脸表情去除,辅助提升人脸识别等算法等精度。

1.3 人脸姿态编辑

人脸姿态编辑即更改人脸的姿态,可以用于仿真不同的姿态以及对人脸进行正脸化,辅助大姿态下人脸检测,关键点定位以及人脸识别等任务。

1.4 人脸身份编辑(换脸)

换脸即将某一人脸变为其他的人脸,可以应用于娱乐和影视制作领域。

1.5 人脸妆造编辑

人脸妆造编辑,指的是将一张人像的妆容迁移到任意一张人像照片中,或者进行去妆,这是相对于塑形等更新的美颜技术。

1.6 人脸风格化编辑

人脸风格化即将真实人脸图像生成具有特定风格的图片,主要用于娱乐社交领域。

2. 深度学习人脸编辑核心技术

当前的人脸编辑核心技术以GAN和风格化为基础,本文不 会详解介绍它们,而是直接介绍人脸编辑的相关模型。

2.1 表情编辑

表情的编辑可以广泛应用于娱乐社交领域,对表情进行归一化后也有助于提升大表情图像的关键点定位,人脸识别等算法的性能,下面我们介绍一个代表。

“Geometry Guided Adversarial Facial Expression Synthesis”[1]中提出了一个基于关键点的表情编辑GAN,简称G2-GAN,它将人脸关键点的热图作为条件来控制表情的生成与去除,其结构如下图。

该模型包括两个生成器和两个判别器。生成器GE是一个表情生成器,输入带表情的关键点热图HE和无表情的正脸图IN,生成有表情的图IE。生成器GN则相反,输入带表情的关键点热图HE和有表情的正脸图IE,生成无表情的图IN。在表情生成任务中,HE扮演的是控制幅度的角色,而在表情去除的任务中,HE扮演的则是一个类似于标注的角色。

判别器DE用于判别真实的三元组(IN,HE,IE)和生成的三元组(IN,HE,GE(IN,HE)),DN类似。

整体的损失函数包括4部分:

第一部分是标准的GAN损失,包括生成器损失和判别器损失。

第二部分是像素损失,用于约束生成器的输出结果与输入图的像素平滑,定义如下:

第三部分是与CycleGAN相同的循环损失,从输入图经过两个生成器后构成了一个闭环,定义如下,其中G和G’互为相反方向的生成器。

第四部分是属性保持损失,用于约束身份信息不会被更改。

2.2. 年龄编辑

人脸年龄对于人脸识别等算法构成了挑战,年龄的编辑不仅可以用于娱乐社交领域,对年龄进行归一化后更有助于提升人脸识别等算法等性能,下面我们介绍一个代表。

CAAE模型[2]是一个基于Latent Space的模型,它首先假设人脸图像处于一种高维流形(high-dimensional manifol)中,当图像在这个流形中沿着某个特定方向移动时,年龄就会随着发生自然的变化,不过在高维流形中操作人脸图像是一件非常困难的事情,我们无法直接描绘该轨迹。

因此与大部分生成模型的思路一样,首先需要将图像映射到低维的latent space,得到一个低维的向量,最后再把处理后的低维向量映射回到高维流形中。这两次映射分别由编码器(Encoder E)和生成器(Generator G)实现,模型结构如下图:

Encoder E输入图像,输出特征向量z,之后与n维的年龄标签向量进行拼接作为G的输入,G则输出仿真后的人脸。

判别器包含两个,一个是Dimg,一个是Dz。年龄标签向量填充后与人脸图进行通道拼接输入到判别器Dimg,该判别器判别生成图的真实性,实际上就是年龄段的分类,它包含若干个卷积层和若干个全连接层。Dz则用于约束z是一个均匀分布,它包含若干个全连接层。

CAAE模型的主要问题是生成的结果图缺少细节,并且无法保持人脸的身份属性。

2.3. 姿态编辑

Face Frontalization(FFGAN)[3]是一个早期的姿态编辑GAN,它通过输入人脸和3DMM模型的系数,使用生成器来生成正脸,并使用判别器判断正假,使用人脸识别模型来监督人脸身份属性保持。

在FFGAN模型中,3DMM系数提供了全局的姿态信息以及低频的细节,而输入的大姿态图像则提供了高频细节,整个损失函数包括5部分,除了人脸重建损失,全变分平滑损失,GAN的对抗损失以及人脸识别身份保持损失之外,还添加了一个人脸对称性的约束作为对称损失。

2.4. 妆造编辑

美颜和美妆是人脸中很常见的技术,在网络直播以及平常的社交生活中都有很多应用场景。妆造编辑算法,指的是将一张人像的妆容迁移到任意一张人像照片中,这是美颜算法中比较复杂的技术,下面我们介绍一个典型代表BeautyGAN[4]。

BeautyGAN采用了经典的图像翻译结构,生成器G包括两个输入,分别是无妆图Isrc、有妆图Iref,通过编码器(encoder)、若干个残差模块(residual blocks)、解码器(decoder)组成的生成器G 得到两个输出,分别是上妆图IBsrc、卸妆图IAref,结构示意图如下。

BeautyGAN使用了两个判别器DA和DB,其中DA用于区分真假无妆图,DB用于区分真假有妆图。

除了基本的GAN损失之外,BeautyGAN包含了3个重要的损失,分别是循环一致性损失Cycle consistency loss,感知Perceptual loss,妆造损失Makeup loss,前两者是全局损失,最后一个是局部损失。

为了消除迁移细节的瑕疵,将上妆图IBsrc和卸妆图IAref再次输入给G,重新执行一次卸妆和上妆,得到两张重建图Iresrc和卸妆图Ireref,此时通过循环损失(cycle consistency loss)约束一张图经过两次G变换后与对应的原始图相同。因为生成器的输入包含了一对图,所以与CycleGAN的不同之处在于这里使用了同一个生成器G,该损失用于维持图像的背景信息,具体的损失定义与CycleGAN相同,不再赘述。

上妆和卸妆不能改变原始的人物身份信息,这可以通过基于VGG模型的Perceptual loss进行约束,定义如下:

其中Cl,Hl,Wl分别是网络第l层的通道数,特征图高度和宽度。

为了更加精确的控制局部区域的妆造效果,BeautyGAN训练了一个语义分割网络提取人脸不同区域的掩膜(mask),使得无妆图和有妆图在脸部、眼部、嘴部三个区域需满足妆造损失(makeup loss),妆造损失通过直方图匹配实现,其中一个区域的损失定义如下:

item可以分别表示脸部、眼部、嘴部三个区域,HM是一个直方图匹配操作,M就是图对应的掩膜,表示逐个像素相乘。

整个makeup损失定义如下:

完整的BeautyGAN生成器损失为:

2.5. 换脸算法

换脸算法的流行起源于Deepfakes[5],它是一个开源的项目,同时也是一类算法的统称,其训练流程和测试流程分别如下图:

Deepfakes的训练需要两个域的图像集,称之为A和B。Deepfakes在使用同样的编码器的约束下,分别在集合A和集合B上训练出一个解码器。在使用时从集合A中选择图片,经过编码器提取特征后再输入在集合B上训练完成的解码器,就可以实现将图像A中的人脸换成集合B中的人脸,感兴趣的可以参考开源代码进行尝试

2.6 人脸风格化

以Pix2pix为代表的条件GAN如今已经被广泛应用于图像翻译领域,是当下使用GAN做人脸风格化生成的主流模型架构。由于成对的数据非常难以获取,因此不需要成对数据的CycleGAN有更广阔的应用空间。然而直接采用CycleGAN无法保证生成结果图五官的分布合理性,因为研究人员会对其进行改进,下面我们介绍一个典型代表。

UGATIT[6]使用了注意力机制对关键区域进行学习,生成器和判别器结构如下图。

注意力机制实际上就是全局和平均池化下的类激活图(Class Activation Map-CAM)的使用,输入是下采样的特征图,输出各个通道的权重,实现了特征图下的注意力机制学习,这个注意力机制模型的目标是学习到那些能够区分源域和目标域区别的重要区域。

另外UGATIT大量使用了AdaLIN。在图像风格化领域中,Instance Normalization(IN)和Layer Normalization(LN)相比Batch Normalization是更加常用的技术,IN因为对各个图像特征图单独进行归一化,会保留较多的内容结构,LN与IN相比,使用了多个通道进行归一化,能够更好地获取全局特征,AdaLIN便是结合了两者的特点。

2.7 统一的人脸属性编辑框架

前面针对人脸各个属性的编辑,分别介绍了相关的研究框架,但实际上还可以通过一个统一的框架来完成。Nvidia公司研究人员提出的StyleGAN[7]是一个非常经典的生成网络,它可以精确控制所生成人脸图像的各类属性。

上图展示了StyleGAN和一般GAN的对比,StyleGAN包含了一个映射网络(Mapping network f)和一个生成网络(Synthesis network g)。

映射网络f总共有8层,输入是512维的噪声z,然后是8个全连接层,输出512维的向量w。通过一个网络进行编码后,模型可以生成一个不必遵循训练数据集合数据分布的向量,并且可以减少特征之间的相关性。

w经过8个不同的仿射变换A得到生成网络g中每一个AdaIN层所需要的尺度和偏移,AdaIN层是一个在生成对抗网络和风格化领域中应用非常广泛的归一化层

生成网络synthesis network g是一个分辨率逐级提升的结构,总共有18层,每两层上采样一个尺度,输入大小从4×4变换到1024×1024。其中AdaIN的尺度和偏移可以控制每一层的属性,以生成人脸图像为例,在论文的实验中发现,按照尺度可以分为三种特征。

全局特征:主要是在分辨率不超过8×8的尺度,影响面部姿势、发型、面部形状等特征。

中级特征:主要是在分辨率16×16和32×32的尺度,它影响更精细的面部特征,如发型、眼睛的睁闭等。

细节特征:主要是在分辨率64×64到1024×1024的尺度,它影响眼睛、头发和皮肤等纹理和颜色细节。

因此,通过改变w到AdaIN层的风格矩阵,就可以影响生成人脸的各方面的属性,从而实现人脸的属性编辑。

参考文献

[1] Lingxiao Song, Zhihe Lu, Ran He, Zhenan Sun, Tieniu Tan. Geometry Guided Adversarial Facial Expression Synthesis. CoRR abs/1712.03474 (2018).

[2] Zhang Z, Song Y, Qi H. Age progression/regression by conditional adversarial autoencoder[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 5810-5818.

[3] Yin X, Yu X, Sohn K, et al. Towards large-pose face frontalization in the wild[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 3990-3999.

[4] Li T, Qian R, Dong C, et al. Beautygan: Instance-level facial makeup transfer with deep generative adversarial network[C]//Proceedings of the 26th ACM international conference on Multimedia. 2018: 645-653.

[5] https://github.com/deepfakes/faceswap

[6] Kim J , Kim M , Kang H , et al. U-GAT-IT: Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation[J]. 2019.

[7] Karras T,Laine S,Aila T.A style-based generator architecture for generative adversarial networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2019:4401-4410.

【技术综述】人脸算法新热点,人脸编辑都有哪些方向,如何学习相关推荐

  1. 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)

    文/编辑 | 言有三 有三AI很少写零散的报导,因为我们的文章通常都是提炼与总结,一般遇到一个新方向,找技术综述读一读是最合适的开始,大家也可以拓展一下自己的知识边界,今天总结一下有三AI迄今为止发过 ...

  2. 专访DeepID发明者孙祎:关于深度学习与人脸算法的深层思考

    专访DeepID发明者孙祎:关于深度学习与人脸算法的深层思考 发表于2015-11-18 09:51 作者周建丁 CNN卷积神经网络DeepID人脸算法深度学习孙祎Linkface 摘要:DeepID ...

  3. 「杂谈」计算机视觉人脸图像的十几个大的应用方向,你懂了几分?

    2020-02-16 13:45:50 文/编辑 | 言有三 人脸图像属于最早被研究的一类图像,也是计算机视觉领域中应用最广泛的一类图像,可以说掌握好人脸算法,基本就玩转了计算机视觉领域.在经历了几十 ...

  4. 深度学习笔记 | 第16讲:语音识别——一份简短的技术综述

    原标题:深度学习笔记 | 第16讲:语音识别--一份简短的技术综述 大家好!又到了每周一狗熊会的深度学习时间了.在上一讲中,小编给大家介绍了经典的 seq2seq,以及著名的注意力模型,并且小编在这些 ...

  5. 【技术综述】人脸关键点检测的数据集与核心算法

    人脸关键点检测是诸如人脸识别.表情分析.三维人脸重建等其它人脸相关任务的基础.近些年来,深度学习方法已被成功应用到了人脸的关键点检测,本章将介绍深度学习方法在人脸关键点检测方向的研究.包括人脸关键点任 ...

  6. [人脸算法]技术方向综述

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  7. 指纹、虹膜和人脸之后,身份认证领域的新热点:手背静脉识别

    指纹.虹膜和人脸之后,身份认证领域的新热点:手背静脉识别 手背静脉身份识别作为生物特征识别的方法之一,是近十几年来新发展起来的一种生物特征识别方法,也是目前身份认证领域最关注的热点之一. 手背静脉 手 ...

  8. 【技术综述】人脸表情识别研究

    李振东 北京邮电大学硕士在读,计算机视觉方向 言有三 毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人 作者 | 李振东/言有三 编辑 | 言有三 随着机器学习和深度神经网络两个领域的迅速发 ...

  9. 最新3D人脸技术综述

    点击我爱计算机视觉标星,更快获取CVML新技术 目录 导语 3D人脸基础知识 初识3D人脸 相机模型 3D相机 3D人脸数据 3D人脸相关任务 常见Pipeline 3D人脸识别 3D人脸重建 总结 ...

最新文章

  1. Linux 内核进程管理之进程ID
  2. 怎么用计算机计算出选手最后得分,计算选手最后得分(限制分的值,且最后按n或N键结束,其他键继续)...
  3. lede旁路由作用_关于电容的旁路与去偶总结
  4. 让餐厅放心的云服务-雅座CRM技术解密
  5. 页面升紧急级访问_部落冲突10-13本 发育规划丨升什么性价比最高?
  6. 使用TA-Lib在vn.trader上开发CTA交易策略
  7. WPF中的附加行为简介
  8. 【Netty】EventLoop和线程模型
  9. 计算机科学与技术学了会秃头吗,计算机科学与技术vs 信息与计算科学,秃头专业了解一下?...
  10. Java中null和浮点数相乘_jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等...
  11. Laravel 队列发送邮件
  12. [NOI2015]寿司晚宴——状压dp
  13. python创新创业_云课堂智慧职教创新创业答案超星吧,云课堂智慧职教答案python,云课堂智慧职教创新创业答案...
  14. 基于TI Sitara系列AM3352/AM3354/AM3359的Linux常用开发案例分享
  15. 2018年俄罗斯世界杯之Java数据爬虫(二)
  16. 几个国内的 apple 相关社区
  17. 热力图pycharm
  18. 《编译原理》(三)词法分析
  19. 丹东纺专99届计算机专业,皖南医学院麻醉专业99届校友毕业20周年返校聚会
  20. 2022大数据十大关键词-记录

热门文章

  1. python 读excel pandas_Python使用Pandas读写EXCEL文件教程
  2. python软件测试书籍推荐_自学软件测试看什么书入门比较好呢?
  3. 适用于Mac的16款3D打印机建模软件
  4. Destroy Walls
  5. 【记录】mac使用PyCharm中Python版本不对应的解决方法
  6. 《零基础安装 Oracle 数据库》单机系列 ① 一键快速安装 Oracle 11GR2 数据库
  7. 网络教育统考计算机计算总和,【重要】2018年教育部统考办1号文件,全国网络教育本科统考大变革...
  8. 联想 android 5.1 root,联想Z5 Pro root教程,利用recovery来进行卡刷root包操作
  9. 【重要】寒假期间,您的孩子需要注意这些问题!——心田花开
  10. win2008 r2 搭建FTP服务实现上传文件