Need help with RNAN?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

284 Stars 49 Forks 21 Commits 17 Opened issues


PyTorch code for our ICLR 2019 paper "Residual Non-local Attention Networks for Image Restoration"

Services available


Need anything else?

Contributors list

# 74,574
20 commits

Residual Non-local Attention Networks for Image Restoration

This repository is for RNAN introduced in the following paper

Yulun Zhang, Kunpeng Li, Kai Li, Bineng Zhong, and Yun Fu, "Residual Non-local Attention Networks for Image Restoration", ICLR 2019, [OpenReview]

The code is built on EDSR (PyTorch) and tested on Ubuntu 14.04/16.04 environment (Python3.6, PyTorch0.3.1 for DN/CAR/Demosaic, PyTorch0.4.0 for SR, CUDA8.0, cuDNN5.1) with Titan X/1080Ti/Xp GPUs.


  1. Introduction
  2. Tasks
  3. Citation
  4. Acknowledgements


In this paper, we propose a residual non-local attention network for high-quality image restoration. Without considering the uneven distribution of information in the corrupted images, previous methods are restricted by local convolutional operation and equal treatment of spatial- and channel-wise features. To address this issue, we design local and non-local attention blocks to extract features that capture the long-range dependencies between pixels and pay more attention to the challenging parts. Specifically, we design trunk branch and (non-)local mask branch in each (non-)local attention block. The trunk branch is used to extract hierarchical features. Local and non-local mask branches aim to adaptively rescale these hierarchical features with mixed attentions. The local mask branch concentrates on more local structures with convolutional operations, while non-local attention considers more about long-range dependencies in the whole feature map. Furthermore, we propose residual local and non-local attention learning to train the very deep network, which further enhance the representation ability of the network. Our proposed method can be generalized for various image restoration applications, such as image denoising, demosaicing, compression artifacts reduction, and super-resolution. Experiments demonstrate that our method obtains comparable or better results compared with recently leading methods quantitatively and visually. block


Gray-scale Image Denoising

PSNR_DN_Gray Visual_DN_Gray More details at DN_Gray.

Color Image Denoising

PSNR_DN_RGB Visual_DN_RGB More details at DN_RGB.

Image Demosaicing

PSNR_Demosaic Visual_Demosaic More details at Demosaic.

Image Compression Artifact Reduction

PSNR_CAR Visual_CAR More details at CAR.

Image Super-resolution

PSNR_SR Visual_SR More details at SR.


If you find the code helpful in your resarch or work, please cite the following papers. ``` @InProceedings{Lim2017CVPR_Workshops, author = {Lim, Bee and Son, Sanghyun and Kim, Heewon and Nah, Seungjun and Lee, Kyoung Mu}, title = {Enhanced Deep Residual Networks for Single Image Super-Resolution}, booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops}, month = {July}, year = {2017} }

@inproceedings{zhang2019rnan, title={Residual Non-local Attention Networks for Image Restoration}, author={Zhang, Yulun and Li, Kunpeng and Li, Kai and Zhong, Bineng and Fu, Yun}, booktitle={ICLR}, year={2019} } ```


This code is built on EDSR (PyTorch). We thank the authors for sharing their codes of EDSR Torch version and PyTorch version.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.