Skip to content

Latest commit

Β 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EchoSR: Efficient Context Harnessing for Lightweight Image Super-Resolution [Information Fusion 2026 πŸ”₯πŸ”₯πŸ”₯ IF 15.5]

visitors GitHub stars arXiv ScienceDirect

Abstract: Image super-resolution (SR) aims to reconstruct high-quality, high-resolution (HR) images from low-resolution (LR) inputs and plays a critical role in various downstream applications. Despite recent advancements, balancing reconstruction fidelity and computational efficiency remains a fundamental challenge, particularly in resource-constrained scenarios. While existing lightweight methods attempt to expand receptive fields, many of them either incur substantial computational overhead, naively scale up kernel sizes, or lack mechanisms for coherent multi-scale integration, limiting their overall effectiveness and scalability. To address these limitations, we propose EchoSR, an efficient context-harnessing framework for lightweight image super-resolution, which unifies multi-scale receptive field modeling and hierarchical context fusion. EchoSR decouples feature learning into disentangled local, multi-scale, and global modeling stages through an efficient context-harnessing strategy, and further promotes seamless cross-scale integration via a cross-scale overlapping fusion mechanism. Extensive experiments have shown that EchoSR consistently outperforms state-of-the-art lightweight super-resolution methods across multiple benchmarks, while also achieving a faster speed $(\sim 2\times)$.

πŸ“‘ Contents

πŸ“ƒ Model Summary

All pretrained weights, datasets, and visual results are available via Baidu Netdisk (code: Echo).

Classic Lightweight SR (DIV2K)

Model Task model_weights
EchoSR_light_x2 Lightweight SR x2 link
EchoSR_light_x3 Lightweight SR x3 link
EchoSR_light_x4 Lightweight SR x4 link

Classic Lightweight SR (DF2K)

Model Task model_weights
EchoSR_light_x2 Lightweight SR x2 link
EchoSR_light_x3 Lightweight SR x3 link
EchoSR_light_x4 Lightweight SR x4 link
EchoSR_lite_x2 Lightweight SR x2 link
EchoSR_lite_x3 Lightweight SR x3 link
EchoSR_lite_x4 Lightweight SR x4 link

Real-world SR

Real-world SR weights are available via Baidu Netdisk (code: Echo).

Model Task model_weights
EchoSR_Real_x2 Real-world SR x2 Baidu Netdisk
EchoSR_Real_x4 Real-world SR x4 Baidu Netdisk

πŸ₯‡ Results

We achieve state-of-the-art performance on lightweight image super-resolution tasks. Detailed results can be found in the paper.

Evaluation on Classic Lightweight SR (click to expand)

Evaluation on Real-world SR (click to expand)

Evaluation on Effective Receptive Field (click to expand)

Evaluation on Efficiency (click to expand)

πŸ”§ Installation

This codebase was tested with the following environment configurations. It may work with other versions.

  • Ubuntu 20.04
  • CUDA 11.7
  • Python 3.8
  • PyTorch 2.0.1 + cu117

Installation via conda

cd EchoSR
conda env create -f environment.yaml
conda activate EchoSR

Installation via pip

pip install -r requirements.txt

πŸ“Š Datasets

All datasets and visual results can be downloaded from Baidu Netdisk (code: Echo), which includes: EchoSR classical SR visual results, real-world SR visual results, benchmark datasets (Set5, Set14, BSD100, Urban100, Manga109, RealSR test), and real SR pretrained weights.

The training and testing datasets used in our work are organized as follows:

Task Training Set Testing Set
Classic SR DIV2K (800 training images) + Flickr2K (2650 images) β€” DF2K combined [download] Set5 + Set14 + BSD100 + Urban100 + Manga109
Real-world SR DF2K RealSR

βŒ› Training

Train Classic Lightweight SR

  1. Download the training datasets and place them in datasets/DF2K. Download testing datasets and place them in datasets/SR.

  2. Follow the instructions below:

# Lightweight SR x2 (DIV2K, 1 GPU)
python basicsr/train.py -opt options/EchoSR_train/train_lightx2_Div2K.yml --auto_resume

# Lightweight SR x2 (DF2K, 2 GPUs)
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 --master_port=1234 \
    basicsr/train.py -opt options/EchoSR_train/train_lightx2_DF2K.yml --launcher pytorch

# Lightweight SR x3 (DF2K, 2 GPUs)
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 --master_port=1234 \
    basicsr/train.py -opt options/EchoSR_train/train_lightx3_DF2K.yml --launcher pytorch

