精读《AFNet Adaptive Fusion Network for Remote Sensing Image Semantic Segmentation》
论文地址:AFNet: Adaptive Fusion Network for Remote Sensing Image Semantic Segmentation | IEEE Journals & Magazine | IEEE Xplore
\quad\quad为了提高VHR遥感图像分割的性能,该性能受到多尺度变化和易混淆的物体影响,本文提出了一种新颖的AFNet。它包含SFAM,SLAM和ACSR三个模块。
文章目录
- 一、**摘要:**
- 二、引文
- 三、论文精要
- 3.1 相关工作
- 3.1.1 Segmentation in Computer Vision
- 3.1.1 Remote Sensing Image Semantic Segmentation
- 3.1.3 Classifier in Remote Sensing Image Semantic Segmentation
- 3.2 方法
- 3.2.1 ==Pipelines of Proposed Model==(主要模型线路)
- 3.2.2 ==Scale-Feature Attention Module==(SFAM)
- 3.2.3 ==Scale-Layer Attention Module==(SLAM)
- 3.2.4 ==Adjacent-Connected Score Map Refine==(ACSR)
- 3.3 实验
- 3.3.1 Data Set Description
- 3.3.1.1 Potsdam Data Set
- 3.3.1.2 Vaihingen Data Set
- 3.3.2 Training Details
- 3.3.2.1 避免过拟合(Avoid Overfitting)
- 3.3.2.2 ==超参数配置==(Configuration of Hyper Parameters)
- 3.3.2.3 网络配置(Configuration of Network)
- 3.3.3 Evaluate Metrics
- 3.3.4 Results on Potsdam
- 3.3.5 Results on Vaihingen
- 3.4 讨论
- 3.4.1 Parameter Scales and Model Complexity
- 3.4.2 Model Analysis
- 3.4.3 Study of Free Parameter
- 3.4.4 Input Size Matters
- 3.4.5 Data Augmentation on Test Set
- 3.5 **结论:**
一、摘要:
\quad\quad遥感图像语义分割在许多应用中都扮演着重要的角色。然而,一副典型的遥感影像通常包含由不同对象和材质组成的异质城市景观,从而对语义分割任务造成挑战。本文提出了一种新颖的自适应融合网络(AFNet) 理论来提升对超高分辨率遥感影像(VHR)分割任务的表现。为了对不同类别中尺寸各异的地表对象进行连贯的标注,作者设计了多层结构尺度特征关注模型(SFAM)。通过多层尺度特征关注模型,在小对象的位置处增强了卷积神经网络(CNN)浅层的低层特征,而对于大对象,深层的高级特征得到了增强。 在融合来自不同级别的要素的过程中,可以保留各种对象的特征,这有助于标记尺寸变化的对象。
二、引文
\quad\quad语义分割旨在为图像中的每个像素分配一个预定义的语义标签。 在遥感领域,遥感影像自主标识有着广泛的应用,例如:土地覆盖分类、多时相土地变化监测等都需要图像分割结果。 由于应用广泛,超高分辨率(VHR)图像的分割已成为遥感界最活跃的研究领域之一。 目前,已经发表了大量关于 VHR 图像分割任务的文献。早期的研究侧重于从图像的局部学习特征,然后用随机森林(Random forest)、支持向量机(SVM)或者词袋的方法设计一个监督分类器来识别学习到的特征。
\quad\quad近些年,卷积神经网络 (CNN) 在许多计算机视觉任务中取得了最先进的 (SOTA) 结果。由于其与传统机器学习方法相比有着显着改进,学者们试图将其应用于遥感领域。 从场景分类到语义分割,分割方法从第一个基于Patch-wise方法到各种各样的全卷积网络 (FCN) 和DeepLab(V1,V2,V3,V3+)。 尽管当前基于 CNN 的方法表现出色,但仍存在一些不足:
- 同时标识多尺度的地面物体困难
\quad\quad在 VHR 图像上,有小物体或线状物体,也有应同时分割的大物体。 CNN 的层次结构理论上可以解决这个问题,因为小对象的语义信息存在于浅层,而大对象的语义信息存在于深层。 然而,以往的研究要么没有考虑浅层,要么只是从浅层和深层合并语义信息,这意味着在融合多级特征时,小对象的语义信息可能会消失或被大对象的语义信息所覆盖。 根据图像内容自适应选择浅层或深层特征可能是解决此问题的一种方法。 通过注意力机制,可以选择性地关注图像的各个部分,然后逐渐结合来自不同区域的信息,理论上可以解决这个问题。 为此,作者提出了尺度特征注意模块(SFAM)来解决这个问题。 通过SFAM,当融合来自多层次的特征图时,对于特征图上的每个点,如果它代表原始图像上的一个小尺寸或线状的物体,那么来自浅层的低级特征将被赋予更大的权重,否则来自深层的高级特征 层将被认为更重要。通过这种自适应加权策略,可以联合学习不同大小对象的特征,这有助于解决标记问题。
- 易混淆的地物的分割困难
\quad\quad一般来说,地面物体通常表现出较高的类内差异和较低的类间差异。 例如,屋顶可以由不同的材料制成,而屋顶和道路可以由相同的材料组成。 先前的研究利用多尺度结构来提取具有大感受野的特征图来识别那些具有挑战性的对象(DeepLab)。 然而,与这些方法一样有效的是,在多尺度特征提取过程中使用固定的扩张率或步幅,忽略具有挑战性的对象的尺度可能会导致不合适的感受野,这意味着感受野与对象的尺度不匹配,这种不匹配会影响准确性。本质上,合适的感受野取决于对象的尺度,所以注意力机制也有助于解决失配问题。
(例如图中所示,较亮的区域表示感受野。 从左到右分别是感受野小、中、大的特征图。对于汽车的识别,在大尺度上,屋顶的语义信息可能是模糊的。 而在小规模上,汽车的语义信息不足。 (a) 小规模。 (b) 合适的规模。( c ) 大规模。)
\quad\quad因此,作者提出了尺度层注意模块(SLAM)来解决这个衍生的不匹配感受野问题。 SLAM生成多个attention map,基于目标物体的尺度,融合多尺度特征时生成的attention map会增强对应尺度的feature map。 这种尺度感知融合策略有助于学习更多易混淆对象的代表性特征,从而完成对这些对象的语义分割。 此外,除了学习特征表示外,提高分类器的能力也有利于分割任务。 因此,另一个名为相邻分数图细化模块(ACSR)的模块用作非线性分类器以进一步提高准确性。
\quad\quad与之前的工作注重设计精心设计模块以提取更多上下文信息(如ASPP)或细化边界(如CRF)相比,本文的研究探索了以下四个方面:
\quad\quad 1. 结合多尺度、多层次网络结构的优点。
\quad\quad 2. 不同层次特征图融合策略的影响。
\quad\quad 3. 不同尺度特征图融合策略对不同感受野的影响。
\quad\quad 4. CNN中使用的分类器。
\quad\quad本文的贡献总结如下:
- 为 VHR 遥感图像分割提出自适应融合网络 (AFNet) 的新框架。通过提出的两个基于注意力的模块,即尺度特征注意力和 SLAMs,AFNet 可以自适应地关注多级特征图上的大小变化对象,并为多尺度结构中的挑战对象搜索最合适的尺度。
- 引入 SFAM 以帮助 VHR 图像语义分割中的大小变化对象标记。该模块可以根据原始图像上点的类别从低级或高级特征图中自适应地增强特征点。
- 为了更准确地分割具有挑战性的对象,引入了SLAM。该模块增强了具有与对象规模匹配的适当感受野的特征图,从而使学习到的特征更能代表具有挑战性的对象的分割。此外,通过引入几个非线性层和ACSR分类器,以进一步提高性能。
三、论文精要
3.1 相关工作
3.1.1 Segmentation in Computer Vision
\quad\quad介绍基于通道注意力的工作,EncNet利用上下文编码模块来捕获编码语义并预测以这些编码语义为条件的缩放因子。 余等人开发了通道注意力block来组合来自相邻阶段的特征。具体来说,高层特征提供语义来指导通道方向上低层特征的选择。李等人利用来自高层的语义信息作为注意力指南来加强具有对象信息的部分的权重。
\quad\quad然而,基于通道注意力的模型没有将空间关系纳入考虑,为了解决这个问题,又有人提出了基于空间关系的模型。牟等人设计了一个空间关系模块来对目标特征点与其他特征点(也称为远距离信息)之间的空间关系进行建模。 然而,为每个特征点建模空间关系的计算量太大。 为了减少计算,Li 等人利用期望最大值(EM)算法优化注意力模块以大幅减少计算。 同样,朱等人设计了非对称金字塔非局部模块以减少计算和内存消耗。
\quad\quad然而,这些空间关系模块旨在捕获远程信息。 对于从 VHR 图像中划出的小块,它们不是必需的。 与空间关系模型不同,本文利用多尺度结构来捕获远程信息。
3.1.1 Remote Sensing Image Semantic Segmentation
\quad\quad有大量关于遥感图像分割的文献。 以往的研究主要分为以下几类:
- 基于图块的方法(patch-based methods)
- 多层次方法(multilevel methods)
- 多尺度方法(multiscale methods)
\quad\quad这里只介绍了后两种方法(multilevel methods and multiscale methods )。有人提出了多尺度方法来克服地面物体具有高类内差异和低类间差异的障碍。 例如,刘等人在编码器部分的最后一层利用具有不同扩张大小的扩张卷积来捕获上下文。 岳等人在最后一个卷积层的特征图上利用空间金字塔池化层。 然而,这些多尺度方法的不足是无法细化对象边界。
\quad\quad多层次方法可以恢复特征图的分辨率,细化相对较粗的预测并精确分割精细结构对象的边界。 在上采样过程的每个环节中,精心设计的模块用于细化精细结构对象的边界。Mou和 Zhu利用来自四个级别的特征图在 VHR 图像上分割车辆。 Mi和Chen利用下采样和图像级特征图来细化对象边界。 李等人设计了一个自适应融合模块,用于融合来自主干网络三个级别的特征图。 然而,多层次方法识别具有挑战性的对象的能力比多尺度方法差。
\quad\quad然而,无论是多尺度方法还是多层次方法,它们都过早地融合了具有不同感受野的特征图。 考虑到具有较大感受野的单个特征图,尽管有足够的上下文信息,但目标对象的特征可能会被其他不相关的对象覆盖。 如果目标对象相对较小(例如,车辆在低级特征图上的语义信息比在高级特征图上更丰富),这可能会更糟。 同时,具有小感受野的特征图,学习的特征可能缺乏上下文信息,不利于分割。 如果不调整后再融合这些特征,则可能对具有挑战性的对象的分割具有模糊性。这种现象被称感受野不平衡。
3.1.3 Classifier in Remote Sensing Image Semantic Segmentation
\quad\quad通常,softmax 在 CNN 中用作无参数分类器。 在本文中,生成 softmax 输入的模块视为可训练的分类器。 理论上,CNN 可以同时学习可训练分类器的特征表示和参数。 然而,目前的研究更关注CNN的设计。 事实上,大多数多级和多尺度结构仅使用逐点卷积作为分类器。 相反,由于学习特征表示的能力有限,基于图块的方法(patch-based methods)通常利用非线性层(nonlinear layer)获得的更具竞争力的特征表示。
\quad\quad具体来说,张等人利用多层感知器(MLP)和CNN作为两个分类器,通过基于规则的决策融合MLP和CNN获得的预测。 Audebert等人使用具有不同kernel大小的三个卷积作为分类器来获得多尺度预测。Maggiori 等人设计了一个独立的神经网络作为分类器来对组合特征进行分类。 此外,刘等人使用特征融合学习对融合的光谱和空间特征进行分类。 由于具有挑战性地物的复杂性,除了特征提取部分的设计外,本文的工作重点是综合利用不同层次的分数图和特征图,用非线性多层分类器代替线性分类器。
3.2 方法
\quad\quad本节先概述了所提出的 VHR 遥感图像模型。之后分别介绍三个主要模块SFAM、SLAM、ACSR。 对于来自多孔空间金字塔池化 (ASPP) 的特征图,SLAM 用于在多尺度特征融合过程中平衡感受野。 对于尺度变化的物体的标注,需要融合不同层次的特征图,SFAM是旨在对不同级别特征图上的像素对应关系进行建模。 特征提取后,ACSR 作为分类器产生最终预测。
3.2.1 Pipelines of Proposed Model(主要模型线路)
\quad\quad对于具有挑战性对象的分割,多尺度结构(multiscale)是必不可少的,因为它生成具有较大感受野的特征图,这有利于分割。 对于尺度变化的物体的分割,多层次(multilevel )的特征图可能会有所帮助,因为CNN浅层的特征可以提供小物体或线状物体的语义信息,而深层特征包含较大物体的语义信息。 结合多尺度和多层次结构的优点,本文提出了一种混合模型来解决VHR遥感图像上地物分割的问题。
\quad\quadSFAM 和 SLAM 旨在帮助分别标记大小不同的对象和易混淆对象。 所提出模型的流水线如图2所示。网络分为三个部分:编码器部分(Encoder)、解码器部分(Decoder)和分类器部分(Classifier)。
- Encoder:使用预训练的ResNet作为backbone网络提取特征。采用不同rate的扩张卷积和图像池化来捕获远程信息。 每次卷积后,对所有的特征图应用SLAM,从而完成第一阶段的特征提取任务
- Decoder:本文使用了融合三种不同大小的特征图的编码器,融合过程由三个SFAM逐步完成。
- Classifier: 作者使用由几个point-wise(卷积核的大小为1×1)卷积组成的ACSR模块来生成scoremap。
\quad\quad由于没有更高级别的得分图作为 ACSR 的输入,因此最高级别的得分图是以传统方式生成的。损失函数选用分割tasks中常用的交叉熵损失函数(cross entropy)。
3.2.2 Scale-Feature Attention Module(SFAM)
\quad\quad通过反卷积实现的传统融合策略不会对分层特征图上的像素对应关系进行建模,这解释为什么标记大小变化对象时存在挑战。 受Non-local neural networks 的启发,作者通过名为 SFAM 的模块改进了融合过程。该模块数学解释如下:
x0=1C(x)f(xl,xh)×g(xl)(1)x_0=\frac {1}{C(x)}f(x_l,x_h)\times g(x_l)\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(1) x0=C(x)1f(xl,xh)×g(xl)(1)
\quad\quad假设xlx_lxl是来自低级特征图的通道方向的一维向量,而xhx_hxh来自高级特征图,xlxlxl有 NNN个通道。在没有特殊说明的情况下,xlx_lxl和 xhx_hxh表示低层特征图和调整大小的高层特征图上相同位置的像素。作者用公式(1)来表示xlx_lxl和xhx_hxh的融合过程(两个在高底层特征图中对应相同像素位置的通道方向1维向量的融合)。在(1)(1)(1)中,xox_oxo 是这个融合过程的输出。fff是计算 xlx_lxl和 xhx_hxh 之间关系的成对函数。C(x)C(x)C(x)是归一化因子,ggg是计算输入向量xlx_lxl表示的一元函数。 如方程所示,对于 xlx_lxl中的每个元素,来自xhx_hxh 的信息用于产生响应,并且该响应可以被视为 g(xl)g(x_l)g(xl) 的权重标S量。
\quad\quad要将公式转换为可计算的神经网络模块,需要实例化上述函数fff 、ggg 和归一化因子C(x)C(x)C(x)。 高斯函数是fff的自然选择,然而,考虑到实现,这里选择了嵌入高斯函数fff,这意味着成对关系是在嵌入空间中计算的。
f(xh,xl)=eθ(xl)×ϕ(xh)(2)f(x_h,x_l)=e^{\theta(x_l)\times\phi(x_h)}\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(2) f(xh,xl)=eθ(xl)×ϕ(xh)(2)
\quad\quad其中θθθ 和 ϕ\phiϕ 是两个嵌入,可以实现简单的逐点卷积(θ(xl)=Wθxlθ (x_l) = W_θ x_lθ(xl)=Wθxl)。注意这里的乘法是S向量θ(xl)θ (x_l)θ(xl)和 ϕ(xh)\phi(x_h)ϕ(xh)的hadamard积。 尽管 xlx_lxl 和 xhx_hxh 不一定具有相同的通道数,但θ(xl)θ(x_l)θ(xl) 和 ϕ(xh)\phi(x_h)ϕ(xh)确实可以具有相同的通道数(该数量可以由 WWW控制,通常预定义为Nˉ\bar{N}Nˉ),这是作者使用卷积作为嵌入的另一个原因。 至于函数ggg,这里仍然是逐点卷积的形式,为了保持通道数与函数fff的输出一致,向量函数 ggg 的输出也有 NNN个通道。 对于归一化因子 C(x)C(x)C(x),这里有:
C(x)=∑i=1Nˉf(xl,xh)C(x)=\sum_{i=1}^{\bar{N}}f(x_l,x_h) C(x)=i=1∑Nˉf(xl,xh)
那么(1)则改写为:
x0=eθ(xl)×ϕ(xh)×g(xl)∑i=1Nˉeθ(xl)×ϕ(xh)=Softmax(θ(xl)×ϕ(xh))×g(xl)(3)x_0=\frac{e^{\theta(x_l)\times\phi(x_h)}\times g(x_l)}{\sum_{i=1}^{\bar{N}}e^{\theta(x_l)\times\phi(x_h)}}=Softmax(\theta(x_l)\times\phi(x_h))\times g(x_l)\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(3) x0=∑i=1Nˉeθ(xl)×ϕ(xh)eθ(xl)×ϕ(xh)×g(xl)=Softmax(θ(xl)×ϕ(xh))×g(xl)(3)
\quad\quad此外,为了避免梯度消失,作者在这里还使用了残差连接。 输出与 xlxlxl 的表示连接,因此该块的最终输出是 Out=xo+xlOut = x_o + x_lOut=xo+xl。
\quad\quad为了便于理解,上面的论证是基于向量的,但是作为 hadamard 乘积,point-wise卷积 和 softmax 函数在向量和矩阵上的作用是一样的,这意味本文提出的模块也可以将Matrix作为输入。本文的 SFAM 和 Non-local neural networks之间的差异体现在三个方面(受其启发但又不同):
- 这两个模块共享不同的Motivation。Non-local neural networks(NLNN)旨在捕获远程或全局信息,而 SFAM 更可能关注局部区域。
- 两个模块的输入不一样。 SFAM的输入来自不同级别的特征图,但 NLNN将单级特征图作为输入。
- SFAM和NLNN的计算不同。SFAM使用 Hadamard 乘积而不是NLNN中的矩阵乘法来计算注意力图。 而且,假设特征图上有NNN个像素,对于每个像素,SFAM只需要一对像素来计算注意力值,而NLNN需要NNN对像素。 从这个角度来看,SFAM计算效率更高,这也解释了为什么它可以在网络中使用 3 次。
3.2.3 Scale-Layer Attention Module(SLAM)
\quad\quad由于遥感图像通常包含复杂且异质的景观,因此多级网络无法很好地识别具有挑战性的对象。 主要原因是缺乏足够的上下文信息,因此引入了**(多孔空间金字塔池化)ASPP**模块来解决这个问题,并且已经被证明在VHR遥感图像的分割中是有效的。 然而,在提取上下文信息时,ASPP 中使用的扩张率是固定的,忽略了具有挑战性的对象的规模。这 可能导致提取的特征图的感受野与挑战对象的尺度不匹配。 故本文设计了一个名为SLAM的模块来生成注意力图(attention map),并在融合ASPP模块的特征图时,利用注意力图对多尺度特征图进行自适应加权。 这些特征图具有相同的空间分辨率,但像素的感受野不同。 根据挑战对象的规模,匹配感受野的特征图将被增强,而其他的将被限制。
\quad\quad本文的方法的不同之处在于:
\quad\quad 1)模块专注于像素本身以产生注意力值,而不是关注围绕它的大区域或其与 全局像素;
\quad\quad 2)该模块可以参数化,这意味着它是可微的,并且可以以端到端的方式进行训练。
\quad\quad通过 SLAM,可以明确地对来自同一级别的每个像素的区别进行建模,自适应地融合具有不同感受野的特征图。 SFAM允许模型综合利用多尺度结构和注意力机制,同时弥补感受野不平衡。SLAM模块的组成如上图 所示,模块的输出可以表示为:
FO=Fw×F+F(4)F^O=F_w\times F+F\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(4) FO=Fw×F+F(4)
其中FFF表示 SLAM 的输入,FwF_wFw是注意力图,FoF^oFo是输出特征图。 关键是生成只与目标像素本身相关的attention map。 生成FwF_wFw的过程可以表示为:
Fw=Sigmoid[BN[K⊗F]](5)F_w=Sigmoid[BN[K\otimes F]]\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(5) Fw=Sigmoid[BN[K⊗F]](5)
\quad\quad其中kkk表示逐点卷积(1×1卷积)的参数,⊗ 表示卷积操作,BNBNBN是批量归一化函数 。 这个方程显示了FwF_wFw是可微的,可以进行训练。这里,作者假设模块可以在通道方向上依赖地产生注意力,所以选择Sigmoid函数来计算通道方向的注意力值,而不是Softmax,后者将通道方向的其他值纳入计算。
\quad\quad然后将输入特征图 FFF 与注意力图FwF_wFw相乘。 由于FwF_wFw 的初始化依赖于卷积核的初始化,因此可能存在梯度消失问题。 所以,这里利用了残差连接。最坏的情况是一开始FwF_wFw接近于零,但是通过这个残差连接,整个网络可以正常训练以自动更新FwF_wFw和其他参数。 对于来自ASPP 模块的每个特征图,应用了SLAM。 这样,来自ASPP模块的各scale特征图在空间和通道方向上都有相应的权重。channel attention模块和本文的的attention模块之间的区别解释如下:
\quad\quad通常,channel attention是通过channel乘法实现的,可以表示为:
FkO=αk×Fk(6)F_k^O=\alpha_k\times F_k\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(6) FkO=αk×Fk(6)
\quad\quad其中FkF_kFk表示来自第kkk个通道的特征图,αkα_kαk是一个标量。如等式所示,来自第kkk个通道的特征图乘以一个固定参数αkα_kαk,忽略了空间方向像素的多样性。 类似的逻辑适用于其他单独实现通道注意力和空间注意力的情况。 然而,本文的位置方面的注意力机制如下:
fo(i,j,k)=w(i,j,k)×f(i,j,k)(7)f^o(i,j,k)=w(i,j,k)\times f(i,j,k)\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(7) fo(i,j,k)=w(i,j,k)×f(i,j,k)(7)
\quad\quad其中 (i,j,k)(i, j, k)(i,j,k) 表示像素在给定特征图的第 kkk 个通道的第iii 行第 jjj列,www 是对应的权重值。 这意味着该模块不仅实现了通道注意力,而且还考虑了来自同一空间的像素的多样性。
3.2.4 Adjacent-Connected Score Map Refine(ACSR)
\quad\quad当涉及到分类任务时,在 展开成一维向量(flatten )或 全局池化(global pooling )之后,用一个FC层作为分类器。 然而,作者观察到在大多数当前的Segmentation tasks 中,逐点卷积(1×1,也就是全卷积网络)代替了全连接层。 由于逐点卷积的线性特性,它的分类能力弱于全连接网络。 另一个值得一提的现象是不同stage的Score map的综合使用。 以往的工作很少关注不同层次的Score map或只是将它们叠加在一起,而忽略了评分图的综合使用。 于是本文提出相邻连接得分图细化模块(adjacent-connected score map refine block)。
(本文提出的相邻连接得分图细化块(adjacent-connected score map refine block)的结构。它将前一阶段的分数图和同一阶段的特征图作为输入并输出细化后的特征图。 与SFAM相同,蓝线表示特征图,绿线表示调整大小的特征图。)
\quad\quad与MLP-CNN分类器不同,本文提出的 ACSR 是一种基于像素的分类器,旨在综合利用得分图。 通过引入几个非线性层(nonlinear layers),分类器的容量比由逐点卷积层组成的朴素分类器强大。 为了综合利用分数图,作者选择连接相邻级的分数图,然后对它们应用逐点卷积。 输入特征图首先输入到组装的逐点卷积以产生初步得分图。 对于给定的特征图,为了确定每个像素的类别,应该利用来自通道方向的向量,让vvv表示向量。
\quad\quad对于类别 ccc,传统的逐点卷积表示为:
Sc=WT×V(8)S_c=W^T\times V\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(8) Sc=WT×V(8)
\quad\quad其中 ScS_cSc表示属于类别ccc像素的得分, 经过softmax输出之后转化为概率。 WWW是逐点卷积的参数,nnn 是向量的长度。 但是在本文的方法中,用于类别 ccc 的自适应分类器完全不同。定义的函数fff 如下:
f(V)=ReLU[BN[WT×V]](9)f(V)=ReLU[BN[W^T \times V]]\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(9) f(V)=ReLU[BN[WT×V]](9)
\quad\quad本文的分类器可以表示为:
Sc=WT×f(f(V))(10)S_c=W^T \times f(f(V))\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(10) Sc=WT×f(f(V))(10)
\quad\quad几个Conv层与ReLU的组合引入了非线性特性,之后将第 (k-1) 层和第 k 层的分数图连接在一起,然后应用逐点卷积来生成第 k 层的分数图。
3.3 实验
\quad\quad作者在国际摄影测量和遥感杂志 (ISPRS) 2-D 语义标签竞赛提供的 Potsdam 和 Vaihingen 数据集上评估提出的模型。 在这一部分,首先介绍数据集,然后是训练细节和评估指标。 之后,将模型结果与其他 SOTA 方法进行比较。
3.3.1 Data Set Description
3.3.1.1 Potsdam Data Set
\quad\quadhttps://www2.isprs.org/commissions/comm2/wg4/benchmark/2d-sem-label-potsdam/
- IRRG: 3 channels (IR-R-G)
- RGB: 3 channels (R-G-B)
- RGBIR: 4 channels (R-G-B-IR)
\quad\quad数据集中有6类,分别是不透水表面、建筑物、低植被、树木、汽车和背景。 Potsdam 数据集共有 38 个tiles,其中保留 14 个tiles作为测试集。 All tiles具有红色、蓝色、绿色、近红外波段、归一化数字表面模型 (nDSM) 数据和 DSM 数据。 每个tile的大小为 6000×6000 像素。 从训练集中,随机选择四个tile作为验证数据。 对于每个图块,仅选择近红外、红色和绿色波段。 训练时,每个训练tile被随机裁剪为 4000 个大小为 256 × 256 像素的块。 至于验证和测试,以非重叠的方式裁剪图块。
3.3.1.2 Vaihingen Data Set
\quad\quadhttps://www2.isprs.org/commissions/comm2/wg4/benchmark/2d-sem-label-vaihingen/
\quad\quad包含6个类别、4个光谱波段、DSM 和 nDSM 数据。 但是,与Potsdam数据集相比,它的地面采样距离(GSD)较低。 它包含 33 张图像,每张图像大约 2500 × 2000 像素。 其中 17 个是保留作为test 集,而其中 16 个用作train集。 此外,由于tiles相对较小,对于给定的图像,对其进行随机裁剪以生成图像大小为 256 × 256 像素的图像块作为训练数据。
3.3.2 Training Details
3.3.2.1 避免过拟合(Avoid Overfitting)
\quad\quad考虑到数据集的规模相对较小,为了避免过度拟合,这里采用迁移学习和数据增强技术。和Non-local neural networks 一样,选用已在ImageNet 上Pre-Train的ResNet 作为backbone。 对于每个图像,采用随机翻转、随机旋转和多尺度输入来进行数据增强。
3.3.2.2 超参数配置(Configuration of Hyper Parameters)
\quad\quad实验使用 Tensorflow 框架进行代码实现。 对于Hyper Parameters,两个数据集均采用momentum为 0.9 的随机梯度下降 (SGD) 作为优化器,将初始LR设置为 0.005。 与 ParseNe类似,采用多元学习率策略,其中初始学习率乘以(1−(iter/maxiter))power(1-(iter/max_iter))^{power}(1−(iter/maxiter))power和 power=0.9power = 0.9power=0.9来改变学习率。 网络先训练 300 000 次iterations,学习率除以 10 再进行 150 000 次iterations。
3.3.2.3 网络配置(Configuration of Network)
\quad\quad为避免粗糙预测,ResNet的output stride设置为16。对于ASPP模块中的dilated convolution rate,我们分别设置为[6,12,18][6,12,18][6,12,18]。受多重网格的启发,本文 在backbone中也使用了multigrid method,网格值设置为(1,2,4)(1,2,4)(1,2,4)。Multigrid方法最初用于求解椭圆方程,数值解的误差可以为扩展成系列的形式,不同尺度的网格可以过滤掉不同系列的错误,这个想法在CNN中得到了转换。多重网格方法采用不同大小的网格层次结构来调整扩张卷积的rate。网格的数量取决于 ResNet 最后一个块中重复单元的数量。三个卷积的最终扩张率是相应单位率和由预定义输出步幅确定的常数的乘积。在我们的例子中,当应用多重网格方法时,三个卷积的膨胀率分别为 2、4 和 8。受 GPU 内存的限制,将batch_size设置为 12。
3.3.3 Evaluate Metrics
\quad\quad为了定量评估模型性能,使用了四个常见且被广泛接受的指标。 分别是 F1 分数、总体准确率 (OA)、平均准确率 (AA) 和像素交并比(IoU)。
四个度量指标的定义:
先介绍相关的缩写,tptptp、fpfpfp、fnfnfn、tntntn分别是真阳性、假阳性、假阴性、真阴性的表示。
TP:True Positive 真阳性:预测为正,实际也为正
FP:False Positive 假阳性:预测为正,实际为负
FN:False Negative 假阴性:预测与负、实际为正
TN:True Negative 真阴性:预测为负、实际也为负。
也就是说,预测和实际一致则为真,预测和实际不一致则为假;如果预测出来是“正”的,则为“阳”,预测结果为 “负”,则为“阴”。
因此,精度(P)和召回率(R)可以计算为:
P=tptp+fpP=\frac {tp}{tp+fp}P=tp+fptp R=tptp+fnR=\frac{tp}{tp+fn}R=tp+fntp
OA则被定义为:
OA=tptp+fp+tn+fnOA=\frac{tp}{tp+fp+tn+fn}OA=tp+fp+tn+fntp
F1分数:
F1=2×(P×RP+R)F_1=2\times(\frac{P\times R}{P+R})F1=2×(P+RP×R)
IoU:
IoU=sp∩sgtsp∪sgtIoU=\frac{s_p∩s_{gt} }{s_p∪s_{gt}}IoU=sp∪sgtsp∩sgt
\quad\quad其中∩∩∩表示交集,∪∪∪表示两个集合的并集。 SpS_pSp表示预测集,而 SgtS_{gt}Sgt表示地面实况图像集。 AAAAAA 定义为每个类别的召回率平均值,表示正确分类像素的比例。 为了评估性能,作者在每个数据集上分别计算上述指标。 在 Potsdam 和 Vaihingen 数据集上进行测试时,组织者推荐了对象边界已被 3 像素半径侵蚀的G.T。
3.3.4 Results on Potsdam
\quad\quad在test集上评估性能时,图像块的大小可能更大,因为实验每次迭代只预测一个块。 根据之后的消融研究,对于每个图块,裁剪大小为 600 × 600 像素且有一半重叠的块。 最终结果是对多重预测方法的投票,其中包括翻转、旋转 90°、180°和 270°以及原始方法。之后,展示和其他方法相比较的实验结果。
\quad\quad下表显示了与已发表文章的方法定量比较的结果。如表所示,所有方法都显示出良好的结果,本文的模型实现了 92.2% 的 OA,超过了其他模型的性能。 然而,与 ReSegNet相比,本文方法在建筑类上的 F1 分数较低。 但同时,在树类别上,本文方法超过了ReSegNet。 这可以解释为,由于乔木和低矮植被通常是共存的,因此ReSegNet中混淆矩阵有两个类别几乎无法区分。 因此,他们的模型可能更侧重于相对较大的类别,例如建筑物和低植被,而本文的模型更侧重于小目标,例如树木或汽车。 这也可以解释本文模型在车类别上超过了它们 0.5%。 与 ReSegNet 的可视化比较结果如下图。
3.3.5 Results on Vaihingen
\quad\quad由于 Vaihingen 数据集的图像大小不规则,作者首先扩展图像,然后以重叠方式裁剪大小为 512 × 512 像素的图像块。 除了上面提到的方法,还有很多其他的模型也使用了这个数据集,例如:ADL、DLR_10、FuseNet。
\quad\quad下表显示了AFNet与当前 SOTA 方法在 ISPRS Vaihingen 测试集上的定量比较。 由于Vaihingen有许多独立的建筑物,建筑物分类任务的难度增加了。 此外,在车辆分类上,准确率明显低于 Potsdam 数据集,精度降低的现象也出现在其他工作中。 这是因为在 Vaihingen 数据集中可用于训练的车辆数量很少。 总的来说,本文模型结果与 ReSegNet 具有差不多的竞争力,AFNet分割的车辆性能比其他模型更准确,可视化结果如下图所示。
3.4 讨论
3.4.1 Parameter Scales and Model Complexity
\quad\quad通过参数比例、浮点运算 (FLOP) 和推理时间,以进一步评估所提出的方法。
\quad\quad参数标度示见前表。从表中可以看出,与其他模型相比,AFNet模型的参数是中等的。 由于硬件(如CPU、GPU)的质量也会影响模型的训练时间,因此运行时间对于时间复杂度的评估似乎并不合理。 在这里,引入了深度学习中使用的 FLOP 和推理时间来评估模型的复杂性。
\quad\quad训练时,AFNet模型的FLOPs约为4×10104×10^{10}4×1010。推理时,AFNet平均需要0.075s来预测一个样本的语义分割结果。
3.4.2 Model Analysis
\quad\quad在这一部分,通过综合消融实验来验证了AFNet模型中每个模块的性能。先在红外、红、绿 (IRRG) 波段训练 DeepLab-v3 作为baseline,然后逐渐加入了SFAM、SLAM、ACSR并对这些架构进行实验,并通过 OA、mIoU和F1 分数评估性能。
\quad\quad上表显示了实验结果,其中F是SFAM的缩写,L是SLAM的缩写,A是ACSR的缩写。 我们可以看到,Deeplab 模型与其他模型比具有竞争力,这显示了其捕获遥感图像块上下文信息的能力。 如表中的第二行和第三行所示,在Deeplab中加入SFAM和SLAM时OA分别增加了1%和0.86%,说明在Deeplab中单独加入SLAM和SFAM时,性能提升有限。 但是当SLAM和SFAM结合在一起时,OA和F1分别增加了1.6%和1.91%,这在一定程度上证明了AFNet中SLAM+SFAM模块的性能。
\quad\quad此外,每个类别的分类准确率也都得到了提高。 如上图所示,与其他类别相比car类的语义信息很容易被其他类别覆盖。 如果将SFAM应用于baseline时,大多数类别的性能都有所提升,尤其是car类别的性能。 这表明网络可以更好地解决大小变化对象的标注问题。 同时,当应用SLAM来解决感受野不平衡问题时,分类精度又有了很大的提高。此外,如上表最后一行所示,当 把ACSR 加入网络时,大多数类别的分类准确率都有所提高,这表明需要一个强大的分类器来完成这项具有挑战性的任务。
\quad\quad为了更好地理解注意力模块的效果将网络生成的注意力图可视化如上图。由于高级特征太抽象而无法理解,这里将第一个 SFAM 中的注意力图和特征图可视化,然后将它们上采样四次以恢复空间分辨率。Attention map与原始图像叠加,以帮助理解注意力的含义。区域越亮,attention value就越大。通常,遥感图像包含复杂的异质景观,图像上要分类的类别不止一个(例如,图中的地面实况所示)。就像人类的感知过程一样,对于注意力机制,不同的类别是异步感知的。所以,不同的类别应该有不同的映射。图中第二行表明,attention 1更关注水泥路面,而attention 2 更关注car(尤其是其中一辆车)。此外,即使在类别内,特征上也会存在巨大差异,我们人类可以像注意机制一样观察到差异巨大的各个区域。如图中的第四行所示,attention1更关注屋顶的中心区域,attention 2感知屋顶的其他区域。综上所述,不同的注意力图感知图像上的不同区域,这些区域可能属于不同的类别,也可能属于同一类别,但差异很大。当注意力图应用于特征图时,很明显特征变得更具辨别力。
3.4.3 Study of Free Parameter
\quad\quad在所有自由参数中,Nˉ\bar{N}Nˉ 可能是最重要的一个,预定义的 决Nˉ\bar{N}Nˉ 定了嵌入空间的维度和所提出模型的参数尺度。 在本节中作者讨论了Nˉ\bar{N}Nˉ 的影响。 具体来说,作者将Nˉ\bar{N}Nˉ 设置为64、128、256、512,并保持其他配置一致,探索Nˉ\bar{N}Nˉ 对模型的影响,结果如下表所示:
\quad\quad从表中可以看出,OA 和 mIoU 随着预定义的Nˉ\bar{N}Nˉ 评估单调增加,并且有收敛的趋势。 这是因为Nˉ\bar{N}Nˉ 越大,模型的拟合能力就越大,因为Nˉ\bar{N}Nˉ 引入了更多的可训练参数。 然而,更多的参数会导致更多的计算、更长的训练时间,并给优化带来挑战。 有必要在参数规模和性能之间找到一个权衡。
\quad\quad上图显示了Nˉ\bar{N}Nˉ 值不同时 OA、mIoU 和参数尺度的变化。 一般来说,最理想的模型应该是参数更少,精度更高,这在图的左上角区域。但实际情况往往是在参数规模和精度之间寻找一个权衡,这在图的中上角。本文的的结果表明,随着 Nˉ\bar{N}Nˉ增加,OA 和 mIoU 都有上升的趋势。 当 Nˉ\bar{N}Nˉ变高时,上升趋势放缓。 这表明当 Nˉ\bar{N}Nˉ设置为 256 时,模型的参数规模和精度可以达到相对平衡。
3.4.4 Input Size Matters
\quad\quad作者在val数据集上验证模型的鲁棒性时,图像块的size为 300,小图像块的四个边(或两个)可以称为边界线。将小块以没有重叠的方式合并成tile后,可以得到prediction map。 通过对比prediction map和ground truth,可以发现prediction map上会有一些不自然的水平线或垂直线。 这些线条不是对象的边界。而且,这些不自然的线条与预先定义的边界线的交点就是边界效果出现的位置。 实际上,作者在预测地图的某些区域观察到明显的边界效应。 这种效果导致许多错分从而降低了模型性能。一个自然的想法是扩大图像块的输入大小,当它与原始图块大小相同,边框效果将消失。 但是,受限于 GPU 内存,该解决方案并不可行。 因此,通过裁剪不同大小的补丁以搜索最佳补丁大小。
\quad\quad如表所示,当输入size为 500 时,OA 和平均 F1 均达到最大值。 可以看到OA和F1分数在input size 200-500范围内呈现上升趋势,500之后准确率会下降,但下降并不明显。 这种现象可能意味着当图像尺寸小于500时,精度主要受边界效应的影响。 但随着图像尺寸的增加,边框效果逐渐减弱,精度主要受图像尺寸的影响。 图像越大,图像上的样本越困难,尺度问题就越严重,这会降低模型的性能。
\quad\quad在上面的各种输入尺寸对应的预测图中,圈出了一些受边界效应影响的明显区域。 如图所示,补丁尺寸越小,边界效应越严重,这会降低模型性能。 图块尺寸越大,边界效果越不明显。 例如,在图 (i) 中,图像块中间有四条边界线,但是,这些四条线并未显示不自然的错误分类部分。 另外,出现边框效果的区域是不规则的,这可能是小输入图像精度不规则的原因。 此外,考虑到图像右上角的混淆区域,随着输入图像尺寸的增加,该区域的精度似乎明显下降。
3.4.5 Data Augmentation on Test Set
\quad\quad除了输入补丁的大小外,数据增强也会影响最终性能。 如上所述,在测试阶段,将输入图块旋转三个角度、翻转两次,并以重叠方式裁剪图块以进行最终预测。 在这一部分,为了评估上述数据增强方法带来的性能,先后采用了旋转和重叠裁剪的策略,并观察了性能的提升。 评价结果表如下:
\quad\quad从表中可以看出,对于本文使用的两个数据集,旋转和翻转数据增强方法都可以显着提高模型的性能。 这可能是因为当图像在不同方向时,同一物体的注意力图是不同的。 当结合来自各个方向的注意力图时,注意力图将感知到更大的区域而不是对象的单个局部区域。此外,当以重叠方式裁剪补丁时,两个数据集的性能提升是有限的。 这是合理的,因为重叠采样策略用于提高图像边界区域的分类精度,特别是当输入块的大小较小时。 所以,应将图像块裁剪得更大一些。因此,边界效应对于块预测的准确性来说不是那么大。
3.5 结论:
\quad\quad在本文中,为了提高VHR遥感图像分割的性能,该性能受到尺寸变化和容易混淆的物体,作者提出了一种新颖的AFNet。它包含SFAM,SLAM和ACSR这三个模块。通过SFAM,AFNet可以根据原始图像上点的类别,自适应地从低级或高级特征图中增强特征点。通过SLAM,对于多尺度特征图融合,AFNet可以自适应地增强其接收场与易混淆对象的尺度相匹配的特征图。此外,ACSR使AFNet在分类器设计方面更具竞争力。作者通过广泛的实验证明了所提出模块的有效性,并实现了SOTA性能。但是,由于存在多源遥感数据(例如数字地表模型DSM),本文提出的模块可以进一步适用于融合来自光学图像和DSM的特征图,这将在理论上提高语义标记的性能。那也是未来的研究方向。
相关概念总结:特征金字塔网络FPN(feature parymid network)、SFAM尺度特征注意模型、Bounding box边界框、backbone骨架、Dilated Convolution扩张卷积、端到端(end-to-end): 端到端的学习其实就是不做其他额外处理,从原始数据输入到任务结果输出,整个训练和预测过程,都是在模型里完成的、Atrous Spatial Pyramid Pooling, or ASPP埃特鲁斯空间金字塔池(空间金字塔池已被广泛采用,为整体场景解释(尤其是针对多个尺度的各种对象)提供良好的描述符。
精读《AFNet Adaptive Fusion Network for Remote Sensing Image Semantic Segmentation》相关推荐
- 【韩松】Deep Gradient Comression_一只神秘的大金毛_新浪博客
<Deep Gradient Compression> 作者韩松,清华电子系本科,Stanford PhD,深鉴科技联合创始人.主要的研究方向是,神经网络模型压缩以及硬件架构加速. 论文链 ...
- 【韩松】Deep Gradient Comression
<Deep Gradient Compression> 作者韩松,清华电子系本科,Stanford PhD,深鉴科技联合创始人.主要的研究方向是,神经网络模型压缩以及硬件架构加速. 论文链 ...
- [文献阅读] Sparsity in Deep Learning: Pruning and growth for efficient inference and training in NN
文章目录 1. 前言 2. Overview of Sparsity in Deep Learning 2.1 Generalization 2.2 performance and model sto ...
- 【翻译】Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift
Batch Normalization: Accelerating Deep Network Trainingby Reducing Internal Covariate Shift Sergey I ...
- 模型加速--CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization
CLIP-Q: Deep Network Compression Learning by In-Parallel Pruning-Quantization CVPR2018 http://www.sf ...
- 论文笔记30 -- (视频压缩)【CVPR2021】FVC: A New Framework towards Deep Video Compression in Feature Space
<FVC: A New Framework towards Deep Video Compression in Feature Space> CVPR 2021 的一篇Oral 提出了特征 ...
- 端到端图像压缩《Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation》
Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation 一 简介 二 内容 2.1 目前方法的缺陷 2.2 整 ...
- 深度学习视频压缩1—DVC: An End-to-end Deep Video Compression Framework
本文是第一篇端到端使用神经网络来进行视频压缩的论文, github地址:GitHub - GuoLusjtu/DVC: DVC: An End-to-end Deep Video Compressio ...
- 【论文阅读】Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data
[论文阅读]Deep Compositional Captioning: Describing Novel Object Categories without Paired Training Data ...
- CVPR 2018 TRACA:《Context-aware Deep Feature Compression for High-speed Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文的模型叫做TRACA.模型中使用多个expert auto-encoder,在预训练阶段,每个expert auto-encoder针对一个特定类进行训练:在tracki ...
最新文章
- 如何用python制作动态二维码,提升表白成功率?
- 【定时同步系列3】8PSK调制+OM定时+信号分段处理+误码率曲线之MATLAB仿真(实信号模型)
- Docker,容器,虚拟机和红烧肉
- 没有Wi-Fi?三种方法通过iPhone让Macbook连上网络
- php登录处理代码,php登录与退出登录实例代码
- linux磁盘调度算法
- 趋势探讨:容器会取代虚拟机吗?
- android 实现论坛界面,android界面开发之主流UI布局范例
- VS2010调试窗口一闪而过解决方法
- 蠕虫病毒代码(纯属参考,请勿用于非法事件)
- 根据银行卡号码获取银行卡归属行以及logo图标
- python实现Kmeans算法
- 随机过程(联合平稳随机过程)
- k线必涨的20种形态图
- linux下安装mysql问题:mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended
- unity静止人物素材制作动作,导入unity行走、跑步动画,并用Animator Controller加脚本进行控制
- docker 进入容器内部及退出
- 可怕,任天堂找到了一种新的赚钱方式……​
- 看懂了再说自己是程序员哈哈
- 19.1 FrontPage 服务器扩展