Skip to content

JongKwonOh/SoFoNO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Page Paper

[Neurocomputing'25] Logo SoFoNO : Arbitrary-Scale Image Super-Resolution via Sobolev Fourier Neural Operator

📝 Authors: Jong Kwon Oha, 1, Hwijae Sonb, 1, Hyung Ju Hwanga, and Jihyong Ohc, *

🎓 Institution:

  • a Pohang University of Science and Technology (POSTECH)
  • b Konkuk University
  • c Chung-Ang University

🧾 Author Notes:
  • 1 These authors contributed equally (co-first authors).
  • * Corresponding author

This repository contains the official implementation for SoFoNO introduced in the following paper:

Software Environment

This project was implemented and tested with the following software configuration:

  • Python: 3.9
  • PyTorch: 2.6.0
  • Torchvision: 0.21.0
  • CUDA: 12.4
  • cuDNN: 9.1.0.70
  • NumPy: 2.0.2
  • SciPy: 1.13.1
  • OpenCV: 4.11.0.86

Hardware

  • GPU: Single NVIDIA A100 80GB

Download Dataset

To download and prepare the DIV2K dataset for training and validation, follow these steps:

  1. Create a data directory and navigate into it:
    mkdir data
    cd data
  2. Download the DIV2K train and validation datasets:
    wget http://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_train_HR.zip
    wget http://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_valid_HR.zip
  3. Unzip the downloaded files:
    unzip DIV2K_train_HR.zip
    unzip DIV2K_valid_HR.zip
    

Train

python train.py --config configs/train_edsr-SoFoNO.yaml If you want to change SoFoNO's argument, please modify the yaml file.

model:
  name: sofono
  args:
    encoder_spec:
      name: edsr-baseline
      args:
        no_upsampling: true
    width: 256
    T : 3
    ranges : [-1, 1]
    local_branch : Conv
    init_s : 0.0

Test

Download a DIV2K pre-trained model.

Model Download
SoFoNO Google Drive

python test.py --config configs/test_SoFoNO.yaml --mcell True You should input the test data and model information into the yaml file.

test_dataset:
  dataset:
    name: image-folder
    args:
      root_path: ./data/DIV2K_valid_HR
  wrapper:
      name: sr-implicit-downsampled-fast
      args:
        scale_min: 4
        scale_max: 4
        ranges : [-1, 1]
  batch_size: 1
eval_type: div2k-4
eval_bsize: 500

model_path: ./SoFoNO.pth

Demo

python demo.py --input input.png --model ./SoFoNO.pth --scale 2 --output output.png

Reference

Acknowledgements

This code is built on LIIF, LTE and SRNO

Bibtex citation

@article{oh2025sofono,
  title={SoFoNO: Arbitrary-scale image super-resolution via Sobolev Fourier neural operator},
  author={Oh, Jong Kwon and Son, Hwijae and Hwang, Hyung Ju and Oh, Jihyong},
  journal={Neurocomputing},
  pages={131944},
  year={2025},
  publisher={Elsevier}
}

About

SoFoNO : Arbitrary-Scale Image Super-Resolution via Sobolev Fourier Neural Operator

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages