/SAR_DDPM

Primary LanguagePythonMIT LicenseMIT

SAR-DDPM

Code for the paper SAR despeckling using a Denoising Diffusion Probabilistic Model, acepted at IEEE Geoscience and Remote Sensing Letters

To train the SAR-DDPM model:

  • Download the weights 64x64 -> 256x256 upsampler from here.

  • Create a folder ./weights and place the dowloaded weights in the folder.

  • Specify the paths to your training data and validation data in ./scripts/sarddpm_train.py (line 23 and line 25)

  • Use the following command to run the code (change the GPU number according to GPU availability):

MODEL_FLAGS="--attention_resolutions 32,16,8 --class_cond True --diffusion_steps 1000 --large_size 256  --small_size 64 --learn_sigma True --noise_schedule linear --num_channels 192 --num_heads 4 --num_res_blocks 2 --resblock_updown True --use_fp16 True --use_scale_shift_norm True" 
export PYTHONPATH=$PYTHONPATH:$(pwd)
CUDA_VISIBLE_DEVICES=0 python scripts/sarddpm_train.py $MODEL_FLAGS

Acknowledgement:

This code is based on DDPM implementation in guided-diffusion

Citation:

@ARTICLE{perera2022sar,
  author={Perera, Malsha V. and Nair, Nithin Gopalakrishnan and Bandara, Wele Gedara Chaminda and Patel, Vishal M.},
  journal={IEEE Geoscience and Remote Sensing Letters}, 
  title={SAR Despeckling using a Denoising Diffusion Probabilistic Model}, 
  year={2023}}