Code for TGRS article 'ISNet: Towards Improving Separability for Remote Sensing Image Change Detection'.
Here I provide PyTorch implementations for ISNet and ISNet-lw.
TITAN X
python 3.6.5
PyTorch 1.7.0
Clone this repo:
git clone https://github.com/xingronaldo/ISNet.git
cd ISNet/ISNet
- Install DCNv2
cd DCNv2
python setup.py build develop
cd ..
Attention: GTX/RTX series GPUs may fail to compile DCNv2. TITAN/Tesla series GPUs are recommended.
- Install other dependencies
All other dependencies can be installed via 'pip'.
Download data and add them to ./datasets
.
Note that
-
The data structure for the Season-Varying dataset has been already given in that folder. The LEVIR-CD dataset and the SYSU-CD dataset share the same data structure.
-
The instances in original LEVIR-CD dataset are cropped from 1024×1024 to 256×256.
You can download our pretrained models for LEVIR-CD, SYSU-CD, and Season-Varying from Baidu Netdisk, code: tgrs, Baidu Netdisk, code: tgrs, and Baidu Netdisk, code: tgrs, respectively.
Then put them in ./checkpoints/LEVIR-CD/trained_models
, ./checkpoints/SYSU-CD/trained_models
, and ./checkpoints/SV/trained_models
, separately.
- Test on the LEVIR-CD dataset
python test.py --dataset LEVIR-CD --name LEVIR-CD --load_pretrain True --which_epoch 255
- Test on the SYSU-CD dataset
python test.py --dataset SYSU-CD --name SYSU-CD --load_pretrain True --which_epoch 57
- Test on the Season-Varying dataset
python test.py --dataset SV --name SV --load_pretrain True --which_epoch 194
python trainval.py --dataset SV --name SV
All the hyperparameters can be adjusted in ./option
.
logs:
-
During training, the occupied GPU memory is around 3357MB when batch size is 8, and around 4101MB when batch size is 16, on single TITAN X.
-
Time comparison for ISNet and ISNet-lw is given below.
Time Comparison |
You can download all predictions (in the form of the middle, below) of our ISNet for LEVIR-CD, SYSU-CD, and Season-Varying test sets from Baidu Netdisk, code: tgrs, Baidu Netdisk, code: tgrs, and Baidu Netdisk, code: tgrs, respectively.
To obtain marked predictions (in the form of the right, below) , use the code in ./ISNet/util/mark_prediction.py
.
Label |
Prediction |
Marked Prediction |
@article{Cheng2022ISNet,
title={ISNet: Towards Improving Separability for Remote Sensing Image Change Detection},
author={Cheng, Gong and Wang, Guangxing and Han, Junwei},
journal={IEEE Transactions on Geoscience and Remote Sensing},
volume={60},
number={},
pages={},
doi={10.1109/TGRS.2022.3174276},
year={2022}
}
Don't hesitate to contact me if you have any question.