武广作者合肥工业大学硕士生学校图像生成研究方向

CVPR 2019 | 无监督领域特定单图像去模糊

图像模糊是影响图像质量的重要因素,显着降低了许多计算机视觉应用的性能,例如物体检测和人脸识别。随着深度神经网络的发展,计算机视觉领域的难题被一个个解决,单纯依靠先验核去实现图像去模糊的技术已经渐渐被取代。

本文将针对 CVPR2019 Unsupervised Domain-Specific Deblurring via Disentangled Representations 一文进行分析,梳理一下基于深度神经网络下图像去模糊的实现方法。

论文引入

图像的模糊严重影响图像的本身质量,同时在进行图像的识别和图像中物体识别都会产生影响。图像去模糊旨在从相应的模糊图像中恢复潜在的清晰图像。

大多数传统方法将图像去模糊任务公式化为模糊核估计问题,在过去的十年中,已经开发了各种自然图像和先验核来规范潜在锐利图像的解空间,包括重尾梯度先验,稀疏核先验梯度先验,归一化稀疏性和暗通道。

然而,这些先验是通过有限的观察来估计的,并且不够准确。结果,去模糊的图像通常欠去模糊(图像仍然模糊)或过度去模糊(图像包含许多伪像)。 

近年来深度神经网络和 GAN 的巨大成功,已经提出了一些基于 CNN 的方法用于图像去模糊,例如 Nimisha 在 ECCV 2018 发表的 Unsupervised Class-Specific Deblurring [1] 是一种基于 GAN 的无监督图像去模糊方法,在模型上增加了重复损失和多尺度梯度损失。虽然它们在合成数据集上取得了良好的性能,但它们对一些真实模糊图像的结果并不令人满意。

另一类方法是基于现有的图像到图像的模型,例如 CycleGAN [2] 这类无监督端到端的模型,然而,这些通用方法通常编码其他因素(例如:颜色、纹理)而不是将信息模糊到发生器中,因此不会产生良好的去模糊图像。

文章对这些方法进行了一个可视化结果比对,同时也是展示了自己模型的优越性:

上图最右侧就是这篇文章的实验效果,可以看出对比已有的基于深度神经网络的去模糊模型还是展示了不错的实现效果的。这些效果的实现得益于文章提出了一种基于解缠表示的无监督域特定图像去模糊方法,通过将模糊图像中的内容和模糊特征解开,以将模糊信息准确地编码到去模糊框架中。

我们后续再详细分析,这里总结一下文章的创新和优势所在:

  • 内容编码器和模糊编码器将模糊图像的内容和模糊特征区分开,实现了高质量的图像去模糊;

  • 对模糊编码器添加 KL 散度损失以阻止模糊特征对内容信息进行编码;

  • 为了保留原始图像的内容结构,在框架中添加了模糊图像构造和循环一致性损失,同时添加的感知损失有助于模糊图像去除不切实际的伪像。

模型详解

我们还是先通过模型框架图去理解文章设计的思路:

我们先把模型中的组间介绍清楚,由于模型的循环一致性设计,网络的左右是基本对称的,我们对左侧组间交代下。s 代表清晰的真实图像,b 代表模糊的真实图像,是清晰图像的内容编码器(可以理解为图像颜色、纹理、像素的编码器),对应的是模糊图像的内容编码器,是模糊图像的模糊编码器(仅用来提取图像的模糊信息),是模糊图像生成器,是清晰图像生成器,是生成的模糊图像,是生成的清晰图像。经过循环的转换,ŝ 是循环生成的清晰图像,b̂ 是循环生成的模糊图像。结合上下标和模型结构,这些组间的名称还是很好区别的。

看了这个模型,大家是不是有一些疑问,我们的目的是实现图像的去模糊,为什么要添加模糊编码器?为什么还要主动去生成模糊的图像?怎么保证模糊图像的内容编码器真的提取到图像的内容信息?为什么模糊编码器要同时作用在上?

这些问题正是这篇文章区别于已有模型的关键,我们按照文章思路一步步去分析。

文章的一大创新就是模糊编码器的设计,它主要的作用是用来捕获模糊图像的模糊特征,如何去保证这个模糊编码器是真的提取到模糊图像的模糊特征了呢?

作者就采用了迂回的思路,既然清晰的图像是不含模糊信息的,如果清晰的图像通过结合模糊编码器模糊特征去生成出模糊图像,是不是可以说,模糊编码器是在对清晰图像做模糊化处理,这个模糊化的前提是什么?那就是模糊编码器确实提取到了图像的模糊特征,所以说由清晰图像生成模糊图像也保证了模糊编码器是对图像的模糊信息进行编码的作用。

同时,由清晰图像到模糊图像的生成过程中,清晰图像的内容编码器我们是有理由相信它是提取到了清晰图像的内容信息(因为清晰图像并不包含模糊信息)。

文章为了保证模糊图像的内容编码器是对模糊图像的内容进行编码,文章将清晰图像内容编码器和模糊图像内容编码器强制执行最后一层共享权重,以指导学习如何从模糊图像中有效地提取内容信息。

为了进一步尽可能多地抑制模糊编码器对内容信息的编码,通过添加一个 KL 散度损失来规范模糊特征的分布,使其接近正态分布 p(z)∼N(0,1)。这个思路和 VAE 中的限制数据编码的潜在空间的分布思路是相近的,这里将模糊编码器的编码向量限制住,旨在控制模糊编码器仅对图像的模糊信息进行编码。

