HANet-Change-Detection :https://chengxihan.github.io/
The Pytorch implementation for::gift::gift::gift: “HANet: A hierarchical attention network for change detection with bi-temporal very-high-resolution remote sensing images,” IEEE J. SEL. TOP. APPL. EARTH OBS. REMOTE SENS., PP. 1–17, 2023, DOI: 10.1109/JSTARS.2023.3264802. C. HAN, C. WU, H. GUO, M. HU, AND H. CHEN, yum::yum::yum:
[14 Aril. 2023] Release the first version of the HANet
-Pytorch 1.8.0
-torchvision 0.9.0
-python 3.8
-opencv-python 4.5.3.56
-tensorboardx 2.4
-Cuda 11.3.1
-Cudnn 11.3
You can revise related parameters in the metadata.json
file.
python trainHCX.py
python test.py
python Output_Results.py
You can directly test our model by our provided training weights in tmp/WHU, LEVIR, SYSU, and S2Looking
. And make sure the weight name is right. Of course, for different datasets, the Dataset mean and std setting
is different.
path = opt.weight_dir+'final_epoch99.pt'
LEVIR-CD:https://justchenhao.github.io/LEVIR/
WHU-CD:http://gpcv.whu.edu.cn/data/building_dataset.html ,our paper split in Baidu Disk,pwd:6969
SYSU-CD: Our paper split in Baidu Disk,pwd:2023
S2Looking-CD: Our paper split in Baidu Disk,pwd:2023
CDD-CD: Our split in Baidu Disk,pwd:2023
DSIFN-CD: Our split in Baidu Disk,pwd:2023
Note: Please crop the LEVIR dataset to a slice of 256×256 before training with it.
And also we provide all test results of our HANet in the HANetTestResult!!!! Download in HANetTestResult or Baidu Disk,pwd:2023 😋😋😋
LEVIR-CD or WHU-CD
|—train
| |—A
| |—B
| |—label
|—val
| |—A
| |—B
| |—label
|—test
| |—A
| |—B
| |—label
Where A contains images of the first temporal image, B contains images of the second temporal images, and the label contains ground truth maps.
We calculated mean and std for seven data sets in line 27-38 of utils/datasetHCX
, you can use one directly and then annotate the others.
# It is for LEVIR!
# self.mean1, self.std1, self.mean2, self.std2 =[0.45025915, 0.44666713, 0.38134697],[0.21711577, 0.20401315, 0.18665968],[0.3455239, 0.33819652, 0.2888149],[0.157594, 0.15198614, 0.14440961]
# It is for WHU!
self.mean1, self.std1, self.mean2, self.std2 = [0.49069053, 0.44911194, 0.39301977], [0.17230505, 0.16819492,0.17020544],[0.49139765,0.49035382,0.46980983], [0.2150498, 0.20449342, 0.21956162]
you can set Normal Train
,Fixed-X
,Linear-Y
,Fixed-X Linear-Y
method in line 113-135 of trainHCX.py
.You just need to choose one sampling method, and annotate the others, About 'X' and 'Y', you can set epochs_threshold
number in metadata.json
.
#Normal Train:正常训练,确保dataloader的方式一样
# train_loader.dataset.curr_num = len(train_loader.dataset)
#Fixed-X:如固定的15个
if epoch < opt.epochs_threshold:
pass
else: # 15
train_loader.dataset.curr_num=len(train_loader.dataset)
#Fixed-X Linear-Y:先固定,后增加,前10个是前景影像,然后线性增加10个,后是正常训练
# if epoch < opt.epochs_threshold:
# pass
# elif epoch<opt.epochs_threshold+5:
# train_loader.dataset.curr_num += add_per_epoch
# else: # 20
# train_loader.dataset.curr_num=len(train_loader.dataset)
# # Linear-Y:前20个线性增加
# if epoch == 0:
# pass
# elif epoch < opt.epochs_threshold: # 20
# train_loader.dataset.curr_num += add_per_epoch
# else:
# train_loader.dataset.curr_num = len(train_loader.dataset)
If you use this code for your research, please cite our papers.
@ARTICLE{10093022,
author={Han, Chengxi and Wu, Chen and Guo, Haonan and Hu, Meiqi and Chen, Hongruixuan},
journal={IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing},
title={HANet: A hierarchical attention network for change detection with bi-temporal very-high-resolution remote sensing images},
year={2023},
volume={},
number={},
pages={1-17},
doi={10.1109/JSTARS.2023.3264802}}
Our code is inspired and revised by pytorch-MSPSNet,pytorch-SNUNet, Thanks for their great work!!
[1] C. HAN, C. WU, H. GUO, M. HU, AND H. CHEN, “HANet: A hierarchical attention network for change detection with bi-temporal very-high-resolution remote sensing images,” IEEE J. SEL. TOP. APPL.EARTH OBS. REMOTE SENS., PP. 1–17, 2023, DOI: 10.1109/JSTARS.2023.3264802.
[2] HCGMNET: A Hierarchical Change Guiding Map Network For Change Detection.
[3]C. Wu et al., "Traffic Density Reduction Caused by City Lockdowns Across the World During the COVID-19 Epidemic: From the View of High-Resolution Remote Sensing Imagery," in IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, vol. 14, pp. 5180-5193, 2021, doi: 10.1109/JSTARS.2021.3078611.