Official implement of Paper:A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sening images

Overview

A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images

深度监督影像融合网络DSIFN用于高分辨率双时相遥感影像变化检测

Official implement of the Paper:A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images. If you find this work helps in your research, please consider citing:

论文《A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sening images》的官方模型代码。如果该代码对你的研究有所帮助,烦请引用:

Zhang, C., Yue, P., Tapete, D., Jiang, L., Shangguan, B., Huang, L., & Liu, G. (2020). A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images. ISPRS Journal of Photogrammetry and Remote Sensing, 166, 183-200.

Introduction

This repository includes DSIFN implementations in PyTorch and Keras version and datasets in the paper

该库包含了DSIFN网络的pytorch和keras版本的代码实现以及论文中使用的数据

Model Structure

The overview of Deeply supervised image fusion network (DSIFN). The network has two sub-networks: DFEN with pre-trained VGG16 as the backbone for deep feature extraction and DDN with deep feature fusion modules and deep supervision branches for change map reconstruction.

深度监督影像融合网络框架。该网络包含两个子网络:DFEN(深度特征提取网络)以VGG16为网络基底实现深度特征提取;DDN(差异判别网络)由深度特征融合模块和深度监督分支搭建实现影像变化图重建。

1

Pytorch version requirements

  • Python3.7
  • PyTorch 1.6.0
  • torchversion 0.7.0

Keras version requirements

  • Python 3.6
  • Tensorflow-gpu 1.13.1
  • Keras 2.2.4

Reference

Zhang, C., Yue, P., Tapete, D., Jiang, L., Shangguan, B., Huang, L., & Liu, G. (2020). A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images. ISPRS Journal of Photogrammetry and Remote Sensing, 166, 183-200.

License

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

