Uncertainty-Based Thin Cloud Removal Networkvia Conditional Variational AutoencodersHaidong Ding论文翻译

accv 2022

论文名称: 基于不确定性的条件变分自编码器薄云去除网络

论文地址 

代码地址

摘要:现有的薄云去除方法将这一图像修复任务视为一个点估计问题,并通过确定性流程生成单一的无云图像。本文提出了一种基于条件变分自编码器(CVAE)的新型薄云去除网络,能够为每个输入的云图像生成多种合理的无云图像。我们通过概率图模型分析图像降解过程,并以编码器-解码器的方式设计网络。由于从潜在空间的采样具有多样性,该方法可以避免单一估计不准确所带来的缺陷。通过不确定性分析,我们可以基于这些多重预测生成更为准确的清晰图像。此外,我们从真实场景中创建了一个包含云图像和无云图像对的新基准数据集,克服了因训练于合成数据集而导致的泛化性能差的问题。定量和定性实验表明,所提出的方法在真实云图像上显著优于当前最先进的方法。源代码和数据集可在 https://github.com/haidong-Ding/Cloud-Removal 获取。

1 引言

遥感图像常常受到薄云引起的吸收和散射效应的影响,导致图像质量下降。这些低质量图像限制了它们在后续高级计算机视觉任务(例如目标检测【1,2,3】和分割【4,5,6】)中的应用。因此,开发一种有效的单一遥感图像去云方法是非常重要的。

现有的方法大致可以分为两类:基于先验的方法和数据驱动的方法。基于先验的去云模型【7,8,9】主要依赖于大气散射模型,并在图像统计数据上施加各种物理假设。这些基于先验的方法解释性更强,但当统计先验在真实图像中不成立时,性能表现欠佳。

为缓解这些限制,数据驱动方法采用深度学习方法在监督学习模式下训练网络。若干方法【10,11,12】直接学习如何以端到端的方式从云图像生成清晰图像。这类算法基于大量数据进行学习,能够产生相当不错的结果。然而,端到端训练方式通常将去云视为一个黑箱问题,使其解释性较差。为避免这一问题,其他方法【13,14,15】结合成像模型与卷积神经网络(CNN),主要集中在构建神经网络以替代传统方法中的部分物理模型。

尽管许多优秀的工作展示了出色的成果,但在薄云去除任务中仍然存在许多困难和误解。因此,有必要在更广泛的背景下研究这一问题,其中有两个关键点值得关注:

1)合成数据集的作用:在真实场景中很难获得有薄云和无薄云的图像对,因此大多数算法【13,16,17】是在合成数据集上训练的。合成图像与真实图像之间的差异使得网络在优化过程中学习了数据合成的规律,而不是图像降解的本质。此外,合成数据集是基于图像降解的物理模型构建的,因此在设计算法时是否依赖于该物理模型值得考虑。因此,这类方法在合成数据上可能表现出色,但在真实场景中表现欠佳。这表明使用合成数据集在一定程度上抑制了模型的泛化性能。

2)解决方案的多样性:单一云图像丢失了一些场景辐射的关键信息,从中恢复完全清晰的图像相当于用极少的信息恢复整个场景结构,使得这个问题本质上是一个高度病态的问题。因此,这个低级计算机视觉问题本质上是不确定的。仅使用退化图像而无其他辅助信息,无法获得清晰图像中每个像素的精确值。据我们所知,现有方法均未考虑这一点。它们都建立了从云图像到无云图像的一对一映射。因此,考虑不确定性在提升去云算法性能方面具有很大的潜力。

为了解决上述挑战,我们提出了一种通过CVAE实现遥感图像薄云去除的概率模型。基于上述不确定性分析,我们从多解的角度来解决这一问题。每次输出的结果都是可能解决方案的一个样本。我们的方法并不依赖于显式的先验模型,以避免对图像降解机制理解不足的问题。同时,我们不使用合成数据集,以便去云的底层原理可以直接从真实的云图像中学习。多样化的输出最终可以增强所提出的薄云去除网络的泛化能力。

我们的贡献可以总结如下:

  • 针对薄云去除的不确定性问题,我们提出了一种基于CVAE的遥感图像去云概率模型,从概率角度解决这一多解问题。该网络输出多个可解释的结果,符合问题的无限解特性。
  • 我们提出了一个基于视觉转换器(ViT)的编码器网络和一个多尺度特征融合解码器网络,以实现从云图像到清晰图像的一对多映射。
  • 我们为单一图像薄云去除创建了一个新的基准数据集。云图像和无云图像对来自同一真实场景的不同时间点,以克服由于在合成数据集上训练而导致的模型泛化性能低下的问题。

