Skip to content

Latest commit

 

History

History
206 lines (143 loc) · 4.6 KB

File metadata and controls

206 lines (143 loc) · 4.6 KB

SRDL-Net: Structure-compensated Reliable Discriminability Learning for Foggy Remote Sensing Change Detection

📌 Introduction

This repository provides the implementation of a Structure-compensated Reliable Discriminability Learning Network (SRDL-Net) for foggy remote sensing change detection.

Fog interference usually weakens structural cues of real changed regions and induces pseudo-change responses in unchanged backgrounds. To address this issue, SRDL-Net restores change discriminability by compensating fog-weakened structural cues and disentangling fog-induced pseudo-change responses during progressive change decoding.

SRDL-Net consists of the following components:

  • Structural Cue Compensation Module (SCCM)
    Compensates fog-weakened structural cues through spatial semantic preservation and wavelet-domain structural modeling.

  • Structural Edge Guidance (SEG)
    Aggregates multi-scale structure-enhanced features to generate edge guidance for boundary-aware decoding.

  • Fog-induced Pseudo-change Suppression Module (FPSM)
    Suppresses fog-induced pseudo-change responses and progressively decodes reliable changed regions.


🚀 Installation

SRDL-Net/
├── network/
│   ├── SRDL-Net.py
│   ├── SCC.py
│   ├── FPS.py
│   ├── Edge.py
│   ├── cd_tools.py
│   └── backbones/
│       └── pvtv2.py
├── utils/
│   ├── dataloader.py
│   ├── metrics.py
│   └── tools.py
├── pretrained_model/
│   └── pvt_v2_b2.pth
├── figures/
│   └── framework.jpg
├── train.py
├── requirements.txt
└── README.md
git https://github.com/VisionVerse/SRDL-Net.git
cd SRDL-Net

conda create -n ournet python=3.8
conda activate ournet

pip install -r requirements.txt

Please install a PyTorch version compatible with your CUDA version. A typical environment includes:

python >= 3.10
torch >= 2.10
torchvision
numpy
opencv-python
tqdm
scikit-learn
Pillow

SRDL-Net adopts PVT-v2-B2 as the weight-sharing backbone. Please download the pretrained PVT-v2-B2 model and place it under:

./pretrained_model/pvt_v2_b2.pth

The default path is:

path = './pretrained_model/pvt_v2_b2.pth'

📂 Dataset Preparation

The new foggy RSCD datasets can be obtained from the Cloud Drive [PW: RSCD].

Please organize the dataset as follows:

Foggy RSCD Dataset/
├── train/
│   ├── A/
│   ├── B/
│   └── label/
└── test/
    ├── A/
    ├── B/
    └── label/

Each sample contains:

  • A: image at the first time point
  • B: image at the second time point
  • label: binary change mask

The ground-truth mask should follow:

0: unchanged
1: changed

⏳ Training

Modify the dataset path and training configuration in train_v2.py, then run:

python train.py \
  --data_name foggy-LEVIR-CD \
  --epoch 200 \
  --batchsize 32 \
  --trainsize 256 \
  --lr 1e-4 \
  --edge_weight 0.1 \
  --reg_weight 1e-4

Main options:

--data_name       dataset name
--epoch           number of training epochs
--batchsize       batch size
--trainsize       input image size
--lr              learning rate
--edge_weight     weight of edge supervision
--reg_weight      weight of regularization

The trained model will be saved to:

./train_output/SRDL-Net/{data_name}/

📊 Testing

After training, run:

python test.py \
  --data_name foggy-LEVIR-CD \
  --model_path ./train_output/SRDL-Net/foggy-LEVIR-CD/Seg_epoch_best.pth

The predicted change maps will be saved in the configured output directory.


📑 Citation

If you find this repository useful, please consider citing our paper:

@article{srdl2026zhou,
  title={Structure-Compensated Reliable Discriminability Learning for Foggy Remote Sensing Change Detection},
  author={},
  journal={},
  year={2026}
}

Acknowledgement

👏👏👏 Thanks to the authors of remote sensing change detection for their excellent works!