徐 超,李从利,韦 哲,薛 松,章卫华
(1.陆军炮兵防空兵学院, 合肥 230000; 2.陆军预备役工兵第1旅, 江苏 徐州 221000)
全球大约有2/3的地面被云层覆盖[1],无论是卫星遥感还是航空飞行器,对地观察成像时常被复杂的云区所干扰,从而导致图像的信息熵下降,严重影响图像后续处理和使用。研究者们根据去云处理对象的不同,常将云区分为厚云和薄云2类,其中厚云具有强反射率和低透射率,完全阻挡了地表向卫星传感器的反射和辐射信号,被其遮挡的数据基本不可用;薄云由于具有一定的透射率,地表的反射和辐射信号可以穿透薄云到达传感器[2]。
因此,薄云虽然遮挡了一部分地物,但仍然能透过云层观察部分地物特征,目前针对薄云去除的研究较为成熟,提出的方法近似于图像去雾的方法[3]。而由于厚云对下方的地物处于完全遮蔽状态,因此可视为一个掩膜,针对厚云的去除方法,目前主要是将云区视为缺失区域实现图像恢复[3]。
随着学者们在去云研究中的不断深入,以及深度学习在图像处理领域里的广泛应用,本文将去云方法分为:传统的基于经典理论的去云方法、智能化的基于深度学习的去云方法。此外对这2类方法又分别进行了分类拓展。根据含云图像重构缺失信息时互补信息的来源不同,将传统基于经典理论方法分为以下4类:基于空间的方法[4-6]、基于光谱的方法[7-9]、基于时间的方法[10-11]和混合方法[12-13];基于经典理论的去云方法能够在一定程度上实现云区检测、薄云和厚云的去除任务。然而,由于图像去云是个典型的病态问题,数据中的任何一点变化都能导致图像复原结果剧烈变化,而且往往伴随着图像颜色失真、去云部位仍有云痕迹等问题,具有一定的局限性。随着深度学习的技术不断发展,以及其在其他图像处理领域里的成熟应用,相应的理论框架在图像去云领域也得到了广泛研究,出现了许多有意义的工作。本文依据采用了去云模型网络的差异,将基于深度学习的去云方法分为以下3类:基于CNN的方法、基于GAN的方法、基于CE的方法。
本文首先对数据集进行了介绍和分析,尔后对基于经典理论的去云方法和基于深度学习的去云方法分别进行详细阐述,给出了评价指标,并展望了去云技术的未来发展趋势。
目前已出现专门用于去云处理的公开数据集,但基本都是基于卫星遥感成像的数据集,其中最出名的采样卫星有Landsat系列、Sentinel系列、高分系列等,依据这些卫星提供的免费数据,学者们提出了大量富有特色的数据集,如:Landsat系列数据集、SEN12MS数据集、RICE 数据集、HRC_WHU数据集等。
Landsat系列数据集包括了L7_Irish[14]和L8_Biome[15],是由美国地质调查局(USGS)、地球资源观测和科学中心(EROS)创建。其中,L7数据集包含206个场景和相关的云掩模,其中有45个掩模被标记为云和云阴影。这些场景按纬度区域分层,对每个掩模中的像素解释为云、薄云或云阴影。L8数据集包含96个场景和相关的人工云掩模,其中有32个掩模被标记为云和云阴影。这些场景中的每个像素都被标记为云、薄云、云阴影或无云的天空。目前Landsat系列数据集可在USGS官网免费下载。
SEN12MS数据集[16]由哨兵-1卫星SAR图像和哨兵-2卫星光学图像组成,依据哨兵-1(灰度)、哨兵-2(RGB通道)、 MODIS土地覆盖集(灰度)3组完整的场景图像转换为视觉感知图像,再依据遥感专家检查筛选,去除掉无云的图像,最后分割得到180 662个分辨率大小为256×256的样本数据。SEN12MS数据集下载地址为:https://mediatum.ub.tum.de/1474000。
2020年,在文献[16]数据集的基础上改进得到了SEN12MS-CR数据集[17],该数据集包含169个不重叠的含云区域,每个区域像素大小为5 200×4 000,对应于52 km×40 km的地面覆盖范围,为了适应深度学习,将其分割为157 521个分辨率大小为256×256的样本数据。该数据集下载地址为:https://paperswithcode.com/dataset/sen12ms-cr。
随着深度学习在去云领域的不断发展,2019年,Lin等[18]首次提出了专门用于深度学习的数据集:遥感图像云重新移动数据集(RICE),该数据集由RICE1和RICE2等2个部分组成。其中,RICE1数据集收集自谷歌地球,包含500对图像,每对图像由同一地区不同时段的无云图像和含云图像组成,不重叠地统一分为分辨率大小为512×512的图像;RICE2的数据来源于卫星Landsat 8的陆地成像仪(OLI)和热红外传感器(TIRS)数据集,由450组图像组成,每组包含3张不重叠的分辨率大小为512×512的图像,分别为无云的参考图像、云图和云掩码图像。RICE数据集下载地址为:https://github.com/BUPTLdy/RICE_DATASET。
HRC_WHU数据集[19]是2019年武汉大学在研究中创建的一个高分辨率的云覆盖验证数据集,含有来自谷歌地球的150幅高分辨率图像,分为水域、植被、城市、冰雪和贫瘠地区等5类土地类型。由遥感图像解译领域的专家将卫星图像、航空摄影和地理信息系统数据叠加,对相关的参考云掩模进行了数字化处理,已用于高分1号卫星图像云检测方法的性能评估。HRC_WHU数据集下载地址为:http://sendimage.whu.edu.cn/en/mscff/。
目前的去云专用数据集基本都是通过卫星遥感图像创建的,飞机、无人机拍摄的航空数据集,比较经典的有Real World数据集[20]、Det-Fly数据集[21]、MIDGARD数据集[22]等,但都是以目标识别和目标跟踪为主,高精度、高质量标注的去云专用数据集需要进一步完善和发展。
上述数据集之间的特点对比分析如表1所示。
表1 常用数据集的特点比较
基于空间的方法是指待恢复云区与周边图像具有相似的上下文信息,利用周边纹理和结构推断云区内容。2011年,何凯明等[5]提出了一种利用先验统计的暗通道去除单图像雾霾方法,可以用来去除薄云和雾霾。该方法通过获取暗通道图像、得出透射率、估计大气光值,最后得到去云图像。在此基础上,文献[23-25]分别从独立亮度区域、添加低通高斯滤波器、添加修正项的方法进行了优化。该方法简单高效,但是在处理较厚云层和亮地表影像(如背景是雪地、白墙)时会失效。2021年,Cheng等[26]提出了一种结合了低秩和稀疏约束的暗通道先验法,暗通道先验用于消除薄云,稀疏和低秩约束分别用于在受云污染的图像中找到厚云的位置和去除厚云,解决了厚云的去除问题。但此类方法都需要特定的先验场景,因此并不具备普适性。
为了解决该问题,有学者提出了基于图像变换的方法,将遥感图像中云和地面信息分开到不同的分量,可以对图像中云的分量特征进行矫正,实现遥感图像的去云。Shen等[27]在2015年提出了基于独立成分分析(ICA)的去云方法,该方法能够将混合信号分离为互相独立的信号的加权和,适用于具有卷云探测波段的光学数据。Lv等[28]在其基础上提出了利用卷云探测波段与待去云波段单独配对的方法,改进了ICA云成分提取的精度及去云算法的效果。2019年,Xu等[29]提出一种基于噪声调整主成分变换的去云算法(CR-NAPCT),该方法在经过NAPCT变换后提取云成分,再通过修改云成分能够有效去云。此类方法对于薄云有较好的生成效果,对于厚云难以提取其云分量,因此存在一定的局限性。
2018年,Wen等[30]将稀疏字典学习方法应用于去云领域,提出一个双鲁棒主成分分析(RPCA)框架的云去除方法,一个普通RPCA用于初始的云区检测,一个鉴别RPCA用于对检测到的云像素分配惩罚权值,从而实现云的去除和场景恢复。2019年,Zhang等[31]在文献[30]的基础上增加了一个从粗到细的框架,利用群稀疏性来去除卫星图像序列中的云。这2种方法既不需要无云参考图像,也不需要特定的云检测算法。
基于光谱的方法是指依据不同光谱波长固有的相关性和相似性,利用一部分能够穿透云区的波段成像估计被遮挡的其他波长的信息,最终生成无云图像的方法,通常是为了去除薄云。Irish等[7-8]于2000年和2006年设计了自动云覆盖分析算法(ACCA),成为了美国本土区域的ETM+数据的标准云检测算法。2012年,Zhu等[9]在ACCA算法的基础上,提出了一种面向对象的云检测方法(fmask),对场景中的像素进行预标记,动态的确定阈值以验证这些标记的真伪,从而识别云像素,完成云区的分割。2017年,Qiu等[32]在Fmask的基础上提出了MFmask算法,提高了复杂地形区域的云及云影的检测精度。2022年,王蓝星等[33]提出了一种基于空谱随机森林的方法,利用多光谱影像对高光谱影像进行厚云去除,能获得更高精度的云下信息重建。总之,基于光谱的云检测方法简便,计算效率高,但当待恢复区域有大量云区时,遥感数据的所有光谱波段都会受到不同程度的污染,导致光谱波段的完备程度不高,造成精度下降。同时此类方法对传感器的精度和稳定性都提出了更高的要求。
基于时间的方法又叫多时相法,是利用航空航天器能够在不同时间段拍摄同一地区的特性,使用多时间图像作为输入。在时间图像序列中,因为地物是静止的,所以移动状态下的云很容易被检测到,对检测到的云区范围进行分割并将多次成像的像素值进行互补,从而生成无云图像。
2008年,Tseng等[34]将云区替换成该地区无云时刻的图像,按照增强原始图像亮度和色度、提取云区、替换成无云区域三步生成无云图像,成为多时相法去云经典的算法之一。2014年,Li等[11]提出了2种多时态字典学习算法,首次将压缩传感技术(CS)用于定量遥感图像恢复,并扩展了K-SVD和贝叶斯算法,实现了恢复厚云和云影污染的定量遥感图像。2016年,Xu等[35]对多时态字典学习(MDL)法进行了改进,在光谱域中分别学习有云区域(目标数据)和无云区域(参考数据)的字典,然后结合从参考图像获得的系数和从目标图像学习到的字典来去云,可以很好地恢复被薄云或云影污染的数据。在此基础之上,Xia等[36]于2022年提出一种改进的基于MDL的去厚云方法,该方法以相邻无云图像为参考图像,使用字典学习和稀疏表示方法从每个参考图像中生成重建图像,依据重建误差确定权重,最后将其与原始未污染像素组合以产生最终重建结果,能够准确有效地重建受厚云污染的数据。
此外有学者利用矩阵补全算法去云,将含云的待处理图像当作信息缺失的矩阵,通过找到与已知项匹配的最低秩矩阵来填充,最终生成无云图像。2016年,Wang等[10]提出一个包括云检测阶段和场景重建阶段的2阶段模型,设计了一种新的时间连续鲁棒矩阵补全模型(TECROMAC)来处理卫星图像序列中的云,实现恢复地面目标信息。2019年,Chen等[37]提出了一种针对时间序列遥感图像的盲云和云影去除方法,将退化的图像分解为低秩干净的图像组件和含云的稀疏组件,引入空间光谱总变化正则化方法,促进云、云影分量的空间光谱连续性,得到准确的位置信息。Li等[38]提出了一种非负矩阵分解和误差修正方法(S-NMF-EC),利用基于时空非局部滤波器的数据融合模型,通过参考图像和多个低分辨率图像获得无云融合参考图像,然后通过非负矩阵分解去除云污染图像的云覆盖。
混合方法结合了上述的若干种方法,通常以多时相法为基本框架,融合一部分光谱和空间信息用于弥补多时相法留下的小块区域。与前文方法相比,混合方法可以接受较短的图像序列和较低分辨率的多光谱数据作为输入,能够达到更好的去云效果。2006年,Melgani[12]提出2种新的通用方法来重建多时态多光谱图像序列中被云遮挡的区域,对于给定序列的云污染图像,每个缺失的测量区域通过一个无监督的上下文预测过程进行重建,得到一个适当选择的局部光谱-时间关系。2017年,Michael等[13]提出一种自适应加权张量补全(AWTC)方法来恢复缺失数据的遥感图像。该方法综合利用空间、光谱和时间信息来建立一个新的加权张量循环正则化模型来恢复缺失的数据,通过考虑空间、光谱和时间信息的贡献来自适应地确定权重。
相关算法的对比分析如表2所示。基于经典理论的去云方法模型简单清晰,可解释性强。但是随着深度学习的发展,人们更加倾向于数据驱动解决去云问题。
表2 基于经典理论的去云方法比较与分析
卷积神经网络(CNN)是一种具有局部连接、权重共享等特性的深层前馈神经网络,作为深度学习的代表算法之一,应用于去云工作十分可靠。2017年,Mateo-Garcia等[39]第一次将CNN技术用于空基航拍图像去云,设计了一个简单的卷积神经网络(CNN)架构,用于多光谱图像的云掩膜,其效果显著优于传统方法,证明了CNN在去云任务中的强大力量。
Xie等[40]提出一种结合超像素分割和卷积神经网络的云检测方法,如图1所示,该方法改进了简单的线性迭代聚类(SLIC)方法,将图像分割成具有精确图像边界的超像素,设计了一个具有2个分支的深度卷积神经网络,从每个超像素中提取多尺度特征,并将该超像素预测为厚云、薄云和非云等3个类别,通过对图像中所有超像素的预测,得到最终的云检测结果,该方法拥有较好的精度和鲁棒性。
图1 两分支的CNN架构[40]
2019年,Yang等[41]在前人的基础上,提出了一种基于CNN的云检测网络CDnet模型,该模型包括了编解码器结构、特征金字塔模块(FPM)和边界细化模块(BR)3个部分,用特征金字塔结构提取多尺度特征,用边界细化结构来优化云区边界的检测,编解码器结构逐步恢复与输入图像相同大小的分割结果。如图2所示,该方法使用预先训练和修改后的ResNet-50网络来提取特征。对于每个特征金字塔模块,利用3×3卷积(包括512个滤波器、批处理归一化和Relu激活函数)来减少通道的数量和1个1×1卷积层来为每个类生成语义得分记分图(scoremaps),之后通过一个边界细化操作来细化融合结果。改进后的融合结果通过上采样和边界细化操作,得到与输入图像相同大小的特征图。该方法能够生成相对详细且清晰的边界,提取多尺度上下文信息并且不损失分辨率和覆盖范围,在厚云的云区分割中具有较好的表现。
图2 CDnet模型构架
此外,研究者也提出了许多创造性的方法。Shao等[42]使用多尺度特征卷积神经网络模型(MF-CNN)学习图像的多尺度全局特征,将特征学习过程中获得的高级语言信息与低级空间信息相结合,提高了对薄云区域的识别能力。Wen等[43]提出了一种基于残差通道注意力网络的薄云去除方法,该方法在残差学习路径中引入了通道注意机制,同时实现了抑制薄云和增强地面场景细节,有效避免了深层地面信息的丢失。Long等[44]提出了一种双移位网络(shift net)来去除多时相遥感图像中的厚云。第1个移位网络将多时相图像归一化,第2个移位网络在U-Net中引入了Shift连接层和深度可分离卷积,这2个移位网络不仅可以提高去云的视觉效果,还可以进一步提高量化评价。Chen等[45]提出了一种时空神经网络(SNN),该网络具有4个模块:云检测模块、时空学习模块、时空特征融合模块和重建模块,可以实现厚云的去除。
上述基于CNN的去云方法特点对比分析如表3所示。
表3 基于CNN的去云方法特点比较与分析
2014年,Goodfellow等[46]第一次提出了生成对抗网络模型(GAN),打开了博弈生成模型的大门。由于GAN可以生成高质量仿真图像,研究者们迅速发现其在去云研究中的巨大潜力。
朱清等[47]提出了一种基于GAN的遥感影像云检测方法,利用GAN建立遥感影像到云掩膜之间的模型,并且考虑了云本身的形态特征,使用全卷积神经网络对图像中的云进行检测,但是该方法使用了遥感影像及对应的云掩膜数据进行网络训练,还是属于监督学习。2019年,Zou等[48]提出了一个由3个网络组成的基于GAN的云区匹配模型,除了生成器网络和鉴别器网络之外加入一个云匹配网络,该网络用于学习预测云的反射率和衰减,利用该网络和GAN实现云检测和去除,但是该方法未考虑到云的双向透射和吸收作用,并且得到的结果分辨率很低。由于GAN属于无监督网络,生成器不够稳定,经常会产生一些无意义的输出。为此,很多学者都对传统GAN进行了改进。
Enomoto等[49]第一个提出了基于cGAN的多光谱条件生成对抗网络“McGANs”。如图3所示,该方法将cGAN的输入扩展到多光谱图像,以便能够合并输入的可见光图像和较长波长的图像,通过扩展cGAN的输入通道与多光谱图像的兼容,可以输出接近地面真相的图像,为了避免偏置数据集对某些类别的过拟合,该方法引入t-SNE对每个类别的图像进行均匀采样,从而改善训练数据集中的偏差问题。Grohnfeldt等[50]也提出了基于cGAN的去云架构,该架构专门设计用来融合合成孔径雷达和光学多光谱图像数据,以便从云污染的光谱测量中预测无云和无雾的光谱图像。
图3 McGANs模型的生成器构架
Singh等[51]提出了一个结合循环对抗网络(cycle-GAN)的Cloud-GAN模型来学习含云图像和无云图像之间的映射。该方法将薄云图像转换为无云RGB图像,利用GAN的强大生成能力使该方法能够生成足够接近非云图像的底层分布。其优势在于不需要配对的含云和无云训练数据集,对光谱信息源的需求也较低,但同时也丢失了大量原始背景的光谱信息。此外,Zheng等[3]提出一个2阶段去云法,第1阶段用U-Net模型进行厚云云区分割和薄云去除,第2阶段利用GAN去除厚云,取得了很好的效果;Ghozatlou等[52]结合多光谱向量转化,提出了基于混合GAN的去云算法;韦哲等[53]将图像去云领域扩展到无人机拍摄图像,结合词袋检索算法和注意力对齐机制,提出了一种基于深度卷积生成对抗网络的两阶段厚云去除方法(DCGAN),都有了一定的发展。
上述基于GAN的去云方法特点对比分析如表4所示。
表4 基于GAN的去云方法特点比较与分析
卷积自编码器是一种由自编码器(AE)衍生出的模型结构。通过基于上下文像素预测驱动的无监督的视觉特征的学习算法,根据图像缺失区域周围图像的特征信息生成缺失内容并保证修复图像上下文的语义连贯性。
2018年,Malek等[54]提出一种基于自编码器神经网络的方法,通过在无云图像和云污染图像之间建立模型关系,从而恢复多光谱图像中含云区域的图像信息,可以用于去除薄云。2019年,Sun等[55]提出了一个2阶段的云感知生成网络(CAGN),该方法结合了图像嵌入绘制和图像去噪技术,第1阶段是采用循环卷积网络检测云区,第2阶段是用自动编码器方法去除薄云。2020年,Hong等[56]将知识蒸馏法应用于图像去薄云领域,提出一种利用异质任务模拟提取图像去薄云知识的网络。其中,教师网络是一个自编码器,用来重建无薄云图像。学生网络以教师网络的编码特征为指导信息,利用过程导向机制使中间结果与自编码器网络相似。
综上,基于深度学习的去云方法,无论是在云区检测、薄云去除和厚云去除都表现得更为突出,这直接反映在图像的去云效果上。
不同的算法应用于不同的场景,不同的模型、不同的参数会导致处理结果迥异。衡量不同方法的好坏,除了利用人的主观视觉感知外,还必须采取合适的量化指标。通常情况下,研究者们将图像质量评价指标直接用于图像去云的效果评价,按照是否存在清晰的参考图像,图像去云评价指标可分为全参考型指标和无参考型指标2大类。
全参考型评价指标选择无云的、能够清晰反映地物信息的图像作为参考图像,通过比较去云后的修复图像与参考图像之间的差异,来获得去云后图像质量评估结果。最常使用的方法是峰值信噪比(PSNR)和结构相似度(SSIM)。
4.1.1峰值信噪比(PSNR)
峰值信噪比是一种经典的评价图像质量的指标体系。基于误差敏感程度,从像素层面来评价复原图像的效果。由于它的衡量依据只是信号的最大值和背景噪音,与人眼看到的视觉品质无法做到完全一致,因此作为评价指标有较强的局限性。
4.1.2结构相似度(SSIM)
结构相似性指数[57]是一种用于量化2幅图像间的结构相似性的指标,它仿照人类视觉系统(HVS),实现了对图像的局部结构变化的自适应感知。SSIM将图像量化为亮度、对比度以及结构3个属性,用均值、方差、协方差来分别对应估计相似程度。该方法体现了对图像结构的敏感程度,往往和PSNR互为补充,同时出现。
4.1.3其他经典指标
除了最常见的PSNR和SSIM方法外,还有一些研究者采用了其他评价指标,比如:以多尺度方法为基础,结合不同分辨率和观察条件下的图像细节,得到信息量加权的结构相似性法(IW-SSIM)[58]。后来又发展出VIF[59]算法,该算法由源模型、失真模型和HVS模型3部分组成,使用高斯尺度混合在小波域对自然图像进行建模。
无参考型指标也称为盲评价指标,由于该评价指标无需清晰的去云参考图像,因此使得无参考评价指标具有更好的适用性。常见的指标有:①基于特征统计的模型。图像熵(image entropy)。图像熵是统计图像特征信息的一种指标,由图像灰度分布聚集特征的信息量大小,反映了图像所包含的信息量,越大的图像熵证明该图像所包含的信息量越多。然而,图像熵受到噪声的影响较大,常被用作辅助度量。②基于自然场景统计模型。NIQE模型[60]是一种基于空域自然场景统计(NSS)模型的图像质量评价算法。该算法通过提取自然场景图像的“质量感知”统计特征进行建模,且无需参考图像及人类主观评价分数。③基于深度学习的评价指标。深度学习的发展也给图像盲评价指标提供了发展思路,Wei等[61]提出了一种将排序学习和回归学习相结合的评估模型,该模型由几个逐层下采样的CNN组成,通过图像分类任务训练网络,利用该网络将特征回归到SSIM中,实现了与SSIM相接近的效果。此外,MUSIQ等[62]结合深度学习的方法也起到了很好的效果。
设计一个满足去云目的的评价指标对于提升去云算法本身效能有很大的促进作用,目前,该方向的工作仍有很大的提升空间。
本文针对航拍图像去云问题,详细介绍了基于经典理论的去云方法和基于深度学习的去云方法,并分析了各方法的模型特点和应用领域。总体来看,图像去云技术发展较为迅速,获得了大量研究成果,但也有一些问题需要研究者们进一步研究。
1) 提高去云结果的可解释性。去云后的图像常常伴有颜色失真、云区残留、语义缺损等情况,难以准确反映云区内地物的特征。可通过词袋检索、光流技术、知识图谱等技术,设计更合适且轻便的算法,实现信息来源的可追溯性。
2) 实现应用场景的自适应。设计通用的去云算法模型,该模型能够自动区分卫星遥感和航空无人机、单光谱和多光谱、不同天气、复杂地形等不同场景环境,并且仅使用少量样本,便能自适应的移植到其他图像处理任务,为多领域应用提供解决方案。
3) 模型的级联与优化。将tramsformer、扩散模型等深度学习中的新理论、新技术应用到去云领域中,加强模型级联,打破领域壁垒。同时加强算法优化,不断提升云区检测的准确性与去云效果的可视化。
4) 处理与评价一体化。构建通用的客观评价指标体系,对去云中的各种畸变进行监控,并将结果及时反馈到去云模型中,实时指导模型参数的选择及优化,提高算法的实时性和自动化。