2 相关工作

2.1 基于先验的方法

大多数传统方法基于物理先验,估计模型中的一些重要量(例如传输图),然后从云图像中恢复出清晰图像。Chavez【18】在假设传感器与地面之间距离固定的前提下,提出了一个加性模型来描述云图像的生成原理。He等人【9】基于统计规律提出了暗通道先验,表明在图像的非天空区域中,一个或多个颜色通道的像素值趋近于零,并据此估计传输图。Fattal等人【19】提出了基于RGB颜色空间中图像分布的颜色线先验来估计传输图。Berman等人【20】假设清晰图像的颜色可以由数百种不同的颜色近似表示,并基于这一新颖的非局部先验提出了一个去雾算法。Xu等人【21】提出了一种基于信号传输和空域混合分析的方法,结合大气散射理论去除云层。

这些基于先验知识的方法在特定场景中展现了优越的统计特性,但在物理假设不成立的真实图像中往往容易失效。

2.2 数据驱动的方法

近年来,得益于大规模数据集的建立和深度学习技术的发展,许多数据驱动的监督云层去除方法被提出,以克服传统方法的不足。Mao等人【22】提出了一个深度编码器-解码器框架,并添加了跳跃连接以提高图像修复的效率。Praveer Singh等人【23】提出了一种基于对抗训练的网络,名为Cloud-GAN,直接学习云图像与清晰图像之间的映射关系。Qin等人【16】提出了一个具有残差结构的多尺度去模糊卷积神经网络来去除薄云。Li等人【11】设计了一个用于薄云去除的端到端残差对称连接网络。Xu等人【10】引入了基于注意力机制的生成对抗网络,指导网络在更密集的云层区域投入更多精力。

受传统方法的启发,一些研究人员将深度学习技术与成像物理模型相结合。Cai等人【14】表明介质传输估计可以重新表述为一个可学习的端到端系统。Ren等人【24】使用深度学习来学习传输图并解决大气散射模型问题。Zheng等人【17】将现有的大气散射模型与UNet结合来去除薄云。根据云图像的加性模型,Zi等人【13】利用结合成像模型的深度神经网络来实现薄云去除。

尽管这些数据驱动的方法在薄云去除性能方面取得了巨大进展,但它们都针对输入实现了一对一映射,仅在所有解决方案中找到了一种合理的解决方案。与现有方法不同,我们将单张图像云层去除视为一个不确定解问题,并将云层去除与不确定性分析相结合,以更好地解决这一病态问题。

3 不确定性云层去除框架

3.1 图像退化过程分析

一些研究者【18, 25, 26】提出,卫星图像的退化过程可以用一个加性模型(公式1)来描述: S=G+CS = G + CS=G+C 或者一个非线性模型(公式2): S=(1−C)⋅G+CS = (1 - C) \cdot G + CS=(1−C)⋅G+C 其中,S、G 和 C 分别代表卫星传感器获取的云图像、清晰的地面场景图像和薄云厚度图。

然而,基于显式模型设计网络存在两个问题:模型是否完全符合退化过程,以及未知变量是否可以被准确估计。这两个因素都会影响恢复的结果,甚至导致失败。

为了解决这些问题,我们首先不依赖于卫星图像的大气散射模型。我们注意到,这些基于模型的算法都有一个共同的思路:从观测到的图像中估计未知变量,然后结合成像模型来恢复清晰图像。在我们的方法中,我们将不可观测的变量重新定义为退化因素,这导致了低质量的图像。图像退化系统由云图像、清晰图像和退化因素决定。我们不提供这三者之间的关系,而是利用神经网络的强大表示能力来隐式表达。

我们使用概率图模型来分析图像退化过程,如图1所示。可观测变量X是卫星传感器获取的云图像,可以分解为退化因素W和地面场景信息Y。地面场景Y更为复杂且多变,因此用概率图模型描述其生成机制是一个具有挑战性的任务。所以,从云图像中推断退化因素W更为可行。

由于这三个变量之间的本质内在关系是未知的,变量W不能显式获得。为了得到这个关键变量,我们假设潜变量z决定了其生成。因为云图像包含退化因素的信息,我们通过X估计z,然后从z的采样中生成W。

由于采样过程的多样性,可以生成多种估计。这种多样性减轻了因不准确估计导致的问题,使算法更加鲁棒。

整个模型框架基于CVAE(条件变分自编码器),推理网络估计变分分布,生成网络实现最终的无云结果。

模型的变分下界如下(详细推导见补充材料): log⁡pθ(Y∣X)=−KL(qϕ(z∣X)∣∣pθ(z∣X))+Eqϕ(z∣X)[log⁡pθ(Y∣X,z)]\log p_{\theta}(Y|X) = -\text{KL}(q_{\phi}(z|X) || p_{\theta}(z|X)) + \mathbb{E}_{q_{\phi}(z|X)}[\log p_{\theta}(Y|X, z)]logpθ​(Y∣X)=−KL(qϕ​(z∣X)∣∣pθ​(z∣X))+Eqϕ​(z∣X)​[logpθ​(Y∣X,z)] 其中,引入提议分布q_{\phi}(z|X)来近似后验p_{\theta}(z|X);潜变量z从q_{\phi}(z|X)中抽取。θ和ϕ代表分布的参数集。我们的CVAE框架由编码器网络q_{\phi}(z|X)和生成编码器网络p_{\theta}(Y|X, z)组成。KL散度KL(qϕ(z∣X)∣∣pθ(z∣X))\text{KL}(q_{\phi}(z|X) || p_{\theta}(z|X))KL(qϕ​(z∣X)∣∣pθ​(z∣X)) 作为正则化损失来缩小后验p_{\theta}(z|X)与提议分布q_{\phi}(z|X)之间的差距。为了简化网络并减少计算量,我们假设后验遵循标准正态分布N(0, I)。

3.2 基于Transformer的编码器

编码器作为识别模型来推断提议分布q_{\phi}(z|X)。为了使网络可以使用梯度下降算法进行训练,z通过重新参数化技巧生成,其表达式为(公式4): z=μ+σ⋅ϵz = \mu + \sigma \cdot \epsilonz=μ+σ⋅ϵ 其中,ϵ∼N(0,I)\epsilon \sim N(0, I)ϵ∼N(0,I)。这一技巧允许通过高斯潜变量进行误差反向传播,这是训练过程中必不可少的。

在设计网络架构时,我们利用自注意力机制来学习退化因素与标准正态分布之间的映射。不同于原始的ViT【27】,我们设计了一个更轻量级的模型,减少了Transformer编码器的堆叠层数、嵌入维度以及多头注意力机制的头数。设D为训练数据集,其中Xi表示云图像,Yi_ref表示相应的无云图像。编码器网络的目标如下: ϕ∗=arg⁡min⁡ϕKL(q(z∣X;ϕ)∣∣p(z∣X;θ))\phi^{*} = \arg \min_{\phi} \text{KL}(q(z|X; \phi) || p(z|X; \theta))ϕ∗=argminϕ​KL(q(z∣X;ϕ)∣∣p(z∣X;θ)) 图2中展示了编码器网络在训练和测试过程中的整体流程。

3.3 多尺度预测解码器

通过推理网络获得的潜变量z和原始输入的云图像,我们开发了一个解码器网络来重建无云图像。在解码器中,变量z首先通过生成模块pθ(W|z)(参见图2),该模块包含一个具有两层隐藏层的MLP,并生成退化因素W的图像流形。潜变量z允许对多种模式进行建模,使解码器网络适合于一对多的映射建模。图3显示了从不同采样结果恢复的清晰图像在PSNR和SSIM评分上的差异。

我们将输入的云图像X下采样至与Wi相同的大小。之后,将这两个变量拼接起来并输入解码器网络的第一层。解码器网络由五个卷积层组成。每一层都专注于提取特征并学习不同尺度下的去云基础原理。每一层的输入由原始云图像作为条件变量和来自前一层的特征图组成。我们利用通道注意力机制【28】将更多的学习注意力投入到有价值的事物上。

解码器网络将单次采样获得的潜变量zi与原始云图像结合生成清晰图像。其表达式为Yi = fD(X, zi),其中fD(·)为解码器网络。我们对多个变量zi进行采样,以生成多个与原始云图像对应的清晰图像。我们将这些多个清晰图像的期望值作为最终的清晰图像。该过程的表达式为: Y=1M∑i=1MYiY = \frac{1}{M} \sum_{i=1}^{M} Y_iY=M1​∑i=1M​Yi​ 我们将M设置为10,目标是最大化后验概率: θ∗=arg⁡max⁡θlog⁡pθ(Y∣X,z)\theta^{*} = \arg \max_{\theta} \log p_{\theta}(Y|X, z)θ∗=argmaxθ​logpθ​(Y∣X,z)

3.4 损失函数

整体CVAE框架的损失包括两个部分:推理网络和解码器网络。结合(公式5)和(公式7),可以将其表述为: LCVAE=KL(qϕ(z∣X)∣∣pθ(z∣X))+1M∑m=1M−log⁡pθ(Y∣X,z(m))L_{CVAE} = \text{KL}(q_{\phi}(z|X) || p_{\theta}(z|X)) + \frac{1}{M} \sum_{m=1}^{M} -\log p_{\theta}(Y|X, z^{(m)})LCVAE​=KL(qϕ​(z∣X)∣∣pθ​(z∣X))+M1​∑m=1M​−logpθ​(Y∣X,z(m)) 其中M是样本数。损失函数的第一项是KL散度。我们假设q_{\phi}(z|X)服从参数为μ和σ²I的正态分布,而pθ(z|X)服从标准正态分布,那么这个损失可以直接计算闭式解: KL(q(z∣X;ϕ)∣∣p(z∣X;θ))=12(tr(σ2I)+μTμ−d−log⁡∣σ2I∣)\text{KL}(q(z|X; \phi) || p(z|X; \theta)) = \frac{1}{2} \left( \text{tr}(\sigma^2 I) + \mu^T \mu - d - \log |\sigma^2 I| \right)KL(q(z∣X;ϕ)∣∣p(z∣X;θ))=21​(tr(σ2I)+μTμ−d−log∣σ2I∣) 其中tr(·)和|·|分别表示矩阵的迹和行列式,d是分布的维度。

第二项是重建损失。在监督训练中,可以通过计算编码器网络输出Y与其对应的参考清晰图像Y_ref之间的差异来量化去云性能,在我们的方法中,我们选择SmoothL1Loss作为优化参数的标准,重建损失可以表达为: Lrec=1CP∑c=1C∑p=1PFs(Yc(p)−Ycref(p);β)L_{rec} = \frac{1}{CP} \sum_{c=1}^{C} \sum_{p=1}^{P} F_s(Y_c(p) - Y_c^{ref}(p); \beta)Lrec​=CP1​∑c=1C​∑p=1P​Fs​(Yc​(p)−Ycref​(p);β) 其中, Fs(e;β)={0.5e2/βif ∣e∣<β,∣e∣−β/2otherwise.F_s(e; \beta) = \begin{cases} 0.5e^2/\beta & \text{if } |e| < \beta, \\ |e| - \beta/2 & \text{otherwise}. \end{cases}Fs​(e;β)={0.5e2/β∣e∣−β/2​if ∣e∣<β,otherwise.​ C代表通道数,P表示像素总数。

此外,为了引导网络关注细节,我们引入了一个边缘损失函数,以保留输出图像的边缘。边缘损失定义为: Ledge=∥∇2Y−∇2Yref∥L_{edge} = \|\nabla^2 Y - \nabla^2 Y_{ref}\|Ledge​=∥∇2Y−∇2Yref​∥ 其中∇²是用于图像边缘检测的

4.3 真实数据集上的结果

表1展示了我们数据集中PSNR、SSIM、NIQE和BRISQUE的定量结果。可以看出,我们的方法在全参考指标PSNR和SSIM上都达到了最佳性能。此外,在无参考指标上也取得了优异的结果。

为了评估每种方法的视觉效果,我们比较了它们的定性结果(见图4)。可以观察到,DCP倾向于过度增强云图像,且无法去除浓密的云。基于CNN的方法虽然取得了具有竞争力的结果,但其中一些方法的视觉质量仍然较差。例如,Qin等人和RSC-Net的恢复结果缺失了很多细节信息,SPA-GAN无法去除云层。Zheng等人的方法则存在明显的网格伪影。MSAR-DefogNet、PCFAN、MCRN和Pix2Pix的去云结果在海域部分呈现出不同程度的色彩失真(图4(g)∼4(j))。这些低质量结果的原因可能在于它们的方法大多基于合成图像的原理,因此无法很好地学习真实世界云图像的去云规律。相比之下,我们的方法在图4(k)中显示出较高的色彩保真度,并且在纹理细节的保留方面更加有效。

4.4 困难示例上的结果

云层的一个显著特征是其异质性。我们进一步选择了一些带有浓厚云层的图像,并在这个非均质数据集上评估了我们的方法。非均匀云图像在遥感图像中非常常见。因此,比较不同方法在这些具有挑战性数据上的表现,可以验证其在实际应用中的有效性。

        图6展示了视觉结果。RSC-Net的结果存在严重的色彩失真。基于GAN的方法SPA-GAN未能保持语义信息的一致性。Zheng等人、MSAR-DefogNet、PCFAN、MCRN和Pix2Pix产生了不同程度的色彩失真且结果不自然。在浓厚云层下恢复细节由于情景信息的严重丢失而极具不确定性。我们的方法通过概率估计尽可能保持语义信息的一致性。可以观察到,我们的算法在比其他方法更有效地减少色彩失真的同时,定量结果也显示出我们的方法具有压倒性的优势。我们的PSNR比Pix2Pix高5.35dB,这表明CVAE框架在这种场景下更为鲁棒。

4.5 清晰数据集上的结果

        为了进一步验证我们算法的保真度,我们还比较了各种去云方法在清晰图像数据集上的结果。视觉比较如图5所示。可以观察到,几种方法(DCP、Qin等人、MSAR-DefogNet、PCFAN)倾向于过度变暗或过度增强清晰图像,且在色彩空间上表现不一致。Zheng等人的方法存在棋盘伪影,SPA-GAN改变了原始场景的辐射信息。我们的结果没有产生色彩失真,与原始清晰图像非常接近,这在实际应用中非常必要,因为并非所有通过卫星传感器获取的图像片段都被云层遮挡。表2展示了定量结果。PSNR和SSIM值也表明我们的算法在图像保真度方面超过了其他方法。

5 消融研究

        为了进一步验证所提算法的有效性,我们进行了消融实验,以验证网络结构的有效性。消融实验分为以下几部分:1)编码器网络的结构;2)重建损失函数的选择。

