| ## π οΈ 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://github.com/RuiZhang97/ISNet) | | |
| | LEVIR-CD | [Download](https://github.com/YimianDai/sirst) | | |
| | LEVIR-CD+ | [Download](https://github.com/Tianfang-Zhang/AGPCNet) | | |
| | SYSU-CD | [Download](https://github.com/Tianfang-Zhang/AGPCNet) | | |
| | SVCD | [Download](https://github.com/Tianfang-Zhang/AGPCNet) | | |
| 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/ | |
| βββ dataset/ # Dataset loading and preprocessing | |
| βββ model/ # Network architecture (STNR-Det) | |
| βββ utils/ # Utility functions | |
| βββ weight/ # Pretrained weights | |
| βββ main.py # Main entry point | |
| βββ requirements.txt # Dependencies | |
| βββ README.md | |
| ``` |