基于金字塔视觉变换的类引导网络高分辨率遥感图像高效语义分割
Class-Guidance Network Based on the Pyramid Vision Transformer for Efficient Semantic
Segmentation of High-Resolution Remote Sensing Images
摘要
多分类语义分割中类之间的小差异和类内的大变化是全卷积神经网络的“编码器-解码器”结构没有完全解决的问题,导致对容易混淆的类别的不精确感知。为了解决这个问题,在本文中,我们认为足够的上下文信息可以为模型提供更多的解释线索。此外,如果我们能够挖掘每个语义类的类特定感知信息,我们可以在解码过程中增强属于相应类的信息。因此,我们提出了基于金字塔视觉变压器(PVT)的类引导网络。 具体来说,以PVTA为编码器网络,接下来的解码过程由三个阶段组成。首先,我们设计了一个RFB,利用并行分支处理和不同的扩张率将接收场扩展到不同的程度。其次,我们提出了一个语义引导块SGB,利用高级特征来引导低级特征的通道增强。第三,我们提出了类引导块来实现相邻特征的类感知引导CGB,并通过渐进方法实现细化分割。根据波茨坦和瓦辛根数据集的实验发现,该方法的总体准确率分别为88.91%和88.87%。
一、导言
随着高分辨率遥感地球观测的快速发展和卫星数据分辨率的不断提高,遥感影像的鲁棒语义分割对于地球观测[1]、土地利用[2]、土地覆盖[3]和城市规划[4]、[5]至关重要.
在更早的时代,传统的machine-learning-based技术试图利用少量的手工特征(即形状、纹理和颜色)来实现分割遥感影像中地物的数字对象标识符。然而,各种地物的复杂分布使得保持鲁棒性和泛化变得困难,导致精度和移动性差[6]、[7]、[8]。很久以前,由于特征表示能力强,以卷积神经网络(CNN)为代表的深度学习方法被引入遥感影像的语义分割,并取得了巨大的进展。 [9]受限于初始CNN的固定输入大小,全卷积神经网络(FCN[10])被提出来成功地解决了这一问题,同时FCN的"编码器-解码器"结构已经成为当前深度学习方法的主流框架,详细来说,编码器旨在通过执行一系列卷积运算来产生多级特征,解码器专注于聚合编码特征的有用信息并将其融合以输出最终分割结果.
基于这样的“编码器-解码器”框架,近年来出现了众多网络,它们总是采用公共骨干网作为编码器,如VGG[11]、ResNet[12]和DenseNet[13],并在解码器中采用各种策略来克服巨大的类内方差和较小的类间差异带来的挑战。起初,由于只有光谱信息不足以区分地面物体和复杂的周围环境,因此利用多尺度背景信息来辅助地面物体的识别[14],一些研究人员已经尝试了很多通过多尺度训练或特征融合来有效获取和融合多尺度信息,这可以解决场景物体大小不一带来的问题。 随后,一些研究[15]、[16]试图从全局角度建立远距离依赖,以获取足够的全局上下文信息。
此外,由于卷积运算的感受域有限,已经提出了许多扩展感受域和丰富上下文信息的工作。HRNet[17]采用并行方法来保持高分辨率表示并融合多个特征。U-Net[18]通过跳过连接将深层语义信息与浅层详细信息结合起来,然而,它只能从单个尺度输出特征。一些网络利用扩张卷积或反卷积以在各个级别扩展感受野,以提供更全面的空间上下文建模,以改进多尺度特征表示[19]、[20]、[21]、[22]。DeepLabV3+[23]开发了atous空间金字塔池(ASPP)以捕获各种尺度的上下文信息,并使用具有不同扩张率的多个平行层atous卷积允许atous卷积生成的特征图具有与输入相同的分辨率,使每个输出神经元在不增加核参数数量的情况下具有更大的感受野大小。 为了建立局部和全局的关系,并获得更多的尺度上下文信息,用更高层次的语义学对模型进行编码,以获得不同的接收域信息。PSPNet[24]引入金字塔池模块(PPM)来聚合来自多个接收域大小的信息,并对不同区域的全局上下文信息进行整合,通过上采样将其分配给每个像素获得了优秀的像素和预测结果,但计算效率相对较差。 ABCNet[25]通过双边架构捕捉高分辨率遥感图像中丰富的空间细节和全局上下文信息,并设计特征聚合模块来融合两条路径获得的特征,但上下文路径呈现复杂的参数和计算。MANet[26]采用不同扩张率和全局平均池化(GAP)的两层无角卷积并行提取多尺度上下文信息,以解决遥感图像中目标大小差异大的问题,并嵌入通道注意机制来融合语义特征。变压器[27],[28],[29]以其通过自聚焦获得全局上下文知识的能力在最近的视野中大放异彩。 一般来说,CNN的成功取决于其两个固有的归纳偏差,即平移不变性和局部相关性。视觉转换器的结构中通常不存在这一特征,导致需要大量数据来超越CNN的性能。一般来说,CNN可以获得更有效的局部特征。[30]然而,CNN有限的接收场使得获取全局信息具有挑战性,而转换器可以捕获长距离依赖关系。因此,通过组合CNN和变压器,网络结构可以最好地保留局部和全局特征,同时继承每个特征的好处。 STransFus[31]将swin变换器模型与预训练的Resnet34相结合作为CNN主干,并使用分段模型提供丰富的粗粒度和细粒度特征表示。ICTNet[32]解码设计swin变换器块和卷积块(CB)部署和交错提取特征,以及编码器阶段的编码特征聚合。CCTNet[30]结合了CNN和变换器分支捕获的本地和全局上下文信息,以避免破坏它们各自的特征。基于前述,我们将金字塔结构引入变换器框架(PVT,金字塔视觉变换器)[33]以生成多尺度特征图。 PVT仍然生成一个全局感受场,它更适合语义分割等内涵预测任务。与ViT[34]相比,[35],它也使用非卷积模型来代替CNN主干,具有学习高分辨率表示的优势,同时还开发了渐进收缩金字塔和空间缩减注意力层,以降低计算成本和资源消耗[33]。
与前人的工作不同,我们认为由于遥感图像中存在较小的类间方差和大的类内方差,更容易出现误分类和遗漏。为了解决这个问题,在本文中,我们从两个角度进行探讨。一方面,我们认为遥感图像覆盖的地物范围很广,足够的上下文信息可以为模型提供更多的解释线索。另一方面,如果我们能够挖掘每个语义类的类特定感知信息,我们就可以在解码过程中增强属于相应类的信息。 因此,我们提出了基于PVT的类-导网络。详细地说,PVT-v2-b2作为编码器网络,CNN作为解码器,将避免破坏CNN和变压器各自的特性。下面的解码过程由三个阶段组成。首先,参考实践[36],多尺度上下文信息对增强编码特征具有重要意义。一般情况下,每一层的感受域是固定的,这会丢失一些信息,失去区分不同视域的能力,例如中心附近的重要部分。 此外,根据[20],感受野中的像素对神经节点输出的贡献是不一样的,更具体地说,感受野中心的像素的贡献更大。因此,基于这些,我们使用类似于inception[37]和ASPP[23]的思想设计了一个感受野块(RFB),我们利用不同核大小的多分支池化结构,并利用对偏心的无定形卷积。第二,由于粗糙的上采样操作,地理对象的空间位置和边界信息严重丢失,导致结构不完整和边界粗糙。 同时,大多数网络的特征表示能力不足以应对容易混淆的地理对象。[16]然而,高级语义特征和低级视觉特征之间存在固有的语义差异,直接融合不同级别的特征会导致表示错误。鉴于上述问题,我们提出了语义引导块(SGB),利用高级特征来引导通道中低级特征的增强。并为每个通道学习一个自适应权重,以确定哪些通道需要更多关注。 第三,当发现对高层特征进行直接多层卷积运算得到的分割结果比较粗糙时,我们建立了一种类感知引导机制,通过一种新颖的类引导块(CGB)挖掘类感知信息,即利用粗分割结果引导融合两个相邻特征进行更精细的分割。
在本文中,将变换器的全局上下文与CNN的局部细节相结合将有助于提高遥感图像语义分割模型的质量,本文的结果具有以下三个明显的特点。
1)设计了多尺度感受野扩展模块,以获得更丰富的上下文信息。
2)通过类别关系矩阵提高前景的感知;
3)CGB逐层引导特征融合和增强,输出更精细的分割结果。
二、方法
如图1所示,我们提出的基于PVT的类制导网络的总体架构基于典型的编码器-解码器结构。特别是,我们采用预训练的PVT-v2-b2作为编码器网络,从输入的遥感图像中提取多级编码特征。之后,我们开发了一套新颖而强大的解码策略来解释多级编码特征。
整个解码过程可以分为以下三个阶段。
1)在第一阶段,为了实现多尺度上下文信息的提取,我们引入了一个RFB来扩展感受域,丰富每一层特征的多尺度上下文信息。
2)在第二阶段,我们提出了SGB来利用最高级别的语义信息来实现对其他低级特征的增强。
3)在第三阶段,在分割结果相对粗糙的情况下,我们提出了CGB来实现相邻特征的类感知引导,并输出精细的分割结果。
表I提议网络的详细架构
基于渐进式策略,我们最终可以获得详细的分割结果。表I描述了提议网络的详细架构。通过全局自适应池化获得扩展感受野的四层特征图,以获得信道响应图,然后,与前一层特征相乘相加,完成高级特征和低级特征的融合。
A.金字塔视觉变压器(PVT)
PVT继承了CNN和变压器的优点,在那里它可以作为CNN骨干网的直接替代品。PVT的整体架构如图所示
图2. PVT的整体架构:设置细粒度图像块(4×4像素)作为输入,整个金字塔架构分为四个阶段,以产生各种尺度的特征图,输出分辨率从高到低逐渐降低,从4条到32条。所有阶段的架构相似,由贴片嵌入和变压器编码器层组成。[33]。
图2。它不仅可以在图像的密集分区上训练以实现高输出分辨率,还可以使用渐进收缩金字塔来减少大型特征图的计算。并采用空间缩减注意力(SRA)来进一步减少学习高分辨率特征时的资源消耗。计算公式如下:[33]
B.接受野阻滞(Receptive Field Block,RFB)
如前所述,在PVT-v2-b2实现特征提取后,我们尝试引入足够的上下文信息,我们设计了RFB。如图3所示,所提出的RFB由四个并行分支组成。在每个分支的开头,我们都使用1×1卷积来降低输入特征的原始通道维数。对于第一个和第二个分支,我们将它们视为输入特征的原始信息,分别用于最终的残差结构和级联。对于最后三个分支,我们使用三个连续的卷积操作,具有不同的核大小和atware速率。 我们使用四个并行分支的原因是我们试图构建一个并行结构接受域呈指数变化。详细地说,1×7、7×1处理的接受域和1×5、5×1处理的接受域是1×3、3×1处理的接受域的四倍和两倍。此外,1×1卷积的使用是为了降低输入特征的原始维数,我们使用元素加法和级联来尝试对空间和通道方面的原始信息进行聚合。
具体来说,我们首先使用核大小为1×(2k−3)和(2k−3)×1的两个卷积从两个垂直方向捕获信息,然后我们利用2k−3(k>2)的3×3卷积来扩展输入特征的感受野。随后,我们将最后四个分支(b2、b3、b4、b5)连接在一起。最后,我们使用残差连接添加第一个分支的特征和连接的特征,并伴随ReLU激活函数来进一步增加处理后特征的非线性。 在这一系列操作下,通过扩大感受域和丰富多尺度上下文信息来增强输入特征。
ASPP模块结构[21]、[38]作为本文并行卷积多尺度上下文提取方法的基础。许多模块使用atous卷积或大型卷积以粗略地增加感受野。ASPP使用不同的扩张速率将多个Atrous卷积特征连接到最终的特征表示。我们的输入图像具有高分辨率。要在ASPP中实现足够大的感受野,必须采用足够大的扩张比。然而,随着扩张速率的增加(例如,d>24),atous卷积变得越来越无效[20]。因此,我们对ASPP的改进是使用多个卷积,改变atous速率,并且每个分支都是一个字符串而不仅仅是一个简单的卷积操作,这可以捕获更多的上下文信息。然后连接每个分支的输出结果以创建多尺度特征图。
C.语义指导块(Semantic Guidance Block,SGB)
众所周知,最高级别的特征总是拥有足够多的语义信息,这些语义信息与关于类和属性的抽象信息相关。为了抑制较高的误报率(一般分割容易将背景中的一些物体判断为前景),本文设计了SGB来加强前景之间的联系,增强前景和背景之间的差异。具体来说,我们提取网络中最深的全局特征向量,计算当前特征中场景和目标之间的语义关系,从而得到关系矩阵,可以进一步用于增强图像中的前景特征,并减少误报。 本文通过GAP从全局特征中生成通道权重,全连接层自适应学习这些权重,最后通过乘以这些权重,调整融合特征,对于每个金字塔级别,关系建模的流程细节如图3所示。
对于更高级别的特征图: 低级特征图:
这里,H、W、C分别表示图像的高度、宽度、通道数,我们首先对深层特征图Fh使用全局自适应池化,得到通道响应图R为
然后,我们进行1×1卷积来降低R的维数,我们可以得到R0。R0的通道数是R的一半。然后,我们对R0使用sigmoid函数,并将其替换为概率R1作为
让每个通道的权重范围从0到1,即这些C通道的权重值,这样我们就可以在训练过程中从关系矩阵中知道哪个通道更重要,哪个通道不太重要。我们可以通过关联空间场景的相关上下文来提高前景特征的识别能力。然后,我们将R1与降维F l相乘,完成高级特征和低级特征的融合,得到最终融合特征的特征图F。
D.班级指导块(Class Guidance Block,CGB)
密集金字塔网络[39]将金字塔池模块与两个卷积层相结合,以实现多分辨率(高水平和低水平)特征融合。此外,特征金字塔网络[40],[41]被设计为通过向上采样后将更高级别的特征与更低级别的特征相结合,并将额外的语义信息从上到下整合到具有足够空间信息的更低级别的特征中,从而连接较低级别和更高级别的语义信息。基于此,我们通过使用shallogh空间细节和深度强语义学来改进特征图,这有利于恢复对象的细节和多尺度上下文建模。随后,设计了CGB。
在所提出的CGB中,较高层次的特征由CB处理得到粗分割结果。粗分割结果用于指导两个相邻特征的融合,随后的解码输出更加准确。具体来说,对于前一层预测的使用,我们提出了一种渐进式引导策略,利用前一层预测帮助特征的相邻层学习相对确定的空间关系。 关于前者的预测,它已经对每个像素拥有相对特定的语义类,我们使用Sigmoid函数将每个像素与每个类的相应概率分配,由此产生的误差将被融合过程大大消除,我们可以清楚地增强特征并输出更精细的分割结果。根据这种策略,逐层引导特征增强,得到四个输出结果(四个特征的融合对应四个输出,最后一个输出结果是最精确的输出)。具体步骤如下。
对于更高级别的特征图 低级特征图:
首先,对F l进行上采样,使其大小变为RB×C×H×W,然后,我们将高级特征和低级特征逐个元素相加,得到:M属于RB×C×H×W。
然后,我们将最后一个粗略分割结果的通道分离出来,得到Pi: Pi RB×1×H×W,i=1,2,…,N。
对Pi进行sigmoid运算,Pi上每一点的概率值表示该点的像素属于该类别的概率,然后,将M乘以,得到每个类别的增强特征:MiλRB×C×H×W, i=1,2,…,N。
逐个元素添加每个类别元素的特征,得到特征图O为
最后,可以通过三个卷积输出最终结果。
三、实验结果和分析
A.数据说明
本文选取ISPRS官网链接的Potsdam和Vaihingen数据集作为实验数据样本.两个数据集的图像及其对应的标签如图4所示。
1)波茨坦:波茨坦数据集图像具有5厘米的空间分辨率。数据集中的每个图像都包含一个仿射变换文件,可用于根据需要将其分解为更小的图像。数据采集由GeoTIFF的三个波段组成。该数据集还提供tiff存储形式的图像通道组合,包括IR-G、R-G-B和R-G-B-IR。
在本实验中,选择带有边界标签的图像作为标签图像,包括六类:不透水表面、建筑物、低矮植被、树木、汽车和杂波。 我们使用图像2_13、2_14、3_13、3_14、4_13、4_14、4_15、5_13、5_14、5_15、6_13、6_14、6_15和7_13作为测试集,2_10作为验证集,其余的作为训练集。
2)Vaihingen:Vaihingen数据集图像空间分辨率为9 cm,包括33个真正射照片,平均空间尺寸为2494×2064。地面实景包括与ISPRS Potsdam基准相同的七个类别。我们使用4、8、12、14、20、24、29、33和38作为测试集,30作为验证集,其余作为训练集。根据与Postdam相同的数据切割方法,实验中仅使用红色、绿色和蓝色通道。
B.实验参数设置
参数集应在实验前精确建立和识别。我们在NVIDIA GeForce RTX3090 GPU上训练网络,它们完全具有24GB RAM。对于这两个数据集中的每一个,我们分别训练我们提出的网络。表II描述了一些数据描述和训练细节。训练环境是Pytorch1.8.1和cuda11.1,使用Adam优化器。我们根据训练纪元调整学习率。初始学习率设置为10-4,每50个纪元衰减十次,共100个纪元。因为经过实验,精度达到饱和100个时期的状态。以多类交叉熵作为损失函数,用语义分割中常用的另外两个损失函数(Dice损失和NLLLoss)进行消融实验,证明其有效性。
C.评估指标
选择整体准确度(OA)、平均intersection-over-union(mIoU)和F1-mark(F1)作为我们的评估标记,以充分评估该方法的语义分割结果。此外,对于像素级分类任务,当类别不均匀时,利用精度和召回进行预测,分别由(8)和(9)计算
OA表示整体像素的整体评估结果,公式如下:
F1分数是召回率和准确率的综合衡量标准,其公式如下:
IoU是指类别与真实标签的预测结果之间的交集和并集之间的比率。mIoU是指所有类别的IoU平均值,其公式如下:
在所有公式中,N代表类别的数量,N+1代表所有类别加上背景。许多指标是基于混淆矩阵计算的,其中一些定义如下:真正、真负、假正和假负(TP、TN、FP和FN)。TP和FP分别是正确和错误预测为前景的前景像素数;TN和FN分别是正确和错误预测为背景的背景像素数。
D.与现有作品的比较
如前所述,我们设计的基于PVT的前景感知网络模型是PVT与传统卷积解码器相结合的分割网络,目的是丰富具有长期依赖关系和局部模式的全局上下文信息,以提高分割精度。因此,对分割精度的数值评估进行了实验研究,包括UNet(2015)、PSPNet(2017)、DeepLabV3+(2018)、HRNet(2020)、ABCNet(2021)、MANet(2020)和SegNet(2017)。
1)波茨坦数据实验结果:波茨坦数据集用于第一系列实验,可视化比较结果如图5所示,分别表示裁剪后和裁剪前的可视化结果。
很明显,PSPNet产生了低精度的分割结果,并且不够鲁棒性以保留微妙的前景边缘,这导致提取的建筑物形状不规则和边界模糊。本文中使用的策略导致建筑物的边缘线更直,直角更明显。几乎所有预测区域都与参考标签匹配。由于变压器对全局关系进行建模的能力,PVT可以比CNN模型更准确地分割巨大的对象(如建筑物)。此外,其他模型方法在低植被和树木方面表现出严重下降的性能。 在本文中,通过计算相关性得到权重矩阵,并对特征值进行自适应增强或衰减,使类的像素值表示更加准确,从而可以看到树木和低植被之间的小类之间的差异。所提出的方法在这些具有挑战性的类别中显示了更平滑的结果。我们计算了每个类别的IoU以及每个被检查模型的其他指标的平均值。表III提供了调查结果的摘要。
从结果可以看出,本文提出的基于PVT的前景感知网络在F1 Ave、OA、mIoU中排名第一,在F1平均中获得85.79%的结果,在OA中获得88.91%的结果,在mIoU中获得77.32%的结果。UNet是所有使用CNN作为骨干的网络中最好的。与我们的方法相比,F1 Ave、OA和mIoU分别提高了0.95%、1.33%和1.49%。虽然在比较五种技术时考虑了特征融合,但没有考虑特征融合的权重。我们提出的方法可以通过学习融合特征的权重来进行修改。结果,我们的方法可能会对数据进行分类.
更准确地,消除误报,更有效地解决容易混淆类别的错误感知问题。例如,很容易对低植被和高树木进行错误分类。但是我们的方法在这两个类别中表现更好,IoU分别上升了1.95%和2.76%。这些结果证明了我们解码器设计的有效性。此外,与其他类别相比,车辆类别是一个小目标,不透水表面类别是一个大目标。 这两个类别的IoU值分别增加了0.46%和2.28%,这表明我们提出的多尺度上下文提取方法(PVT)可以解决两个对象的大小和形状悬殊过大的问题,并在大规模数据集中获得更大的收益。因此,基于变压器的网络在语义分割方面提供了与大多数基于ResNet的方法相比具有竞争力的准确性。为了验证我们的整个过程,我们验证了预测1-4的准确性,结果如表四所示。通过我们的CGB获得了四层特征融合输出结果。最后的输出结果是最详细的。 与第一次粗分割结果相比,mIoU可以提高4.58%,证明本文设计的编解码结构可以更准确地提取特征,有效地融合特征,从而提高分割性能。
2)Vaihingen数据实验结果:第二组实验是在Vaihingen数据集上进行的。视觉比较结果如图6所示。观察到其他方法分割结果中的汽车是粘附的和不完整的,识别出的汽车边界信息不够准确。我们的方法可以在没有粘度的情况下准确地绘制完整的形状和区分小地物,如汽车。此外,在HRNet、DeeplabV3+和PSPNet产生的数据中可能会看到一些缺失和错误提取的区域,建筑物边缘周围有明显的失真。UNet和ABCNet减少了不正确划分和缺失划分的发生。 比较表明,我们的方法提取了更全面的较小建筑,对于所有比较模型,我们计算了每个类别的F1和其他指标的平均值。结果总结在表五中。
结果表明,我们的方法对Vaihingen数据集的OA为88.87%,F1的平均值为82.05%,mIoU为71.79%,分别比其最接近的竞争对手UNet高出1.48%、3.5%和3.73%。虽然Vaihingen的数据量相对小于Potsdam,但我们的方法仍然取得了更好的性能。特别是对于车辆类别,IoU增加了3.59%。由于树木和建筑物阻挡了占训练图像像素一小部分的汽车,因此很容易被错误划分或遗漏。网络模型我们提出使用PVT提取不同尺度的特征,解码器设计部分自适应融合不同层次的语义信息。 因此,即使前景对象在图像中占据很小的区域,也可以对其进行恢复和组合,以生成有效的特征并进行准确的分割。在实验结果中,尽管类别分布不均匀,但平均准召在所有类别中分别上升了0.79%和3.63%。数值结果和可视化结果证实了我们方法的有效性。此外,我们还验证了Predic1-4的准确性,如表VI所示。与第一次粗分割的结果相比,类别引导到最后一次的输出结果可以提高16.07%。这证明我们提出的网络架构显示出比其他五种模型更好的分割性能。
E.计算和参数效率
我们在表VII中报告了在两个数据集上进行训练和测试的运行时间以及不同模型的参数数量。在这个表中,有两个指标,具体如下。
1)参数是指模型中包含的参数数量,用于度量模型的大小(计算空间复杂度)。与其他大规模网络如HRNet(70M参数)、MANet(59M参数)、SegNet(29M参数)相比,我们的架构(25M参数)的参数明显更少。
2)每秒帧数(FPS)表示网络每秒可以处理的图像数量或处理图像以评估检测速度所需的时间,时间越短,速度越快,我们的架构有比绝大多数传统CNN更低的时间复杂度。
F.消融实验
消融实验结果:本文选用PVT作为编码器,在解码部分以UNet结构的U形结构为基线,由RFB、SGB、CGB三组分组成,在ISPRS Potsdam和Vaihingen数据集上对烧蚀实验进行了评估,并对烧蚀研究进行了定量检验,以证明本研究中解码器三阶段技术的功效,表VIII显示了消融实验结果。
1)基线:我们选择PVT作为特征提取的编码器,并将输出的四层特征图输入到解码器,解码部分以UNet结构的U形结构作为“基线”,基线可以作为评估网络组件性能的标准。
2)基线+RFB:在解码器中,RFB被设计为捕获全局上下文信息,分支和处理每一层的特征,并获得不同的特征图.因此,一个简单的变体更能捕捉多尺度上下文信息。与基线相比,“基线+RFB”的性能将证明RFB的有效性。
3)Baseline+SGBandBaseline+RFB+SGB:丰富的空间信息对于语义分割至关重要,因此需要创建具有多尺度和高级语义信息的特征图。为了利用最高级别的特征为其他低级特征提供语义指导,我们提出了SGB。该表显示,“基线+SGB”在mIoU方面比“基线”高出0.76%和0.25%,而“基线+RFB+SGB”比“基线+RFB”高出0.67%和0.43%,证明了SGB在特征融合方面的功效。
4)基线+CGB和基线+RFB+CGB: CGB通过逐层特征增强、每个类别逐个元素特征添加以及上下文和空间信息融合来实现四层特征融合。在mIoU方面,“基线+CGB”比“基线”高1.79%和0.77%,而“基线+RFB+CGB”比“基线+RFB”高0.67%和0.60%,证明了这种分段融合方法的有效性。
5)Baseline+RFB+SGB+CGB:结合工作解码器设计的三个组件的方法实现了更高的精度。与“基线”相比,“Baseline+RFB+SGB+CGB”的分割性能在mIoU中提高了3.02%和1.23%,证明本文提供了最佳融合方案。
此外,我们在Vaihingen数据集中通过烧蚀实验比较不同损失函数的性能,以证明本文中用作损失函数的多类交叉熵的可靠性,实验数据结果和可视化结果如表IX和图7所示.本文中使用多类交叉熵作为损失函数对于大多数类别的分割效果和准确性是最好的。
IV.结论
引入PVT作为编码器,成为像素级密集预测任务设计的纯变压器骨干,显示了多尺度建模在远距离视觉依赖方面的优势。在有限的计算和存储资源下,PVT可以灵活学习多尺度和高分辨率的细粒度特征,并将其与流行的ResNet提取的特征图进行比较,证明其具有比CNN更强大的特征表达能力。它还可以帮助区分容易混淆的地理对象。
我们利用CNN开发了一种特殊的解码和分割方法,称为类引导网络,并设计了三个模块来高精度和高效率地恢复特征。在获得精确的多尺度特征时,我们使用相关性来监控各种场景中像素之间的关系。然后,我们建立了类感知引导机制来挖掘类感知信息,并通过渐进方法实现精细分割。我们使用烧蚀研究来证明每个模块的有效性。
本研究仅限于研究如何提高网络模型的分割精度。PVT对于高分辨率输入的计算复杂度仍然很高。未来,我们鼓励进一步研究变压器和CNN的深度集成。在此基础上,我们讨论如何计算复杂度并获得高效的分割方法。
承认
作者非常感谢ISPRS提供的数据集和W. Wang等学者提供的PVT相关知识点。
相关文章:
基于金字塔视觉变换的类引导网络高分辨率遥感图像高效语义分割
Class-Guidance Network Based on the Pyramid Vision Transformer for Efficient Semantic Segmentation of High-Resolution Remote Sensing Images 摘要 多分类语义分割中类之间的小差异和类内的大变化是全卷积神经网络的“编码器-解码器”结构没有完全解决的问题&#…...
高级:数据库面试题全攻略
一、引言 数据库是软件开发中不可或缺的组件,面试官通过相关问题,考察候选人对数据库核心概念的理解、实际应用能力以及在复杂场景下的问题解决能力。本文将深入解读数据库的索引、事务、锁机制等常见面试问题,结合实际开发场景,…...
如何避免Python爬虫重复抓取相同页面?
在网络爬虫开发过程中,重复抓取相同页面是一个常见但必须解决的问题。重复抓取不仅会浪费网络带宽和计算资源,降低爬虫效率,还可能导致目标网站服务器过载,甚至触发反爬机制。本文将深入探讨Python爬虫中避免重复抓取的多种技术方…...
LeetCode.02.04.分割链表
分割链表 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x …...
鸿蒙开发_ARKTS快速入门_语法说明_渲染控制---纯血鸿蒙HarmonyOS5.0工作笔记012
然后我们再来看渲染控制 首先看条件渲染,其实就是根据不同的状态,渲染不同的UI界面 比如下面这个暂停 开启播放的 可以看到就是通过if 这种条件语句 修改状态变量的值 然后我们再来看这个, 下面点击哪个,上面横线就让让他显示哪个 去看一下代码 可以看到,有两个状态变量opt…...
MOP数据库中的EXPLAIN用法
EXPLAIN 是 SQL 中的一个非常有用的工具,主要用于分析查询语句的执行计划。执行计划能展示数据库在执行查询时的具体操作步骤,像表的读取顺序、使用的索引情况、数据的访问方式等,这有助于我们对查询性能进行优化。 语法 不同的数据库系统&…...
软考 系统架构设计师系列知识点 —— 设计模式之抽象工厂模式
本文内容参考: 软考 系统架构设计师系列知识点之设计模式(2)_系统架构设计师中考设计模式吗-CSDN博客 https://baike.baidu.com/item/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F/2361182 特此致谢! Abstract Fac…...
告别水下模糊!SU-YOLO:轻量化+尖峰神经网络,用“类脑计算”实现水下目标毫秒级识别
目录 一、摘要 二、引言 三、相关工作 SNN 物体检测 水下物体探测 水下图像去噪 归一化 四、方法 水下尖峰YOLO 尖峰干扰器 SU-Block SpikeSPP 编码器和检测头 分批归一化 五、Coovally AI模型训练与应用平台 六、实验结果 数据集和实施细节 数据集 实施细节…...
Three.js 系列专题 8:实战项目 - 构建一个小型 3D 游戏
内容概述 本专题将通过一个实战项目展示 Three.js 的综合应用。游戏包含迷宫生成、角色移动、相机控制和简单的物理碰撞检测(可选)。这将帮助你将之前学到的知识融会贯通。 学习目标 整合几何体、光照、动画和交互知识。实现基本的游戏逻辑和用户控制。可选:使用 Cannon.j…...
嵌入式笔试(一)
C语言和嵌入式软件 面试题(共10题 时间30分钟) 1. 请写出下面声明的含义。 int(*s[10])(int);定义了一个数组为s包含十个元素,每个元素都是函数指针,函数的参数为一个int类型,返回值也是int类型2. 选择题 设有一台计算机,它有一条加法指令,每次可计算三个数的和。如果要…...
spark 的流量统计案例
创建一个目录为data...
局域网访问 Redis 方法
局域网访问 Redis 方法 默认情况下,Redis 只允许本机 (127.0.0.1) 访问。如果你想让局域网中的其他设备访问 Redis,需要 修改 Redis 配置,并确保 防火墙放行端口。 方法 1:修改 Redis 配置 1. 修改 redis.conf(或 me…...
LeetCode题五:合并两个有序链表
基本思路其实就是:先建立一个空链表,然后将尾节点放在头结点上; 如果第一个链表节点值较小,那么先将list1插入新链表中,然后将尾节点后移;相同的,第二个也需要比较;移动新链表的指针…...
深入探索 `malloc`:内存分配失败的原因及正确使用规范
文章目录 一、malloc 内存分配失败的常见原因1. 内存不足2. 内存越界访问3. 内存碎片化4. 系统限制5. 错误的使用方式 二、如何正确使用 malloc1. 检查返回值2. 释放内存3. 避免内存越界4. 优化内存使用5. 调整系统参数6. 使用高效的内存分配器 三、总结 在 C 语言中࿰…...
处理Excel的python库openpyxl、xlrd、xlwt、panda区别
openpyxl、xlrd、xlwt、pandas 都能处理 Excel 表格,但用途和适合的场景不同。今天做个总结: 库名功能支持格式读写支持样式备注openpyxl全面的.xlsx处理库.xlsx(Excel2007)✅✅✅首选xlrd读取.xls文件的老牌工具.xls(…...
【C++11】特殊类的设计 单例模式 类型转换
目录 一、特殊类的设计: 1、设计一个不能够拷贝的类: 2、设计一个只能在堆上创建的类 3、设计一个只能在栈上创建的类 4、设计一个不能被继承的类: 二、单例模式: 设计一个只能创建一个对象的类: 饿汉模式&…...
基于vue框架的助农特色农产品销售系统i7957(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
系统程序文件列表 项目功能:用户,商品分类,农产品信息,特价商品,爱心捐赠 开题报告内容 基于Vue框架的助农特色农产品销售系统开题报告 一、研究背景与意义 (一)研究背景 随着乡村振兴战略的深入实施,特色农产品作为农村经济的重要组成部…...
Linux 学习笔记(3):ls 命令深入剖析与实践应用(期末、期中复习必备)
前言 一、ls 命令基础语法 命令示例 二、工作目录与 HOME 目录 1.工作目录 2.HOME 目录 三、结语 前言 在 Linux 系统的学习旅程中,基础命令的掌握是迈向熟练操作的关键一步。其中,ls 命令作为我们探索系统文件和目录结构的常用工具,有着…...
最简CNN based RNN源码
1.源码: GitCode - 全球开发者的开源社区,开源代码托管平台 最终的效果: 数据集是20个周期,1024点sin(x)加了偏置。其中用于训练的有1024-300点。最后300点用来进行测试。上面的右侧输出的,其实对应左侧x73之后的波形࿰…...
大模型是如何把向量解码成文字输出的
hidden state 向量 当我们把一句话输入模型后,例如 “Hello world”: token IDs: [15496, 995]经过 Embedding Transformer 层后,会得到每个 token 的中间表示,形状为: hidden_states: (batch_size, seq_len, hidd…...
Elasticsearch:加快 HNSW 图的合并速度
作者:来自 Elastic Thomas Veasey 及 Mayya Sharipova 过去,我们曾讨论过搜索多个 HNSW 图时所面临的一些挑战,以及我们是如何缓解这些问题的。当时,我们也提到了一些计划中的改进措施。本文正是这项工作的成果汇总。 你可能会问…...
Elasticsearch单节点安装手册
Elasticsearch单节点安装手册 以下是一份 Elasticsearch 单节点搭建手册,适用于 Linux 系统(如 CentOS/Ubuntu),供学习和测试环境使用。 Elasticsearch 单节点搭建手册 1. 系统要求 操作系统:Linux(Cent…...
前端用户列表与后端分页协同设计
分页实现方案 在现代Web应用中,用户列表展示与分页是一个常见的功能需求。前端与后端通过API协同工作,使用PageHelper等工具实现高效分页。 例如: 后端实现 (使用PageHelper) public PageResult DishPage(DishPageQueryDTO dishPageQuery…...
MyBatis的第四天学习笔记下
10.MyBatis参数处理 10.1 项目信息 模块名:mybatis-007-param数据库表:t_student表结构: id: 主键name: 姓名age: 年龄height: 身高sex: 性别birth: 出生日期 sql文件: create table t_student ( id bigint auto_increm…...
三类人解决困境的方法
有一个视频讲述了三类人解决困境的方法,视频中有持续流出干净水源的水龙头,一杯装满脏水的玻璃杯。第一类普通人是拿着玻璃杯放到水龙头下不断接水,水龙头一直开着的第二类高手是把脏水倒到水池里,然后打开水龙头接水,…...
蓝桥杯第十一届省赛C++B组真题解析
蓝桥杯第十一届省赛CB组真题解析 八、回文日期https://www.lanqiao.cn/problems/348/learning 方法一:暴力枚举所有的日期,记录有多少个回文日期。 #include <bits/stdc.h> using namespace std; int month[13]{0,31,28,31,30,31,30,31,31,30,31…...
Tailscale 的工作原理*
Tailscale 的核心原理基于 WireGuard VPN,它实现了端到端加密的 点对点(P2P)连接,但在必要时会通过 中继服务器(DERP) 进行中转。整体来说,它是一个 零配置的 Mesh VPN,让所有设备看…...
PyTorch张量范数计算终极指南:从基础到高阶实战
在深度学习领域,张量范数计算是模型正则化、梯度裁剪、特征归一化的核心技术。本文将以20代码实例,深度剖析torch.norm的9大核心用法,并揭示其在Transformer模型中的关键应用场景。 🚀 快速入门(5分钟掌握核心操作&…...
Innovus DRC Violation和Calibre DRC Violation分析和修复案例
今天把小编昨天帮助社区训练营学员远程协助的一个经典案例分享给大家。希望能够帮助到更多需要帮助的人。如果各位想跟小编来系统学习数字后端设计实现的,可以联系小编。 数字IC后端手把手实战教程 | Innovus verify_drc VIA1 DRC Violation解析及脚本自动化修复方…...
数据库7(数据定义语句,视图,索引)
1.数据定义语句 SQL数据定义语言(DDL)用于定义和管理数据库结构,包括创建、修改和删除 数据库对象。常见的DDL语句包括CREATE、DROP和ALTER。 它的操作的是对象,区分操作数据的语句:INSERT,DELETE,UPDATE 示例&#x…...
Cadence 修改 铜和pin脚 连接属性 和 光绘参数修改
光绘层叠设置,参考 光绘参数修改, 中英文对照...
秒杀业务的实现过程
一.后台创建秒杀的活动场次信息,并关联到要秒杀的商品或服务; 二.通过定时任务,将秒杀的活动信息和商品服务信息存储到redis; 三.在商品展示页的显眼位置加载秒杀活动信息; 四.用户参与秒杀,创建订单,将…...
✅ Ultralytics YOLO 训练(Train)时实时获取 COCO 指标(AP):2025最新配置与代码详解 (小白友好 + B站视频)
✅ YOLO获取COCO指标(4): 训练(Train)启用COCO API评估(实时监控AP指标)| 发论文必看! | Ultralytics | 小白友好 文章目录 一、问题定位二、原理分析三、解决方案与实践案例步骤 1: 在 model.train() 调用中设置 save_jsonTrue步骤 2: 修改 …...
java基础 流(Stream)
Stream Stream 的核心概念核心特点 Stream 的操作分类中间操作(Intermediate Operations)终止操作(Terminal Operations) Stream 的流分类顺序流(Sequential Stream)并行流(Parallel Stream&…...
基于springboot+vue的课程管理系统
一、系统架构 前端:vue | element-ui 后端:springboot | mybatis-plus 环境:jdk1.8 | mysql8 | maven | node v16.20.2 | idea 二、代码及数据 三、功能介绍 01. 登录 02. 管理员-首页 03. 管理员-系管理 04. 管理员-专业管理 05. 管…...
android14 keycode 上报 0 解决办法
驱动改完后发现上报了keycode=0 04-07 13:02:33.201 2323 2662 D WindowManager: interceptKeyTq keycode=0 interactive=false keyguardActive=true policyFlags=2000000 04-07 13:02:33.458 2323 2662 D WindowManager: interceptKeyTq keycode=0 interactive=false key…...
小说现代修仙理论
修仙理论 灵魂感应与感知强化:通过特定的修炼方法,感应自身灵魂,以此提升感知能力,使修炼者对周围环境及自身状态的察觉更为敏锐。 生物电的感知与运用 生物电感知:修炼者需凝神静气,感知体内生物…...
6.综合练习1-创建文件
题目: 分析: 本例中使用mkdirs方法创建aaa文件夹。 题目要求是"在当前模块下的aaa文件夹",此时在左侧的目录中,是没有aaa文件夹的,所以要先创建a.txt文件的父级路径aaa文件夹,由于是在当前模块下…...
PostgreSQL的内存管理机制
目录 V1.0PostgreSQL的内存管理机制文件系统缓存作为二级缓存内存切换机制性能影响总结 V2.0PostgreSQL 内存管理机制:双缓存体系验证与笔记完善1. 现有描述验证2. 完善后的内存管理笔记2.1 双缓存体系2.2 其他关键内存区域2.3 验证方法 3. 注意事项 V1.0 PostgreS…...
ReplicaSet、Deployment功能是怎么实现的?
在Kubernetes中,ReplicaSet 和 Deployment 是用于管理 Pod 副本的关键对象。它们各自的功能和实现机制如下: 1. ReplicaSet 功能 管理 Pod 副本:确保指定数量的 Pod 副本一直在运行。如果有 Pod 副本崩溃或被删除,ReplicaSet 会…...
544 eff.c:1761处loop vect 分析
2.6 带有mask的向量数学函数 gcc 支持的svml向量数学函数 32652 GCC currently emits calls to code{vmldExp2}, 32653 code{vmldLn2}, code{vmldLog102}, code{vmldPow2}, 32654 code{vmldTanh2}, code{vmldTan2}, code{vmldAtan2}, code{vmldAtanh2}, 32655 code{vmldCbrt2}…...
搜狗拼音输入法纯净优化版:去广告,更流畅输入体验15.2.0.1758
前言 搜狗输入法电脑版无疑是装机必备的神器。它打字精准,词库丰富全面,功能强大,极大地提升了输入效率。最新版的搜狗拼音输入法更是借助AI技术,让打字变得既准确又高效。而搜狗输入法的去广告精简优化版,通过移除广…...
YOLOv11改进 | YOLOv11引入MobileNetV4
前言: 主要是对该文章YOLOv11改进 | YOLOv11引入MobileNetV4进行复现,以及对一些问题进行解答 1、mobilenetv4核心代码 from typing import Optional import torch import torch.nn as nn import torch.nn.functional as F__all__ [MobileNetV4ConvLa…...
Java中的ArrayList方法
1. 创建 ArrayList 实例 你可以通过多种方式创建 ArrayList 实例: <JAVA> ArrayList<String> list new ArrayList<>(); // 创建一个空的 ArrayList ArrayList<String> list new ArrayList<>(10); // 创建容量为 10 的 ArrayList …...
wordpress 利用 All-in-One WP Migration全站转移
导出导入站点 在插件中查询 All-in-One WP Migration备份并导出全站数据 导入 注意事项: 1.导入部分限制50MB 宝塔解决方案,其他类似,修改php.ini配置文件即可 2. 全站转移需要修改域名 3. 大文件版本,大于1G的可以参考我的…...
零基础教程:Windows电脑安装Linux系统(双系统/虚拟机)全攻略
一、安装方式选择 方案对比表 特性双系统安装虚拟机安装性能原生硬件性能依赖宿主机资源分配磁盘空间需要独立分区(建议50GB)动态分配(默认20GB起)内存占用独占全部内存需手动分配(建议4GB)启动方式开机选…...
聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?
【全球云观察 | 科技热点关注】 随着近年来AI与大模型的兴起,云计算行业正在发生着一场大变局。 “在2025年春节期间,DeepSeek两周火爆全球,如何进行私域部署成了企业关心的问题。”紫光云公司总裁王燕平强调指出,AI与…...
mapreduce 过程中,maptask的partitioner是在map阶段中具体什么阶段分区的?
在MapReduce的Map阶段中,Partitioner(分区器)的作用发生在map函数输出键值对之后,但在数据被写入磁盘(spill到本地文件)之前。具体流程如下: 分区发生的具体阶段: Map函数处理完成 当…...
找到字符串中所以字母异位词 --- 滑动窗口
目录 一:题目 二:算法原理 三:代码实现 一:题目 题目链接:438. 找到字符串中所有字母异位词 - 力扣(LeetCode) 二:算法原理 三:代码实现 版本一:无co…...
密码破解工具
1. 引言 密码是信息安全的核心之一,而攻击者往往利用各种工具和技术来破解密码。密码破解工具可以分为 离线破解(Offline Cracking) 和 在线破解(Online Cracking) 两大类: 离线破解:攻击者已经获取了加密的密码哈希(hash),可以在本地进行破解,无需与目标系统交互。…...