README.md
April 17, 2026 · View on GitHub
UCAN: Unified Convolutional Attention Network
for Expansive Receptive Fields in Lightweight Super-Resolution
Cao Thien Tan1,2,3
·
Phan Thi Thu Trang 3,5
·
Do Nghiem Duc6
·
Ho Ngoc Anh5
·
Hanyang Zhuang4
.
Nguyen Duc Dung2
1Ho Chi Minh City Open University 2AI Tech Lab, Ho Chi Minh City University of Technology
3Code Mely AI Research Team 4Global College, Shanghai Jiao Tong University
5Ha Noi University of Science and Technology 6University of Manitoba
CVPR 2026 - Poster
[Paper]
Abstract: Hybrid CNN-Transformer architectures achieve strong results in image super-resolution, but scaling attention windows or convolution kernels significantly increases computational cost, limiting deployment on resource-constrained devices. We present UCAN, a lightweight network that unifies convolution and attention to expand the effective receptive field efficiently. UCAN combines window-based spatial attention with a Hedgehog Attention mechanism to model both local texture and long-range dependencies, and introduces a distillation-based large-kernel module to preserve high-frequency structure without heavy computation. In addition, we employ cross-layer parameter sharing to further reduce complexity. On Manga109 (4×), UCAN-L achieves 31.63 dB PSNR with only 48.4G MACs, surpassing recent lightweight models. On BSDS100, UCAN attains 27.79 dB, outperforming methods with significantly larger models. Extensive experiments show that UCAN achieves a superior trade-off between accuracy, efficiency, and scalability, making it well-suited for practical high-resolution image restoration.
Repo updating...
🔥 News
- 2026-02: 🎉UCAN is accepted by CVPR 2026! This repo is released.
🛠️ Setup
- Python 3.10+
- PyTorch 2.0+ + Torchvision 0.15+
- NVIDIA GPU + CUDA
git clone https://github.com/hokiyoshi/UCAN.git
conda create -n UCAN python=3.10
conda activate UCAN
pip install -r requirements.txt
python setup.py develop
🗃️ Datasets
Training and testing sets can be downloaded as follows:
| Training Set | Testing Set | Visual Results | Log | Weight |
|---|---|---|---|---|
| DIV2K (800 training images, 100 validation images) [organized training dataset DIV2K: One Drive] | Set5 + Set14 + BSD100 + Urban100 + Manga109 [complete testing dataset: One Drive] | Updating | x2, x3, x4 | Link |
💡 Models
🚀 Training
python basicsr/train.py -opt options/Train/train_UCAN_x2.yml
🧪 Testing
Place pretrained weights under experiments/pretrained_models/, then run:
# x2
python basicsr/test.py -opt options/Test/test_UCAN_x2.yml
# x3
python basicsr/test.py -opt options/Test/test_UCAN_x3.yml
# x4
python basicsr/test.py -opt options/Test/test_UCAN_x4.yml
Results are saved to results/.
📚 Results
🙇 Citation
🥂 Acknowledgements
This work is based on BasicSR, HiT-SR, ESC and MambaIRv2. We thank them for their great work and for sharing the code.