5.1 编码器网络的评估

        在我们的方法中,编码器网络用于推断退化因素的分布。首先,我们对编码器架构的结构进行了消融实验。变体模型的配置包括:1)VGG-19;2)ResNet34;3)ViT-base;4)ViT-Large;5)我们提出的一种ViT变体模型:ViT-Small。原始的ViT堆叠了多层Transformer编码器,并将输入图像片段嵌入到高维向量空间中,使其参数非常庞大。为了使网络更加轻量化,我们设计了ViT-Small,简化了原始Transformer结构。我们将编码器的堆叠层数从12(ViT-Base)或24(ViT-Large)减少到4,将图像片段的嵌入维度从768(ViT-Base)或1024(ViT-Large)减少到512,并将多头注意机制的头数设为8。

定量结果如表3所示。基于CNN的架构实现了相似的性能。然而,它们的表现不如三种ViT结构,这表明ViT的自注意机制可以更好地学习潜在空间中退化因素的分布。同时,我们还注意到ViT-Small的参数量远低于其他四种结构。轻量化的ViT不仅没有削弱强大的表示能力,反而使模型表现更好。这表明,这种在推理网络中使用的轻量化ViT变体是有效的。

5.2 重建损失函数的评估

        我们还探讨了在优化过程中不同重建损失函数的影响。重建损失直接衡量去云效果的质量。因此,选择一个好的度量标准在训练过程中起着至关重要的作用。

我们比较了MSE和SmoothL1(β=0.5)损失函数的影响,并验证了边缘损失的提升效果。为了快速对比实验,我们训练了具有不同损失函数的模型150个epoch。实验结果如图7所示。可以看出,SmoothL1损失函数在PSNR和SSIM方面取得了更好的优化结果。SSIM显示在加入边缘损失后优化结果显著提升,这表明边缘损失可以促进网络的优化。

我们还测试了泛化性能,以验证在训练集上实现卓越性能并不是由于过拟合。从表4中可以看出,在测试集中使用SmoothL1联合边缘损失训练的模型在PSNR和SSIM分数上也表现得更好。同时,较高的SSIM显示边缘损失可以让模型更加关注细节纹理。

6 结论

本文提出了一种基于CVAE的薄云去除网络,并从不确定性分析的角度处理单图像去云问题。所提算法的新颖之处在于它可以实现一对多映射,并能生成多个与单个云图像对应的清晰且合理的图像。此外,我们从现实世界构建了一个大规模数据集,以克服合成数据集不能完全代表真实场景的缺点。定量和定性实验结果均表明我们所提方法的优越性,并证明了考虑不确定性在提高薄云去除算法方面具有巨大潜力。

致谢

本工作部分得到了中国国家重点研发计划(2019YFC1510905)和中国国家自然科学基金(61871011)的资助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值