一、摘要
在本文,提出了一种高效的脸去模糊算法,通过利用经CNN网络训练得到的语义信号。 因为脸部图像具有高度的结构性并且拥有一些关键的语义特征(例如眼和嘴巴),所以脸部的语义信息为图像的恢复提供了一个很强的先验。因此我们:
(1)合并全局语义先验作为输入并且在多尺度CNN網絡中强加一个局部结构损失去正则化输出
(2)使用感知损失和对抗损失训练网络去生成清晰的结果并且开发一种增量训练策略处理自然地随机模糊核。
二、介绍
虽然利用图像先验对自然图像的去模糊是有效的,(假设图像的一些先验特征)隐含的假设可能不适应于特定种类的图像,例如脸部、文本和低照明度的图像。因此大量的方法利用特定种类的先验或者策略,例如L0强度用于文本图像、亮度条纹用于低亮度图像。然而这些方法基于MAP(最大后验概率)框架,由于对潜层图像和模糊核的迭代优化带来严重的计算损失。较长执行时间限制了资源敏感平台上的应用程序。
(1) 首先使用一个脸部语义分析网络生成输入模糊图像的语义标签。
(2) 脸去模糊网络将模糊图像和语义标签作为输入由粗到细(多尺度)的去恢复一个清晰图像。为了使生成图像具有更好的细节,我们在脸部的重要部分加了一个局部结构损失。
(3)为了解决未知模糊核的问题,使用增量训练的方式训练CNN网络——首先使用小的模糊核训练网络,然后依次合并大的模糊核。
三、脸部语义去模糊
本节主要描述前面叙述的使用语义标签对面部进行去模糊的具体方法。
3.1 脸去模糊网络
我们使用和Nah在[28]中相同的网络,但是有一些不同的地方。首先因为脸部图像的空间分辨率为128 X 128 或者更小,我们只使用两个尺度。其次我们使用更少的残差网络(从19变为6)并且在第一个卷积层使用更大的滤波器尺寸(11 X 11)来增加网络的感受野。最后我们使用脸部语义解析得到的附加输入作为全局先验,并且在每一个尺度的输出上强加一个局部结构损失。过程如下:
(1)首先给定一个模糊图像,使用图a 所示的脸部解析网络生成语义标签。
(2)联合语义标签的映射层和模糊图像作为整体部分输入到脸部去模糊网络中。因此去模糊网络的第一个尺度的输入图像的分辨率为64 x 64 并且总共有14个通道(3个RGB通道和11个语义概率通道)。
(3)网络第一个尺度的输出的去模糊图像经过上采样生成128 x 128的图像,并且和相同大小的模糊图像(128 x 128)以及语义标签(128 x 128模糊图像经过语义解析网络生成的语义标签)叠加输入到第二个尺度的网络中去。因此第二个网络的分辨率为128 x 128并且有17个信道,包括上采样的清晰图像(3)、第二个尺度的模糊图像(3)、第二个尺度的模糊图像生成的语义标签(11)。
3.2 损失函数及完成细节
(1)局部结构约束:我们使用基于的像素损失函数L1作为去模糊网络的内容损失:
其中P为面部解析网络、G为去模糊网络、B为模糊图像、I为清晰图像。
然而因为关键结构比较小(脸、鼻子),仅仅使用内容损失函数并不能很好地恢复。因为人类的视觉对关键结构的伪影比较敏感,因此我们结合了局部结构损失:
在这里MK代表第k个关键结构的structural mask(目标检测用到的 关键点检测),⊙代表逐个元素相乘。我们应用局部结构损失函数到眉毛、鼻子、嘴唇和牙齿上。局部结构损失在使网络恢复更多的细节信息在这些关键结构上。
(2)生成逼真的人脸图像:因为以上两个损失函数会导致过于平滑的结果因此使用感知损失和对抗损失以优化去模糊网络去生成逼真的图像:
感知损失:用来测量一个预训练损失网络的高维特征空间(从整体考虑恢复图像)如VGG16网络。 给一个输入图像 x,公式如下:
其中l(x)代表了第l层的损失函数。(感知损失参考)
对抗损失:将脸部去模糊网络作为生成器,并且创建一个判别器(在DCGAN的基础上),损失公式为:
判别器输入为128 x 128的图像,有6个卷积层和一个RELU激活层。最后为一个sigmoid函数输出一个逼真图像。
总的损失函数:我们应用内容损失和局部结构损失在所有的尺度,而感知损失和对抗损失只在最精细的尺度下应用。
四、结果对比
(1)加各个损失函数结果对比:可以看到在不加对抗损失的情况下效果最好
(2)与其他先进方法的对比:可以看到效果还是很好的。