自监督论文阅读笔记Index Your Position: A Novel Self-Supervised Learning Method for Remote Sensing Images Sema
Index Your Position: A Novel Self-Supervised Learning Method for Remote Sensing Images Semantic Segmentation
在没有人工监督的情况下 学习有效的视觉表示 是遥感图像(RSI)语义分割任务的一个关键问题,其中 像素级注释 很难获得。自监督学习 (SSL) 通过创建人工监督学习问题来学习有用的表示,最近已成为一种从未标记数据中学习的有效方法。当前的 SSL 方法通常是 通过图像级预测任务 在 ImageNet 上进行训练的。我们认为这对于 RSI 语义分割中的应用不是最优的,因为它没有考虑 目标之间的空间位置信息,这对于 以多对象为特征 的 RSI 的分割至关重要。
在这项研究中,我们提出了一种新的 自监督密集表示学习方法 IndexNet,用于 RSI 的语义分割。一方面,考虑到 RSI 的多目标特性 ,IndexNet 通过 跟踪对象位置 来学习 像素级表示 ,同时保持对 对象位置 变化的敏感性 ,以确保不造成不匹配。另一方面,通过结合 图像级对比 和 像素级对比 ,IndexNet可以 学习时空不变特征 。
实验结果表明,我们的方法比 ImageNet 预训练效果更好,并且优于最先进的 (SOTA) SSL 方法。
Introduction:
遥感图像 (RSI) 的语义分割 旨在 为图像中的每个像素分配一个地理标签 ,是广泛的实际应用中的关键任务,例如土地覆盖映射 [1]、[2 ]、基础设施管理 [3]、[4] 和精准农业 [5]、[6]。由不同传感器、角度和天气引起的 多个物体的 复杂光谱响应 使得 RSI 的语义分割特别具有挑战性。得益于近年来深度学习研究的蓬勃发展,RSI 的语义分割性能取得了很大的进步 [7]-[9]。
然而,语义分割需要像素级的类标签 的收集,这很繁琐,需要丰富的经验 和 扎实的地理知识。尽管有许多公开可用的注释数据集 [10]-[12],但RSI 在时间和位置上差异很大 ,现有的标记数据只是 图像的截取,而且,收集大量 具有异常高丰富度的 注释样本,包括全球区域、多分辨率、多季节和多光谱是困难的。解决此问题的一种方法是使用 迁移学习[13] 来迁移从更大领域学习的知识,以提高目标领域的性能 或减少对标记样本的依赖 。最广泛使用的 RSI 语义分割 迁移学习方法是基于 ImageNet [14]。然而,这种迁移学习策略并没有显著提高性能 ,也没有利用大量未标记的数据。
自监督学习 (SSL) 的引入解决了这个问题,并利用了大量未标记的数据。 SSL 方法可以首先通过解决 预先设计的任务(称为前置任务 )从未标记的源数据中 学习有用的表示,然后将它们迁移到目标任务 (例如语义分割)。这种使用未标记图像进行表示学习的可能性引起了相当大的关注,导致 SSL [15]-[19] 取得了实质性进展。在当前方法中 指导表示学习的自监督是 基于图像级别的比较 。该学习流程的潜在先验是 同一图像的不同视图(裁剪)对应于同一对象 ,如图1(a)所示。

