Giter Club home page Giter Club logo

funsr's Introduction

FunSR - Continuous Remote Sensing Image Super-Resolution based on Context Interaction in Implicit Function Space

English | 简体中文

This is the pytorch implement of our paper "Continuous Remote Sensing Image Super-Resolution based on Context Interaction in Implicit Function Space"

Project Page $\cdot$ PDF Download $\cdot$ HuggingFace Demo

0. Environment Setup

0.1 Create a virtual environment

conda create -n FunSR python=3.10

0.2 Activate the virtual environment

conda activate FunSR

0.3 Install pytorch

Version of 1.x is also work, but the version of 2.x is recommended.

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu117

0.3 [Optional] Install pytorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

0.4 Install mmcv

Version of 2.x is recommended, but the version of 1.x is also work.

pip install mmcv==2.0.0 -f https://download.openmmlab.com/mmcv/dist/cu117/torch2.0/index.html

Please refer to installation documentation for more detailed installation.

0.5 Install other dependencies

pip install -r requirements.txt

1. Data Preparation

1.1 Download the dataset

Put the downloaded HR images into the samples folder. In this project, some example images are provided in this folder.

1.2 Split the training and validation set

The data split files in the paper are provided in the data_split folder; if you need to split the training and validation set by yourself, please use tools/data_tools/get_train_val_list.py to split the training and validation set, run python tools/data_tools/get_train_val_list.py.

2. Model Training

1.1 FunSR

1.1.1 Config file

The config file of FunSR is configs/train_1x-5x_INR_funsr.yaml. You can modify the parameters in this file according to the situation.

1.1.2 Training

Run python train_inr_funsr.py to train the FunSR model. And you can modify the ArgumentParser parameters in this file according to the situation.

1.2 [Optinal] Fixed-scale SR models (TransEnet, SRCNN, LGCNet, FSRCNN, DCM, VDSR)

1.2.1 Config file

The config file of fixed-scale SR models is configs/baselines/train_CNN.yaml.

1.2.2 Training

Run python train_cnn_sr.py to train the fixed-scale SR models.

1.3 [Optional] Continuous-scale SR models (LIIF, MetaSR, ALIIF)

1.3.1 Config file

The config file of continuous-scale SR models is configs/baselines/train_1x-5x_INR_[liif, metasr, aliif].yaml.

1.3.2 Training

Run python train_liif_metasr_aliff.py to train the continuous-scale SR models.

1.4 [Optional] Continuous-scale SR models (DIINN, ArbRCAN, SADN, OverNet)

1.4.1 Config file

The config file of continuous-scale SR models is configs/baselines/train_1x-5x_INR_diinn_arbrcan_sadn_overnet.yaml.

1.4.2 Training

Run python train_diinn_arbrcan_sadn_overnet.py to train the continuous-scale SR models.

3. Model Evaluation

3.1 FunSR (including DIINN, ArbRCAN, SADN, OverNet)

3.1.1 Config file

The config file of FunSR is configs/test_INR_diinn_arbrcan_funsr_overnet.yaml. You can modify the parameters in this file according to the situation.

3.1.2 Testing

Run python test_inr_diinn_arbrcan_sadnarc_funsr_overnet.py to test the FunSR model. And you can modify the ArgumentParser parameters in this file according to the situation.

3.2 [Optional] Interpolation-based SR models (Bicubic, Bilinear)

3.2.1 Config file

The config file of interpolation-based SR models is configs/test_interpolate.yaml.

3.2.2 Testing

Run python test_interpolate_sr.py to test the interpolation-based SR models.

3.3 [Optional] Fixed-scale SR models (TransEnet, SRCNN, LGCNet, FSRCNN, DCM, VDSR)

3.3.1 Config file

The config file of fixed-scale SR models is configs/baselines/test_CNN.yaml.

3.3.2 Testing

Run python test_cnn_sr.py to test the fixed-scale SR models.

3.4 [Optional] Continuous-scale SR models (LIIF, MetaSR, ALIIF)

3.4.1 Config file

The config file of continuous-scale SR models is configs/baselines/test_1x-5x_INR_[liif, metasr, aliif].yaml.

3.4.2 Testing

Run python test_liif_metasr_aliff.py to test the continuous-scale SR models.

3.5 [Optional] Continuous-scale SR models (DIINN, ArbRCAN, SADN, OverNet)

3.5.1 Config file

The config file of continuous-scale SR models is configs/baselines/test_1x-5x_INR_diinn_arbrcan_sadn_overnet.yaml.

3.5.2 Testing

Run python test_diinn_arbrcan_sadn_overnet.py to test the continuous-scale SR models.

3.6 [Optional] Multi-resolution evaluation

In order to evaluate the models of different super-resolution ratios conveniently, we provide a batch evaluation script, which is located in scripts/test_script.py, which can be run python scripts/test_script.py

4. [optional] Result Visualization

Some visualization tools are provided in the tools/paper_vis_tools folder, you can refer to the files in this folder for details.

5. [optional] Model Download

The model weights of RDN are provided in the huggingface space.

6. [optional] Citation

If you find this project useful for your research, please cite our paper.

If you have any other questions, please contact me!!!

@article{chen2023continuous,
  title={Continuous Remote Sensing Image Super-Resolution based on Context Interaction in Implicit Function Space},
  author={Chen, Keyan and Li, Wenyuan and Lei, Sen and Chen, Jianqi and Jiang, Xiaolong and Zou, Zhengxia and Shi, Zhenwei},
  journal={IEEE Transactions on Geoscience and Remote Sensing},
  year={2023},
  publisher={IEEE}
}

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.