--- license: other library_name: pytorch pipeline_tag: image-segmentation tags: - remote-sensing - change-detection - binary-change-detection - semantic-segmentation - mamba - mambarefine-cd - mercon metrics: - f1 - iou - precision - recall --- # MambaRefine-CD MambaRefine-CD is a remote sensing binary change detection model. It takes a bi-temporal image pair as input and outputs a binary change mask. The paper has been accepted at MERCon. This Hugging Face repository contains trained weights, configs, and usage instructions. ## Model Details - Model name: MambaRefine-CD - Task: binary remote sensing change detection - Input: pre-change and post-change image pair - Output: binary change mask - Framework: PyTorch - Paper status: Accepted at MERCon - GitHub repository: `https://github.com/Dineth14/MambaRefine-CD` ## Released Checkpoints | Dataset | Checkpoint | Config | Train Split | Validation Split | Test Split | Main Metric | Notes | | ------- | ---------- | ------ | ----------- | ---------------- | ---------- | ----------- | ----- | | WHU-CD | `checkpoints/mambarefine_cd_whu_cd_best.pth` | `configs/whu_cd_run_config.yaml` | 6096 samples | 762 samples | 762 samples | Test F1 95.5324 | Best validation checkpoint, iteration 45000, threshold 0.55, EMA found. | | DSIFN-CD | `checkpoints/mambarefine_cd_dsifn_cd_best.pth` | `configs/dsifn_cd_run_config.yaml` | 3153 samples | 3152 samples | Not specified in selected run manifest | Test F1 96.3963 | Best validation checkpoint, iteration 50000, threshold 0.60, EMA found. | ## Datasets and Splits ### WHU-CD - Official/common dataset name: WHU-CD - Dataset name used in config: `WHU-CD` - Number of image pairs: train 6096, validation 762, test 762 - Image size: 256 - Mask format: binary change mask - Binary threshold: `127` in `configs/active.yaml` - Ignore index: Not specified in selected WHU-CD run config - Normalization: ImageNet mean `[0.485, 0.456, 0.406]` and std `[0.229, 0.224, 0.225]` in `src/datasets/transforms.py` ### DSIFN-CD - Official/common dataset name: DSIFN-CD - Dataset name used in config: `DSIFN-CD` - Number of image pairs: train 3153, validation 3152, test not specified in selected run manifest - Image size: 256 - Mask format: binary change mask - Binary threshold: `127` in `configs/active.yaml` - Ignore index: Not specified in selected DSIFN-CD binary release run config - Normalization: ImageNet mean `[0.485, 0.456, 0.406]` and std `[0.229, 0.224, 0.225]` in `src/datasets/transforms.py` ## Results | Dataset | Precision | Recall | F1 | IoU | OA | Notes | | ------- | --------: | -----: | -: | --: | -: | ----- | | WHU-CD | 96.0072 | 95.0623 | 95.5324 | 91.4469 | 99.5715 | From selected WHU-CD test metrics. | | DSIFN-CD | 96.2591 | 96.5340 | 96.3963 | 93.0434 | 97.4721 | From selected DSIFN-CD test metrics. | ## Installation ```bash git clone https://github.com/Dineth14/MambaRefine-CD cd MambaRefine-CD pip install -r requirements.txt pip install huggingface_hub ``` ## Download Weights ```python from huggingface_hub import hf_hub_download ckpt_path = hf_hub_download( repo_id="/MambaRefine0cd", filename="checkpoints/mambarefine_cd_whu_cd_best.pth", ) print(ckpt_path) ``` ## Loading the Model ```python from src.engine.checkpoint import load_checkpoint from src.models.build import build_model from src.utils.config import load_config from src.utils.device import get_device cfg = load_config("configs/active.yaml") device = get_device(cfg) model = build_model(cfg).to(device) checkpoint = load_checkpoint("checkpoints/mambarefine_cd_whu_cd_best.pth", model) model.eval() ``` ## Evaluation The repository scripts read `configs/active.yaml`. ```bash python val.py python test.py python infer.py ``` Before running evaluation with downloaded weights, set `checkpoint.path` in `configs/active.yaml` to the downloaded checkpoint path and set the dataset root to your local dataset. ## Limitations - The weights are intended for remote sensing binary change detection. - Results depend on dataset domain, resolution, preprocessing, and split consistency. - Users should evaluate with the same preprocessing and splits used during training. - DSIFN-CD test split count for the selected release run was not specified in the selected run manifest. ## Citation Official citation will be added after the MERCon proceedings information is available.