Hallucinating Very Low-Resolution Unaligned and Noisy Face Images by Transformative Discriminative Autoencoders
Xin Yu, Fatih Porikli
这篇文章是Xin Yu发表在2017年CVPR上的,主要亮点就是论文提出的方法TDAE的训练数据不再需要是对齐的和已经去除噪声的,也不需要估计噪声等级,依旧可以取得很好的8倍超分辨率效果。
论文的工作是这样的,先将低分辨率图像LR输入到一个解码器中得到一个HR1,以实现对图像的上采样和去噪功能,然后再将HR1输入到一个编码网路将其投影到低分辨率的对齐无噪声的网络LR1(直白地说,这一部分的编码器的功能就是下采样HR1并且将其对齐。),最后再将得到的LR1输入到另一个解码网络(该解码网络与上一个解码网络具有同样的网络结构)得到对齐的无噪声的超分辨率图像SR。整个网络结构称为TDAE。还有很重要的一点就是论文的解码器的结构类似于上一篇URDGN的结构,是由超分辨率网络和判别器两部分组成的。
就是一个超分辨率下采样
超分辨率的过程,但是有两个问题(1)第一次超分辨率之后的结果再下采样然后再超分辨率总觉得是在做重复的工作(2)如果这样的效果好,是不是可以理解为继续执行下采样
超分辨率
下采样
超分辨率也是有可能获得更好地结果的。
网络结构
解码器DEC1
解码器由两部分组成,上采样部分TUN和判别器DN,红色框的是上采样网络,蓝色框是判别器部分。然后注意到上采样网络的一开始是两个卷积层,而不是上来就是反卷积层,论文里说明了这两个卷积层存在的意义就是去噪。然后中间有两个STN,这两个就是用来对齐图像的。论文还强调了STN对齐的是特征图。解码器的工作就是将LR输入到TUN然后得到一个临时的上采样图像HR1,再将HR1和真实HR输入到DN中去区分。TUN和DN的对抗让双方都得到发展。
编码器ENC
经过DEC1,我们得到了一个HR1,虽然DEC1对图像进行了处理,去除了一部分噪声,得到的HR1也有一些高频细节,而且是基本对齐的,但还具有一些伪影和噪声,这时想法就是把图像在下采样一次,将它的噪声和伪影减少一下,然后再用这个下采样的结果去做超分辨率。这里ENC的工作就是对图像进行下采样。
上图是ENC的网络结构。
解码器DEC2
DEC2和DEC1的网络结构一样。
训练细节
首先TDAE的网络分为三个部分其训练也分为三个阶段,先用LR训练DEC1得到HR1,再用HR1和LR训练ENC得到LR1,再用LR1和HR训练得到超分辨率结果SR。
DEC1的训练
数据对的形成,h指高分辨率图像,l是其对应的低分辨率图像,这里为了得到不对齐的低分辨率图像,论文先对h进行了旋转、放缩等变换,在对变换后的图像进行下采样,加高斯噪声,然后得到l。
DEC1的目标是希望得到的HR1与HR接近,于是TUN的损失函数:
其中表示DEC1得到的结果,s是TUN的参数。
DEC1判别器的损失函数:
t是DN的参数。
同URDGN一样,TDAE的参数更新方法为RMSprop。对t的更新公式:
其中r是学习率,是延迟率,
设置为
而TUN的参更新叫复杂些,因为TUN的损失函数除了考虑l2范数以外,还要考虑判别损失,s的更新如下:
其中是l2范数损失和对抗损失的权衡权重。其实写成整体损失函数的形式:
这里设置为0.01,随着迭代次数增加,得到的结果会与真实人脸越来越像,于是可以逐渐减弱判别器的影响,于是
的值是这样随着迭代次数更新的:
ENC的训练
损失函数就是简单:
是指ENC得到的低分辨率图像。
学习率设置为:0.001,每经过一个epoch,学习率都乘上0.99。设置为0.01,
实验
数据集
CelebA数据集,随机选取30000张图片裁成的大型,28000张用来训练,2000张用来测试。在DEC1的低分辨率图像的获取中,高斯噪声均值为0,方差为0.1。
结果