Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Perfect-You/SDACD
https://github.com/Perfect-You/SDACD
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/Perfect-You/SDACD
- Owner: Perfect-You
- Created: 2022-03-01T11:22:10.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-21T02:04:26.000Z (about 2 years ago)
- Last Synced: 2024-08-03T19:09:12.500Z (5 months ago)
- Language: Python
- Size: 13.2 MB
- Stars: 57
- Watchers: 3
- Forks: 14
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-remote-sensing-change-detection - Liu J, Xuan W, Gan Y, et al. An End-to-end Supervised Domain Adaptation Framework for Cross-Domain Change Detection
README
# SDACD: An End-to-end Supervised Domain Adaptation Framework for Cross-domain Change Detection
This software implements SDACD: An End-to-end Supervised Domain Adaptation Framework for Cross-domain Change Detection in PyTorch. For more details, please refer to our paper https://arxiv.org/abs/2204.00154
## Abstract
Change Detection is a crucial but extremely challenging task of remote sensing image analysis, and much progress has been made with the rapid development of deep learning. However, most existing deep learning-based change detection methods try to elaborately design complicated neural networks with powerful feature representations, but ignore the universal domain shift induced by time-varying land cover changes, including luminance fluctuations and season changes between pre-event and post-event images, thereby producing sub-optimal results. In this paper, we propose an end-to-end Supervised Domain Adaptation framework for cross-domain Change Detection, namely SDACD, to effectively alleviate the domain shift between bi-temporal images for better change predictions. Specifically, our SDACD presents collaborative adaptations from both image and feature perspectives with supervised learning. Image adaptation exploits generative adversarial learning with cycle-consistency constraints to perform cross-domain style transformation, effectively narrowing the domain gap in a two-side generation fashion. As to feature adaptation, we extract domain-invariant features to align different feature distributions in the feature space, which could further reduce the domain gap of cross-domain images. To further improve the performance, we combine three types of bi-temporal images for the final change prediction, including the initial input bi-temporal images and two generated bi-temporal images from the pre-event and post-event domains. Extensive experiments and analyses on two benchmarks demonstrate the effectiveness and universality of our proposed framework. Notably, our framework pushes several representative baseline models up to new State-Of-The-Art records, achieving 97.34% and 92.36% on the CDD and WHU building datasets, respectively.
![CD_v1.9](./examples/CD_v1.9.png)
## Installation
Install [PyTorch](http://pytorch.org/) 1.7.1+ and other dependencies:
```
pip/conda install pytorch>=1.7.1, tqdm, tensorboardX, opencv-python, pillow, numpy, sklearn
```## Run demo
Download the datasets from [Baidu Netdisk](https://pan.baidu.com/s/1vhF0r93TxPsOgxxJwcmUDA)(Extraction code:rvbv).
Generate the train.txt, val.txt and test.txt
```
python write_path.py
```A demo program can be found in demo. Before running the demo, download our pretrained models from [Baidu Netdisk](https://pan.baidu.com/s/1y4GRIUWXh8eNvsy93Z2Smg) (Extraction code: eu68) or [Google drive](https://drive.google.com/drive/folders/13bp7FbOBUtQi_zkhE6GpetRgjms9TuF9?usp=sharing). Set the path of files in tmp/***.pt. Then launch demo by:
```
python eval.py
```## Evaluatioin
```
python eval.py
``````
python visualization.py
```## Train a new model
Generate the train.txt, val.txt and test.txt:
```
python write_path.py
```Submit the train.sh:
```
sbatch train.sh
```## Results
> Here gives some examples of change detection results, comparing with existing methods on CDD Dataset in Figure (a), and Figure(b) is the results on WHU Dataset.
| (a) | (b) |
| :------------------------: | :------------------------: |
| ![CDD](./examples/CDD.png) | ![WHU](./examples/WHU.png) |Evaluation of SDACD on different datasets with SNUNet, STANet, and DASNet as baseline:
| **Methods** | | CDD | | | WHU building | |
| :----------: | :----------------------: | :----------------------: | :----------------------: | :-----------------------: | :----------------------: | :----------------------: |
| | **P(%)** | **R(%)** | **F(%)** | **P(%)** | **R(%)** | **F(%)** |
| FC-EF | 84.68 | 65.13 | 73.63 | 80.75 | 67.29 | 73.40 |
| FC-Siam-diff | 87.57 | 66.69 | 75.07 | 48.84 | 88.96 | 63.06 |
| FC-Siam-conc | 88.81 | 62.20 | 73.16 | 54.20 | 81.34 | 65.05 |
| STANet | 83.17 | 92.76 | 87.70 | 82.12 | 89.19 | 83.40 |
| SDACD-STANet | 87.40 **↑****4.23** | 89.50 **↓****3.26** | 88.40 **↑****0.70** | 90.90 **↑****8.78** | **93.50** **↑****4.31** | 92.21 **↑****8.81** |
| DASNet | 93.28 | 89.91 | 91.57 | 83.77 | 91.02 | 87.24 |
| SDACD-DASNet | 92.85 **↓****0.43** | 91.87 **↑****1.96** | 92.35 **↑****0.78** | 89.21 **↑****5.44** | 90.46 **↓****0.56** | 89.83 **↑****2.59** |
| SNUNet | 96.60 | 94.77 | 95.68 | 82.12 | 89.19 | 85.51 |
| SDACD-SNUNet | **97.13** **↑****0.53** | **97.56** **↑****2.79** | **97.34** **↑****1.66** | **93.85** **↑****11.73** | 90.91 **↑****1.72** | **92.36** **↑****6.85** |The grid search results of λf and λCD. Here we fixed λcyc=10 and λi=1.
| Baseline | λf | λCD | P(%) | R(%) | F(%) |
| :------: | :--: | :--: | :---: | :---: | :-------: |
| | 1 | 0.05 | 93.38 | 90.85 | 92.10 |
| | 1 | 0.1 | 93.85 | 90.91 | **92.36** |
| SNUNet | 1 | 0.2 | 93.92 | 90.94 | 92.09 |
| | 0.5 | 0.1 | 93.31 | 91.28 | 92.28 |
| | 1 | 0.1 | 93.85 | 90.91 | **92.36** |
| | 2 | 0.1 | 94.56 | 89.99 | 92.22 |## Acknowledgements
The authors would like to thank the developers of PyTorch, SNUNet, STANet, and DASNet.
Please let me know if you encounter any issues.