## 🛠️ Requirements ### Environment - **Linux system**, Windows is not tested, depending on whether and can be installed `causal-conv1d` and `mamba-ssm` - **Python** 3.8+, recommended 3.10 - **PyTorch** 2.0 or higher, recommended 2.1.0 - **CUDA** 11.7 or higher, recommended 12.1 ### Environment Installation It is recommended to use Miniconda for installation. The following commands will create a virtual environment named `stnr` and install PyTorch. In the following installation steps, the default installed CUDA version is 12.1. If your CUDA version is not 12.1, please modify it according to the actual situation. ```bash # Create conda environment conda create -n stnr python=3.8 -y conda activate stnr # Install PyTorch pip install torch==2.1.0 torchvision==0.14.0 torchaudio==0.13.0 # Install dependencies pip install causal_conv1d mamba_ssm packaging pip install timm==0.4.12 pip install pytest chardet yacs termcolor pip install submitit tensorboardX pip install triton==2.0.0 # Or simply run pip install -r requirements.txt ``` ## 📁 Dataset Preparation We evaluate our method on five remote sensing change detection datasets: **WHU-CD**, **LEVIR-CD**, **LEVIR-CD+**, **SYSU-CD**, and **SVCD**. | Dataset | Link | |---------|------| | WHU-CD | [Download](https://aistudio.baidu.com/datasetdetail/251669) | | LEVIR-CD | [Download](https://opendatalab.org.cn/OpenDataLab/LEVIR-CD) | | LEVIR-CD+ | [Download](https://www.cvmart.net/dataSets/detail/1385) | | SYSU-CD | [Download](https://mail2sysueducn-my.sharepoint.com/personal/liumx23_mail2_sysu_edu_cn/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fliumx23%5Fmail2%5Fsysu%5Fedu%5Fcn%2FDocuments%2FSYSU%2DCD&ga=1) | | SVCD | [Download](https://aistudio.baidu.com/datasetdetail/78676) | Please organize the datasets as follows: ``` ${DATASET_ROOT} # Dataset root directory, for example: /home/username/data/LEVIR-CD ├── A │ ├── train_1_1.png │ ├── train_1_2.png │ ├──... │ ├── val_1_1.png │ ├── val_1_2.png │ ├──... │ ├── test_1_1.png │ ├── test_1_2.png │ └── ... ├── B │ ├── train_1_1.png │ ├── train_1_2.png │ ├──... │ ├── val_1_1.png │ ├── val_1_2.png │ ├──... │ ├── test_1_1.png │ ├── test_1_2.png │ └── ... ├── label │ ├── train_1_1.png │ ├── train_1_2.png │ ├──... │ ├── val_1_1.png │ ├── val_1_2.png │ ├──... │ ├── test_1_1.png │ ├── test_1_2.png │ └── ... ├── list │ ├── train.txt │ ├── val.txt │ └── test.txt ``` ## 🔧 Model Training and Testing All configuration for model training and testing is stored in the local folder `config`. Below are the example commands to train and test the model on the **LEVIR-CD** dataset. ### Example of Training on LEVIR-CD Dataset ```bash python train_cd.py --config/levir/levir.json ``` ### Example of Training on LEVIR-CD Dataset ```bash python test_cd.py --config/levir/levir_test.json ``` ## 📂 Project Structure ``` STNR-Det/ ├── config/ # Configuration files for training/testing │ ├── levir_cd_mamba.json │ ├── levir_test_cd_mamba.json │ └── ... ├── core/ # Core functionality (e.g., models, loss functions) │ └── ... ├── data/ # Data loading and preprocessing scripts │ └── ... ├── misc/ # Miscellaneous utility scripts │ └── ... ├── models/ # Model architectures and components │ └── ... ├── .gitattributes # Git attributes for version control ├── README.md # Project README (this file) ├── requirement.txt # Python package dependencies ├── test_cd.py # Testing script for the model └── train_cd.py # Training script for the model ``` ## 🙏 Acknowledgement We sincerely thank the following works for their contributions: - [CDMamba](https://github.com/zmoka-zht/CDMamba) – A state-of-the-art method for remote sensing change detection that inspired and influenced parts of this work. - [MambaDFuse](https://github.com/Lizhe1228/MambaDFuse) – A valuable method for feature fusion that informed our approach.