然而,由于 高空成像,RSI 通常代表 较宽的空间范围,这导致在一张图像中包含不同目标的可能性 。结果,不同的随机裁剪 可能对应不同的对象,如图1(b)和(c)所示。此外,当前的 SSL 方法主要是为 只需要图像级表示 的图像分类任务 而设计的。然而,语义分割 需要图像级 和 像素级的表示 才能产生有希望的结果。尽管越来越多的研究 [20]-[23] 研究了用于 密集预测任务的 SSL 预训练,但这些方法并未考虑 RSI 的独特特征 。例如,DenseCL [20] 和 Self-EMD [23] 通过基于 特征相似性 匹配像素 来学习像素级表示,但由于 RSI 中 目标的复杂多变的光谱响应 和在预训练期间图像的 人工增强[见图 1(d)],这些方法容易导致 对应像素不匹配。 DetCon [21] 需要对图像进行额外的 SSL 预训练分割,这既耗时又不适合 RSI 的实际应用。
本文提出了一种新的 SSL 方法 IndexNet,用于 RSI 的语义分割。首先,引入 索引对比 来解释 RSI 中目标的广泛的光谱响应 ,这允许我们的模型 学习像素级表示 并保留空间位置信息 以使学习的表示 对于不同的目标 不同。其次,考虑到 RSI 的 巨大时间差异 和 语义分割任务对 全局信息 的需求,我们将实例对比方法 BYOL [18] 与索引对比相结合 ,以学习 像素级 和 图像级 时空不变表示。
Contributions:
1)我们表明,尽管 RSI 中的 多目标之间 存在复杂的交互 ,但 SSL 可以通过精心设计使用 未标记数据 来学习 RSI 语义分割的有用表示。由于我们可以轻松访问大量未标记的 RSI ,这种学习方法在促进 RSI 语义分割及其相关应用方面具有巨大潜力;
2)考虑到RSI的 多目标特性 和 目标之间复杂的交互,我们引入了索引对比机制 ,使得在学习像素级表示的过程中 保持对空间变换的不变性 成为可能。当结合 索引对比和实例对比 时,我们的网络可以学习像素级和图像级时空不变表示;
- 我们在两个公共数据集上评估了 IndexNet。在 Potsdam 数据集上进行评估时,与 ImageNet 预训练模型相比,所提出的 IndexNet 将 mIoU 提高了 3%,与其他 SSL 方法相比提高了 1%。仅使用 10% 的标签,我们的预训练模型可以达到与使用完整标签训练的随机初始化模型相同的准确度。在 LoveDA 数据集上,IndexNet 与 ImageNet 预训练方法相比将 mIoU 提高了 9%,并且优于其他 SSL 方法。
自从提出了完全卷积网络(FCN)[24]并取得了巨大成功,深度学习方法在语义分割领域占据了主导地位。随后的几项工作 [25]、[26] 建立在使用 编码器-解码器架构 的相同想法之上。陈等人 [27] 介绍了使用 空洞卷积 来保留视图的感受野 并增强网络的性能。后来,各种工作集中在最终特征图[13]、[28]、[29]中的聚合远程上下文 ,并使用 注意机制 来考虑像素之间的关系[30]-[32]。
同时,已经提出了许多用于 RSI 的分割网络 [8]、[9]、[33]、[34]。通过考虑RSI 的可变尺度和 层次结构 ,这些方法在这一特定任务上取得了更好的性能。
最初,大多数 SSL 方法都是基于前置任务,包括着色 [35]、修复 [36]、去噪 [37]、解决拼图游戏 [38] 和预测方向 [39]。最近,对比学习方法引起了很多关注并取得了最先进的(SOTA)性能。
对比学习 的主要思想是 最大化同一图像的不同增强视图的相似性,并将来自不同图像的视图拉开 。 SimCLR [15] 是第一个证明 SOTA 性能可以通过 没有记忆库的对比学习 来实现的。 MoCo [16] 提出使用 动量编码器 和 负样本队列 来释放大批量的要求。BYOL [18] 和 SimSiam [40] 旨在不用负样本 学习表示。 Barlow-Twins [17] 学会了使同一图像的两个增强视图之间的交叉关系矩阵 尽可能接近单位矩阵。SwAV [19] 通过从一个视图计算分配并从另一个视图预测它,将聚类 整合到对比学习框架中。
虽然这些预训练方法在迁移到分类任务时 取得了可喜的结果,但在密集预测任务的 迁移性能方面的进步是有限的[20]。已经进行了若干尝试来解决这样的问题。 DenseCL [20]、PixPro [22] 和 Self-EMD [23] 通过 最大化不同视图的相应像素的相似性,将图像级表示转换为像素级表示 。 DetCon [21] 使用经典的分割方法 生成掩码 ,然后在像素级别 选择正负样本 进行对比学习。
我们的工作与 Self-EMD 和 DenseCL 类似,不同之处在于本文采用 Index Contrast 机制来挑选相应的像素,从而减少了 根据特征相似度 匹配像素引起的不匹配。此外,与 DetCon 相比,我们的预训练过程是端到端执行的,使其计算效率更高 ,非常适合 RSI 的语义分割任务。
最近,研究人员 还尝试将 SSL 应用于 RSI 分析。例如,文森齐等人 [41] 提出了一种类似于图像着色的方法来学习有意义的表示。 Stojnic 和 Risojevic [42] 评估了对比学习在 RSI 分类中的适用性,并表明在 RSI 上训练的自监督模型比在 ImageNet 上训练的监督模型给出了更好的结果。陶等人 [43] 分析了自监督信号的选择、源数据集和目标数据集之间的域差异 以及 SSL 中的预训练数据量 对 RSI 场景分类任务的影响。与 MoCo [16] 一样,SauMoCo [44] 也使用具有 对比损失公式 和 基于动量更新的优化 的增强标准 来利用土地覆盖概念中的 语义相似性 和 固有多样性。考虑到 遥感数据可以 随着时间的推移 提供对同一位置的重复观察 ,[45] 随着时间的推移 利用空间对齐的图像 来对比时间正对,并引入了 预测图像来自世界何处的 前置任务。 SeCo [46] 也使用来自不同时间阶段的同一位置的图像作为正对,但不同之处在于 SeCo 使用 多个嵌入子空间的思想 来学习编码 不同方差 和 不变性的通用表示。 MATTER [47] 提出了一种纹理细化网络来放大低级特征,并采用残差聚类学习来学习 RSI 的基于材料和纹理的表示。
开发上述工作是为了学习最适合图像级任务的全局图像表示。本文的工作重点是学习 RSI 语义分割任务的图像级和像素级表示 。
IndexNet 由 Index Contrast 分支和 Instance Contrast 分支组成 ,它们分别通过最小化损失函数 LI 和 LP 来学习像素级和图像级表示,如图 2 所示。在本节中,我们首先简要介绍学习BYOL [18] 的框架,我们研究所基于的 SOTA SSL 方法。然后,我们描述了在将 BYOL 应用于 RSI 的语义分割时所做的创新。


