摘要:
针对面向合成孔径雷达(SAR)影像的高精度水体提取工作仍然存在较大的挑战,该文基于TransUnet深度学习模型和COSMO-SkyMed卫星的高分辨率(3 m)数据,深度挖掘Transformer模型的全局上下文捕捉能力和U-Net模型多尺度特征提取优势,建立了小样本数据集下的SAR影像水体提取模型。实验结果表明该文算法在小面积水体提取、山体阴影误判抑制方面优势明显,其水体提取结果的准确率、召回率、总体准确率、F1分数、交并比分别为89.54%、91.24%、98.01%、90.26%和82.28%,相较于U-Net模型、FCN-VGG16模型和HRNet模型,精度具有较大提升;同时采用该文的水体提取模型反演了洞庭湖区2019年7月—2020年6月的7景SAR影像的洲滩空间分布变化情况,阐明了其随季节性水位变化的年周期变化规律。
引用:
[1]徐康,朱茂,贺秋华,等.一种基于TransUNet的SAR影像水体提取及洲滩面积变化监测应用[J].测绘科学,2024,49(02):55-64.DOI:10.16251/j.cnki.1009-2307.2024.02.006.
引言
合成孔径雷达(synthetic aperture radar, SAR)具有全天时、全天候、不受云雨天气影响的特点,其影像中水体呈现明显较弱的后向散射,有助于水体与其他地物区分,因此采用SAR影像开展水体提取在洲滩变化监测、洪涝灾害监测方面具有重要的研究价值。此外洞庭湖作为进入长江中游的第一个大型通江湖泊,是长江中下游流域的重要蓄洪区,其洲滩演化特征在一定程度上反映洞庭湖输沙量和采砂量之间的平衡关系,是科学管理、合理规划和修复保护洞庭湖生态环境的有效途径和内在需求。
目前众多学者针对SAR影像提取水体及其洲滩变化监测已做了广泛的研究。传统的水体分割算法主要采用阈值分割方法、边缘检测方法和聚类分割方法[1-3],此类方法对相干斑噪声十分敏感,在实际应用中往往会产生过分割、边缘不连续等问题,且难以适用于复杂场景的SAR影像。基于深度学习的水体提取方法,能够提取SAR影像的多层特征,是SAR影像水体提取的热门研究方向。文献[4]提出第一个应用于语义分割任务的全卷积神经网络(fully convolutional networks, FCN),该网络的上采样操作过于简单、存在细节信息丢失等问题。文献[5]在FCN网络的基础上提出了具有编码解码结构的U-Net网络,该网络能够融合低分辨率和高分辨率的图像特征,大幅提升了图像分割精度。文献[6]将U-Net和DeeplabV3+模型应用于河流的提取,整体上取得较好的效果,在较狭窄的河流提取中准确率较低。文献[7]将条件随机场模型加入到 U-Net网络中,提升了水体边缘提取结果的准确性。文献[8]采用U-net、DeepUnet以及 HRNet模型进行水体提取,对比分析了不同模型的效果,HRNet模型的效果最优。此外,由于SAR影像的视觉特征不明显[9],且受相干斑点噪声的影响,因此在SAR影像上都选取足够的训练样本是较为困难的,因此文献[10]引入迁移学习方法,利用其知识迁移能力将已有的训练样本的类别标签信息迁移至未标注的样本,以降低获取新样本所需的人工代价,提高了水体提取的时效性。文献[11]设计了用于洪水提取的卷积神经网络,从而实现了全自动的快速洪水监测。文献[12]在水体提取过程中引入数字高程模型数据进行辅助,用于抑制在地形起伏较大区域山体阴影对水体提取的干扰;文献[13]提出Transformer架构,该模型相比于传统卷积神经网络(convolutional neural networks, CNN)和循环神经网络(recurrent neural network, RNN)模型,具有并行计算能力和捕捉长距离依赖关系的能力;文献[14]又提出了基于Transformer的视觉模型(vision transformer, ViT),该模型使用Transformer 编码器来提取图像特征,通过预训练将图像进行分块与编码,使得Transformer模型能够应用于图像分类、目标检测等视觉任务。文献[15]将TransUNet算法用于光学影像的微小水体提取研究,提升了复杂场景中提取微小水体的准确性。
由于SAR相干成像机制的影响,其影像通常存在叠掩、阴影、斑点噪声等现象,这使得SAR影像的解译存在困难,增加了制作样本数据集的难度,导致SAR影像样本数据集匮乏,同时SAR影像阴影的特征与水体影像特征较为相似,也会干扰水体的提取结果。因此亟需研究小样本数据集下的水体提取算法,同时减少山体阴影的误判。
在洲滩面积变化监测方面,文献[16]基于鄱阳湖湖底地形数据和水位监测数据,采用张力样条插值方法模拟了洲滩面积变化规律;文献[17]基于多平台的光学遥感卫星数据,采用决策树方法实现了洞庭湖区洲滩变化的监测;文献[18]提出一种改进的XGBoost算法,并与随机森林算法、普通XGBoost算法进行对比分析,实现了针对Landsat和GF1遥感影像的内河洲滩提取;文献[19]采用归一化差分水体指数法提取特定水位下的水边线,再结合形态学方法提取河床边界和洲滩,实现了1984—2020年长江南京段的洲滩变化反演。目前针对洲滩变化的研究多采用数值模拟、阈值分析、随机森林等传统方法,此类方法通常难以胜任复杂场景下的SAR影像分类任务,同时传统的洲滩变化反演多采用易受云雨影响的光学遥感数据,其空间监测尺度大,难以实现小时空尺度的洲滩动态监测任务。综上,研究基于高时空分辨率SAR影像洲滩变化动态监测方法,对于小时空尺度下的洲滩变化应用具有重要意义。
TransUNet是一个结合了Transformer架构和U-Net架构的深度学习模型,该模型中的Transformer架构的自注意机制可以处理来自图像的全局信息,这种全局上下文捕捉能力在小样本数据中尤其有用,可以保证模型更好地泛化,减少过拟合,而U-Net模型能够有效提取多尺度特征,两者组合使得TransUNet模型可以同时利用浅层和深层的特征,捕捉不同尺寸和级别的细节,在小样本情况下具有更好的分割潜能。TransUNet模型最初旨在进行医学图像分割,目前已有学者将其应用在遥感分类领域,但针对小样本数据集下SAR影像的水体提取还鲜有研究。故而本文采用TransUNet模型开展小样本数据集下的水体提取模型研究,并与UNet模型、HRNet模型和FCN-VGG16模型进行对比分析,验证本文提出算法的精度,同时将本文水体模型应用到洞庭湖区的洲滩面积变化监测中,剖析洞庭湖区的洲滩面积变化规律。
1.1 U-Net模型
U-Net 模型采用跳跃连接和U型结构,具有强大的图像分割能力,近年来,已有许多学者将U-Net模型用于遥感图像分类。U-Net模型高分辨率的浅层特征拥有丰富的细节信息,主要应用于精确的像素级定位,其深层则通过多次的卷积和池化操作获得了丰富的语义信息,对于地物的分类非常有效。U-Net的编码器,通常由连续的两个卷积层和一个池化层组成。它首先对输入图像进行4次下采样,每次生成不同尺度的特征图,并逐步增加特征通道的数量。在解码阶段,U-Net对编码器得到的特征图进行上采样,并将特征通道数量减半。在每次上采样后,都会将对应尺度的特征图裁剪,并与上采样的结果进行拼接。经过4轮的上采样,可以得到与原始输入图像同样尺寸的输出。最后,通过使用1×1的卷积核,将每个像素位置的特征向量映射到预设的类别,从而得到分割结果。也正是由于其对称的上采样和下采样过程,呈U型构造,故而称之为“U-Net”模型。
1.2 Vision Transformer模型
传统的CNN主要依赖卷积操作,它只能捕获图像的局部信息,而在处理全局上下文时则受到了限制,且在网络层次增加时的计算成本也比较高。事实上,由于卷积的局限性,其实际的感知野往往小于理论上的感知野,这导致不能最大限度地利用图像中的上下文信息进行特征提取。此外,随着网络深度的增加,卷积层的计算可能导致所谓的“计算爆炸”。
Transformer架构是为了克服传统CNN的这些局限性而被提出的,该架构完全依赖于注意力机制来建立输入和输出之间的依赖关系,它具有并行计算能力和捕捉长距离依赖关系的能力。Transformer结构的网络结构如图1所示。其整体结构由多个编码器和解码器层组成,每一个都由堆叠的自注意力和逐点全连接层构成。编码器由6个相同的层组成,每层有2个子层。第1个子层是多头自注意力机制,第2个子层是简单的全连接前馈网络。2个子层采用残差连接,并执行层归一化操作。解码器也由6个相同的层组成,除了编码器层中的2个子层之外,解码器还插入了第3个子层,该子层对编码器的输出执行多头注意力。
图1 Transformer网络结构
由于Transformer架构只能处理一维数据,而遥感影像属于多维数据,因此在处理遥感影像时需采用ViT模型[14],该模型在Transformer模型的基础上进行改进,通过预训练将图像进行分块与编码,使得具有全局自注意力的 Transformer 模型可直接应用于全尺寸图像,是面向图像语义分割的最新技术。
ViT网络模型结构如图2所示,其核心流程包括图像分块处理、图像块嵌入与位置编码、Transformer编码器和多层感知机(multilayer perceptron, MLP)头部处理。
图2 ViT网络模型结构
1)图像分块处理。ViT网络模型将输入图像切分为固定大小的小块,比如16×16的小块,每个小块展平为一维向量。
2)图像块嵌入与编码。将每个展平的小块转换为嵌入向量。加入位置信息,因为 Transformer本身不包含位置敏感性。此外需在所有图像嵌入的前面加入一个“类别”标记,用于最后的分类。
3)Transformer编码器。编码器将所有嵌入包括类别标记组合在一起进行特征编码。
4)MLP分类处理,将编码结果送入线性层进行分类分数预测,从最后一个Transformer块的输出中预测类别。
1.3 TransUNet模型
TransUNet的结构图3所示。TransUNet结构是基于经典的U-Net设计的,其特点是U型的编码器和解码器组合。在TransUNet中,编码器首先利用卷积方法抽取图像的浅层特征。这些浅层特征经过线性嵌入和位置编码得到标记后的图像块。随后,这些标记的图像块被传送到多个Transformer模块中,从而实现在卷积阶段捕获局部空间细节,在Transformer阶段捕获全局上下文信息。在解码阶段,TransUNet对来自Transformer的输出进行空间维度的调整,以与卷积网络模块相适应,进一步增强了局部和全局的空间信息整合能力。此外,为适应各种空间尺寸,解码器还包含多个上采样步骤。这样的设计策略结合了卷积神经网络的局部特征提取和Transformer的全局特征融合,旨在为图像分割任务提供更丰富的上下文信息。
图3 TransUNet网络算法结构
具体来说,TransUNet模型利用U-Net的下采样策略,对输入图像进行3次下采样得到不同尺度的特征图,由这些特征图构建浅层特征层。浅层特征图进一步被切分为图像块,并送至一个由12层Transformer组成的编码器。在编码器中,Transformer通过其特有的归一化、多头注意力和深层感知机策略,对图像块进行处理,由此获取全局上下文信息。在解码阶段,通过对编码的特征进行3次上采样恢复图像原始空间尺寸,同时融合编码器产生的同分辨率浅层特征,最后基于分类器获取高质量的图像分割结果。
综上所述,TransUNet巧妙地融合了U-Net的网络结构与Transformer的全局注意力机制,实现了局部细节和全局语义的高效整合。该模型采用CNN网络实现浅层特征的提取,采用图块嵌入实现位置信息的编码,采用多个Transformer编码器实现深层特征的提取,采用类似U-Net模型的跳跃连接实现浅层特征和深层特征的结合,最后经过上采样和多层卷积,恢复图像的原始分辨率,最终实现高质量的图像分类任务。
1.4 TransUNet模型改进
1)批处理方法优化。
在ViT模型中,嵌入层(embeddings)负责将图像分割为多个小的方形区域,每个区域称之“补丁”(patch)。这些补丁被线性嵌入层处理,以使其变为传统的Transformer模型可以处理的序列。嵌入层(embeddings)在对补丁进行转化时常使用ResNetV2模型作为混合模型进行特征提取,而传统的ResNetV2模型采用GroupNorm技术进行归一化,该方法将通道分为多个组,对每个组的特征进行归一化,其归一化不是基于整个数据批次的,因此它不会自动适应数据的不同分布。
为提升Transfomer模型在小样本SAR影像水体提取的效果,本文在ResNetV2模型中采用BatchNorm归一化技术,该方法在训练过程中计算当前批次的均值和方差,并使用这些值来归一化输入,同时会为整个训练集维护一个移动平均值和方差。在测试过程中使用在训练期间计算的移动平均值和方差来归一化输入,能够确保模型测试行为不会受到测试数据随机批次的影响。
2)模型结构优化。
针对SAR影像水体提取的小样本学习任务,需避免样本数量少可能造成的过拟和,同时为提升模型训练速度,需对TransUnet模型的隐藏层大小、Transfomer的注意力头数、编码器与解码器的层数进行结构优化。在TransUnet模型中,隐藏层大小表示单个Transformer层的总维度,其大小会影响模型参数容量和计算成本,注意力头数决定了模型在不同子空间学习依赖关系的能力,编码器和解码器层数表征模型的网络深度,决定了模型学习更抽象和高级特征的能力,三者对模型的分类结果有较大影响,因此为保证模型精度,同时避免过拟合,需结合SAR影像提取水体的需求,对其参数进行调整优化。
本文结合SAR影像的水体样本,通过多次实验,实现了对TransUnet模型的网络结构的优化,最终确定改进的TransUnet模型结构。
3)TransUnet模型损失函数。
在SAR影像中,地物的分布是不均匀的,尤其是针对水体提取而言,在大部分地区水体占SAR影像的面积通常较少,这会导致模型训练时水体与非水体之间的类别不均衡。为削弱类别不平衡对模型的影响,本文模型采用Dice系数构建损失函数,Dice系数表达式见式(1)。
D sc = 2×Ρ p ∩ Ρ t +ε Ρ p ∪ Ρ t +ε (1)
式中:Pp为预测为水体的元素集合;Pt为真实为水体的元素集合;ε为平滑项,用于保证数值计算的稳定性,本文设置为0.000 01;Dsc为计算得到的Dice系数。
基于Dice系数的损失函数可以表达为式(2)。
L D =1-D sc =1- 2×Ρ p ∩ Ρ t +ε Ρ p ∪ Ρ t +ε (2)
式中:LD为基于Dice系数的损失函数。基于Dice系数的损失函数更关注对水体区域的挖掘,能够避免前景不平衡带来的消极影响。
1.5 基于水体提取的洲滩面积反演方法
洞庭湖区河湖相通,湖泊水位明显受制于河川水情,其水位变化具有“水落露滩,水涨成湖”的特点。为准确获取洲滩面积在不同时期的变化,采用湖区矢量边界与水体提取结果计算差集的方法,反演洲滩面积。具体方法如下:
1)湖区矢量边界提取。
由于湖区枯水季洲滩面积持续萎缩,通常在12月份面积最小,因此可选取12月份洲滩面积较小的SAR影像作为参考底图,同时结合光学影像,采用人工目视解译的方法,勾绘SAR影像中的洞庭湖区的矢量边界。
2)洲滩矢量提取。
将SAR影像提取的水体分布图作为掩膜,与洞庭湖区矢量边界进行空间叠加分析,洞庭湖区边界范围内未被水体掩膜覆盖的即为洞庭湖区的洲滩位置,空间叠加分析方法如式(3)所示。
Sz=Sh-Mw (3)
式中:Sz为洲滩像素集合;Sh为湖区矢量像素集合;Mw为水体掩膜像素集合。
1.6 数据预处理方法
水体提取工作开展之前,需对原始SAR影像进行基本的预处理工作,主要包含图像的滤波、地理编码、辐射定标。
1)图像滤波。
SAR影像滤波采用改进的LEE滤波,用于抑制斑点噪声。
2)地理编码。
基于影像轨道信息和数字高程模型(digital elevation model,DEM)数据,采用RD方程进行SAR影像的地理编码,获取正射SAR影像。
3)辐射定标。
首先基于均值和方差将SAR影像的辐射强度量化至[0,255]区间;然后选取一副SAR影像作为参考影像,以参考SAR影像中水体的散射强度作为参考值,再从其他的SAR影像中选取水体图斑,分别统计其均值,由均值分别计算相较于参考影像的辐射强度缩放系数k,最后基于该缩放系数k,将SAR影像辐射强度校正到相同尺度下。
1.7 数据处理流程
本文的数据处理流程如图4所示。
图4 数据处理流程
2.1 研究区概况
洞庭盆地位于湖南省的北部,长江中游荆江段的南岸,总面积达2 625 km2,蓄水量1.67×109 m3,是我国第二大淡水湖。洞庭湖的天然水域主要由东洞庭湖、目平湖和南洞庭湖组成。其接纳湘、资、沅、澧四水和长江荆江河段松滋、太平、藕池三口,以及汨罗江、新墙河等湖区周边中小河流的来水来沙,经湖泊调蓄后由城陵矶出口汇入长江。
2.2 数据源及样本数据集制作
本文数据采用COSMO-SkyMed 卫星2019-07、2019-09、2019-11、2019-12、2020-02、2020-05、2020-06的7期SAR影像。本文采用2019年7月的SAR影像制作训练样本,采用2020年5月的SAR影像用于验证水体提取的精度,同时基于本文提出的水体算法,对7期SAR影像开展了洲滩面积提取工作,用于洲滩演化规律的分析。
水体提取工作开展之前,需基于原始SAR影像制作SAR影像水体样本数据集。其制作方法如下:
1)SAR影像数据预处理,包括影像滤波、地理编码和辐射定标,其中地理编码的DEM数据采用TanDEM-X 90 m的数据。
2)采用2019年7月的SAR影像,随机选取包含水体的SAR影像样本36个,样本大小为1 024×1 024,水体在样本中标记为1,非水体标记为0。
3)为提升小样本数据集下模型的泛化能力,需对原始的数据集进行数据扩增,本文采用对角镜像、水平翻转、垂直翻转的方法对SAR影像样本数据集进行扩增,共获取1 024×1 024的SAR影像水体样本共136个。
2.3 SAR影像水体提取与精度评估
本文通过随机抽样的方法,选取123个样本作为训练集,选取13个样本作为验证集,训练集与与验证集比例约为10∶1,同时为测试本文算法的准确性和泛化能力,在2020年5月SAR影像中,随机选取平原地区和山区两个区域的SAR影像作为测试集,平原地区的SAR影像大小为2 021×2 375,如图5(a)所示,山区的SAR影像大小为1 058×1 189,如图6(a)所示。
本文的实验软件环境为:Pytorch 1.8.2,CUDA11.1,python环境为Python 3.7;硬件环境为:CPU Intel至强金牌6348,GPU NVIDIA RTX 4090(两颗),单颗GPU显存为24 GB。
网络训练过程中以改进的TransUNet模型作为训练模型,其学习率设置为0.001,补丁大小为16,隐藏层大小512,Transformer的注意力头数为4,Transformer的编码器和解码器层数为4。此外为验证本文算法的有效性,采用经典的HRNet模型[8]、U-Net模型[5]和FCN-VGG16模型[4]开展高分辨率SAR影像的水体提取工作,作为本文算法的对照组实验。
平原地区不同算法的提取结果如图5所示,由图5可知,TransUnet模型、FCN-VGG16模型、U-Net模型的整体精度较高,HRNet模型精度较差,HRNet模型在SAR影像散射特征较弱时,易产生误判,同时在细小的水体图斑提取中也存在漏判,表明HRNet模型虽然能够在多个尺度下提取特征,但由于SAR影像水体样本较少,难以获取高精度的预测模型。
图5 平原地区水体提取结果对比
图6 山区水体提取结果对比
TransUnet模型、FCN-VGG16模型、U-Net模型的整体精度较高,3种算法都能获取相对完整的水体分类结果,但在水体边界的完整性、小图斑提取的准确性方面,TransUnet模型最优,U-Net模型次之,FCN-VGG16模型的提取效果最差。TransUNet模型提取的水体边界清晰且面积完整,在小坑塘、小田块的水体也表现出优异的性能。
山区不同算法的提取结果如图6所示,由图6可知,TransUnet模型的精度明显优于U-Net模型、FCN-VGG16模型和HRNet模型。在山区雷达成像存在阴影的区域,FCN-VGG16模型容易对阴影区存在较多的误判;HRNet模型在小面积提取方面存在较多的漏判;U-Net模型在小面积水体方面虚警率偏高;综合对比各个模型提取不同类型水体的性能,TransUnet模型的水体提取能力最优。
为进一步量化评估本文提出算法的精度,本文采用准确率、召回率、总体准确率、F1分数、交并比评估水体的提取精度。统计精度指标如表3所示,由表3可知,本文提出的TransUnet模型的准确率、召回率、总体准确率、F1分数和交并比分别为89.54%、91.24%、98.01%、90.26%和82.28%,与其他3种算法对比,本文算法的性能均为最优,也进一步表明TransUNet模型在SAR影像的小样本数据集中能够获取较强的泛化能力,能够利用有限的样本数据,实现SAR影像的高精度水体提取。
2.4 洞庭湖区洲滩面积变化监测
采用本文改进的TransUNet模型,提取2019-07、2019-09、2019-11、2019-12、2020-02、2020-05、2020-06 7景SAR影像中的水体,同时结合洞庭湖区的边界矢量,提取出的不同时间的洞庭湖区洲滩分布如图7所示,图7中红色线条为基于SAR影像和光学影像勾绘的洞庭湖区边界矢量,黄色区域为提取的洲滩区域,底图为对应时相的SAR影像。图8为洞庭湖区洲滩面积随时间的变化规律。
图7 洲滩提取结果
由图7可知,本文模型的水体提取技术有助于洲滩面积的准确提取,可实现洞庭湖区洲滩演化规律的持续可靠监测;同时结合图8的洲滩面积演化规律可知,洞庭湖区的洲滩面积在12月份最大,为570.56 km2,7月份最小为67.91 km2。洞庭湖区的洲滩面积变化呈现明显的年周期变化,主要受季节性水位变化的影响较大,在每年6、7月份的雨季,洞庭湖区的洲滩随着水位上涨大部分被淹没,8—12月,洞庭湖水位开始下降,其洲滩呈现明显的扩增趋势,在12月份左右达到峰值,之后的1—6月洲滩逐渐萎缩,尤其到第二年5、6月的雨季,洲滩面积开始迅速减少。
图8 洲滩面积演化规律
为量化评估本文洲滩提取算法的精度,本文对7景SAR影像洲滩提取结果的精度进行评估。
在不同的时间的SAR影像洲滩提取中,本文算法均能获得较高的提取精度,也验证了本文模型具备较强的泛化能力。