1. 引言
遥感云检测的目标是准确地识别遥感图像中的云层区域,将云层从图像中去除或标记出来,从而提高遥感图像的可用性。而在高纬度或者高海拔地区的遥感图像往往存在云与雪共存情况,由于两者的光线反射率和光学特征是非常相似的,导致的难以区分。如何解决在包含云雪的复杂背景高分辨率遥感影像云检测面临着存在边缘难以检测、以及下垫面复杂、厚云与雪的光谱特征相似导致同谱异物等复杂问题,仍是遥感数据处理过程中对云层的检测和提取是进一步分析和解译任务需要解决的首要问题之一。
目前深度学习在云检测中已经有了广泛的应用 [1] [2] [3] 。U-Net是一种在许多图像分割任务中具有卓越性能的经典图像分割方法,尤其是医学图像分割任务。许多研究发现,基于U-Net架构的模型在卫星遥感图像分割中表现出优异的性能。例如基U-Net的遥感图像云检测算法CloudU-Net [4] ,CloudU-Net使用空洞卷积代替了传统的卷积层来增加过滤器的感受野,通过批量归一化提高训练速度,防止过度拟合。尽管该算法在小物体密集的情况下有很好的表现,但它没有考虑到云的多样性,因为云的特征是不确定的。在医学图像分类、目标检测等领域,注意力机制是一种非常有效的方法 [5] ,可以为目标分配更多的处理资源,并且出现了大量将U-Net与注意力机制结合的算法。文献 [6] 提出Cloud-AttU模型采用对称的编码器–解码器结构,通过跳接操作实现高层特征和低层特征的融合,使输出结果包含更丰富的多尺度信息。这种对称的网络结构简洁稳定,显著增强了图像分割的效果。注意机制起源于人类的视觉认知科学 [7] 。在阅读文本或看物体时,人类往往会更加注意有关目标的详细信息,而抑制其他无用的信息 [8] 。
上述文献并未有效的解决边缘难以检测、下垫面复杂、厚云与雪的光谱特征相似等问题 [9] [10] 。本文提出一个加入空间信息建模的编码解码网络MSANet,MSANet结合空间信息建模和卷积神经网络,并在编码部分加入适应云特性的膨胀卷积,弥补网络对全局信息的感知能力,进一步提升了在复杂背景下的云检测识别能力。这种方法使得模型能够更准确地捕捉云层的边界,从而提高了模型的精度。
2. MSANet网络结构
首先提出注意力机制和卷积神经网络的融合,MSANet结构主要包括特征提取模块和云语义预测模块。在U-Net的基础上,MSANet的backbone使用了ResNet50,其扩张路径和收缩路径也存在对应关系。对于感知,特征提取部分通过ResNet50的残差模降低模型时间成本,更好的学习复杂的特征表示以提高模型的表征能力。在将特征提取部分通过跳跃连接输入到云语义预测模块之前通过卷积改变形状以适应预测模块,并且在第一个卷积使用了膨胀卷积,以此来扩大感受野,保留空间分辨率。云语义预测模块中加入了多头注意力模块。如图1所示,多头注意力模块由这些白色块组成。每个多头注意力模块都基于串联特征,空间信息建模模块接收来自编码器和解码器部分的两个输入,并对其输出和上采样结果进行拼接和卷积操作,以保证网络的深度。在复杂的图像分割任务中取得良好的性能。注意力机制认为网络中不同层次的特征具有不同的重要性,通过为重要特征分配更大的权重,它可以通知后续层更多地关注这些重要信息并抑制不重要的信息。这种改进的方法使模型能够更准确地捕捉云的空间位置信息和边界细节,从而提高模型的精度。通过上采样和注意力模块的多次操作,网络能够逐步恢复空间细节并进行精细的边界分从而提高云边界的准确性和清晰度。
2.1. 深度特征提取模块
具有“编码”意义的深度特征提取模块兼有层次深、参数量小、语义信息保留完整的功能。MSANet选用ResNet50作为模型的backbone,ResNet50的基本组成单元就是残差块,其中包括多个stage,stage 0包括一系列的卷积、BN、ReLU、MaxPooling得到输出,而stage1~4包括多个bottleneck和basicblock模块,如图2(b)~(c)所示。两个模块通过引入跨层的快捷连接帮助解决深度卷积神经网络都存在的梯度消失问题,使网络更容易训练和优化。其中basicblock的expansion = 1,因此输出特征图的通道数与输入相同,bottleneck在basicblock多了一个右侧的卷积层,并且expansion = 4,也就是说此时输入与输出通道数不同。了跳跃连接后与云语义预测模块形状相匹配,在ResNet50中间部分添加了1 × 卷积以此来改变通道匹配形状。为了更好的接收云的特征,将感受野扩大并且要保持输入图像的空间分辨率,将第一个卷积替换为dalition = 2的膨胀卷积,如图2(a)所示,kernel1为dalition = 2的膨胀卷积,而kernel2是普通卷积。通过一系列的残差块和卷积层,通道数逐渐增大,高宽逐渐变小,最后得出一个形状为[2048, 8, 8]的初步有效特征层。