如图 3 所示,对于给定未标记数据集中的每个图像 x,BYOL 首先通过随机数据增强生成 x 的两个视图 x q、x k。两个视图 x q, x k 分别通过 在线编码器 eo 和动量编码器 em ,然后通过全局平均池化 和投影器 go, gm ,用嵌入向量 zq, zk 对每个视图进行编码。

在 BYOL 中,eo 是一个标准的 ResNet50 [48],它去除了最终的线性层 ,而 go 是一个隐藏层的多层感知(MLP)。 em 和 gm 与 eo 和 go 具有相同的架构,只是 em 和 gm 的权重 是在线编码器 eo 和在线投影仪 go 的指数移动平均值。也就是说,给定动量率 m ∈ [0, 1], em, gm 通过以下规则更新:

然后,zq 被馈送到与投影仪 go 具有相同架构的预测器 pθ,输出 pq 。最后,BYOL l2范数 归一化 pq 和 zk 以计算最终均方误差 (mse) 损失。

尽管现有的 SSL 学习范式能够学习强大的图像级表示,但对于 同时需要 图像级 和 像素级 表示的语义分割任务 来说还不够。此外,当前流行的 SSL 方法假设两个不同的增强图像来自同一个目标,但是在对未标记的 RSI 进行训练时,来自多目标的噪声 可能会抑制学习过程,导致分割结果不佳。
为了解决这个问题,很自然地去掉全局池化层,最大化两个视图中对应像素的相似度 。然而,人工增强后像素的空间位置发生了变化 ,使得在两个视图中很难定位到对应的像素 。
受语义分割 真值掩码 的启发,本文建议 对像素位置进行索引 ,为每个视图生成一个索引掩码 。考虑到最终特征图的空间维度为 7 × 7,我们生成大小为 7 × 7 的索引掩码 ,并为每个元素分配 0 到 48 之间的值 。创建索引掩码后,我们使用 最近邻插值方法 将其插值到输入图像大小 (例如,224 × 224),导致每个 32 × 32 图像块对应相同的索引值 [见图 4(a)]。
然后,我们使用 与底层视图相同的空间变换 来变换每个索引掩码 ,从而产生两个索引掩码 M1、M2。最后,我们使用最近邻插值方法 将 M1 和 M2 插值到 与特征图(7×7)相同的大小。