理清了上面的设计思路,这篇文章的实现就已经基本介绍完毕了。由模糊图像去模糊到清晰图像的过程中,将模糊图像内容编码和模糊编码送入清晰图像生成重构得到去模糊的清晰图像,清晰图像到模糊图像是为了优化模糊编码和模糊图像的内容编码的作用。

通过循环一致性,进行进一步的还原保证模型的鲁棒性。核心的损失是图像生成在 GAN 的对抗损失,结合感知损失达到图像下一些伪影的优化。

模型损失函数

本部分是对模型实现的补充,在上一小节中,也是大致上分析了各类损失的作用,这里做一个简短的展开。

首先是对模糊编码的隐空间分布进行约束,这个约束通过 KL 散度去实现,这个过程和 VAE 的思路是一致的:

这里的 p(z)∼N(0,1),具体的损失可进一步写为: 

此时,zb 可表示为 zb=μ+z∘σ。

接下来就是 GAN 的那一套对抗损失,这里写一下清晰图像生成的判别器损失,模糊图像的是一致的:

循环一致损失参考的是 CycleGAN [2]:

感知损失的加入,作者是加在预训练 CNN 的第 1 层的特征,实验中加在 ImageNet 上预训练的 VGG-19 的 conv3,3。

感知损失中使用模糊图像 b 而不是锐利图像作为参考图像有两个主要原因。首先,假设 b 的内容信息可以由预训练的 CNN 提取。其次,由于 s 和 b 未配对,因此在 s 和之间应用感知损失将迫使对 s 中的无关内容信息进行编码。值得一提的是,和 s 上没有添加感知损失。这是因为在训练期间没有在中发现明显的伪像。

整个模型总的损失可写为:

实验

文章的网络的设计结构参考了 Diverse image-to-image translation via disentangled representations [3]。内容编码器由三个卷积层和四个残差块组成。模糊编码器包含四个卷积层和一个完全连接的层。

对于发生器,该架构与内容编码器对称,具有四个残差块,后面是三个转置的卷积层。判别器采用多尺度结构,其中每个尺度的特征图经过五个卷积层,然后被馈送到 sigmoid 输出。

采用 Adam 优化损失,对于前 40 个时期,学习速率最初设置为 0.0002,然后在接下来的 40 个时期使用指数衰减。超参上 λadv=1, λKL=0.01, λcc=10, λp=0.1。 

实验数据集采用三种数据集:CelebA 数据集,BMVC 文本数据集和 CFP 数据集。

CelebA 数据集包含超过 202,000 个面部图像,文章设置了清晰图像 100k,模糊图像 100k,测试图像 2137。BMVC 文本数据集由 66,000 个文本图像组成,分配方式类似于 CelebA 数据集。CFP 数据集由来自 500 个主题的 7,000 个静止图像组成,并且对于每个主题,它具有正面姿势的 10 个图像和具有专业姿势的 4 个图像。 

对于 CelebA 和 BMVC Text 数据集,我们使用标准的 debluring 指标(PSNR,SSIM)进行评估。文章还使用去模糊图像和真实图像之间的特征距离(即来自某些深层网络的输出的 L2 距离)作为语义相似性的度量,因为实验发现它是比 PSNR 和 SSIM 更好的感知度量。

对于 CelebA 数据集,使用来自 VGG-Face 的 pool5 层的输出,对于文本数据集,使用来自 VGG-19 网络的 pool5 层的输出。对于文本去模糊,另一个有意义的度量是去模糊文本的 OCR 识别率。在可视化模型和定量对比上,文章对比了各类模型的去模糊的效果:

实验也对比了各个组间的有无对实验结果的影响:

不仅仅在人脸图像去模糊上,在文本去模糊上也展示了不错的实验效果:

总结

文章提出了一种无监督的领域特定单图像去模糊方法。通过解开模糊图像中的内容和模糊特征,并添加 KL 散度损失以阻止模糊特征对内容信息进行编码。为了保留原始图像的内容结构,在框架中添加了模糊分支和循环一致性损失,同时添加的感知损失有助于模糊图像去除不切实际的伪像。每个组件的消融研究显示了不同模块的有效性。

文章的创新之处正是内容编码器和模糊编码器的设计和应用,尝试将内容和模糊信息分离,这对图像到图像的工作具有一定的指导意义。

参考文献

[1] T. Madam Nimisha, K. Sunil, and A. Rajagopalan. Unsupervised class-specific deblurring. In Proceedings of the European Conference on Computer Vision (ECCV), pages 353–369, 2018. 

[2] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. In Proceedings of International Conference on Computer Vision (ICCV), 2017. 

[3] H.-Y. Lee, H.-Y. Tseng, J.-B. Huang, M. Singh, and M.-H.Yang. Diverse image-to-image translation via disentangled representations. In Proceedings of European Conference on Computer Vision (ECCV), pages 36–52. Springer, 2018.


PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论CVPR 2019图像处理深度神经网络无监督学习
51
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

图像生成技术

图像生成(合成)是从现有数据集生成新图像的任务。

物体识别技术

计算机视觉领域的一个分支,研究物体的识别任务

CycleGAN技术

GAN的一个变种

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
请问文章有代码吗🙈