Figure 2. (a) Illustration of the fusion of dilated convolution and deep feature extraction module; (b) Illustration of the bottleneck module in ResNet50; (c) Illustration of the basicblock module in ResNet50.
图2. (a) 膨胀卷积与深度特征提取模块融合的图示;(b) ResNet50中bottleneck模块的图示;(c) ResNet50中basicblock模块的图示。
2.2. 云语义预测模块
该模型引入了具有“解码”功能的云语义预测模块,并结合了空间信息建模模块,如图3所示。空间信息建模模块中的每个注意力头都是一个“软”注意力模块,由多种卷积和最终的注意力分数组成。这种注意力模块允许模型根据输入的不同特征自适应地分配注意力。与传统的注意力模块不同,软注意力模块能够接受具有空间维度的输入表示,如图像、特征图或其他类型的数值数据。来自跳跃连接的x_1输入和上一层生成的x_2输入都经过1 × 1卷积处理,使它们具有相同数量的通道数。由于x_2来自于x_1的下一层,其尺寸是x_1的一半,因此对x_1进行了下采样操作。然后,它们被相加,并通过ReLU激活函数,经过另一个1 × 1的卷积和sigmoid激活函数处理,得到一个介于0到1之间的重要性分数。这个分数分配给特征图的每个部分,然后用这个注意力图乘以跳跃连接的x_1输入,生成该注意力块的最终输出。将同样的4个或8个软注意力模块的输出结果进行concat,然后对不同的注意力头进行平均池化,得到最终输出。

Figure 3. Workflow of spatial information modeling module
图3. 空间信息建模模块的工作流程
MSANet采用了一个U字形的架构。语义云预测模块是为了组建一个更精确的输出。该模块的结构与深度特征提取模块的结构一一对应。利用这五个初步的有效特征层与上一层得到的输出进行拼接(concat)然后进行特征融合,特征融合的方式就是对特征层进行上采样并且进行堆叠。
(1)
在公式(1)中,x_1是来自深度特征提取模块跳跃连接的输出,x_2是来自上层卷积输出的特征。经过第五个卷积池化块后,获得一个大小为[16, 16, 512]的特征层,随后通过上采样操作。最终,利用1 × 1卷积进行通道调整,并通过跳跃连接将其输出的x_1与第五个卷积池化块上采样之后的x_2作为多头注意力模块的两个输入,再将多头注意力模块的输出与x_1拼接(concat)到一起得到一个[32, 32, 256]的特征层,以此类推,最后通过双线性插值的方法将特征层形状还原回输入图像大小,通过应用1 × 1卷积进行通道调整,将最终特征层的通道数调整为类别数(num_classes)。
3. 实验与分析
在训练阶段,我们使用AdamW优化器对256 × 256的图片进行训练,参数为:学习率 = 0.001,beta1 = 0.9,beta2 = 0.999和epsilon = 10e−8。在我们的网络顶部,我们设置了Sigmoid激活函数来整理结果。损失函数采用Dice损失函数。训练优化指标包括OA,R,P,F1,IoU。训练阶段的批量大小被固定为16。我们的网络花了大约200个epochs来收敛。
如上所述,使用pytorch框架来建立和训练我们的模型。所有的训练都是以16个批次的规模进行的,并使用验证集来评估训练过程中的表现。具体来说,数据被分为以下几组:训练(70%),验证(25%),测试(5%)。主要使用的软件包包括python 3.7、CUDA 11.6、cudnn 8.5、pytorch1.12等。实验损失图如图4。

