Giter Site home page Giter Site logo

wgcban / changeformer Goto Github PK

View Code? Open in Web Editor NEW
414.0 3.0 56.0 14.08 MB

[IGARSS'22]: A Transformer-Based Siamese Network for Change Detection

Home Page: https://www.wgcban.com/research#h.e51z61ujhqim

License: MIT License

Python 90.79% Shell 5.36% MATLAB 3.86%
change-detection remote-sensing siamese-network transformer-encoder transformer-architecture attention-mechanism pytorch deep-learning satellite-imagery multi-temporal

changeformer's Introduction

ChangeFormer: A Transformer-Based Siamese Network for Change Detection

A Transformer-Based Siamese Network for Change Detection

Wele Gedara Chaminda Bandara, and Vishal M. Patel

Presented at IGARSS-22, Kuala Lumpur, Malaysia.

Useful links:

My other Change Detection repos:

  • Change Detection with Denoising Diffusion Probabilistic Models: DDPM-CD
  • Semi-supervised Change Detection: SemiCD
  • Unsupervised Change Detection: Metric-CD

Network Architecture

image-20210228153142126

Quantitative & Qualitative Results on LEVIR-CD and DSIFN-CD

image-20210228153142126

Usage

Requirements

Python 3.8.0
pytorch 1.10.1
torchvision 0.11.2
einops  0.3.2
  • Please see requirements.txt for all the other requirements.

Setting up conda environment:

Create a virtual conda environment named ChangeFormer with the following command:

conda create --name ChangeFormer --file requirements.txt
conda activate ChangeFormer

Installation

Clone this repo:

git clone https://github.com/wgcban/ChangeFormer.git
cd ChangeFormer

Quick Start on LEVIR dataset

We have some samples from the LEVIR-CD dataset in the folder samples_LEVIR for a quick start.

Firstly, you can download our ChangeFormerV6 pretrained model——by Github-LEVIR-Pretrained.

Place it in checkpoints/ChangeFormer_LEVIR/.

Run a demo to get started as follows:

python demo_LEVIR.py

You can find the prediction results in samples/predict_LEVIR.

Quick Start on DSIFN dataset

We have some samples from the DSIFN-CD dataset in the folder samples_DSIFN for a quick start.

Download our ChangeFormerV6 pretrained model——by Github. After downloaded the pretrained model, you can put it in checkpoints/ChangeFormer_DSIFN/.

Run the demo to get started as follows:

python demo_DSIFN.py

You can find the prediction results in samples/predict_DSIFN.

Training on LEVIR-CD

When we initialy train our ChangeFormer, we initialized some parameters of the network with a model pre-trained on the RGB segmentation (ADE 160k dataset) to get faster convergence.

You can download the pre-trained model Github-LEVIR-Pretrained.

wget https://www.dropbox.com/s/undtrlxiz7bkag5/pretrained_changeformer.pt

Then, update the path to the pre-trained model by updating the path argument in the run_ChangeFormer_LEVIR.sh. Here:

pretrain=pretrained_changeformer/pretrained_changeformer.pt

You can find the training script run_ChangeFormer_LEVIR.sh in the folder scripts. You can run the script file by sh scripts/run_ChangeFormer_LEVIR.sh in the command environment.

The detailed script file run_ChangeFormer_LEVIR.sh is as follows:

#!/usr/bin/env bash

#GPUs
gpus=0

#Set paths
checkpoint_root=/media/lidan/ssd2/ChangeFormer/checkpoints
vis_root=/media/lidan/ssd2/ChangeFormer/vis
data_name=LEVIR


img_size=256    
batch_size=16   
lr=0.0001         
max_epochs=200
embed_dim=256

net_G=ChangeFormerV6        #ChangeFormerV6 is the finalized verion

lr_policy=linear
optimizer=adamw                 #Choices: sgd (set lr to 0.01), adam, adamw
loss=ce                         #Choices: ce, fl (Focal Loss), miou
multi_scale_train=True
multi_scale_infer=False
shuffle_AB=False

#Initializing from pretrained weights
pretrain=/media/lidan/ssd2/ChangeFormer/pretrained_segformer/segformer.b2.512x512.ade.160k.pth

#Train and Validation splits
split=train         #train
split_val=test      #test, val
project_name=CD_${net_G}_${data_name}_b${batch_size}_lr${lr}_${optimizer}_${split}_${split_val}_${max_epochs}_${lr_policy}_${loss}_multi_train_${multi_scale_train}_multi_infer_${multi_scale_infer}_shuffle_AB_${shuffle_AB}_embed_dim_${embed_dim}

CUDA_VISIBLE_DEVICES=1 python main_cd.py --img_size ${img_size} --loss ${loss} --checkpoint_root ${checkpoint_root} --vis_root ${vis_root} --lr_policy ${lr_policy} --optimizer ${optimizer} --pretrain ${pretrain} --split ${split} --split_val ${split_val} --net_G ${net_G} --multi_scale_train ${multi_scale_train} --multi_scale_infer ${multi_scale_infer} --gpu_ids ${gpus} --max_epochs ${max_epochs} --project_name ${project_name} --batch_size ${batch_size} --shuffle_AB ${shuffle_AB} --data_name ${data_name}  --lr ${lr} --embed_dim ${embed_dim}

Training on DSIFN-CD

Follow the similar procedure mentioned for LEVIR-CD. Use run_ChangeFormer_DSIFN.sh in scripts folder to train on DSIFN-CD.

Evaluate on LEVIR

You can find the evaluation script eval_ChangeFormer_LEVIR.sh in the folder scripts. You can run the script file by sh scripts/eval_ChangeFormer_LEVIR.sh in the command environment.

The detailed script file eval_ChangeFormer_LEVIR.sh is as follows:

#!/usr/bin/env bash

gpus=0

data_name=LEVIR
net_G=ChangeFormerV6 #This is the best version
split=test
vis_root=/media/lidan/ssd2/ChangeFormer/vis
project_name=CD_ChangeFormerV6_LEVIR_b16_lr0.0001_adamw_train_test_200_linear_ce_multi_train_True_multi_infer_False_shuffle_AB_False_embed_dim_256
checkpoints_root=/media/lidan/ssd2/ChangeFormer/checkpoints
checkpoint_name=best_ckpt.pt
img_size=256
embed_dim=256 #Make sure to change the embedding dim (best and default = 256)

CUDA_VISIBLE_DEVICES=0 python eval_cd.py --split ${split} --net_G ${net_G} --embed_dim ${embed_dim} --img_size ${img_size} --vis_root ${vis_root} --checkpoints_root ${checkpoints_root} --checkpoint_name ${checkpoint_name} --gpu_ids ${gpus} --project_name ${project_name} --data_name ${data_name}

Evaluate on DSIFN

Follow the same evaluation procedure mentioned for LEVIR-CD. You can find the evaluation script eval_ChangeFormer_DSFIN.sh in the folder scripts. You can run the script file by sh scripts/eval_ChangeFormer_DSIFN.sh in the command environment.

Dataset Preparation

Data structure

Change detection data set with pixel-level binary labels;
├─A
├─B
├─label
└─list

A: images of t1 phase;

B:images of t2 phase;

label: label maps;

list: contains train.txt, val.txt and test.txt, each file records the image names (XXX.png) in the change detection dataset.

Links to processed datsets used for train/val/test

You can download the processed LEVIR-CD and DSIFN-CD datasets by the DropBox through the following here:

Since the file sizes are large, I recommed to use command line and cosider downloading the zip file as follows (in linux):

To download LEVIR-CD dataset run following command in linux-terminal:

wget https://www.dropbox.com/s/18fb5jo0npu5evm/LEVIR-CD256.zip

To download DSIFN-CD dataset run following command in linux-terminal:

wget https://www.dropbox.com/s/18fb5jo0npu5evm/LEVIR-CD256.zip

For your reference, I have also attached the inks to original LEVIR-CD and DSIFN-CD here: LEVIR-CD and DSIFN-CD.

Other useful notes

ChangeFormer for multi-class change detection

If you wish to use ChangeFormer for multi-class change detection, you will need to make a few modifications to the existing codebase, which is designed for binary change detection. There are many discussions in the issues section. The required modifications are (#93 (comment)):

  1. run_ChangeFormer_cd.sh: n_class=8 and make it a hyperparameter to python main.py
  2. models/networks.py: net = ChangeFormerV6(embed_dim=args.embed_dim, output_nc=args.n_class)
  3. models/basic_model.py: Comment out: pred_vis = pred * 255, i.e., modifications to visualisation processing
  4. models/trainer.py: Modify: ConfuseMatrixMeter(n_class=self.n_class)

License

Code is released for non-commercial and research purposes only. For commercial purposes, please contact the authors.

Citation

If you use this code for your research, please cite our paper:

@INPROCEEDINGS{9883686,
  author={Bandara, Wele Gedara Chaminda and Patel, Vishal M.},
  booktitle={IGARSS 2022 - 2022 IEEE International Geoscience and Remote Sensing Symposium}, 
  title={A Transformer-Based Siamese Network for Change Detection}, 
  year={2022},
  volume={},
  number={},
  pages={207-210},
  doi={10.1109/IGARSS46834.2022.9883686}}

Disclaimer

Appreciate the work from the following repositories:

changeformer's People

Contributors

wgcban avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

changeformer's Issues

The difference between base_transformer_pos_s4_dd8 and ChangeFormer

Sorry to bother you again, I noticed that your model has base_transformer_pos_s4_dd8 in addition to the ChangeFormer schema, I look at the structure of that model. As per your comment, base_transformer_pos_s4_dd8 seems to be a combination of Resnet+BIT+feature diffence+a small CNN. I wonder if it differs from BIT only in these components?

DSIFN datasets

Hello,Mr:
The train and val 512x512 mask is all black. Could you tell me how deal with these labels.
Thank you very much.

dataset

can't download dataset by using the given command (wget https://www.dropbox.com/s/h9jl2ygznsaeg5d/LEVIR-CD-256.zip)

--2022-10-30 22:21:34-- (try: 5) https://www.dropbox.com/s/h9jl2ygznsaeg5d/LEVIR-CD-256.zip
Connecting to www.dropbox.com (www.dropbox.com)|31.13.106.4|:443... failed: Connection timed out.
Connecting to www.dropbox.com (www.dropbox.com)|2001::80f2:f07d|:443... failed: Cannot assign requested address.
Retrying.

--2022-10-30 22:21:17-- (try: 4) https://www.dropbox.com/sh/i54h8kkpgar1s07/AAA0rBAFl9UZ3U3Z1_o46UT0a/DSIFN-CD-256.zip
Connecting to www.dropbox.com (www.dropbox.com)|108.160.165.48|:443... failed: Connection timed out.
Connecting to www.dropbox.com (www.dropbox.com)|2001::80f2:f07d|:443... failed: Cannot assign requested address.
Retrying.

The code runs too long

Hello, it's a nice code.
It takes me a lot of time to run the program using the LEVIR-CD-256 dataset you have processed. Is this normal?
How long will it take you to train the model?
Looking forward to your early reply!

How to test on new images?

Hello! I was reviewing the demo but could not find where are you loading new data to test? can you please mention with code?

DSIFN dataset splits

          @wgcban I had another question regarding the DSIFN dataset that I downloaded from the link in your Readme:
  1. Did you use the same train/val/test split for ChangeFormer when you compare its performance with other CD models like BIT?
  2. I notice that majority of images used in test.txt are also present in train.txt (164/192) ~85%. Is this something that is an error or it was the same in previous CD works such as BIT? Is this the reason for huge difference in metrics from previous works on DSIFN?

Originally posted by @zaidbhat1234 in #51 (comment)

Question about training on LEVIR-CD

Hi , I found when i load the pretrained model(trained on ade160k dataset), the keys of checkpoint are not matched.
The pretrained model:
BFA7F864-1D89-4f31-9F0F-5C87B1584CF8
The self.net_G:
image

So the keys of pretrained model are all missing keys.

Pretrained_model issue

Hi,I'm interested in your project but I met an issue. I can't get the full pretrained model parameters through the link you given in Readme. I have tried many times with IDM connecting failed. Moreover, could you provide them in Google.drive or Baidu netdisk?

Some Questions about Code and Paper Details

Hi~ Thx for your great work, 👏 it's really inspired a lot in siamese Transformer network realizing.

However, I still have some questions about the code implementation and the details of the paper.

  1. In the code, the implementation of Sequence Reduction was completed through the Conv2d non-overlapping cutting feature map before MHSA.

    self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
    The effect of the implementation is similar to that of the first shape and then linear projection in the paper, but this code implementation will result in a reduction of the sequence length R^2 times (similar to the idea of cutting the image into 16 * 16 patches at the beginning of the ViT). However, the formula 2 in the paper shows that the reduction is times. Is there an error here?

  2. In this code:

    x = x + self.drop_path(self.attn(self.norm1(x), H, W))
    the actual code implements two skips connected. In the pink block diagram of Transformer Block explained in the upper right corner of Fig1 in the paper, do you need to draw two skips connected?(Add skip bypass connecting Sequence Reduction input an MHSA output)

  3. About Depth-wise Conv in Transformer Block as PE.Why you do this? How to realize position coding(Can you explain it)? Why is this effective?

  4. patch_block1 is not used in the code. What is this module used for? Why is it inconsistent with the previous block1 dimension? (dim=embed_dims[1] and dim=embed_dims[0] respectively)

    self.patch_block1 = nn.ModuleList([Block(

Looking forward to your early reply!:smiley:

About other models

Hi,wgcban!Your project is nice,and I want to use your project in my paper.
But there is some troubles in my process,Can you share the pretrained models about "CD_SiamUnet_diff" 、"SiamUnet_conc" and so on.
Thank you!

Non-overlapping crop

Hi wgcban,
I'm really interested in your project.I want to reproduce ChangeFormer in LEVIR-CD.There are two Simple questions
1)you want to put LEVIR img (1024x1024)into non- overlapping 256. Do you means divide one image(1024x1024) into 16 images(256x256)?In other issues,you say There has image perparation code in /data_preparation,but I dont find,(of course if there is no code provided I can write by myself)
2)In paper,you have 6096/762/762 train/val/test-------but my LEVIR have 445--train(1024x1024),if you divide one into 16 there are 445x16=7120 train dataset

How to

Hi
I really appreciate your work. I have a few questions about the model. First of all is it possible to modify the size of the input images?
Then how can we retrain the model with our data?
I noticed that the model detects the changes appeared in the image B. How can we generate a map for the disappearance of elements in A?
Thanks. I remain open to your answers and suggestions.

DSIFN dataset

Hello, how did you convert TIF images in the original DSIFN dataset to PNG images? Is it a direct change of suffix?

A question about visualization.

Hello again!
I'm training the net on the former dataset,a problem happened when the trainer saves visualization, the vis_pred, vis_gt of saved images do not look normal.
Though I found your visualization method right here

if np.mod(self.batch_id, 500) == 1:
vis_input = utils.make_numpy_grid(de_norm(self.batch['A']))
vis_input2 = utils.make_numpy_grid(de_norm(self.batch['B']))
vis_pred = utils.make_numpy_grid(self._visualize_pred())
vis_gt = utils.make_numpy_grid(self.batch['L'])
vis = np.concatenate([vis_input, vis_input2, vis_pred, vis_gt], axis=0)
vis = np.clip(vis, a_min=0.0, a_max=1.0)
file_name = os.path.join(
self.vis_dir, 'istrain_'+str(self.is_training)+'_'+
str(self.epoch_id)+'_'+str(self.batch_id)+'.jpg')
plt.imsave(file_name, vis)

still don't know how to make it fit to save multiple classes gt and pred images.

How to download pretrained weights (segformer.b2.512x512.ade.160k.pth)?

Hello, thank you for your idea. I have a trouble. In the file (run_ChangeFormer_LEVIR.sh), I find that you use pretrained weights of Segformer.b2.512×512.ade.160k.pth, but I only found the weight of version b1 on github of segformer. So can you share the Segformer.b2.512×512.ade.160k.pth for me? Thank you.

DSIFN accuracy

Hi wgcban,
I notice that DSIFN-CD dataset has much higher accuracy than BIT[4] (IoU from BIT 52.97% to ChangeFormer 76.48%). On another dataset, LEVIR-CD, the difference is not as large as DSIFN-CD. Could you please explain the main source of the large improvement on DSIFN-CD? e.g. training strategy, data augmentation, model structure...
Thanks
Wesley

How to train more classes label instead of two?

Hi
I really appreciate your work.Now I want to train on changesim,a dataset with 4 classes label ,such as "missing","new","ratation","replaced object". I tried change n_class , but it didnt work. what should I do to train on a dataset which is more than 2 classes? thx~

F1 values of WHU-CD and DSIFN-CD

Hello, I am trying to reproduce the BIT-CD model code, and it looks incorrect when using WHU-CD dataset as well as DSIFN-CD dataset, and the result appears too high than your result. But it looks normal when using LEVID-CD dataset. Do I need to change the pre-training?

Use pretrained best_ckpt.pt, but the result were terrible.

Download the ChangeFormerV6 pretrained model, and run the demo_LEVIR.py.

Only change the directory ( Use the CPU for testing), then I got some terrible results. Do you know what the reason is?

The results I got were here:
image

But what I expect is such an outcome:
image

Looking forward to hearing from you.

A question about the difference module

HI~,after reading your paper, I still can't understand your design of Difference Module which consists of Conv2D, ReLU and BatchNorm2d,What is the reason for this design?
in the eqn:
Fidiff = BN(ReLU(Conv2D3×3(Cat(Fipre, Fipost))))
in the code:
nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1), nn.ReLU(), nn.BatchNorm2d(out_channels), nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1), nn.ReLU()
Looking forward to your early reply!

Network does not converge without prei-training

Hi, Chaminda, Thanks for your code! Nice work! I trained the ChangeFormer_v6 without loading the pre-trained files and the network did not converge on any dataset. It seems that the only choice is to load the pre-trained file, otherwise, it would not converge with very large losses. I notice that once using the pre-trained file, the network can perform well as expected. So, have you ever tried training ChangeFormer_v6 without pre-training? And what's the result? Did it converge very slowly or not converge? Thanks!

Different number of parameters than reported for ChangeFormer

@wgcban When I try to get the number of parameters, I get this: 67,308,786(~67M). I am using torchsummary to get the number of parameters. What could be the reason? I did not change anything in the code and am using the same LEVIR shell script to launch training. It seems to be different than what you reported (~41M)
Thanks!

multi class

You want to perform multiclass classification.
Even if I change the code to args.n_class = 9, the class is predicted to be 2.
What should I do?
sry im korean
캡처
It shouldn't be possible to modify only n_class, but should there be multiple classes of labels?

Segmentation method and threshold size

Hi, sorry to bother you here. Regarding the model getting the difference map or change probability map of A and B, which method did you use to get their change map? Is it K-means or OSTU? What is the threshold size you set? Where is this part of the code located?

about multi classes

hi, I tried to train my personal data with 4 classes = {0,1,2,3}

pixels are like

0000000002220000
0000000002200000
0000000002000000
0010000000000000
0111110000000000
1111000000000000

grayscale.

when I train this data, the accuracy converges to 0.5 and never changes.
Is there any problem that I miss?

what I changed is only n_classes = 4

thanks.

pretrain

Hello, I'm a beginner and I didn't find a pretrained model, can you help me?
pretrain=/media/lidan/ssd2/ChangeFormer/pretrained_segformer/segformer.b2.512x512.ade.160k.pth
You write this in your code, I don't have it。

about pre_training

Hello author, I noticed in your question with other people that the existing ADE160K pre-training model(pretrained_changeformer.pt) is not the final ChangeFormer_v6 pre-training model, so when I want to use pre-training to train the dataset, do I need to use (
CD_ChangeFormerV6_LEVIR_b16_lr0.0001_adamw_train_test_200_linear_ce_multi_train_True_multi_infer_False_shuffle_AB_False_embed_dim_256.zip) model under this file? If so, can I use this model to train other datasets such as DSIFN?
Looking forward to your answer, thank you

how to detect my dataset?

i finish LEVIR-CD training and get the new best_ckpt.pt.
So how do i use this new weight(best_ckpt.pt) to predict my picture?

my picture are aerial image (before and after scene, only two images).
before image input A folder
after image input B folder

but i did not label image, so i would not put anything in label folder.
how do i predict my picture?

What's the data structure of the LEVIR-CD?

Hello! My LEVIR-CD structure is {train,test,val,list},then {A,B,label,list} under {train,test,val}.When i train,it often has a error like"FileNotFoundError: [Errno 2] No such file or directory: 'CDData/LEVIR-CD256-2/A/train_422_8.png'"

value dataset

hello,could you please tell me why do the evaluation dataset in training and the dataset during testing use "test?"

How could use?

Hi, I'm very interested in using your code in my project. I was able to run demo scripts. Now I want to use your code for my own data, but unfortunately I do not know how I can do this on my data. I put them in files A, B But I think I need guidance to test
Please tell me how I can find a difference for my images
(I am a newcomer, thank you)

not able to install requirements

Hey can you please update the requirements.txt

When i tried to install it with conda environment it says
PackagesNotFoundError: The following packages are not available from current channels:

When i tried to install packages singularaly it says

ERROR: Could not find a version that satisfies the requirement blas==1.0=mkl (from versions: none) ERROR: No matching distribution found for blas==1.0=mkl

SYSU dataset accuracy

hi my friend, i try to use SYSU dataset to train, but I got error results as follow:

acc: 1.00000 miou: 0.50000 mf1: 0.50000 iou_0: 1.00000 iou_1: 0.00000 F1_0: 1.00000 F1_1: 0.00000 precision_0: 1.00000 precision_1: 0.00000 recall_0: 1.00000 rec all_1: 0.00000

could you help me tell me the reasons? many thanks

About the order of Difference Modules and Decoder

According to the network architecture picture, the difference module precedes the decoder, whereas in the corresponding ChangeFormerV6 (the finalized verion), it goes through the decoder before the difference. Is it special handling or a minor error?

FileNotFoundError: no such checkpoint best_ckpt.pt

Hi

I'm trying to implement the Change Former Repo for a Remote Sensing Application involving change detection.

I have downloaded the required ChangeFormerV6 pretrained model from - GitHub as specified.

The README.d of the repository states that only a folder checkpoints/ChangeFormer_LEVIR is to be added as per user in order to run demo_LEVIR.py.

Here are the best_ckpt.pt file paths as per my system -

checkpoint_root = r'checkpoints\ChangeFormer_LEVIR\CD_ChangeFormerV6_LEVIR_b16_lr0.0001_adamw_train_test_200_linear_ce_multi_train_True_multi_infer_False_shuffle_AB_False_embed_dim_256\best_ckpt.pt'

The Folder Structure used -

.
├── ChangeFormer
│   ├── checkpoints
       ├── ChangeFormer_LEVIR       
          ├── CD_ChangeFormerV6_LEVIR_b16_lr0.0001_adamw_train_test_200_linear_ce_multi_train_True_multi_infer_False_shuffle_AB_False_embed_dim_256   
             ├── best_ckpt.pt
│   ├── **demo_LEVIR.py**
│   ├── data_preparation
│   ├── utils.py  
│   ├── datasets
│   ├── images   
│   ├── misc
│   ├── models
│   ├── samples
            ├── predict_LEVIR        
│   ├── requirements.txt
│   ├── samples_LEVIR
│   ├── scripts        
│   └── README.md 

On executing as specified I encountered the following error-

 FileNotFoundError: no such checkpoint best_ckpt.pt

Does one need to modify the Dataset structure to run the demo_LEVIR.py code? Please provide adequate insight on this issue

dataset

where can we download DSIFN-CD dataset

DSIFN-CD - Not able to reproduce results

Hi @wgcban,
I am unable to reproduce your results on DSIFN dataset. I was able to reproduce them on the LEVIR-CD dataset. The results I get are closer to BIT on DSIFN but nowhere close to the ones you reported. I use the default script provided to run DSIFN training and also downloaded the processed dataset given by you. I read in other issues that you might have an issue with same images in train/test in some cases which led to higher accuracy for you. Could you please verify if you are still able to reproduce your results?
I see that you have used a different learning rate for DSIFN. Is that correct or do I need to use the same training config for both as reported in the paper?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.