对于特征图 p∗, z∗ ∈ RH ×W×C,其中 H 和 W 表示特征图的空间大小 (7 × 7),C 是通道数,我们首先 在通道维度 将它们 l2范数归一化,并计算 p∗ 和 z∗ 的像素之间的余弦相似度 。然后,我们一一检查M1、M2中像素之间的索引值是否相同,生成二值掩码 。最后,根据这个二值掩码,我们得到 S ∈ RN,它是对应像素的相似度得分,N 是对应像素对的数量[见图 4(b)]。

SimCLR [15] 证明 数据增强 在对比学习中起着重要作用。在这项研究中,我们遵循 GLCNet [49] 的数据增强策略。如表 I 所示,我们使用 空间变换(随机裁剪、翻转和旋转)和 光谱变换(颜色失真、高斯模糊、随机噪声 和 随机灰度)。此外,我们索引每个像素的位置 以构建索引掩码,将图像分割成单独的区域 (参见第 III-B 节)。无论如何,我们对每个索引掩码使用相同的空间变换 ,就像我们对其对应视图 所做的那样,以跟踪不同对象的空间位置 并在最后一步找到相应的像素。这种增强策略鼓励 IndexNet 学习 对空间和光谱变换 都不变的表示。
1)实例对比: 实例对比分支 与标准 BYOL [18] 学习流程相同。具体来说,对于 (1) 和 (2) 中的嵌入向量 zq、zk,我们将它们输入到常规 MLP 预测器中,该预测器输出预测 pq、pk。最后,我们计算 实例对比损失 。

2)索引对比 :对于索引对比分支,我们用逐像素 MLP 替换 投影器 和 预测器架构,这是由 1×1 卷积层 实现的。通过这种方式,我们保持了特征图的空间维度。然后使用第 III-B 节中描述的索引对比步骤 获得 相应像素的相似度分数 S,如图 4 所示。最后,我们计算 索引对比损失 如下:

其中 N 是选择的相似度分数的数量,si ∈ S。最终损失定义如下:

其中 α 和 β 充当平衡两个分支的权重。 α 和 β 默认设置为 1,其有效性通过第 IV-C1 节中的实验验证。
预训练设置:对于256×256的图像大小,我们使用 双三次插值方法 将其调整为224×224 以与索引掩码对齐。如第 III-D 节所述,我们将标准 MLP 中的线性层 替换为像素级 MLP 的 1×1 卷积层 (图 2 中的 ConvMLP)。
为了评估 IndexNet 的性能,我们使用常见的 ImageNet 预训练模型作为基线,并将 IndexNet 与四种 SOTA 实例 SSL 方法进行比较:BYOL [18]、Barlow-Tinws [17]、MoCo-v2 [51]、和 SwAV [19]。为了证明我们提出的方法适用于 RSI 的语义分割,我们还将 IndexNet 与为密集预测任务设计的 SSL 方法进行了比较:DenseCL [20] 和 PixPro [22]。我们使用solo-learn 库[52] 来使这些方法发挥作用。每种方法中的超参数与原始论文中的相同,只是由于 GPU 的限制,我们根据重新实现的批量大小线性调整学习率 。
如表 II 所示,在使用未标记数据进行预训练时,IndexNet 能够学习有用的表示,并且在迁移到具有相同标签大小的语义分割任务时,其性能优于 ImageNet 预训练模型。此外,当仅使用 10% 的标签时,使用 IndexNet 预训练模型进行微调优于使用随机初始化的所有标签进行的训练。
表 III 和 IV 显示我们的方法在下游语义分割任务中优于所有其他方法,无论是使用有限标签还是全标签进行微调。此外,从 IndexNet 预训练方法获得的预训练模型在不同时期优于所有其他 SSL 方法,如图 5 所示,并且在微调开始时达到更高的准确度,这意味着模型在预训练阶段学习了更丰富的表示 我们还计算了单类交叉联合(IoU),看看我们的方法是否在每个类中都有优势,结果如图 6 所示,很明显我们的方法在所有类中都优于其他 SSL 方法。同时,我们在图 7 中展示了一些可视化结果,其中我们的方法相对更好。
可以观察到,无论主干是否冻结,使用 IndexNet 预训练方法获得的分割结果也优于使用 ImageNet 和其他 SSL 方法获得的分割结果。此外,我们观察到 IndexNet 的损失在预训练 100 个 epoch 后继续下降,因此,我们预训练了更长的时间(400 个 epoch),分割结果进一步提高(见表 V)
3)跨域评估:当用于预训练和微调的数据集不同时,我们比较了不同 SSL 方法预训练的模型的性能,以评估域差异对自监督预训练模型性能的影响。结果示于表VI。我们的方法优于所有其他 SSL 方法,这表明 IndexNet 预训练模型对域差异更加稳健。IndexNet 的跨域性能与 ImageNet 上的监督预训练相当。
我们发现,虽然 SeCo-100K 数据集比 LoveDA 数据集大,但在 SeCo-100K 数据集上预训练的模型的跨域迁移性能比在 LoveDA 数据集上预训练的稍差。我们将此归因于 Potsdam 和 SeCo-100K 数据集之间由 大的分辨率差异 引起的 大的域差距 。
消融实验 :
1)两个分支的权重 :检查(8)中不同的权重如何影响结果。首先,为了证明结合 Instance Contrast 和 Index Contrast 分支是有效的 ,选择 BYOL [18] 作为基线,它只包括 Instance Contrast 分支(α = 1,β = 0)。如表 VIII 所示,将 Instance Contrast 替换为 Index Contrast (α = 0, β = 1) 略微提高了分割精度。当我们结合这两个分支时,模型的分割精度显着提高,这进一步表明图像级表示和像素级表示 对于语义分割任务都是必要的 。此外,我们改变了两个分支的权重,看看我们是否可以进一步改进。但是,我们发现这并没有带来太大的改善。因此,我们默认将两个分支的权重固定为 1。
2)损失 :遵循[21]的实现,将具有不同索引的像素 视为负样本 来计算 infoNCE [53]损失。然而,如表 IX 所示,结果远比使用MSEloss 差。基于这个实验,我们可以推断,在IndexNet中,索引只用于寻找相同位置的像素, 不能作为选择负样本的策略。
- 多级 :当前的 SSL 方法侧重于在最后一层学习 判别特征。然而,RSI 的特点是层次结构 ,大多数 基于深度学习的 语义分割方法 都试图 从多级表示中提取特征 [7]-[9]。因此,我们尝试将 SSL 方法应用于 不同的特征层,而不仅仅是金字塔的最后一层,以研究这种方法是否能提高性能。
具体来说,对于 Index Contrast 分支,我们在每个级别 将索引掩码 下采样到与特征图相同的大小 (即 56、28、14 和 7),并执行第 III-B 节中描述的索引对比。对于 Instance Contrast 分支,我们使用平均池化 池化特征,并通过隐藏层 2× 特征维度和输出维度为 256 的 MLP 将其投影。
结果如表 X 所示,无论使用哪个分支进行多级对比,准确度都会下降 。
我们将这种现象解释为:CNN 的 浅层 学习低级特征 [54],这对每个目标都很重要,如果我们对比它们以使其具体化,模型的判别力会降低 ,而 CNN的 更深层 学习更具体的特征[54],对比它们会增加模型的判别力 。表 X 进一步支持了这种解释,这表明更高级别的 SSL 在微调后会产生更好的结果 。
在索引对比 分支中,我们为图像中的每个 32 × 32 块分配一个唯一的索引值,并过滤具有相同局部索引的两个视图之间的相似度分数 (见图 4)。
结果,即使两个视图不重叠[见图1(c)],或者如果具有不同对象的两个视图在光谱变换后高度相似[见图1(d)],像素之间也不会有错误匹配。
此外,我们假设具有相同索引的像素对应于同一个目标,而具有 不同索引的像素 对应于不同的目标。因此,如果两个视图中有重叠区域 [见图 1(b)],我们 最大化 属于同一对象(即相同的索引)的像素之间的相似性。
通过这种方式,我们认为该模型 不仅能够 学习像素级表示 ,而且可以 使学习到的表示 对于不同的目标是不同的 ,从而有效地 解决 RSI 中存在的多目标问题。