Figure 4. Loss diagram of ZY-3 dataset on MSANet
图4. ZY-3数据集在MSANet上的损失图
为了验证MSANet算法的有效性,在ZY-3卫星影像数据集上做了全面实验。我们将所提出的方法与具有相同CNN架构的其他方法和基于Transformer进行了比较。如图6所示,实验包括基于Transformer的算法、基于传统CNN的算法以及本章所提出的实验进行结果比较。其中TransUNet融合了U-Net与Transformer,Transformer模块使TransUNet能够捕捉图像的全局依赖关系,有助于更好地理解图像的上下文信息,这在一些需要全局信息的任务中很重要。U-Net的结构允许TransUNet保留并利用图像的细节信息,特别是在分割任务中,对目标的准确定位和边界的清晰识别非常重要。通过计算不同位置的权重来捕捉全局依赖关系。TransUNet通过梯度下降等优化算法来更新模型参数,使损失函数最小化,从而提高图像分割的准确性。虽然TransUNet在小尺寸或低分辨率图像上表现较好,但需要大量数据参与训练,且对局部细节信息的提取能力相对较弱。SwinUNet引入了窗口注意力机制和Swin Block块,窗口注意力机制包括对输入序列进行划分、局部区域内的注意力计算、全局位置的整合等步骤。Swin Block作为基本构建块包括位移层和窗口注意力层,其中传统的自注意力机制在计算注意力权重时需要对整个输入序列进行全局操作,这对于大尺度图像来说计算复杂度很高。Swin Transformer通过将大尺度图像输入分割为多个固定大小的图像块(称为窗口),在每个窗口级别上计算自注意力权重,降低计算复杂度。这种混合结构使得SwinUNet在各种图像处理任务中更具通用性,既能处理全局关系,又能保留局部细节,适用于不同尺寸和分辨率的图像。但SwinUNet在处理高分辨率图像或大规模数据集时,可能会遇到资源限制的问题。
3.1. 结果分析
为了与传统的基于卷积神经网络的图像分割模型进行比较,引入了U-Net与各种backbone的结合网络和DeeplabV3+进行对比实验。U-Net是一种经典的卷积神经网络图像分割模型,由于网络结构的局部感受野和上采样操作的限制,U-Net往往在细微边界的分割中表现不佳,包括对于全局上下文信息重要性较高的任务,U-Net性能受限。而DeeplabV3+是一种基于金字塔池化的卷积神经网络图像分割模型,该模型通过引入空洞卷积和解码器模块来改进传统的DeepLabV3+,但是对于小尺寸的目标物体,其检测和分割准确性可能会有所下降。CUT_UNet是以VGG16为backbone的UNet网络,并删减了backbone的下采样卷积层数,以探究卷积层数与精度的关系。MSANet即本文提出的主要网络。表1中MSANet的多头注意力模块数量为8。在2.2中消融实验中会进一步探究多头注意力模块数量与模型精度的关系。

Table 1. Comparison table of indicators between MSANet and various models
表1. MSANet与多种模型的指标比较表

