深度身份感知的人脸属性转换器
摘要:
本篇论文提出了一个深度卷积网络模型作为身份感知的人脸属性转换器(DIAT)。给定源图片和参照的属性,DIAT旨在生成一个人脸图片(也就是说目标图片),这个图片不仅拥有参照的属性,而且保持与输入图片一致或者相似的身份属性。我们研发了一个两阶段的方案来将输入的图片转换到每个参照的属性标签。一个前馈转换网络首先结合感觉身份感知的损失和基于GAN的属性损失来训练,接着一个人脸增强网络被引入来提升视觉质量。我们近一步定义了属性分辨器的卷积特征图上的感知身份损失,得到了一个DIAT-A模型。我们DIAT和DIAT-A模型可以为很多例如表情转换,配饰移除,年龄演变和性别转换等代表性的人脸属性转换任务提供一个统一的解决办法。实验结果证实了它们的有效性。即使对于一些身份相关的属性(例如性别),我们的DIAT-A能够通过转换属性,与此同时最大化的保留源图片的身份特征,来获得视觉上令人印象深刻的结果。
原文地址:https://arxiv.org/abs/1610.05586
这篇文章提出了用于处理人脸属性转换的一个通用的模型,整个模型如下图所示,包含了转换网络和增强网络两个部分,图片先通过转换网络,获得转换属性后的人脸图片;再通过增强网络,去除噪声,保留细节,从而得到最终的转换图片。网络结构图中命名有部分没有在文章中表现,比如Pixel Loss,但是根据文章可以推测出来这个Loss的具体表示。接下来就分两部分介绍这个生成网络: 网络结构1.Face Transform Network人脸转换网络,对应上图a部分
转换网络的loss的设置是文章思考较多的地方,很多人脸属性转换的问题中,很难有ground truth的结果来用于训练(比如类似于条件GAN的图片对的训练方式),因此需要小心的设计该网络的loss。
文中首先提出的是identity loss(身份损失),这个loss限制的是属性转换前后的图片中,人脸的身份信息不会丢失。对于人脸的身份信息属于高层的语义信息,文章认为并不能从图片的像素角度来定义,因而选择了卷积层的feature map来定义,采用的是VGG网络的第4层和第5层转换前后图片的feature map的平方差作为身份损失,其具体在文中的定义如下:
这样主要约束了转换的图片和转换前的图片在高层的语义信息尽可能一致,由于VGG是人脸识别的网络,那么这个高层的语义信息主要就是指用于人脸识别的高层语义信息,一般就是指身份信息。这里有点不是太清楚的是,为什么作者选择了第4层和第5层作为这个损失的设计。
最后,还有一个感知正则项(Perceptual regularization),用来平滑图片的。一般的文章采用的Total variation Loss来平缓生成的图片,但是文中指出了其在保留图片细节上的不足,进而提出了采用重构网络和去噪网络来平滑生成图片的思路。这部分有点复杂,所以分块来说明:
首先训练一个重构网络g,这个网络的结构与转换网络一致,其训练Loss如下定义,这里的符号定义与identity loss里面的一致,是采用的VGG的卷基层得到的feature map来定义loss的:
有了重构网络,那么重构的图片g(x)与图片x本身的区别,就是图片需要平滑的内容,因而接着引入去噪网络f来减小这一区别,从而达到去噪效果,f的网络结构为一个2层的卷积网络,3*3的核。f网络的训练loss如下:
其中后面f(x)-x部分,是为了防止去噪网络过渡平滑一个本身就很干净的图片。
最终,基于上述两个网络,感知正则项部分定义如下,T为转换网络,f为去噪网络: 以上就是转换网络的loss设计部分,最终转换网络的训练Loss为: 除此之外,转换网络并不是一次性完成训练的,其训练的过程分为预训练和训练两个阶段,在预训练阶段,网络的两个部分,一个图片转换网络,一个分辨器都分别进行了不同的预训练。对于图片转换网络,在预训练阶段将其看做一个重构网络,那么输入图片x,转换后的图片T(x),两者之间的差异要尽可能少,因而其预训练阶段的loss为: 对于分辨器,在预训练阶段将其看做一个分类器训练,分类输入图片的属性标签,因而其训练的Loss为:
在最终的训练部分,采用ADAM训练器,在0.0001学习率下进行学习。
-
Face enhancement networks(人脸增强网络)
对于局部属性的人脸转换,对于非属性区域其实应该是保持不变的,文章中首先利用文章[1]中的68个人脸特征点,对于不同的属性定义了由这些特征点组成凸包构成的属性相关区域,由此得到属性的掩码m,凸包区域内,掩码为1,其余为0。因此,此时的图片分为两个部分,一个是属性无关部分,其掩码为0,应该要求其和原图尽可能相似,因此这部分loss是增强图片与转换图片的差值的平方;另一部分是属性相关部分,要求的是增强图片在卷积的特征层面上相似,或者尽可能一致,因此这部分的loss是增强图片与转换图片的特征的差值的平方,这里描述的loss定义总结如下:(其实在论文人脸去遮挡的GAN[2]中有用到类似的不变区域的概念,不过那篇文章中不变区域直接借助掩码的方式,由原图直接生成,而变化区域才采纳GAN生成的内容)
由图片转换网络生成的图片可能存在视觉上比较差的问题,因而文中加入了一个人脸增强网络,来提高生成图片的质量。由于属性转换有些属性是局部的,比如张嘴,去除眼镜等等,而有些属性是全局的,比如转换性别,这些局部属性部分存在一些特点,因此对于局部的属性和全局的属性会采用不同的网络进行人脸增强的部分。
局部属性:
全局属性:
对于全局属性很难定义出不变的区域,因而增强部分不应从保留和非保留部分下手。增强网络实际在做的是去除生成图片中的噪声和伪造痕迹,这在早期的图片处理中采用高斯模糊就可以做到,但是高斯模糊后的图片本身也比较模糊,因而对于全局的增强网络是尽可能是的高斯模糊后的图片与模糊前的图片一致,因而对于全局属性的增强网络的loss为:
其中B(x)表示高斯模糊后的x,E为增强网络。
这两个部分的输入差别是,对于局部属性的增强网络,输入是原图和转换后的图片;对于全局属性的增强网络,输入是转换后的图片。
这就是这篇文章中提出的第一个被称作DIAT的模型,在这个模型中,身份保持的Loss依赖于VGG网络卷积层中提取的特征定义,文中认为这样额外的提取并不高效,同时属性分辨的分辨器也可能难以收敛(两者之间不是因果关系),因此,文中觉得可以将身份保持和属性分辨相联系起来,利用分辨器的卷积层定义,这样对于分辨器提供了额外的监督信息,同时身份保持的Loss不需要引入额外的网络来定义。这样定义的身份保持loss被称作自适应感知身份损失(Adaptive perceptual identity loss),其定义类似于之前的身份loss:
采用的自适应感知身份损失的模型被称作DIAT-A,其训练的总的Loss如下定义:
在DIAT-A模型中,分辨器的学习率降为0.00001,但是文中指出这么低的学习率,训练中DIAT-A收敛速度依旧比DIAT快。
实验部分
实验的比较部分都是采用的直观的图片比较方式来进行,整个实验部分设计了多组对比。
局部属性转换实验部分
测试了三种局部属性转换,嘴巴张开,嘴巴闭上,眼镜移除。
全局属性转换实验部分
测试了两种全局属性转换,性别和年龄。对于性别的转换,只考虑男变女;对于年龄转换,只考虑年龄大的变年轻的。
上述两部分的实验,都与CNIA[3]进行了比较,在眼镜移除的任务上,与语义去除[4]进行了比较。
除此之外,文章比较了有与没有人脸增强网络之间结果的区别;比较了用自适应感知身份Loss的DIAT-A模型与DIAT模型之间结果的区别;探究了仅有属性loss产生图片与之前产生图片的区别;最后比较了没有感知正则项的DIAT模型与没有增强网络的DIAT模型之间结果的区别。
最后总结下,本篇文章提出的是一个两阶段的人脸属性转换的通用框架,第一阶段采用GAN的架构完成图片的转换部分,第二阶段分两种不同属性,对于转换后的图片进行近一步加工增强,来获取最终属性转换图片。本篇文章运用GAN的生成能力,同时增加了其他方法,来提升图片生成的质量,这可以说是运用GAN的另一个角度,其他文章中也有用其他模型生成图片(比如autoEncoder),然后采用GAN的架构或者对抗Loss来近一步优化生成图片。
[1] Zhang Z, Luo P, Chen C L, et al. Facial Landmark Detection by Deep Multi-task Learning[C]// European Conference on Computer Vision. 2014:94-108.
[2] Zhao F, Feng J, Jian Z, et al. Robust LSTM-Autoencoders for Face De-Occlusion in the Wild[J]. IEEE Transactions on Image Processing, 2016, PP(99):1-1.
[3] Li M, Zuo W, Zhang D. Convolutional Network for Attribute-driven and Identity-preserving Human Face Generation[J]. 2016.
[4] Yeh R, Chen C, Lim T Y, et al. Semantic Image Inpainting with Perceptual and Contextual Losses[J]. 2016.
网友评论