超分算法ESPCN:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel亚像素卷积

在这里插入图片描述

Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

这篇文章提出了一种新的上采样方式:亚像素卷积(PixelShuffle),对于当时SR任务的计算速度和重建效果都有不错的提升。
本文只简单记录对亚像素卷积的基本了解,详细内容可以看参考目录中的文章。

ESPCN:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network
参考目录:
超分之ESPCN
亚像素 / sub-pixel、亚像素卷积

几种上采样方式

在这里插入图片描述
SR任务中上采样的几种方法:

  1. 双三次插值作为基础,使用卷积层进行微调修正。DCSCN
  2. 反卷积层,使用pangding的方式扩大图像。SRDenseNet
  3. 使用步长为 1 r \frac{1}{r} r1的反卷积,放大图像。FSRCNN
  4. 亚像素卷积,不需要额外计算量的隐式卷积层,通过重排来构建输出。Sub-pixel Convolution

亚像素卷积的简单理解

亚像素卷积一般放在网络的最后一层,不需要额外的计算量。
其实亚像素卷积和SRLUT中的核心思想是一样的,一张图像放大r倍,就相当于每个像素都放大r倍
在网络倒数第二层卷积过程输出通道数为 r 2 r^2 r2与原图同样大小的特征图像,然后经过亚像素卷积层周期性排列,得到 w × r , h × r w×r,h×r w×r,h×r重建图像。
在这里插入图片描述

如图中,倒数第二层红色椭圆圈住的九个特征(放大倍数为3)排列后组成箭头所指的最后一层小方框,这就是原图中框住的像素经过网络构成的重建块。这九个像素刚好使原像素的长宽各放大了三倍。
需要注意的是亚像素卷积层虽然有卷积二字,但其实没有进行运算,只是抽取特征然后进行简单排列

为什么叫亚像素呢? 可以看这篇文章写的很详细。
亚像素就是在两个物理像素之间还有像素,Sub-Pixel。每四个红色点围成的矩形区域为实际原件上的像素点,黑色点为亚像素点。
可以看成在像素之间进行了一个插值。
在这里插入图片描述


总结

作者经过实验证明了提出的亚像素卷积层能够很有效的提升表现力,因为没有实际的运算操作,减少了很多网络参数,比SRCNN速度更快。
补充几个小点:

  1. SRCNN和ESPCN(relu)在小数据集上表现相似,但是一旦数据集增大,两者增加的PSNR分别是0.07和0.33,显然ESPCN有更大的提升潜能。
  2. 对比ESPCN关于ReLU和Tanh版本的激活函数可知:在ESPCN中,Tanh对于表现力的提升要强于ReLU。
  3. EPSCN在单张图像和视频中都取得了提升的效果,并且在视频SR任务中可以做到Real-Time,即实时性的要求。
  4. 关于亚像素卷积层,PyTorch中也有相关实现,即torch.nn.PixelShuffle(),可以参Ton博主的PyTorch之PixelShuffle()
  5. 作者后面又提出了一种针对视频SR任务的方法VESPCN,利用了多帧图像之间的时间连续性,将时间信息加入到网络中。

最后祝各位科研顺利,身体健康,万事胜意~

猜你喜欢

转载自blog.csdn.net/qq_45122568/article/details/124285697