Figure 5. (a) OA indicator chart; (b) IoU indicator chart; (c) P indicator chart; (d) R indicator chart; (e) F1 indicator chart.
图5. (a) OA指标图;(b) IoU指标图;(c) P指标图;(d) R指标图;(e) F1指标图。
此表格中,IoU和OA取所有轮数中的最优值,P、R和F1则是取了IoU最优值所在的轮次的值(以下MSANet均指MSANet-8 head)。图5即为表格中五项评价指标在200epoch中的走势图。从表格上可以看出,可以看出在资源三号卫星影像数据集中MSANet-8 head表现突出,OA比基于Transformer的TransUNet高2.03%,比基于CNN的U-Net-Res50高1.32%。IOU比TransUNet高5.32%,比U-Net-vgg16高2.35%。从定性和定量分析的结果可以看出,所提出的方法具有良好的性能,并且在云分布和云含量差异较大的场景中也具有良好的检测效果。其中使用了ResNet50的预训练权重进行迁移学习,通过迁移学习技术对模型进行改进,使模型快速适应遥感影像的云端识别。
为了增加方法的普适性,我们对遥感影像与卷积神经网络的关系进行了进一步的讨论,数据集分别使用中分辨率的GF1_WHU数据集和低分辨率的38-cloud数据集。为了进行实验比较的一致性,对数据集中的所有图片统一的尺寸调整为256 × 256大小,所用超参数相同。

Table 2. Comparison table of indicators of MSANet in three datasets
表2. MSANet在三个数据集的指标比较表
如表2所示,可以看出MSANet在ZY-3数据集上表现最好,虽然GF1_WHU数值较高但是相对于之前所做的对比实验并没有一个好的提升。

Table 3. Metric comparison table of MSANet on the same cloud dataset
表3. MSANet在同一云数据集上的指标比较表
除了上表中的数值结果,对于复杂背景下云覆盖的情况下,从资源三号数据集中选出三张具有不同特点的遥感云覆盖影像进行分析,这些图像具有不同程度云层覆盖和背景,与所提出方法的比较结果如图7~9所示。图中从左到右依次是原始图像、TransUNet、SwinUNet、UNet_vgg16、UNet_res50、DeeplabV3+、CUT_UNet、MSANet和Ground Truth。从视觉结果来看,总体上来看,所提出的MAT_UNet方法更接近于ground truth,其中黑色代表背景像素,白色代表云像素。

Figure 6. Image1 experimental results. (a) Original image; (b) TransUNet; (c) SwinUNet; (d) U-Net-vgg16; (e) U-Net-Res50; (f) DeeplabV3+; (g) CUT_UNet; (h) MSANet; (i) Ground Truth
图6. 图片1的实验结果. (a) Original image;(b) TransUNet;(c) SwinUNet;(d) U-Net-vgg16;(e) U-Net-Res50;(f) DeeplabV3+;(g) CUT_UNet;(h) MSANet;(i) 真实标签
在图6中可以看出,云层覆盖了一个雪山。而云层和雪之间的反射是极其相似的,遥感影像中对云层检测就比较容易受到这种高反射率地物例如雪或冰因素的干扰。图6(h)显示了MSANet的结果,MSANet与图6(b)~(c)的基于Transformer算法、图6(d)~(g)中基于CNN的算法相比,图中红框标注的区域中,MSANet可以清楚的将云层从含雪的复杂背景中区分开来。由此看来,MSANet具有优异的云检测能力,能够抵抗复杂环境中雪因素的干扰。从表3中图1的数据指标看出,MSANet的OA比TransUNet高4.7%,比U-Net-vgg16高1.33%;MSANet的F1比以Swin Transformer为backbone的SwinUNet高12.23%,比U-Net-vgg16高5.46%。尽管MSANet对云层的边界和细节更加关注,但由于其重点放在细节上,导致了Recall指标表现较差。

