ChangeMamba 推理使用指南:3 步用官方权重生成变化检测预测结果
【免费下载链接】MambaCD
[IEEE TGRS 2024] ChangeMamba: Remote Sensing Change Detection Based on Spatio-Temporal State Space Model
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_Base | MambaBCD_Tiny |
--test_dataset_path | 测试集目录(含 T1、T2、GT) | 无,必填 |
--test_data_list_path | 测试集名单 .txt 文件 | 无,必填 |
--cfg | VMamba 骨干配置文件,须与--model_type对应 | 无,必填 |
--result_saved_path | 结果保存根目录 | ../results |
--cfg应选择与模型规模一致的配置文件,Tiny 规模对应 vssm_tiny_224_0229flex.yaml,Small 规模对应 vssm_small_224.yaml。
🎉 查看预测结果
推理完成后(核心逻辑见 tasks/bcd.py):
- 变化图:逐张保存到
results/<dataset>/<model_type>/change_map/目录,文件名与输入样本同名,格式为单通道 PNG(0 表示无变化,255 表示变化区域),可直接用于论文或可视化; - 评估指标:控制台打印
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
相关推荐
cool-admin(midway版)数据字典缓存淘汰:LRU策略与缓存上限终极指南
cool admin midway版 数据字典缓存淘汰:LRU策略与缓存上限终极指南 🔥 cool admin midway版 作为一款基于Midway.js
DiffusionOPSD官方LoRA检查点使用指南:3步生成高质量图像并复现DrawBench评测
DiffusionOPSD官方LoRA检查点使用指南:3步生成高质量图像并复现DrawBench评测 DiffusionOPSD 是面向扩散模型(Diffusi
AlphaFold 3 结构预测完整使用指南
AlphaFold 3 结构预测完整使用指南 AlphaFold 3是由Google DeepMind开发的开源项目,提供生物分子相互作用结构的推理管道实现。这
人工智能深度学习生物信息学科研
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考