Inpainting-on-RSI

This repo contains the code, results and evaluations of the letter ''Context-based Multi-scale Unified Network for Missing Data Reconstruction in Remote Sensing Images'' in GRSL.

Introductoin

Missing data reconstruction is a classical yet challenging problem in remote sensing images. Most current methods based on traditional Convolutional Neural Network require supplementary data and can only handle one specific task. To address these limitations, we propose a novel Generative Adversarial Network-based missing data reconstruction method in this letter, which is capable of various reconstruction tasks given only single source data as input. Two auxiliary patch-based discriminators are deployed to impose additional constraints on the local and global region, respectively. In order to better fit the nature of remote sensing images, we introduce special convolutions and attention mechanism in a two-stage generator, thereby benefiting the tradeoff between accuracy and efficiency. Combining with perceptual and multi-scale adversarial losses, the proposed model can produce coherent structure with better details. Qualitative and quantitative experiments demonstrate the uncompromising performance of the proposed model against multi-source methods in generating visually plausible reconstruction results. Moreover, further exploration shows a promising way for the proposed model to utilize spatio-spectral-temporal information.

Some Results

Mask data: DATA

We also provide a simple tool make_list.py. Unzip and run it in the source folder.

All text

Metrics Versus Epoch

Run tensorboard --logdir model_logs --port 6006 to view training progress.

Here are several evaluation indexes training on RSSCN7 dataset with first 15K epochs.

One can also visualize the diagrams with their own data and settings.

All text

Note

It is a model for inpainting task on remote sensing images.

The idea is inspired with Global & Local, GatedConv, SA-GAN and Perceptual Loss.

Setup

Conda environment with Pytorch

  • Tensorboard here may require Tensorflow

Training & Test

Try train.py and test.py.

Evaluation on GMacs and Parameters number

GMacs = 1.52 + 0.38 + 39.64 = 41.54

Param Number = 4.94 + 4.94 + 6.05 = 15.93M

One can also evaluate any model by running ./flops_count.py.

Code

  • We deactivate the local discriminator for SLC-off problem in ./models/sa_gan.py.
  • One can train the model on other data and settings in ./config/inpaint_sagan.yml.
  • We'll upload a pretrained model asap.

Citation

If you find this work useful for your research, please cite us:

@article{shao2020context,
  title={Context-based multiscale unified network for missing data reconstruction in remote sensing images},
  author={Shao, Mingwen and Wang, Chao and Wu, Tianjun and Meng, Deyu and Luo, Jiancheng},
  journal={IEEE Geoscience and Remote Sensing Letters},
  volume={19},
  pages={1--5},
  year={2020}
}

Contact

Please contact me if there is any question. (Chao Wang oliversavealien@gmail.com)