Figure 7. Image2 experimental results. (a) Original image; (b) TransUNet; (c) SwinUNet; (d) U-Net-vgg16; (e) U-Net-Res50; (f) DeeplabV3+; (g) CUT_UNet; (h) MSANet; (i) Ground truth
图7. 图片2的实验结果(a) Original image;(b) TransUNet;(c) SwinUNet;(d) U-Net-vgg16;(e) U-Net-Res50;(f) DeeplabV3+;(g) CUT_UNet;(h) MSANet;(i)真实标签
图7显示了一个厚云的图像,整个图像的下垫面包括一块水域、大面积的土地和山坡。这些使云层检测任务变得困难。从图7中可以看出,MSANet检测云层细节的过程要比其他两种方法更加有效。在图7(e)中,U-Net-vgg16的结果对于云检测来说是比较合理的。而MSANet的结果比U-Net-vgg16好,但那些邻域像素的薄云段却很模糊。这有两个原因,首先,云图像的分辨率很高,包含各种物体。云的分割与自然图像的分割不同,该任务是一个像素到像素的二元分类问题,它更注重保留高频信息。然而,我们提出的网络通过结合多头注意力模块和卷积神经网络的优势获取类间距离信息,加强对重要特征的控制,从而使得模型具有更好的空间适应性。这种整合的方法为云层边界的精细化划分提供了一种有效的解决方案,为云检测任务带来了显著的改进和提升。图7中的红框所标注区域中,可以明显看出MSANet所展现的优势。如表3中指标所示,MSANet的OA比SwinUNet高2.75%,比U-Net-vgg16高1.93%;MSANet的IoU比基于Transformer的SwinUNet高3.53%,比基于CNN的DeeplabV3+高1.19%。

Figure 8. Image3 experimental results. (a) Original image; (b) TransUNet; (c) SwinUNet; (d) U-Net-vgg16; (e) U-Net-Res50; (f) DeeplabV3+; (g) CUT_UNet; (h) MSANet; (i) Ground truth
图8. 图片3实验结果。(a) Original image,(b) TransUNet;(c) SwinUNet;(d) U-Net-vgg16;(e) U-Net-Res50;(f) DeeplabV3+;(g) CUT_UNet;(h) MSANet;(i) 真实标签
在图8中,有雾霾、厚薄不一的云层覆盖了一半的图像。相比之下,U-Net-Res50和DeeplabV3+在区分薄云和无云区域方面表现不佳。我们利用图8中图片3部分来评估MSANet在面对各种边界薄云和厚云时的性能。如图8(c)所示,可以看出DeeplabV3+无法处理细节信息,导致在细云的区分上存在困难。根据表3中图片3的指标表明,MSANet的OA比基于Transformer高3.58%,比DeeplabV3+提升2.43%;MSANet的F1比SwinUNet提升5.63%,比U-Net-Res50高3.01%。实验结果表明,不论复杂背景还是薄厚不均的云层,我们的方法都能获得优异的结果,各项指标的结果证明了所提出的遥感云检测检测方法的可行性和有效性。
3.2. 消融实验
为了探索所提出的MSANet的有效性,分别从backbone的不同、注意力模块数量的不同两个方面探究backbone的不同于注意力模块数量是否对整体模型精度产生影响。而MSANet-s是在MSANet的基础上(backbone为ResNet50)删除语义云预测模块中连续的卷积块,以探究MSANet的网络结构复杂度是否合适。从表4中可以看出,backbone采用ResNet50并且多头注意力模块数量设置为8效果最好。

Table 4. Accuracy evaluation of different network structure complexities and different backbones
表4. 不同网络结构复杂度与不同backbone的精度评估
4. 结论
提出了一种融合包含多头“软”注意力机制的空间信息建模模块的编码解码卷积神经网络的方法MSANet。MSANet是一个端到端的结构,主要由深度特征提取和云语义预测模块组成。实验证明,MSANet选取了恰当的注意力头数,且backbone采取高效的ResNet,对于ZY-3数据集这种高分辨率复杂背景遥感图像,效果相比基于transformer和传统卷积神经网络相比效果更好。
基金项目
项目类别名称(编号) (例如:国家自然科学基金项目(12345678))。
NOTES
*第一作者。