RSE2020/云检测:Accurate cloud detection in high-resolution remote sensing imagery by weakly supervised deep learning基于弱监督深度学习的高分辨率遥感图像精确云检测
论文下载
0.摘要
云覆盖是一种常见且不可避免的现象,经常阻碍光学遥感图像数据的可用性,并进一步干扰基于遥感图像解释的连续制图。在文献中,现成的云检测方法要么需要各种手工制作的功能,要么利用深度网络的数据驱动功能。总的来说,深度网络比使用手工制作的功能的传统方法实现了更好的性能。然而,当前用于云检测的深度网络依赖于大量像素级注释标签,这需要大量的手动注释劳动。为了减少注释像素级标签所需的工作量,本文提出了一种基于弱监督深度学习的云检测方法,该方法使用块级标签,仅指示一个遥感图像块中是否存在云。在训练阶段,提出了一种新的全局卷积池(GCP)操作,以增强特征映射表示有用信息(例如空间方差)的能力。在测试阶段,通过局部池修剪(LPP)策略修改经过训练的深度网络以生成云激活图(CAM),该策略修剪在训练阶段训练的深度网络的局部池层,以提高CAM的质量(例如,空间分辨率)。通过滑动窗口将一幅较大的遥感图像裁剪成多个重叠块,然后通过修改的深度网络生成每个块的CAM。基于图像块和CAM之间的对应关系,收集多个对应的CAM来拼接大图像的CAM。通过使用统计阈值对晴空表面分割CAM,可以获得测试图像的像素级云掩码。为了验证我们提出的WDCD方法的有效性,我们收集了一个新的全局数据集,其中训练数据集包含来自世界各地622幅大型高分1号图像的200000多个具有块级标签的遥感图像块;验证数据集包含5幅带有像素级注释标签的大高分1号图像,测试数据集包含25幅带有像素级注释标签的大高分1号和紫苑3号图像。即使在极弱的监督下,我们提出的WDCD方法也可以实现出色的云检测性能,总体准确率(OA)高达96.66%。大量实验表明,我们提出的WDCD方法明显优于最先进的方法。
1.概述
随着遥感技术的快速发展,遥感图像在各种应用中得到了广泛的应用。与主动观测技术(如合成孔径雷达)相比,光学遥感图像具有显著的优势,包括价格低廉和清晰记录有关观测对象的详细信息。 然而,由于云层覆盖,光学遥感图像经常退化。根据MODIS云掩模,全球云分数约为67%(King等人,2013年)。通常,光学遥感图像中的云检测有两个主要应用要求,包括在线和离线模式。第一个在线需求来自车载通信处理器模块(Shan等人,2009;Tan等人,2016)。为了节省网络带宽和存储空间,车载处理器需要快速检测遥感图像中的云量,并根据云量覆盖率选择性地传输新的遥感图像。第二个离线需求来自地面系统(Schmitt等人,2019;Xu等人,2019;Zhang等人,2019)。作为生成无云宽范围遥感图像的预处理步骤,云检测和去除可以为连续制图和动态监测提供数据支持。在各种应用的驱动下,遥感图像中的云检测引起了广泛的研究兴趣。虽然已经提出了许多方法,但现成的云检测方法往往性能有限,通用性较弱。因此,遥感图像中的云检测仍然面临挑战,值得投入大量精力研究这一课题 到目前为止,许多云检测方法主要针对低分辨率遥感图像(如MODIS(Ishida等,2018))和中分辨率遥感图像(如Landsat(朱等,2015;柴等,2019;邱等,2017;邱等,2019))。图像通常由许多光谱带组成,这些光谱带有利于提高云检测精度(Huang等人,2010)。由于发射的高分辨率遥感卫星数量不断增加,具有四个光谱带的多光谱遥感图像变得越来越普遍。与低分辨率和中分辨率遥感图像相比,高分辨率遥感多光谱图像具有更高的空间分辨率,但谱带更少。如(Li等人,2017)所述,有限的光谱信息增加了云和下垫面之间的模糊性和混淆性,这使得在只有四个光谱带的高分辨率遥感图像中进行云检测更加困难。因此,开发高分辨率遥感图像的云检测技术变得非常迫切。 近年来,人们提出了各种基于手工特征或深度学习的云检测方法。 基于深度学习的云检测方法明显优于基于手工特征的方法(Francis等人,2019),但其卓越性能在很大程度上取决于大规模像素级云掩码。考虑到不同类型的卫星图像在频谱和空间分辨率方面往往存在较大差异,基于深度学习的云检测方法需要为每种卫星图像提供相应的像素级注释数据集,这需要大量的手动注释工作。从这个角度来看,探索先进的基于深度学习的云检测方法以节省注释劳动具有重要意义。 众所周知,场景级/块级标签比图像的像素级注释更容易收集。借助全局池操作,例如全局平均池(GAP),计算机视觉界的研究人员(Zhou等人,2014;Zhou等人,2016a;Zhou等人,2018)表明,仅使用场景级/块级标签训练的深度网络可以提供对象位置的信息,甚至可以用于语义分割。然而,由于使用局部池层和全局池操作的固有缺陷(Li等人,2018a),现有方法缺乏获取对象详细信息的能力,这对于云检测任务中准确检测云边界非常重要。一般来说,弱监督深度学习的潜力尚未完全用于云检测,值得进一步探索。 在本文中,我们仅利用块级监控来训练用于像素级云检测的深度网络。考虑到云的准确检测需要更多有用信息,我们在训练阶段提出了一种新的全局池操作,称为全局卷积池(GCP),该操作学习与信道无关的卷积权重,以增强特征图表示有用信息(例如空间方差)的能力。此外,我们提出了一种新的局部池剪枝(LPP)策略,用于生成云激活图(CAM)期间的测试阶段,该图用于生成最终的云掩码。通过修剪训练后的深度网络中的局部池层,提高了CAM的质量(例如空间分辨率),深度网络的分类性能保持稳定。然后,通过使用统计阈值对CAM进行分割,得到一幅遥感图像的最终云掩模,该阈值可以通过使用训练数据集中的负样本来计算 值得注意的是,本文以相同的方式处理薄云和厚云,这意味着我们提出的方法严格检测所有云,无论它们是薄云还是厚云。
然而,如果需要,可以使用一些方法(如手工制作的特征或索引)来区分薄云或厚云(李等人,2017)。对于云周围的阴影,也可以在准确检测到云后进行判别。例如,根据图像元数据中的太阳仰角和太阳方位角,可以根据检测到的云区域轻松推断阴影的位置,这将在我们未来的工作中显示。 考虑到没有任何合格的数据集可用于评估基于弱监督深度学习的云检测(WDCD)技术,我们基于高分一号卫星的多光谱图像收集了一个新的全球数据集。具体来说,高分一号卫星包括两个集成摄像机,具有8米的空间分辨率和4天的时间分辨率。每个摄像机有四个多光谱波段,跨越可见光到近红外光谱区域。收集的全局数据集包括训练数据集、验证数据集和测试数据集。训练数据集由分布在世界各地的622幅大型高分1号图像中裁剪出的200000多个图像块组成,每个图像块都有一个二进制标签,指示块是否包含云。验证数据集由5幅带有手动注释像素级云掩码的大型高分1号图像组成,通常用于调整超参数。测试数据集由25幅带有手动注释像素级云掩模的大型遥感图像组成,其中19幅来自高分一号卫星的大型图像和6幅来自资源三号卫星的大型图像。如表1和表2所示,高分1号图像的带宽和空间分辨率设置与紫源3号图像相似。由于高分1号图像是一种典型的高分辨率遥感图像,因此所收集的数据集和所提出的方法都具有良好的通用性。值得一提的是,测试数据集有资格用于评估多源遥感数据的云检测性能。 在实验环境中,我们在遥感图像块的监督下训练深度网络,但使用仅指示图像块是否包含云的粗标签进行像素级云检测。即使在这种极端情况下,我们提出的方法仍然产生了有希望的结果,并优于现有方法(Simonyan和Zisserman,2014;Zhang和Xiao,2014;Zhou等人,2016a;Li等人,2018a;Zou等人,2019)。本文的主要贡献总结如下:
- 本文提出了一种新的WDCD方法,该方法在块级监控下训练深度网络,用于高分辨率遥感图像中的像素级云检测
- 本文提出了一种新的全局池操作(即GCP)。与现有的全局池操作(如GAP)相比,GCP可以学习与信道无关的卷积权重,以增强特征映射表示有用信息(如空间方差)的能力。此外,深度网络可以以端到端的方式进行训练
- 本文提出了一种新的LPP策略来生成CAM。LPP策略显著提高了生成CAM的质量(例如,空间分辨率)
- 最后,本文收集了一个新的全局遥感图像数据集,用于弱监督云检测。具体来说,训练数据集包含超过200000个具有块级二进制标签的图像块(即,是否包含云),验证和测试数据集包含30个具有像素级云掩码的大型遥感图像
2.数据集描述
在本节中,我们详细介绍了数据集的描述,该数据集专门用于通过弱监督深度学习评估云检测
2.1. 具有块级标签的训练数据集
近年来,研究人员(Chai等人,2019;Shao等人,2019;Jeppesen等人,2019)倾向于将云检测视为一个语义分割问题,该问题使用像素级标签来指示每个像素是否包含云。鉴于目前没有适用于弱监督云检测方法(如我们的WDCD方法)的数据集,我们使用高分1号1A级图像(数字编号)为其创建了大规模块级全局数据集。训练数据集由206384个带有二进制标签的图像块组成,二进制标签表示块是否包含云。每个图像块的大小为250×250,有4个光谱带。首先,从分布在世界各地的622幅高分1级1A大图像中随机裁剪图像块。借助视觉解释,领域专家将没有任何云像素的块标记为负样本,并将云量覆盖率超过25%的块注释为正样本,以提高训练稳定性。总共人工收集了51596个区块。然后,以90度、180度和270度的角度对每个图像块执行旋转,使得图像块的数量成为原始数量的四倍,并增加到206384。共有109312份阴性样本和97072份阳性样本。 如图1所示,负样本不包含任何云,包括不同的土地覆盖类型,如冰、雪、裸地、植被、水、建筑物和农田。阳性样本被至少25%的云覆盖,并且包括图像块被具有不同形状、体积和下垫面的云覆盖的各种情况。图2直观地描述了训练数据集中样本的全局分布特征。
2.2. 具有像素级标签的验证和测试数据集
为了确定该方法的超参数并评估云检测性能,我们使用像素级标签手动注释了30幅大型遥感图像。在这项工作中,薄云和厚云都被考虑,并由领域专家仔细标记。 如图3所示,其中五个图像来自不同区域,用于验证以调整超参数,而其他25个全局分布的图像用于测试和评估整体性能。注意,所有像素级标签仅用于评估,而不用于训练。具体来说,验证数据集中的所有图像(即第1到第5个验证图像)都来自高分一号卫星。第一至第六幅测试图像来自资源三号卫星,其他图像来自高分一号卫星。 如表1和表2所示,资源3号和高分1号的带宽设置相同,但空间分辨率不同。值得一提的是,添加了6个大的子元-3图像(即第1到第6个测试图像),以验证我们提出的WDCD方法的泛化能力。我们根据云量、地表和地理位置的不同选择了这些大型测试图像。测试数据集中的图像包含几种典型的土地覆盖类型,如农业、水、草地、裸地、建筑物和冰雪。此外,还包括不同类型的云量(例如,100%云量、晴空、积云、层云、卷云和混合云量)。验证和测试数据集的分布也如图2所示。如图所示,在世界各地不同地点观察到的这些图像显示出良好的普遍性。
3.方法
在本节中,我们将详细介绍我们提出的WDCD方法。第1节给出了深度网络的结构和培训阶段的学习过程。第 2节介绍了使用经过训练的深度网络执行像素级云检测的方法
3.1. 块级监督下的深度网络学习
为了阐明我们的WDCD方法,我们首先描述了我们提出的基于GCP的深度网络的整体框架,并直观地说明了GCP的优越性。然后,我们给出了学习深度网络的实现细节。 有了块级标签,很容易构建区分性深度网络(例如VGG(Simonyan和Zisserman,2014))将图像块分类为云或非云,而不具备执行对象定位和分割的能力。GAP的发展表明,块级监控可以用于目标定位(Zhou等人,2016a),但由于GAP产生的弱连通性,定位精度需要提高。李等人(2018a)通过使用两阶段学习(TSL)方法进行对象定位,改进了GAP方法,而网络无法以端到端的方式学习。为了克服上述局限性,我们提出了基于GCP的WDCD框架。
如图4所示,在训练阶段,我们的深度网络的架构类似于用于图像识别的常见卷积神经网络(CNN),其中CNN由局部卷积(Conv)操作和局部池(LP)操作组成。在块级监控下,为块级分类任务设计正常的CNN;然而,我们利用卷积层的中间特征映射,在块级监督下使用它执行像素级云检测。 因此,我们用我们提出的GCP层替换间隙层或完全连接层,以提高特征地图的表示能力。如图4所示,通过每个信道与GCP层的空间卷积来执行特征映射,通过该卷积,在多次反向传播迭代后,空间方差将得到很好的表示。
图5。GAP和GCP正向和反向传播的示例。(a)GAP的正向传播。(b) GAP的反向传播。(c) GCP的正向传播。(d) GCP的反向传播。
如第1节所述,GAP(Zhou等人,2016a)是一种流行的全局操作。由于使用了全局池操作,块标签和最后一个卷积层输出的特征映射之间的连接非常弱。为了便于理解,我们在图5(a)和(b)中给出了一个示例,以显示GAP产生的弱连通性以及这种弱连通性的缺点。在前向传播期间,最后一个卷积层输出的特征图中每个信道的空间单元在聚合特征向量中聚合为一个单个单元,如图5(a)所示。因此,在图5(b)所示的反向梯度传播中,将聚集特征向量中每个单元的梯度值平均划分为特征映射中每个对应信道的空间单元。然而,这一过程削弱了对每个通道空间变化的感知。 考虑到GAP会影响对每个通道空间方差的感知,我们提出了一种新的全局池操作GCP。 如图5(c)和(d)所示,GCP层训练d个通道独立卷积核,其中d表示通道数,将在第6.1节中进一步讨论。与图5(a)和(b)中所示的间隙操作不同,GCP层学习与信道无关的卷积权重,并且特征映射用于使用所学习的GCP权重执行每个信道的空间卷积。 在训练过程中进行迭代向前和向后传播后,我们认为GCP层具有直观地利用特征图的重要和有用信息(例如空间方差)的能力。 从表面上看,我们提出的GCP在计算形式上类似于深度可分离卷积(DSC)(Chollet,2017)。然而,它们之间存在一些实质性差异。首先,卷积核的大小和输出不同。GCP的核大小与输入特征图相同,GCP的输出是一个KD维特征向量。根据DSC,其内核大小小于输入特征映射,而DSC的输出仍然是特征映射。第二,他们的目的完全不同。我们采用GCP,它带来了可学习的参数来捕捉特征图的空间方差,而DSC用于减少参数数量。 最后但最重要的区别是,GCP可以作为全局池(例如,全局平均池)的一种变体,它对特征图的每个通道执行空间卷积以获得全局特征。设{(bn,yn)|n=1,2,?,N} 表示训练云数据集。更具体地说,N是训练数据集中图像块的数量,bn表示第N个图像块,yn表示其标签(即yn=[1,0]表示给定图像块包含云,yn=[0,1]表示给定图像块不包含任何云)。 设Ψ={C,G,W}表示深度网络的所有权重,其中C表示分层卷积层的权重,G表示GCP层的权重,W表示云激活权重。对于给定的图像块bn,它被发送到深度网络,并输出特征映射fnk作为等式(1)。 其中fnk表示最后一个卷积层输出特征映射的第k个通道,φ表示深度网络中卷积、池和激活计算的表示。通过每个通道的全局卷积池fnk,我们计算每个通道的fnk激活值,如等式所示。 其中,Onk表示第k个通道处fnk的激活值,Gk∈ G表示第k个通道处GCP层的权重,? 表示逐通道的空间卷积。 在这个实验设置中,每个训练图像块都有其二进制标签,指示块是否包含云。因此,采用基于softmax的交叉熵损失函数来学习网络Ψ={C,G,W},并建模全局卷积结果和块标签之间的连接,由等式(3)指定。 其中Wk1∈ W表示云激活权重,表示fk对云的贡献. y优化等式(3)中的函数,同时学习卷积权重C、GCP权重G和云激活权重W。在第4.2节中,我们将介绍如何使用学习的深度网络进行云检测,深度网络的参数由卷积权重C、GCP权重G和云激活权重W组成。
3.2. 基于训练深度网络的像素级云检测
第3.2.1节讨论了局部池层的影响,并介绍了局部池操作剪枝(LPP)策略,我们使用该策略修改经过训练的深度网络。在第4.2.2节中,我们介绍了如何使用第4.1节中学习的深度网络自动生成一幅大型遥感图像的CAM。此外,我们在第4.2.3节中简要总结了我们提出的WDCD方法
3.2.1. 通过局部池修剪的块云激活映射
局部池运算是卷积神经网络的一个常见而重要的部分。通常,局部池操作用于降低内存和计算成本,扩大感受野,并提供平移不变性。然而,局部池的使用是一个无限强的先验,即每个单元应该对小的平移保持不变。只有当先验假设合理准确时,局部池才有用。如果任务依赖于保留精确的空间信息,那么在所有特征上使用局部池可能会增加训练误差(Goodfello等人,2016)。 此外,Ruderman等人(2018)发现,为了实现自然图像分类的最佳变形稳定性形式,合并层既不必要也不充分。此外,对于初始化时的图像分类而言,合并会带来过多的变形稳定性,在训练期间,网络必须学会抵消这种归纳偏置(Ruderman等人,2018)。 众所周知,深度CNN通常由多个卷积层和局部池层组成。此外,卷积层包含可学习的权重,但局部池层不包含任何权重,旨在通过减小特征地图的大小来追求平移不变性和旋转不变性。由于云的均匀化特性,移动和旋转不是云检测任务中的关键因素。在一定程度上,当各种训练样本的体积足够大时,云样本的种类自然覆盖了平移-旋转不变性的情况。因此,使用卷积层作为特征提取器并在测试阶段修剪局部池层以追求更高的特征图分辨率似乎是合理的。此外,实验部分也验证了这一说法。
图6。具有和不具有局部池修剪(LPP)的深度网络之间的差异。值得注意的是,在该图中我们没有生成NCAM。
基于上述理论,并考虑到云检测任务需要保留精确的空间信息,我们在生成CAM时从云检测网络中剪除局部池层。这个操作被称为LPP。大量实验表明,LPP操作在保持网络性能稳定的情况下提高了输出CAM的空间分辨率。图6描绘了在生成CAM时,具有和不具有LPP的深度网络之间的差异。当采用LPP策略时,CAM的空间分辨率从20×20显著提高到230×230。注意,无论是否使用LPP操作,生成的CAM的空间分辨率将调整为250×250,以便CAM将对应于输入图像块的大小。
图7。使用和不使用LPP计算CAM的细节。(a) 显示输入图像块。(b) 显示了没有LPP的块的CAM。(c) 图示了块的凸轮。注意,(b)和(c)描述了从蓝色(低云概率)到红色(高云概率)的色阶。(有关此图例中颜色的说明,请参阅本文的web版本。)
图7显示了使用和不使用LPP的方法生成的结果的比较。为了更好地说明LPP的优越性,我们使用了结果的合成图像。如图所示,LPP显著提高了CAM的质量(即空间分辨率),这是检测小而密集对象的关键。也就是说,LPP操作可用于高度依赖于输出特征图的高空间分辨率的基于DCNN的检测任务,例如小目标检测、无人机图像目标检测等。 给定一个图像块b,最后一个卷积层的特征映射f可以根据卷积权重C通过等式(1)计算,然后使用f计算具有GCP权重G的每个通道的激活值。由于LPP操作,特征图的大小大于GCP权重,因此GCP权重在计算之前调整为与特征图相同的大小。之后,我们通过等式(4)采用线性调整(LA)操作。 其中,Tk是第k个通道的修改特征图;δ(fk)=fk? Gk表示在GCP权重G的帮助下,最后一个卷积层的第k个通道的激活值;τ(fk)代表统计值,如fk的平均值或中值。(fnk表示最后一个卷积层输出特征映射的第k个通道) 采用LA操作将f值调整到适当的范围。首先,我们将f与其激活值相乘,然后将结果除以f的平均值。 此外,我们通过等式(5)计算块b的CAM Mb。 其中Wk1,k=1,2,?, d表示云激活权重。
3.2.2. 使用滑动窗口的扩展场景的云激活地图
在一幅大的遥感图像I上,我们得到一组重叠块{b1,b2,?,bm}通过从左到右和从上到下滑动窗口。我们从{b1,b2,?,bm}使用等式(5)。为了提高检测效率,我们首先使用第4.1节中训练的深度网络将图像块分类为云或非云,并且仅使用分类为云的那些块来计算CAM。通过拼接块级CAM,重叠区域通过平均投票进行融合,图像I的CAM MI可以通过等式(6)计算。 为了便于分类,图8中直观地示出了用于生成一个大RS图像的CAM的具体过程。
图8。计算一幅大型遥感图像的云激活图(CAM)的过程。
3.2.3. 通过分割云激活图生成云掩码
使用高质量的CAM,可以通过简单的阈值分割算法确定二值云掩码。为了抑制薄云和小云的遗漏误差,我们通过等式(7)计算了晴空表面的阈值。 其中k是一个经验常数,μ表示训练数据集中所有负样本的CAM的平均值,σ表示训练数据集中所有负样本的CAM的标准差,以及? 表示相对于晴空表面的阈值。 基于阈值? 在等式(7)中,通过等式(8)计算图像I的二元云掩模SI。 给定一个RS图像,分割过程的视觉结果(包括中间CAM和最终二元掩码)如图9所示。 为了便于理解拟议方法,我们在图10中简要总结了拟议WDCD方法的训练和测试阶段。
图9。CAM的分割。(a) 原始图像,(b)(a)、(c)计算出的(a)、(d)通过分割CAM(c)计算出的最终云掩码的相应地面真值
图10。我们提出的WDCD方法的流程图。
|