图 8 支持了这一点,其中IndexNet 比其他方法 更关注区域级特征 ,每个区域仅包含相似的目标,并且区域边界更准确 。

图 9 中可视化了不同模型在 Potsdam 语义分割任务上的一些结果。我们可以发现 BYOL 更容易误判像素的类别,因为它只关注图像级表示 。例如,在第二行和第四行中,BYOL 错误地对大量建筑物进行了分类。尽管 DenseCL 致力于提取像素级表示,但图 9 显示像素类别分配仍然存在一些错误 ,特别是当图像中的两个不同类别高度相似时(图 9 中的第一行和第二行) )。这与DenseCL依赖于仅根据特征相似性 选择属于同一对象的像素 ,而没有考虑空间位置的事实 有很大关系,这很容易导致不匹配。使用本文的 IndexNet,在分割任务中的性能变得更好,证明了 IndexNet 在处理 RSI 中的多目标问题方面的有效性。
但是,有两种情况可能无法满足 Index Contrast 背后的假设 。
首先是 索引值不同的块可能对应同一个目标(假负错误 )。第二个是 不同的目标可能包含在同一个块中(假正错误 )。
考虑到 假负错误,使用 MSE 作为损失函数 。因此,网络只会拉入具有相同索引的特征(正样本),而不会推离具有不同索引的特征(负样本)。
如表 IX 所示,使用 MSE 预训练的模型 在下游语义分割任务中的性能优于使用 infoNCE 预训练的模型 ,后者不仅会引入正样本,还会推开负样本。

此外,我们发现 SeCo 数据集中 每个场景中的目标变化不大 (见图 10),这意味着 IndexNet 更容易出现 假负错误。然而,即便如此,IndexNet 在下游语义分割任务中的表现优于 SeCo [46](见表 VII),这表明这种设计使得IndexNet 对假负错误不太敏感 ,因此是合理的。
对于 假正错误 ,我们认为使用 真值分割掩码 来指导正样本的选择 是最好的解决方案。然而,这与无监督预训练的意图不一致。虽然可以使用无监督方法生成分割掩码,但它的计算效率不高,并且仍可能导致相同的 假正错误。
因此,我们认为 RSI 中相邻像素之间存在特定的相关性 。因此,我们认为它们对应的特征在特征空间中也应该更接近 (例如,道路和车辆通常更靠近,因此,可以合理地假设如果图像中有道路,则车辆也更有可能存在)。带着这个观点,本文设计了 块级索引掩码 。
当然,我们承认 索引对比仍有进一步改善的潜力 。例如,在我们的工作中,我们使用 固定的块大小 来与ResNet的输出特征图对齐,但是 根据图像的局部属性自适应地确定块大小 可能会得到更好的结果。我们把这个留给以后的工作。
SSL在计算机视觉领域取得了巨大的成功,但在遥感领域还有待完全探索 。由于 SSL能够在没有任何标注的标签的情况下 学习时空不变性特征,因此将其应用于 随时间和位置变化很大的RSIs 是理想的。我们的方法 只是RSIs上SSL的一种可能实现。我们相信,在充分考虑 RSI特性的基础上,进一步改进所提出的索引掩码和算法可以获得更好的性能。
