Self2Self With Dropout: Learning Self-Supervised Denoising From Single Image【使用单张图像进行自监督学习去噪】


Self2Self With Dropout: Learning Self-Supervised Denoising From Single Image【使用单张图像进行自监督学习去噪】

Yuhui Quan, Mingqin Chen, Tongyao Pang and Hui Ji


一、相关概念

首先来回顾下机器学习中两种基本的学习范式,一种是监督学习,一种是无监督学习(林轩田课程中把机器学习范式分为监督学习、半监督学习、无监督学习以及强化学习)

1.1 监督学习(Supervised learning)

监督学习利用大量的标注数据来训练模型,模型的预测和数据的真实标签产生损失后进行反向传播(计算梯度、更新参数),通过不断的学习,最终可以获得识别新样本的能力。

1.2 无监督学习(Unsupervised learning)

无监督学习不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系,比如聚类相关的任务。

无监督学习中被广泛采用的方式是自动编码器(autoencoder)。

有监督和无监督最主要的区别在于模型在训练时是否需要人工标注的标签信息。

1.3 自监督学习(Self-Supervised learning)

自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。(也就是说自监督学习的监督信息不是人工标注的,而是算法在大规模无监督数据中自动构造监督信息,来进行监督学习或训练。因此,大多数时候,我们称之为无监督预训练方法或无监督学习方法,严格上讲,他应该叫自监督学习)

对于自监督学习来说,存在三个挑战:

  • 对于大量的无标签数据,如何进行表征/表示学习?
  • 从数据的本身出发,如何设计有效的辅助任务 pretext?
  • 对于自监督学习到的表征,如何来评测它的有效性?

二、研究概述

2.1 研究背景

在过去的几年里,有监督的深度学习已经成为图像去噪的一个强大工具,它使用外部数据集的噪声/干净图像对来训练去噪网络。

最近,有一些工作,可以使用一组外部数据集的噪声图像来训练去噪网络。

2.2 研究现状与问题

使用外部数据集的噪声/干净图像对来训练去噪网络的缺陷如下:

  • 不适用于有高质量数据集需求的情况
  • 收集大量有用的干净/噪音图像对是代价昂贵和困难的

使用一组外部数据集的噪声图像来训练去噪网络的缺陷如下:

  • 为了获得良好的性能,用于训练的外部图像应该在图像内容和噪声统计方面与正在处理的噪声图像高度相关。 收集这些外部图像在实践中可能是昂贵的或具有挑战性的

因此,开发一种对训练样本没有先决条件的强大的去噪神经网络具有重要的价值,即去噪网络仅在输入图像本身上学习。但是目前没有令人满意的解决方案。

2.3 研究内容

本文提出了仅使用单张输入数据集的噪声图像进行训练的自监督学习方法,因此该方法的数据集收集是没有上文提到的先决条件的。

首先,因为只使用了单张噪声图像,所以进行图像增广来扩大数据集是必要的。因此,选择对输入图像进行伯努利采样得到一些实例;

由于输入数据集的骤减,会引起过拟合问题和方差暴增问题,因此本文使用基于Dropout的集成方案来解决该问题,即 dropout-based ensemble

之后将增广后的训练数据集输入去噪网络中进行自监督学习式训练,具体如何进行自监督学习训练,可看“3.3 训练方案”章节。

2.4 研究结论

广泛的实验表明,使用本文所提出的 Self2Self 自监督学习方案训练的去噪神经网络的性能比其他基于非学习的去噪器和单图像学习的去噪器要好得多。 它甚至接近那些基于大量数据集的深度学习方法。

消融实验表面,本文使用的dropout、ensemble、伯努利采样、部分卷积,都对去噪网络的效果有着或多或少的影响。


三、研究方法

3.1 模型

模型使用的是基于编码-解码器的架构,模型如下:

在这里插入图片描述
说明:

编码器部分

输入图像:H × W × C;
1、编码器首先将图像映射到具有部分卷积(PConv)层:H×W×48
2、6个编码器块处理(EBs)
3、前5个编码器快由Pconv、LRelu、MaX Pooling层组成,第6个没有MaX Pooling层。通道数固定为48
输出图像:H/32 × W/32 × 48

解码器部分

输入图像:H/32 × W/32 × 48
解码器包含五个解码器块(DBs),其中,前4个解码器块由上采样层、级联操作、两个标准卷积层、LReLu层组成;最后1个解码器块包含三个具有LReLu的DropOut卷积层,用于将特征立方体映射回大小为H×W×C的图像
输出图像:输出图像:H × W × C

3.2 伯努利采样

