ChangeMamba 推理使用指南:3 步用官方权重生成变化检测预测结果

发布时间:2026/11/6 1:41:54
ChangeMamba 推理使用指南:3 步用官方权重生成变化检测预测结果

【免费下载链接】MambaCD

[IEEE TGRS 2024] ChangeMamba: Remote Sensing Change Detection Based on Spatio-Temporal State Space Model

项目地址:https://gitcode.com/gh_mirrors/ma/MambaCD
点击查看免费下载

MambaCD 仓库(ChangeMamba,IEEE TGRS 2024)是遥感变化检测的高性能开源基线,支持二元变化检测(MambaBCD)、语义变化检测(MambaSCD)与建筑物损坏评估(MambaBDA)三类任务。本文带你3 步完成推理:下载官方权重 → 准备数据 → 运行一条命令,即可生成变化检测预测结果(change map),并自动输出 Recall、F1、IoU、Kappa 等评估指标。

第一步:下载官方权重(MambaBCD 预训练权重)

ChangeMamba 的官方模型权重(MambaBCD / MambaSCD / MambaBDA 多种规格)已在项目主页的「结果下载 / Results Taken Away」章节放出,支持 Zenodo、Google Drive、百度网盘三种渠道。

📌重点区分两种权重加载参数(这是新手最容易踩的坑):

参数作用推理时
--model_checkpoint_path加载完整 ChangeMamba 模型权重(encoder + decoder)✅ 必用,加载官方训练好的权重
--encoder_pretrained_path仅加载 VMamba 编码器(backbone)预训练权重❌ 推理时不需要

⚠️ 官方常见问题中明确提醒:如果用错参数(用--encoder_pretrained_path加载训练模型),推理精度会非常低。加载完整模型请始终使用--model_checkpoint_path。

权重加载完成后,控制台会打印一份加载报告(matched / missing / unexpected / mismatched 数量),确认missing 为 0即表示权重匹配成功,详见权重加载逻辑 checkpoints.py。

第二步:准备测试数据

以二元变化检测为例,官方示例使用 LEVIR-CD+ 数据集。将测试集组织为如下目录结构(README.md):

${DATASET_ROOT}/LEVIR-CD+ ├── test │ ├── T1 # 前时相影像 │ ├── T2 # 后时相影像 │ └── GT # 真值变化图(用于计算评估指标) └── test_set.txt # 每行一个样本名,如 00001

💡 仓库已内置三个数据集的名单文件,可直接参考 changedetection/datasets/data_name_list/ 下的train_set.txt、test_set.txt等。

第三步:运行推理命令

先切换到推理代码所在目录(所有网络定义、训练与测试代码都在changedetection下):

cd <project_path>/ChangeMamba/changedetection

然后执行 MambaBCD 官方推理脚本 infer_MambaBCD.py:

python script/infer_MambaBCD.py --dataset 'LEVIR-CD+' \ --model_type 'MambaBCD_Tiny' \ --test_dataset_path '<dataset_path>/LEVIR-CD+/test' \ --test_data_list_path '<dataset_path>/LEVIR-CD+/test_set.txt' \ --cfg '<project_path>/ChangeMamba/changedetection/configs/vssm1/vssm_tiny_224_0229flex.yaml' \ --model_checkpoint_path '<saved_model_path>/MambaBCD_Tiny_LEVIRCD+_F1_0.8803.pth'

核心参数速查

参数说明默认值
--model_checkpoint_path完整模型权重路径(官方权重 .pth 文件)无,必填
--dataset数据集名(SYSU / LEVIR-CD+ / WHU-CD 等)LEVIR-CD+
--model_type模型规模,需与权重文件匹配:MambaBCD_Tiny/MambaBCD_Small/MambaBCD_BaseMambaBCD_Tiny
--test_dataset_path测试集目录(含 T1、T2、GT)无,必填
--test_data_list_path测试集名单 .txt 文件无,必填
--cfgVMamba 骨干配置文件,须与--model_type对应无,必填
--result_saved_path结果保存根目录../results

--cfg应选择与模型规模一致的配置文件,Tiny 规模对应 vssm_tiny_224_0229flex.yaml,Small 规模对应 vssm_small_224.yaml。

🎉 查看预测结果

推理完成后(核心逻辑见 tasks/bcd.py):

  1. 变化图:逐张保存到results/<dataset>/<model_type>/change_map/目录,文件名与输入样本同名,格式为单通道 PNG(0 表示无变化,255 表示变化区域),可直接用于论文或可视化;
  2. 评估指标:控制台打印INFER Summary报告块,包含Recall、Precision、OA、F1、IoU、Kappa六项指标(前提是测试集提供 GT 真值)。

附:MambaSCD 与 MambaBDA 推理命令

语义变化检测(SECOND 数据集)与建筑物损坏评估(xBD 数据集)的命令结构与上面完全一致,只需替换脚本与参数(infer_MambaSCD.py、infer_MambaBDA.py):

# 语义变化检测 python script/infer_MambaSCD.py --dataset 'SECOND' \ --model_type 'MambaSCD_Tiny' \ --test_dataset_path '<dataset_path>/SECOND/test' \ --test_data_list_path '<dataset_path>/SECOND/test_set.txt' \ --cfg '<project_path>/ChangeMamba/changedetection/configs/vssm1/vssm_tiny_224_0229flex.yaml' \ --model_checkpoint_path '<saved_model_path>/[your_trained_model].pth'
# 建筑物损坏评估 python script/infer_MambaBDA.py --dataset 'xBD' \ --model_type 'MambaBDA_Tiny' \ --test_dataset_path '<dataset_path>/xBD/test' \ --test_data_list_path '<dataset_path>/xBD/test_set.txt' \ --cfg '<project_path>/ChangeMamba/changedetection/configs/vssm1/vssm_tiny_224_0229flex.yaml' \ --model_checkpoint_path '<saved_model_path>/[your_trained_model].pth'

📝 注意:SECOND 数据集的地物分类图在原始数据中是 RGB 可视化图,需要转成单通道,且二元变化图GT_CD需自行生成(详见 README_zh-CN.md)。

常见问题(FAQ)

问题解决方法
推理精度异常低确认用的是--model_checkpoint_path而非--encoder_pretrained_path加载训练模型
CUDA out of memory降低 batch size 或 crop 尺寸
加载报告出现大量 missing keys--cfg或--model_type与权重规格不匹配(如用 Tiny 配置加载 Small 权重)
NameError: name 'selective_scan_cuda_oflex' is not defined未正确编译安装 kernels/selective_scan CUDA 算子,请按 README 重新执行cd kernels/selective_scan && pip install .

小结

步骤内容关键命令
1️⃣ 下载官方权重MambaBCD/SCD/BDA 全规格,Zenodo 等渠道—
2️⃣ 准备测试数据T1 / T2 / GT + 名单文件—
3️⃣ 运行推理一条命令生成 change map 与评估指标python script/infer_MambaBCD.py ...

至此,你已经完成了 ChangeMamba 变化检测推理全流程:从官方权重到预测结果只需 3 步。如果后续需要自己训练模型,可参考 train_MambaBCD.py 与 README.md 的「Model Training」章节。

【免费下载链接】MambaCD

[IEEE TGRS 2024] ChangeMamba: Remote Sensing Change Detection Based on Spatio-Temporal State Space Model

项目地址:https://gitcode.com/gh_mirrors/ma/MambaCD
点击查看免费下载
上一篇:mcp-server 流量分析实战:一句话查询代理 HTTP/WebSocket 历史,支持正则过滤
下一篇:Godot 内置类型 StringName 深度解析:字符串驻留、性能优化与完整 API 指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考