摘要
本文研究了单幅图像去雾中两个具有挑战性但较少涉及的问题,即如何使深度学习在没有对地面真实干净图像(无监督)和图像集合(未训练)进行训练的情况下实现图像去雾。无监督的神经网络将避免收集模糊-干净图像对的密集劳动,并且未训练的模型是“真正的”单个图像去雾方法,其可以仅基于观察到的模糊图像本身而不使用额外的图像来去除模糊。受层分解思想的启发,我们提出了一种新的方法,称为你只看你自己(YOLY ),这可能是第一个无监督和未经训练的神经网络图像去雾。简而言之,YOLY使用三个联合子网将观测到的模糊图像分成几个潜在层,即场景辐射层、透射地图层和大气光照层。之后,这三层以自我监督的方式进一步合成模糊图像。多亏了YOLY无人监管和未经训练的特点,本文的方法避免了深度模型在模糊-干净图像对或者大规模数据集上的训练。从而避免大规模的数据收集和领域转移问题。
2提出的方法
给定一个模糊的图像作为输入,我们的目标是在不使用图像内容本身以外的信息的情况下恢复干净的图像J(x)。我们方法的基本思想是使用三个联合子网将分解成三层组件,如图2所示。更具体地,仅同时向清晰图像估计网络(J-Net)、透射图估计网络(T-Net)和大气光照估计网络(A-Net)馈送。然后,通过大气散射物理模型,将两者的输出进一步合并,在YOLY顶部进行重建。以这种方式,以无监督的方式学习整个模型,并且以端到端的方式优化这些子网。形式上,在YOLY的顶层,我们的目标是最小化以下损失:
其中|| || p 表示p-给定矩阵的范数。在本文中,我们简单地采用Frobenius范数。I(x)的计算方法是将三个子网络的输出通过下式进行组合
Lrec损失旨在约束包括子网在内的整个网络,以便在层解开之后很好地重建模糊图像。换句话说,它通过引入雾度产生过程来引导层的分解和组合。
2.1J-Net
J-Net旨在从模糊的图像中预测干净的图像。如图(2)所示,J-Net采用非退化架构,也就是说,我们的J-Net没有实现下采样操作,从而防止了J(x)的细节的损失。更具体地说,J-Net只由卷积层、批量归一化层和LeakyReLU激活组成。在最后一层,我们选择sigmoid函数将输出归一化为[0,1]。
为了监督J-Net,我们提出以下损失函数为了监督J-Net,我们提出以下损失函数
其中V(fJ(x))表示J(x)的亮度,S(fJ(x))表示J(x)的饱和度。
干净图像的深度与干净图像的亮度和饱和度之间的差正相关。为了以无监督的方式利用该先验,我们将该先验改写为上述公式,即,在预测的J(x)中值和饱和度之间的差应该尽可能小。
2.2 T-Net
由于干净的背景和透射图依赖于输入,我们对J-Net和T-Net采用类似的网络结构。他们之间只有两点不同。具体来说,J-Net的输出层具有三个通道,而T-Net的输出层为了计算效率只有一个通道。另一方面,T-Net不使用显式损失,只利用从YOLY顶层反向传播的自我监督来指导优化.
2.3 A-Net
A-Net旨在从观测到的图像中估算全球大气光照。由于全局大气光照与图像内容无关,具有全局性质,因此可以合理地假设它是从潜在高斯分布中采样的。因此,我们把A的学习重铸为变量推理问题。具体来说,A-Net由编码器、对称解码器和中间块组成。编码器和解码器都由四个模块组成。在编码器中,块依次由卷积层、ReLU激活函数和最大池层组成。在解码器中,这些模块依次执行上采样、卷积、批量归一化和ReLU激活。为了学习潜在高斯模型,中间块用于将编码器的输出(即,z)变换为潜在高斯分布N( z,),即,z→ { z,
},其中
和σ是所学习的高斯模型的均值和方差。通过对高斯模型进行重采样,可以生成潜在码的重构,即N( z,σ2z)→
。然后,将zis送入解码器,获得分解的大气光fA(x)的重构
A-Net的损失函数公式如下:
是分解的大气光线fA(x)和初始A(x)之间的损耗,其中A(x)由x估算。LKL和LReg分别表示变分推理和正则项的损失。λ是平衡正则化的非负参数。
要求最小化潜在编码和从高斯模型中采样的相应重建之间的差异。为了享受使用标准随机梯度方法的端到端优化,可以使用重新参数化技巧来产生下限估计量。数学上,
其中KL()表示两个分布之间的Kullback-Leibler散度。
为了避免过度拟合,我们对A-Net的输出,即fA(x)进行了强制多边形化。形式上,
其中N(xi)是xi的二阶邻域,| N(Xi)|是邻域大小,表示x的像素数。很明显,正则化起到了均值滤波的作用,使得(x)变得平滑。注意,如果在J-Net的输出上实施上述正则化,则恢复的无霾图像的高频细节可能会丢失。