伯努利采样:假设y为原图像,y^为采样结果,且图像的像素点满足伯努利分布,即非0即1(非噪声即干净),因此指定采样概率p(本文使用的概率p为0.3),对图像进行随机采样,最终会使得部分像素值置为0,其余像素值保持不变。

在这里插入图片描述
具体的采样方案如下:

其中bm是二元伯努利矩阵,即由0或1构成的矩阵。将其与原图像y进行点积运算,即可得到采样结果y^。此外需要注意,需要使用 (1 - bm)与原图像进行点积来计算一个变量 y-,这个y-与采样结果相比是完全相反的,即置为0的像素点恢复原值,未被置0的像素点置为0。

这个 y- 在损失函数中会使用到。

在这里插入图片描述

3.3 训练方案

本文的训练方案的核心是损失函数的设计。

开篇提到,自监督学习与监督学习的区别在于自监督学习是从无监督数据中挖掘自身的监督信息。

深度学习方法的损失函数一般是衡量预测值和真实值之间的误差,但是在这篇文章的情况下,是不存在真实值的,也就是没有直接存在的监督信息,需要我们自己去挖掘。因此,本文使用刚才提到的 y- 来作为监督信息,代替真实值。

因此,损失函数为:
在这里插入图片描述

此外,本文提出,上述损失函数的设计与使用真实值的损失函数是有很强的相关性的,特别是有很多的数据集被用于训练时。

注意,为了进一步改进,还通过水平、垂直和对角线翻转输入图像等传统的图像增广方式来实现图像增广(数据增强)。

3.4 去噪方案

从训练的NN中使用DropOut生成多个NN。再将图像y输入到这多个NN中,分别得到不同的恢复图像,进行平均,得到最终结果x*

在这里插入图片描述


四、研究结果

这篇文章分别在三个不同去噪任务上进行了实验:分别是盲高斯去噪、真实世界噪声图像去噪和盐尖噪声去除。

部分参数设定:

  • 卷积核大小为3×3;
  • 步长为1,长度为2的零填充;
  • 每个LRELU的超参数设置为0.1;
  • DropOut概率设置为0.3;
  • 伯努利抽样的概率设为0.3;
  • 学习率初始化为10−5;
  • 训练次数:4.5×105个训练
  • 在测试期间,使用DropOut 50 次来生成最终结果。

衡量指标:

  • PSNR(dB):峰值信噪比,一种评价图像的客观标准。原图像与被处理图像之间的均方误差相对于(2n-1)2的对数值。PSNR值越大,就代表失真越少。
  • SSIM(1.00E-1):结构相似性,是一种衡量两幅图像相似度的指标。当两张图像一模一样时,SSIM的值等于1。

研究结果如下:

4.1 盲高斯去噪

在这里插入图片描述
实验结果:

DnCNN是BSD68中的表现最好的方法。

本文的方法比用无组织训练样本训练的N2V和N2S性能要好得多。 一个原因可能是无组织的训练样本没有为正在处理的噪声图像提供准确的真相信息;它可能会在神经网络中引入误导性的无关特征。

本文的方法在许多情况下甚至优于N2N和DnCNN,尽管它们是在带有配对样本的数据集上训练的,而本文的方法仅用单个噪声图像进行训练

4.2 真实世界噪声图像去噪

在这里插入图片描述
在这里插入图片描述
实验结果:
除了CDnCNN外,本文方法明显优于其他基于深度学习的方法,无论是基于单个图像的方法还是基于数据集的方法。

注意:

我们的定量结果非常接近CDnCNN,在一些图像上,我们的结果甚至更好。

我们取得优异结果的原因可能是训练样本的内容相当多样化。

4.3 盐尖去噪

在这里插入图片描述

实验结果:显著优于CSC、DIP

4.4 消融实验

实验说明:

  • dropout:训练时不使用dropout,其余参数维持不变
  • ensemble:测试时不使用dropout,其余参数维持不变
  • sampling:不使用伯努利采样,其余参数维持不变
  • PConv:不使用部分卷积而是用全卷积,其余参数维持不变

实验结果:

在这里插入图片描述
由此可见,dropout、ensemble、伯努利采样、部分卷积都对最终的模型效果有着或多或少的影响。


五、展望

广泛的实验表明,使用本文所提出的 Self2Self 自监督学习方案训练的去噪神经网络的性能比其他基于非学习的去噪器和单图像学习的去噪器要好得多。 它甚至接近那些基于大量数据集的深度学习方法。 本文的研究结果有助于进一步研究图像恢复中的自监督学习技术

猜你喜欢

转载自blog.csdn.net/qq_40585800/article/details/109103066