Comments
  • Network parameter initialization

    Network parameter initialization

    Hi @GeoZcx, I find a phenomenon that when I initialization of network parameters, the network can't detect any change in Pytorch Version. But when I don't initialize of network parameters the network works well. The follow is the code of initialization

    `
    def _initialize_weights(self):

        for m in self.modules():
            if isinstance(m, nn.Conv2d) or isinstance(m, nn.ConvTranspose2d) or isinstance(m, nn.Linear):
                nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu')
                if m.bias is not None:
                    m.bias.data.zero_()
            elif isinstance(m, nn.BatchNorm2d):
                m.weight.data.fill_(1)
                m.bias.data.zero_()
    

    `

    opened by zhijiejia 5
  • About

    About "Sigmoid"

    In the pytorch version code:

    1. 'Sigmoid' is used when you build DSIFN model, but it's used again in your loss function.

    2. Then, in loss.py, why use 'Sigmoid' function for 'target' ?

    opened by likyoo 3
  • Google drive or Onedrive version of dataset

    Google drive or Onedrive version of dataset

    Hi @GeoZcx First of all thanks for your great repo.

    Unfortunately, Beidu drive isn't available in my country. Could you please provide a Google drive or even Onedrive version of it?

    opened by farhadinima75 2
  • About network's output

    About network's output

    Sorry, my English is not very good. About your codes in pytorch version, I am comfused about a problem need your help. Why is the convolution output of the last layer of the network single channel? In remote sensing change detection. Generally, there are two types of change and non change. If output only single channel, how do we get the results of change?

    opened by geoyee 2
  • cannot reproduce the result of  DSIFN on the first dataset described in the paper.

    cannot reproduce the result of DSIFN on the first dataset described in the paper.

    During training, VGG backbone is frozen with pretrained weights by self.features = nn.ModuleList(features).eval() so that only the weight parameters of DDN will be updated.

    Environment:

    Ubuntu 16.04
    Python==3.6.8
    PyTorch==1.4
    a RTX2080Ti GPU
    

    Hyperparameters setting:

    batch_size = 8
    initial learning rate=0.0001
    adam optimizer
    

    Would you mind releasing the complete training code? Thanks.

    opened by songkq 2
  • Could the raw big images be made publiced?

    Could the raw big images be made publiced?

    I want to do some research on change detection in big map. But there are few public change detection dataset of big map. I see the raw big maps are shown in readme. Does it mean that the raw image can be obtained by stitching, or the raw image will be made public in the future?

    opened by DwRolin 1
  • Problem about the network needs to be independently trained in two steps

    Problem about the network needs to be independently trained in two steps

    Hello, I am very interested in your paper, but I have some problems in understanding your paper and code. Your paper said that the change detection task is divided into two stages. First, the bitemporal image is sent to the pre-trained DFEN (two VGG networks) to generate deep features, and then the extracted deep features are input into DDN to distinguish the changed areas. What do you mean by saying that these two parts should be trained independently? Does it mean to use the feature extraction method in transfer learning to extract features and then directly put them into DDN for training? You did not use the fine-tuning method, right? Hope to hear from you , thank you very much!

    opened by yiyi-today 1
  • question about your data set

    question about your data set

    The 512x512 resultion masks in the train and val set that you released are all black. Did you train your model by upsampling the masks that resultion is 256x256, or some other methods ?

    opened by Yeaoer 1
  • question about Input channel

    question about Input channel

    When defining the model,generally this is the form:"class Unet(nn.Module): def init(self, input_nbr, label_nbr):". Why is there no choice of input and output channels in your Pytorch codes. image In your codes, “class DSIFN(nn.Module): def init(self, model_A, model_B):”, model_A and model_B represent what? vgg16_base? ? Looking forward to your answer, it will be very helpful to me. Thank you!

    opened by yiyi-today 1
  • question about DSIFN

    question about DSIFN

    Hello, what is the role of model_A and model_B or where is its definition, and what should be input? What did they do to "t1_input" and "t2_input" ? Thanks. image image

    opened by yiyi-today 1
  • question about training process

    question about training process

    Hi, I am confused about your training process. Based on my understanding,you load 'imagenet' pretrained weights on Vgg16, then you freeze Vgg16 parameters and only train DDN part. Is my understanding right?According to the paper, I noticed that the deep feature extraction network (DFEN) and the difference discrimination network (DDN) in the proposed method are independently trained during the training process, but if you just load 'imagenet' pretrained weights on Vgg16, you don't train Vgg16. In addition to this, if you just use pretrained weights, I question the effect of pretrained weights.

    opened by stillwaterman 1
  • Regarding training code

    Regarding training code

    Hello, I recently came across your paper. I am unable to find the training code for your model. Can you please share your training code for keras? Can you provide it here or in the google drive link for the dataset? Thank you!

    opened by Essha123 0
Owner
Chenxiao Zhang
Postdoc at Wuhan University. Focus on leveraging AI techniques with GIS and RS for smart geospatial observation and analysis.
Chenxiao Zhang
Code of U2Fusion: a unified unsupervised image fusion network for multiple image fusion tasks, including multi-modal, multi-exposure and multi-focus image fusion.

U2Fusion Code of U2Fusion: a unified unsupervised image fusion network for multiple image fusion tasks, including multi-modal (VIS-IR, medical), multi

Han Xu 129 Dec 11, 2022
[TIP 2020] Multi-Temporal Scene Classification and Scene Change Detection with Correlation based Fusion

Multi-Temporal Scene Classification and Scene Change Detection with Correlation based Fusion Code for Multi-Temporal Scene Classification and Scene Ch

Lixiang Ru 33 Dec 12, 2022
Official Pytorch Implementation of Adversarial Instance Augmentation for Building Change Detection in Remote Sensing Images.

IAug_CDNet Official Implementation of Adversarial Instance Augmentation for Building Change Detection in Remote Sensing Images. Overview We propose a

null 53 Dec 2, 2022
From this paper "SESNet: A Semantically Enhanced Siamese Network for Remote Sensing Change Detection"

SESNet for remote sensing image change detection It is the implementation of the paper: "SESNet: A Semantically Enhanced Siamese Network for Remote Se

null 1 May 24, 2022
Deep learning models for change detection of remote sensing images

Change Detection Models (Remote Sensing) Python library with Neural Networks for Change Detection based on PyTorch. ⚡ ⚡ ⚡ I am trying to build this pr

Kaiyu Li 176 Dec 24, 2022
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

Achraf Rahouti 3 Nov 30, 2021
The official pytorch implemention of the CVPR paper "Temporal Modulation Network for Controllable Space-Time Video Super-Resolution".

This is the official PyTorch implementation of TMNet in the CVPR 2021 paper "Temporal Modulation Network for Controllable Space-Time VideoSuper-Resolu

Gang Xu 95 Oct 24, 2022
Paper Title: Heterogeneous Knowledge Distillation for Simultaneous Infrared-Visible Image Fusion and Super-Resolution

HKDnet Paper Title: "Heterogeneous Knowledge Distillation for Simultaneous Infrared-Visible Image Fusion and Super-Resolution" Email: 18186470991@163.

wasteland 11 Nov 12, 2022
Remote sensing change detection tool based on PaddlePaddle

PdRSCD PdRSCD(PaddlePaddle Remote Sensing Change Detection)是一个基于飞桨PaddlePaddle的遥感变化检测的项目,pypi包名为ppcd。目前0.2版本,最新支持图像列表输入的训练和预测,如多期影像、多源影像甚至多期多源影像。可以快速完

null 38 Aug 31, 2022
Remote sensing change detection using PaddlePaddle

Change Detection Laboratory Developing and benchmarking deep learning-based remo

Lin Manhui 15 Sep 23, 2022
a practicable framework used in Deep Learning. So far UDL only provide DCFNet implementation for the ICCV paper (Dynamic Cross Feature Fusion for Remote Sensing Pansharpening)

UDL UDL is a practicable framework used in Deep Learning (computer vision). Benchmark codes, results and models are available in UDL, please contact @

Xiao Wu 11 Sep 30, 2022
Official repository for "Restormer: Efficient Transformer for High-Resolution Image Restoration". SOTA for motion deblurring, image deraining, denoising (Gaussian/real data), and defocus deblurring.

Restormer: Efficient Transformer for High-Resolution Image Restoration Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan,

Syed Waqas Zamir 906 Dec 30, 2022
CFC-Net: A Critical Feature Capturing Network for Arbitrary-Oriented Object Detection in Remote Sensing Images

CFC-Net This project hosts the official implementation for the paper: CFC-Net: A Critical Feature Capturing Network for Arbitrary-Oriented Object Dete

ming71 55 Dec 12, 2022
Compute execution plan: A DAG representation of work that you want to get done. Individual nodes of the DAG could be simple python or shell tasks or complex deeply nested parallel branches or embedded DAGs themselves.

Hello from magnus Magnus provides four capabilities for data teams: Compute execution plan: A DAG representation of work that you want to get done. In

null 12 Feb 8, 2022
Fusion-DHL: WiFi, IMU, and Floorplan Fusion for Dense History of Locations in Indoor Environments

Fusion-DHL: WiFi, IMU, and Floorplan Fusion for Dense History of Locations in Indoor Environments Paper: arXiv (ICRA 2021) Video : https://youtu.be/CC

Sachini Herath 68 Jan 3, 2023
CVPR2021: Temporal Context Aggregation Network for Temporal Action Proposal Refinement

Temporal Context Aggregation Network - Pytorch This repo holds the pytorch-version codes of paper: "Temporal Context Aggregation Network for Temporal

Zhiwu Qing 63 Sep 27, 2022
Pyramid Grafting Network for One-Stage High Resolution Saliency Detection. CVPR 2022

PGNet Pyramid Grafting Network for One-Stage High Resolution Saliency Detection. CVPR 2022, CVPR 2022 (arXiv 2204.05041) Abstract Recent salient objec

CVTEAM 109 Dec 5, 2022
Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging

Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging This repository contains an implementation

Computational Photography Lab @ SFU 1.1k Jan 2, 2023
This is an official pytorch implementation of Lite-HRNet: A Lightweight High-Resolution Network.

Lite-HRNet: A Lightweight High-Resolution Network Introduction This is an official pytorch implementation of Lite-HRNet: A Lightweight High-Resolution

HRNet 675 Dec 25, 2022