Xuhong Huang*, Shiqi Liu*, Kai Zhang†, Ying Tai, Jian Yang, Hui Zeng, Lei Zhang
Nanjing University, China
- Motivation
- Method
- Models
- Codes
- PSNR results
- Visual results of Converse-DnCNN
- Visual results of Converse-SRResNet
- Visual results of ConverseNet
- Visual results of Converse-USRNet
Convolution and transposed convolution (often referred to as deconvolution) are fundamental operations in deep neural networks. Convolution is commonly used for feature extraction and spatial downsampling. In contrast, transposed convolution is used to upsample spatial dimensions. Due to this functional relationship, transposed convolution is sometimes described in the literature as a reverse convolution operator. However, it is not the mathematical inverse of convolution. Instead, it performs upsampling by inserting zeros between input elements, followed by a standard convolution. While this interpretation is widely accepted, implementing a reverse convolution operator has received little attention. Notably, popular deep learning frameworks such as PyTorch do not provide native support for such an operator.
- We propose a novel depthwise reverse convolution operator as a first-step exploration to effectively reverse the depthwise convolution by formulating and solving a regularized least-squares optimization problem. We thoroughly investigate its kernel initialization, padding strategies, and other critical aspects to ensure its effective implementation.
- Building upon this reverse convolution operator, we integrate it with layer normalization, 1x1 convolution, and GELU activation to form a reverse convolution block, similar to a Transformer block.
Model | # params |
---|---|
Converse-DnCNN | 734,913 |
Converse-SRResNet | 694,208 |
ConverseNet | 243,267 |
Converse-USRNet | 307,091 |
- main_test_converse_dncnn.py: Code to denoise images by Converse-DnCNN
- main_test_converse_srresnet.py: Code to super-resolve LR images by Converse-SRResNet
- main_test_converse_usrnet.py: Code to super-resolve LR images by Converse-USRNet
Run main_test_converse_dncnn.py to produce the following results.
The table shows the number of parameters and average PSNR(dB) results of different models for Gaussian denoising with noise level 25 on Set12 and BSD68 datasets.Run main_test_converse_srresnet.py to produce the following results.
The table shows the average PSNR(dB) results of different variants of SRResNet for super-resolution with scale factor 4.Run main_test_converse_usrnet.py to produce the following results.
The table shows the average PSNR(dB) results of different methods on Set5, Set14, BSD100 and Urban100 datasets.Image with noise level uniformly ranging from 0 to 50 | Denoising result by Converse-DnCNN |
LR image | Super-resolution result by Converse-SRResNet |
Blurred image | Deblurring results by ConverseNet |
Blurred image | Deblurring results by Converse-USRNet |
@inproceedings{huang2025reverse,
title={Reverse Convolution and Its Applications to Image Restoration},
author={Huang, Xuhong and Liu, Shiqi and Zhang, Kai and Tai, Ying and Yang, Jian and Zeng, Hui and Zhang, Lei},
booktitle={International Conference on Computer Vision},
pages={1--10},
year={2025}
}