论文学习记录:基于深度卷积神经网络的超分辨率算法

一、前言

    本文介绍了一种基于深度学习的单帧超分辨率图像重建算法。该方法直接学习一种低分辨率到高分辨率的端到端的映射关系,把这种映射表示成为一个深度卷积神经网络,其输入是低分辨率图像,输出是高分辨率图像。以下文字中均简称该算法为SRCNN。


二、算法表述

  下图是SRCNN的网络结构,由3层layers组成。

       输入一幅低分辨率图像,该算法首先用bicubic双三次插值的方法将该图像上采样成期望输出图像的大小,记该图像为Y,然后对Y进行以下三步。


1. 特征提取与表述

  第一层的公式表达为

  其中,W1和B1分别代表滤波器和bias项,*表示卷积运算。这里的W1相当于n1个尺寸为c x f1 x f1的滤波器,c是输入图像的通道数,f1是滤波器的空间尺寸,相当于对图像做n1个卷积,每个卷积的内核大小是c x f1 x f1。B1是一个n1维的向量,它的元素与滤波器有关。
  该层的输出是n1个feature maps。


2. 非线性映射

  第二层的公式表达为


  其中,W3相当于c个尺寸为n2 x f3 x f3的滤波器。B3是一个c维的向量。
  尽量以上三步操作的目的都不相同,但有趣的是,它们最终的表达形式都与卷积层相似,把这三个步骤组合起来就建立了一个卷积神经网络。


三、 实验结果

1. 论文中的实验结果

1.1 训练集大小与性能的关系

下图展示了训练集大小与性能的关系,

ImageNet包含的图像数量远远多于91 images,可以看到大的数据集能够提升性能。

注:该图表的测试参数是f1 = 9, f2 = 1,f3 = 5, n1 = 64, and n2 = 32

1.2 滤波器尺寸与性能的关系

下图展示了滤波器尺寸与性能的关系,

其中, 9-3-5这样的数字表示各层滤波器的大小。可以看到,大的滤波器尺寸可以提升性能。

1.3 滤波器数量与性能的关系

下表展示了滤波器数量与性能的关系,

其中,n1,n2表示的就是滤波器的数量。可以看到,更多的滤波器确实可以提升性能,但是却带来更多的时间消耗。

1.4 网络层数与性能的关系

下图展示了网络层数与性能的关系,

可以看到,四层网络比三层网络收敛慢。
并且,增加网络层并没有看到明显的效果改善,有时候结果反而不能收敛。


1.5 运行时间

下图是论文中提供的与其他算法的时间对比,

以上数据基于测试集Set14,可以看到SRCNN取得了非常不错的表现。


1.6 不同通道图像的性能

SRCNN不止可以处理灰度图像的超分辨率重建,还可以处理RGB彩色图像,以下是各种不同情况下的性能表现。


以上测试数据基于测试集Set5。
下图是各种算法得到的结果图。


2. 我的测试时间

基于论文作者提供的matlab代码,做了如下修改:

原来的代码输出图像是灰度图像,修改为Y通道使用SRCNN方法做超分辨率重建,色度通过cb,cr做bicubic双三次插值上采样,最后融合成RGB彩色图像。
最后得到如下的时间曲线图。

其中从横坐标1到5的输入图像大小分别是701 x 519, 842 x 624,1052 x 780,1402 x 1039,2104 x 1560,各分辨率输出图像均为原分辨率放大两倍的图像。


参考文献

[1] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang, "Image Super-Resolution Using Deep Convolutional Networks",Computer Vision and Pattern Recognition, 2015.

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/80829789