Open-CD: A Comprehensive Toolbox for Change Detection——一个全面的变化检测工具箱

📅 发布时间:2026/10/20 17:54:19
Open-CD: A Comprehensive Toolbox for Change Detection——一个全面的变化检测工具箱
论文介绍了一个名为Open-CD的变化检测工具箱并围绕其设计、功能、支持方法、基准测试和应用场景进行了系统阐述。以下是对该文章主要研究内容的全面总结概括一、研究背景与目标变化检测是遥感图像解译中的基础任务旨在从双时相图像中检测像素级差异。由于实现设置不同会导致结果差异巨大研究社区亟需一个高质量、统一基准的开源代码库。为此作者构建了Open-CD一个基于 OpenMMLab 工具包的开源变化检测工具箱目标是提供最完整的变化检测方法集合、统一基准和灵活的开发平台。二、Open-CD 的主要特点可靠的依赖关系基于 MMCV、MMEngine、MMPretrain、MMSegmentation、MMDetection 等 OpenMMLab 工具包构建可任意调用其组件。模块化设计将变化检测框架分解为不同组件用户可自由组合构建自定义方法。开箱即用的多方法支持支持大量典型和流行的变化检测方法。最先进性能多数情况下实现性能优于官方代码并帮助用户赢得竞赛。高效率依托 MMEngine 和 MMCV训练速度快于或媲美其他代码库。三、支持的方法3.1 变化检测方法Open-CD 支持多种二值和语义变化检测方法包括早期经典方法FC-EF、FC-Siam-Conc、FC-Siam-Diff注意力/度量学习方法STANet、DSIFN、SNUNet、BIT统一检测器ChangeStar、ChangeStar2Transformer 方法ChangeFormer特征交互方法Changer 系列轻量级方法TinyCD、LightCDNet分层注意力方法HANet变化引导方法CGNet基础模型适配方法BAN、TTP知识蒸馏方法MTKD3.2 自定义变化检测模型Open-CD 允许用户任意调用其他视觉模型的组件如分类骨干网络、分割头并直接受益于 OpenMMLab 的持续更新支持“自由架构游戏”。四、系统架构Open-CD 由五部分组成配置文件指定模型、优化器、数据集、数据流水线等。模型库支持 OpenMMLab 中几乎所有模型及预训练权重。内部模块训练过程在 MMEngine Runner 中进行。数据文件支持主流二值和语义变化检测数据集并提供可扩展基类。工具训练、推理、数据分析、结果分析等脚本。训练流水线遵循 MMEngine 统一接口包含 Dataloader、模型、优化器、评估器等并插入钩子点以支持自定义需求。五、基准测试5.1 实验设置数据集LEVIR-CD训练设置256×256 随机裁剪单块 RTX 3090批次大小 840k 迭代数据增强RandomRotate、RandomFlip、PhotoMetricDistortion评估指标F₁ᶜ、IoUᶜ、精确率、召回率均基于“变化”类别5.2 主要结果在 LEVIR-CD 测试集上对多种方法进行了基准测试报告了参数量、GFLOPs、推理速度、精确率、召回率、F₁ᶜ 和 IoUᶜ。与官方代码相比Open-CD 中大多数实现性能更优尤其是 BIT、ChangeStar 和 ChangeFormer 提升显著。六、应用场景生成模型的下游验证用于验证扩散模型等生成的模拟变化检测数据质量如 ChangeAnywhere。竞赛和挑战赛用户只需自定义数据集类即可使用 Open-CD 的先进算法和工具已在多个竞赛中获奖。作者感谢 OpenMMLab 和 MMDetection 团队的贡献并提供了详细的参考文献列表。Open-CD 是一个功能全面、模块化、高性能的开源变化检测工具箱集成了大量先进方法、统一基准和实用工具。它不仅支持现有方法的复现和比较还鼓励社区参与推动变化检测领域的开放协作和持续发展。该工具箱和报告将持续更新旨在成为变化检测领域最完整的开源平台。这里是自己的论文阅读记录感兴趣的话可以参考一下如果需要阅读原文的话可以看这里如下所示项目地址在这里如下所示摘要我们提出了Open-CD一个变化检测工具箱其中包含丰富的变化检测方法以及相关组件和模块。该工具箱起源于一系列开源通用视觉任务工具包括OpenMMLab工具包、PyTorch Image Models等。它逐渐演变成一个统一的平台涵盖了许多流行的变化检测方法和当代模块。它不仅包括训练和推理代码还提供了一些用于数据分析的实用脚本。我们相信这是迄今为止最完整的变化检测工具箱。在本报告中我们介绍了Open-CD的各种特性、支持的方法和应用。此外我们还对不同方法和组件进行了基准测试研究。我们希望该工具箱和基准测试能够为不断增长的研究社区提供服务提供一个灵活的工具包来复现现有方法并开发自己的新变化检测器。代码和模型可在 https://github.com/likyo0/open-cd 获取。开创性地本报告还包括了Open-CD中所支持算法的简要描述主要由其作者贡献。我们真诚地鼓励该领域的研究人员参与这个项目共同创建一个更加开放的社区。该工具箱和报告将持续更新。1. 引言变化检测是一项基础性的遥感图像解译任务。变化检测框架的流程通常与图像分割任务类似。但特别之处在于它以一对图像作为输入任务侧重于检测双时相图像中的像素级差异。因此变化检测比单时相分割更为复杂。并且与其他高层视觉任务一样不同的实现设置可能导致截然不同的结果。为了提供高质量的代码库和统一的基准测试我们构建了Open-CD一个开源的变化检测代码库。Open-CD的主要特点包括1可靠的依赖关系。Open-CD构建于OpenMMLab工具包之上特别是MMCV⁴、MMEngine⁵、MMPretrain⁶、MMSegmentation⁷和MMDetection⁸ [6]可以在配置文件中任意调用它们的组件包括流水线、模型、模块、损失函数、数据增强等。2模块化设计。我们将变化检测框架分解为不同的组件用户可以轻松地通过组合不同模块来构建自定义的变化检测方法。3开箱即用的多方法支持。Open-CD支持典型和流行的变化检测方法完整列表见第2节。4最先进性能。在大多数情况下Open-CD的实现性能优于官方实现。它还帮助一些用户赢得了变化检测挑战赛。5高效率。依托高效的MMEngine和MMCVOpen-CD的训练速度快于或媲美其他代码库。在本报告中我们介绍了Open-CD工具箱的组成和工作流程并对典型或最先进的变化检测算法进行了基准测试研究包括参数量、推理速度等。除此之外本报告还为Open-CD中支持的每种算法提供了简要描述。具体而言我们启动了Open-CD技术报告计划简称Open-CD TRP。我们邀请一些作者介绍他们的算法并参与Open-CD代码库的建设。该计划正在积极开发中我们将持续更新本报告。本报告的其余部分组织如下。我们首先介绍各种支持的方法然后重点介绍Open-CD的特性。接着我们展示基准测试结果。最后我们给出Open-CD的应用场景示例特别是在基础模型时代。2. 支持的方法Open-CD包含流行变化检测方法的高质量实现。与其他代码库相比支持的框架和特性总结见表1。具体列表如下。2.1 变化检测方法FC-EF [9] 遵循U-Net架构。它将双时相图像在通过网络之前进行拼接将其视为不同的颜色通道。FC-Siam-Conc [9] 是一个孪生网络。与FC-EF相比它将编码器层分离为两个具有相同结构和共享权重的流即孪生网络分别处理双时相图像。在跳跃连接中它将双时相特征拼接后馈送到解码器。FC-Siam-Diff [9] 是FC-Siam-Conc的变体。它不是拼接来自编码流的两个特征而是计算它们差值的绝对值。STANet [4] 是一个基于度量学习的变化检测模型。它由特征提取器、时空注意力模块和度量模块组成。时空注意力模块是自注意力在变化检测任务中的变体它捕获整个时空中的全局时空关系以获得更具判别性的特征。该注意力模块有两种形式基本时空注意力模块BAM和金字塔时空注意力模块PAM。此外为了减少类别不平衡的影响STANet设计了一种类别敏感的损失函数——批次平衡对比损失BCL它使用批次内每个类别的样本数量来确定损失函数中的权重因子。DSIFN [36] 建立在FC-Siam-conc模型之上。它使用通道和空间注意力来构建更强的基本模块如CBAM并引入深度监督以加快收敛和提高模型性能。SNUNet [11] 是一个标准的编码器-解码器架构使用孪生网络作为编码器。为了保持高分辨率特征和细粒度定位信息SNUNet在编码器和解码器之间使用密集跳跃连接机制类似UNet。为了融合多粒度特征设计了集成通道注意力模块ECAM自动选择和关注不同解码器组之间更有效的信息。在结构上ECAM是普通通道注意力模块CAM在深度监督和集成学习中的自然扩展。BIT [5] 是一个基于CNN-Transformer的变化检测模型。它将像素级特征抽象为若干视觉令牌并在紧凑的令牌空间中建模时空上下文信息。与直接在像素级空间中提取密集的时空语义相关性相比一方面它通过像素级特征聚合减少了图像空间中冗余信息的干扰并使用Transformer编码器构建时空相关性显著降低了计算复杂度提高了计算效率。另一方面使用Transformer解码器用学习到的上下文信息增强原始像素级特征利用全局时空信息增强像素级表示提高了模型识别感兴趣对象和排除无关变化的能力。ChangeStar [38] 和ChangeStar2 [41] 是简单而统一的变化检测器能够处理二值变化检测、目标变化检测和语义变化检测由孪生密集特征提取器和ChangeMixin或ChangeMixin2组成。这一设计灵感来自于复用现代语义分割架构因为语义分割和变化检测都是密集预测任务。ChangeMixin和ChangeMixin2使任何现成的深度语义分割网络都能检测变化。ChangeFormer [2] 是SegFormer [32]在变化检测任务中的变体。与SegFormer不同它使用孪生自定义混合TransformerMiT作为编码器。孪生网络中的双时相特征被拼接后馈送到由多层感知机MLP层组成的解码器。Changer [12] 系列模型强调双时相分支之间的交互。有两种简单的交互策略聚合-分发AD和特征“交换”。具体而言AD交互是从一些共同/交叉注意力机制中抽象出来的。“交换”交互是一种完全无参数和无计算的操作通过交换空间或通道维度上的双时相特征图来实现交换后的特征在通过后续卷积或令牌混合器时被混合。此外提出了基于流的双对齐融合FDAF模块来克服多时相图像中的侧视和错位问题。TinyCD [8] 旨在开发一种显著降低内存消耗和计算复杂度的深度学习模型。为实现这一目标TinyCD使用所选孪生骨干网络的早期层从两幅图像中提取低级特征。这种方法最小化了模型大小并利用了全卷积骨干网络初始阶段固有的归纳偏置所诱导的特征局部性结构。随后TinyCD引入了一个名为MAMB的注意力模块。该模块包含一个初始混合阶段使用分组卷积来整合两幅图像中语义相似的特征。之后MLP将混合特征融合为单个热力图。该热力图作为跳跃连接在孪生U-Net的上采样阶段重新加权上采样特征。这个过程起到了时空注意力机制的作用。在最后阶段TinyCD利用多层感知机作为像素级分类器为每个像素产生表示变化的概率分数。这些架构选择使得模型在参数数量和计算复杂度显著降低的同时仍能达到最先进的性能。因此TinyCD是其他领先模型的宝贵替代方案特别是在需要快速训练和在低端设备上部署的场景中。HANet [13] 是一个判别性孪生网络——分层注意力网络能够整合多尺度特征并细化细节特征。HANet有四种渐进式前景平衡采样策略基于不添加变化信息来帮助模型在早期训练过程中准确学习变化像素的特征从而提高检测性能。HANet的主要部分是HAN模块这是一个轻量且有效的自注意力机制。LightCDNet [33] 是一个为实际应用部署设计的轻量级且准确的变化检测模型。LightCDNet遵循标准的“编码器-解码器”结构但与大多数基于孪生网络的模型不同该模型设计了一种新颖的早期融合模块来促进跨时相信息融合称为深度监督融合模块DSFM即使在少量参数下也能有效增强变化检测模型的信息保持能力。另一方面LightCDNet使用改进的ShuffleNetV2作为编码器配合特征金字塔解码器实现高精度变化检测性能。LightCDNet提供不同参数量的版本以供灵活部署。CGNet [14] 是变化引导网络用于解决先前方法中采用的常规U-Net结构变化特征表达不足的问题。它包含一个名为变化引导模块的自注意力模块能够有效捕获像素间的长距离依赖关系有效克服传统卷积神经网络感受野不足的问题。BAN [17] 是一个通用的基于基础模型的变化检测自适应框架旨在提取基础模型的知识用于变化检测。它包含三个部分冻结的基础模型如CLIP、双时相适配器分支Bi-TAB以及它们之间的桥接模块。具体而言BAN通过冻结的基础模型提取通用特征然后通过桥接模块选择、对齐并注入到Bi-TAB中。Bi-TAB被设计为模型无关的概念用于提取任务/领域特定特征可以是现有的任意变化检测模型或一些手工设计的堆叠模块。TTP [7] 通过将基础视觉模型的通用知识整合到变化检测任务中增强了复杂时空遥感场景中的高精度变化检测。它即使在标注变化检测数据有限的情况下也能利用基础模型的潜力。TTP克服了知识迁移过程中的域偏移问题并解决了多时相图像中同质和异质特征表达的挑战。具体而言TTP通过向SAM骨干网络引入低秩微调参数利用基于分割一切模型SAM的通用分割知识缓解了空间语义域偏移。此外TTP提出了时间旅行激活门使时间特征渗透到像素语义空间从而增强基础模型理解双时相图像同质和异质特征的能力。最后设计了一个高效的多级变化预测头来解码基础模型内密集的高级语义变化特征。该方法为遥感图像中更准确和高效的变化检测铺平了道路。MTKD [20] 是一种增强遥感图像变化检测的创新方法。现有算法往往难以在自然和人为变化的多样场景中持续提供令人满意的结果。MTKD旨在全面解决这一问题。MTKD框架的训练过程包括三个阶段。首先在完整训练集上训练原始模型。随后根据变化面积比CAR划分训练数据为每个特定变化范围优化不同的教师模型。最后以原始模型参数初始化的学生模型在这些专业教师模型的监督下训练整合每位教师所传授的多样优势。这种方法显著增强了学生模型管理广泛变化场景的能力。MTKD框架使学生模型在推理时无需额外计算或时间成本即可实现更优的检测精度标志着变化检测的重大进步确保在各种网络架构上具有鲁棒的性能。2.2 自定义变化检测模型毫无疑问变化检测模型的构建受益于通用视觉中的其他基础任务特别是分类和分割。前者提供强大的特征提取器骨干网络后者提供广泛的变化掩码生成方案。因此Open-CD设计的核心方面是允许用户任意调用其他视觉模型的组件并使变化检测更容易受益于先进的通用模块。这是我们基于OpenMMLab工具包构建Open-CD的重要原因。另一个允许自定义模块组合的变化检测代码库是change_detection.pytorchCDP它建立在“孪生编码器特征融合解码器”模式上支持一些常见的骨干网络和分割头。然而由于CDP依赖开发者频繁编写代码来支持最新模型难以维护和更新。相比之下Open-CD能够直接受益于不断更新的OpenMMLab工具包并修改和组合数百个模型和模块。简而言之Open-CD允许用户自由地进行架构游戏。3. 架构3.1 总体架构如图1所示Open-CD由五个部分组成。配置文件。在Open-CD中模型、优化器、数据集、数据流水线等在配置文件中指定。通常如果用户不需要在内部重新设计模型仅修改配置文件就足够了。模型库。除了表1中列出的变化检测模型外Open-CD支持OpenMMLab相关算法代码库中几乎所有的模型只需将它们作为依赖项安装即可在配置文件中直接调用。此外还有数千个可用的预训练权重包括普通ImageNet、基础模型等。内部模块。遵循OpenMMLab工具包的设计理念Open-CD的训练过程在MMEngine Runner中进行。我们将在3.2节中描述。数据文件。Open-CD支持当前主流的二值和语义变化检测数据集如表2所列。由于我们定义了两个可扩展的基类BaseCDDataset和BaseSCDDataset用户可以轻松地将自定义数据集集成到Open-CD中。工具。Open-CD还包含若干功能脚本例如训练工具、推理工具、数据分析工具、结果分析工具等。3.2 训练流水线与OpenMMLab工具包中的其他算法代码库类似Open-CD遵循MMEngine中定义的抽象组件的统一接口。Open-CD的训练流水线如图2所示。首先Dataloader从数据集获取数据并将其传输到模型。在模型外部有一个用于分布式训练等的Wrapper。然后参数调度器用于在训练期间调整优化器相关参数如学习率优化器用于更新模型。优化器包装器能够进行梯度累积、梯度裁剪、混合精度训练等。最后在评估阶段数据和模型输出被馈送到评估器并根据评估指标返回相应的值。为了使训练流水线可扩展在流水线中插入了一些钩子点。通过这些钩子可以操作和观察Runner中的数据流以实现用户自定义的需求。在整个训练流水线中日志组件持续工作将所需信息传输到可视化器。4. 基准测试4.1 实验设置数据集。我们采用LEVIR-CD作为所有实验的主要基准因为它具有高质量且使用更广泛。我们使用训练集进行训练并报告测试集上的性能。实现细节。如无特别说明我们采用以下设置1图像随机裁剪为256×2562我们使用单块RTX 3090 GPU进行训练和推理训练批次大小为8。3训练计划为“40k”即40k次迭代。4数据增强包括RandomRotate、RandomFlip和PhotoMetricDistortion。评估指标。我们采用F₁ᶜ、IoUᶜ、精确率和召回率作为评估指标。注意所有指标均基于“变化”类别以避免类别不平衡问题。1图像随机裁剪为256×2562我们使用单块RTX 3090 GPU进行训练和推理训练批次大小为8。3训练计划为“40k”即40k次迭代。4数据增强包括RandomRotate、RandomFlip和PhotoMetricDistortion。评估指标。我们采用F₁ᶜ、IoUᶜ、精确率和召回率作为评估指标。注意所有指标均基于“变化”类别以避免类别不平衡问题。4.2 基准测试结果主要结果。我们在LEVIR-CD测试集上对不同的方法进行了基准测试包括FC-EF [9]、FC-SiamDiff [9]、FC-Siam-Conc [9]、STANet-BAM/PAM [4]、DSIFN [36]、SNUNet-c16 [11]、BIT [5]、ChangeStar [38]、ChangeFormer-b0/b1 [2]、Changer [12]、TinyCD [8]、HANet [13]、LightCDNet-base/large [33]、CGNet [14]、BANViT-L[17]和TTP [7]。我们在表3中报告了这些方法的参数量、GFLOPs、推理速度、精确率、召回率、F₁ᶜ和IoUᶜ。推理时间在单块RTX 3090 GPU上测试。GFLOPs在256×256尺寸下计算。为了后续研究的复现和比较我们还将发布所有权重和可视化结果。与官方代码的比较。我们将一些方法的官方实现与Open-CD中的实现进行了比较如图3所示。除STANet和TinyCD外Open-CD中所有其他实现相比原始实现都获得了一定程度的性能提升。特别是对于BIT、ChangeStar和ChangeFormer提升非常显著。值得注意的是原始ChangeFormer自定义了MiT的配置例如网络的深度、宽度等。在Open-CD中5. 应用5.3 生成模型的下游验证尽管通过Google Earth等可以获取大量遥感图像但数据标注仍然是一个挑战既耗时又昂贵。一个趋势是通过条件GAN、扩散模型等[30, 39, 40]合成模拟的图像-标签对并使用这些数据来预训练下游感知模型。在这种情况下Open-CD可以应用于验证模拟变化检测数据的质量。一个典型研究是ChangeAnywhere [30]它提出了一种扩散模型来生成模拟变化检测数据集ChangeAnywhere-100K并使用Open-CD进行后续验证。5.4 竞赛和挑战赛作为一个先进的算法代码库Open-CD可以轻松用于变化检测竞赛和挑战赛。通常用户只需自定义其数据集类即可享受Open-CD中所有先进的算法、数据分析工具、推理工具等。以下列出了一些使用Open-CD赢得竞赛的解决方案2024年“吉林一号”杯。¹⁵ 第二名。¹⁶2024年ISPRS TC 1竞赛。¹⁷ 冠军。¹⁸2023年“吉林一号”杯。第五名。¹⁹6. 致谢作者们对OpenMMLab团队对视觉社区做出的宝贵贡献表示深切感谢。作者们还要感谢MMDetection团队出色的技术报告为本报告的撰写提供了有价值的参考。