# Lightweight SR x4 (DF2K, 2 GPUs)
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 --master_port=1234 \
    basicsr/train.py -opt options/EchoSR_train/train_lightx4_DF2K.yml --launcher pytorch

# Lite SR x2 (DF2K)
python basicsr/train.py -opt options/EchoSR_train/train_litex2_DF2K.yml --auto_resume

Train Real-world SR

Use the SRRealModel in basicSR/model For training
# Real-world SR x2, 2 GPUs
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 --master_port=1111 \
    basicsr/train.py -opt options/real/train/train_realesr_x2EchoSR.yml --launcher pytorch

# Real-world SR x4, 2 GPUs
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 --master_port=1111 \
    basicsr/train.py -opt options/real/train/train_realesr_x4EchoSR.yml --launcher pytorch

πŸ˜„ Testing

Test Classic Lightweight SR

  1. Download the testing datasets and place them in datasets/SR. Pre-trained weights are already in experiments/.

  2. Update the dataset paths in options/EchoSR_test/*.yml to match your local setup.

  3. Run testing:

# Classic lightweight SR
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_light_SRx2.yml
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_light_SRx3.yml
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_light_SRx4.yml

# DF2K variants
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_light_SRx2_DF2K.yml
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_light_SRx3_DF2K.yml
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_light_SRx4_DF2K.yml

# Lite variants (DF2K)
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_lite_SRx2_DF2K.yml
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_lite_SRx3_DF2K.yml
python basicsr/test.py -opt options/EchoSR_test/test_EchoSR_lite_SRx4_DF2K.yml

Test Real-world SR

  1. Download the real SR pretrained weights from Baidu Netdisk (code: Echo) and place them in ckpt or other place you want.

  2. Update paths in options/real/test/test_realesr_x2EchoSR.yml and run:

# Real-world SR
python basicsr/test.py -opt options/real/test/test_realesr_x2EchoSR.yml
python basicsr/test.py -opt options/real/test/test_realesr_x4EchoSR.yml

Test Comparison Methods

Config files for comparison methods are available in options/real/test/ (DAT, MambaIR, SwinIR, HIT-SIR, SeeMoRe, SRFormer) and options/testOthers/.

πŸ“Š Model Analysis

ERF (Effective Receptive Field) visualization and model complexity analysis code can be found at ./analysis/ERF/ and ./analysis/model_zoo/.

πŸ₯° Citation

Please cite us if our work is useful for your research.

@article{ZHAO2026104471,
title = {EchoSR: Efficient Context Harnessing for Lightweight Image Super-Resolution},
journal = {Information Fusion},
pages = {104471},
year = {2026},
issn = {1566-2535},
doi = {https://doi.org/10.1016/j.inffus.2026.104471},
url = {https://www.sciencedirect.com/science/article/pii/S1566253526003507},
author = {Hanli Zhao and Binhao Wang and Shihao Zhao and Tao Wang and Kaihao Zhang and Wanglong Lu},
keywords = {Image super-resolution, Lightweight super-resolution, Context harnessing, Multi-scale feature fusion, Convolutional neural network},
abstract = {Image super-resolution (SR) aims to reconstruct high-quality, high-resolution (HR) images from low-resolution (LR) inputs and plays a critical role in various downstream applications. Despite recent advancements, balancing reconstruction fidelity and computational efficiency remains a fundamental challenge, particularly in resource-constrained scenarios. While existing lightweight methods attempt to expand receptive fields, many of them either incur substantial computational overhead, naively scale up kernel sizes, or lack mechanisms for coherent multi-scale integration, limiting their overall effectiveness and scalability. To address these limitations, we propose EchoSR, an efficient context-harnessing framework for lightweight image super-resolution, which unifies multi-scale receptive field modeling and hierarchical context fusion. EchoSR decouples feature learning into disentangled local, multi-scale, and global modeling stages through an efficient context-harnessing strategy, and further promotes seamless cross-scale integration via a cross-scale overlapping fusion mechanism. Extensive experiments have shown that EchoSR consistently outperforms state-of-the-art lightweight super-resolution methods across multiple benchmarks, while also achieving a faster speed (β€―βˆΌβ€―2β€―Γ—β€―). The source code is available at https://github.com/funnyWang-Echoes/EchoSR.}
}

License

This project is released under the Apache 2.0 license.

Acknowledgement

This code is based on BasicSR and MambaIR. Thanks for their awesome work.

About

EchoSR, an efficient context-harnessing framework that unifies fine-grained detail enhancement and global structure fusion through hierarchical and overlapping context modeling strategies for lightweight super-resolution

Resources

Stars

30 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages