APP下载

基于多尺度密集连接网络的图像超分辨算法

2021-12-10王丹阳

计算机仿真 2021年11期
关键词:密集尺度卷积

贺 伟,王丹阳

(河南城建学院电气与控制工程学院,河南 平顶山 467036)

1 引言

图像超分辨重建技术是指从一幅低分辨率图像中通过相关算法得到相应高分辨率图像的一种后处理技术[1]。高分辨率的图像不仅包含锐利的边缘、丰富的纹理以及高保真的色彩等详细信息,还能在主观视觉上让人赏心悦目。然而,在实际成像过程中往往存在光学与运动模糊和噪声等不确定因素影响,导致成像系统得到目标图像分辨率普遍较低,不能满足人们实际应用需求。又由于改进成像设备的精密程度非常困难,所以利用超分辨率重建技术来增强图像的分辨率成为人们首要选择[2-3]。

图像超分辨重建方法主要有基于插值方法、基于重建方法和基于学习方法。基于插值方法起源于20世纪60年代,它根据给定图像已知内容信息和各像素间空间排列关系在特定位置插入与图像周围像素性质相同的像素值,然后结合插入像素与原始像素重建图像[4-5]。这类方法直接对图像中的像素进行简单计算,所以在重建图像时速度比较快,但是在图像重建过程中会不可避免地流失一些像素之间的差异,导致重建图像难以获取精细特征,产生振铃和锯齿状伪像,视觉效果较差。基于重建的方法主要通过构建图像退化模型,结合图像之间一些互补特征信息再根据充分结合的信息重构图像[6-8]。基于学习方法[9-11]主要是通过构建模型主动学习输入图像与输出图像两者之间的强关联性,在特定模型下对图像的先验知识主动进行特征提取,然后将这些包含图像详细内容的特征重建成图像。

近几年随着人工智能的迅猛发展,基于深度学习方法成为单幅图像超分辨率重建的热门研究。2014年,Dong等人注意到卷积神经网络模型在图像分类等高级计算机视觉中取得令人瞩目的成就,然后就考虑将这类网络应用到单幅图像超分辨问题中,提出利用堆叠的卷积层构建神经网络模型进行图像重建(SRCNN算法)[12]。随后,Dong等人对SRCNN模型的网络深度、卷积核大小等进行改进,提出FSRCNN算法[13]提升训练速度。随着残差网络出现[14],Kim等人提出VDSR算法利用残差模块加深卷积神经网络结构来解决超分辨问题[15]。VDSR算法将插值后低分辨率图像作为网络输入层,再将输入图像与网络学到的残差相加得到最终输出图像。受VDSR启发,Tong等人[16]将密集连接模块加入到卷积神经网络中提出了SRDenseNet算法,这样的网络结构具有减缓梯度消失、加强特征传播、支持特征重用等优点,在超分辨问题中取得了不错效果。2018年,Li等人[17]考虑使用不同大小卷积核提取不同的图像特征,并结合残差学习提出多尺度残差网络(MSRN算法)应用于图像超分辨。2019年,黄伟[18]等人提出基于多通道极深卷积神经网络的图像超分辨算法,通过对低分辨图像进行多种预处理操作增加输入图像先验证知识,同时又加深网络深度来提取图像特征来增强图像分辨率。

综上所述,本文提出一种基于多尺度密集连接网络的图像超分辨算法。同时引入多尺度和密集连接网络模块两个概念,设计两个深度不同的子网络提取低分辨图像特征,最后对两个子网络提取的特征求残差进行重建得到高分辨率图像。

2 基于多尺度密集连接网络的图像超分辨算法

为了充分利用卷积神经络非线性表征能力重建出高分辨率图像,本文提出了一种基于多尺度密集连接网络的图像超分辨算法。引入多尺度概念利用不同大小卷积核提取多样化图像特征,同时在卷积神经网络中又引入密集连接模块加深网络的深度以便于提取到更多有用的特征用于图像重建提升图像分辨率。本节将主要从以下几个方面展开:多尺度卷积层、密集连接模块和基于多尺度密集连接网络全模型。

2.1 多尺度卷积层

为了充分利用输入层数据信息并提高输入与输出层之间各种复杂特征提取的鲁棒性,本文引入了多尺度卷积层。实际上,多尺度卷积就是使用多种大小不同的卷积核对输入层图像进行卷积获取多样的图像特征,结构如图1所示。从结构中可以看出,本文设计的多尺度卷积层包含了三种大小不同的卷积核,它们的尺寸分别是 3×3×N、5×5×N和 7×7×N 。将输入图像分别与三个卷积核进行卷积得到的不同特征图进行拼接得到通道数为3N(N=20)维的特征图。

图1 多尺度卷积层结构示意图

2.2 密集连接模块

密集连接模块由多个串联的卷积层组成,在密集连接模块内允许任意两个非相邻层之间进行跨层连接。这种跨层连接方式既能从前面任意层接收输入,又能把输出传递给后面任意非相邻层,极大地缓和了在训练时出现的梯度消失问题。本文网络模型所使用的密集连接模块结构如图2所示,它由四个串联的卷积层x0,x1,x2和x3组成,其中每层输入层都包含前面所有层输出的特征图,这种结构的好处在于加强特征传播、促进特征重用,各层卷积层之间的关系用公式表达为

图2 密集连接模块结构示意图

xl=Hl([x0,x1,…,.xl-1])

(1)

其中,[x0,x1,…,xl-1]为第l层到第l-1层的所有特征图进行张量拼接的结果,将这些结果作为第l层的输入特征。Hl是用于连接两个卷积层之间的复合函数,由交替的ReLu层、瓶颈层(1×1conv)、ReLu层和一个3×3卷积层组成。参考文献[19],本文将生长率设置为一个较小的正整k=12,瓶颈层卷积核个数设置为4k。根据密集连接网络特征重用的特性那么每个密集连接模块将会输出3k+k0个特征图,其中k0为密集连接模块中输入层特征图的维数。

2.3 网络全模型

本文提出基于多尺度密集连接网络的图像超分辨重建方法的网络全模型结构如图3所示,主要由输入层、两个并行的子网络以及输出层组成。该多尺度密集连接网络模型结构的详细描述如下

图3 基于多尺度密集连接网络的图像超分辨网络结构

输入层为插值后低分辨率图像,将输入数据送入两个子网络中提取图像特征,然后再对两个子网络提取的特征进行残差处理,最后对残差结果进行卷积输出期望的高分辨率图像。其中,子网络1包含了一个多尺度卷积层和一个瓶颈层,瓶颈层是一个大小为1×1的卷积核对多尺度卷积层进行卷积得到。子网络2的网络深度比自网络的深度要更深,由一个独立卷积层、两个密集连接模块和两个瓶颈层组成。在子网络2中,首先要使用一个大小为1×1的卷积核进行内卷积得到一个包含24个特征图的卷积层,接着再将卷积结果输入第一个密集连接模块进行特征提取,然后把第一个密集连接模块的输出特征使用瓶颈层和压缩因子θ(θ=0.5)进行特征降维。接下来,把降维后的特征图输入到第二个密集连接模块继续进行特征提取。同样地,在第二个密集连接模块之后连接了一个瓶颈层并使用压缩因子控制特征图的维数。为了优化两个子网络提取的特征,本文对两个子网络分别提取的特征进行残差求解,最后使用一个大小为1×1的卷积核对残差结果进行重建得到输出的高分辨率图像。

为了获取性能良好的图像超分辨模型,本文选用均方误差(MSE)作为网络训练时的损失函数,通常表示成式(2)所示

(2)

其中θ是指网络模型中的所有参数,i表示网络模型输出的高分辨图像,为参考图像,N表示在训练阶段输入网络的批次大小。由于本文的训练集图像像素在预处理时进行了归一化处理,所以损失函数取值范围是(0,1)。损失函数值越小,说明网络模型鲁棒性越好。

综上所述,本文所提的图像超分辨方法的处理步骤如算法1所示。

算法1:基于多尺度密集连接网络的图像超分辨重构算法

算法输入:原始的高分辨率自然图像XH算法步骤:

步骤1:将原始自然彩色图像X转换为Ycbcr图像,提取其亮度通道图像XY先进行下采样再进行双立方插值得到放大的低分辨图像XLR;

步骤4:输入单幅彩色图像XH,重复步骤1,得到插值后的低分辨图像XLR作为卷积神经网络的输入数据,载入模型,得到期望的高分辨率图像Y分量,再与Cb、Cr两个分量合成Ycbcr图像,然后转化为RGB高分辨率图像;

3 仿真分析

为了验证本文所提单幅图像超分辨重构方法的有效性。本文对不用的彩色图像进行仿真仿真。本节主要包括三部分:仿真设置,仿真结果分析和超分辨重建方法的CPU执行时间比较。

3.1 仿真设置

本文仿真数据集采用Timofte数据集(包含91幅图像),测试集采用Set5和Set14数据集。为了增加仿真样本量,本文采用滑动窗口算法对仿真图像抽取图像块生成训练集阶段。具体操作为:对低分辨率图像切分时滑块的宽和高的取值为W=H=32(放大因子为2和4)或W=H=33(放大因子为3),步长l为14;对参考图像进行切分时令W=H=20(放大因子为2和4)或W=H=21(放大因子为3),步长l为21。

本文处理仿真数据生成训练集所使用平台为Matlab R2016a,对多尺度密集连接网络的训练与测试采用的是深度学习中的Tensorflow框架。网络训练损失函数采用均方误差,利用均值为0、标准差为0.001的高斯分布随机初始化权值,采用Adam优化算法[20]更新网络。超参数批处理Batch_size设置为128,将最后一层的学习率设置为10-5,其它层的学习率设置为10-4。

3.2 仿真结果分析

本文针对现有的SRCNN[12],VDSR[15],SRDenseNet[16]和Huang[18]等四种重建算法进行对比研究。评价方式采用主观评价和客观评价相结合的方式进行综合评价。其中,客观评价标准采用峰值信噪比(PSNR)[21]和结构相似度(SSIM)[22]对图像进行质量评估。同时,利用Set5和Set14数据集的彩色图像来验证所提方法的有效性,并将所提方法与上述提到的超分辨重构方法进行比较。图4-6(a)-(f)分别展示了原始高分辨图像和不同超分辨重建方法对“Head”图像、“Butterfly”图像和“Baby”图像重构的可视化结果。在每个仿真中,对部分区域进行放大,并将其放到重建结果图像的右下角。通过观察这些图像,可以看出通过SRCNN算法重建的图像分辨率较低,图像模糊,细节纹理不明显。VDSR算法改善了图像模糊现象并获得了更清晰的图像,但是仍然缺少图像的详细纹理信息。与前两种方法相比,通过SRDenseNet算法获得的图像得到了改进,但边缘存在严重的伪影,需要进一步提高重建效果。Huang等人提出的重建方法在保持锐利边缘和纹理细节有较好地表现,但是其结果图像造成了视觉的不真实性。与以上几种重建方法相比,本文所提方法在重构高分辨率图像锐利的边缘和丰富的纹理细节等方面均优于上述方法。

图4 利用不同的超分辨重建方法将“Head”图像放大3倍的结果图像(在红色框内区域的放大图显示在各个图像的右下方)

图5 利用不同的超分辨重建方法将“Butterfly”图像放大3倍的结果图像(在红色框内区域的放大图显示在各个图像的右下方)

图6 利用不同的超分辨重建方法将“Baby”图像放大3倍的结果图像(在红色框内区域的放大图显示在各个图像的右下方)

表1显示了数据集Set5不同超分辨率重建算法的PSNR和SSIM值;表2是针对数据集set14不同重建算法的PSNR值。数值结果表明,对于自然图像超分辨重建本文方法得到PSNR和SSIM平均值均高于其它同类对比方法。

表1 不同算法在Set5数据集上的PSNR和SSIM值的对比表

表2 不同算法在Set14数据集上的PSNR值的对比表(放大倍数为3)

3.3 超分辨重建方法的CPU执行时间比较

在本小节中,本文给出了上述超分辨重建方法的CPU执行时间。实验环境为因特尔处理器3.1GHz,内存10GB。由于本文研究方法以及所进行对比分析方法都是基于卷积神经网络,所以图像重建的CPU执行时间分为训练时间和测试时间(单张图片的测试时间)。同时,为了使对比效果真实可信,在训练时本文将每个重建方法的模型都统一训练300次;测试时间比较的是不同重建方法在数据集Set14上每张图片重建的平均时间。

SRCNN方法由于网络架构简单仅由三层组成,该方法训练时间最短大约花费了6个小时,在测试时平均大约需要0.51秒重建一张图像。VDSR方法训练的时间是大约是6.5个小时,测试时的平均时间大约是2.53秒。SRDenseNet方法创建的网络由于使用了密集连接模块加深网络,训练的时间相对较长大约是6.7个小时,测试时的平均时间大约是2.7秒。Huang等人提出的方法由于在输入层大量增加输入图像的通道数导致训练一次大约是7个小时,测试的平均时间大约是3.21秒。本文所提方法需要花费7.4个小时来训练网络模型,重建一张图片的时间平均是3.42秒,与其它方法相比具有一定的滞后性,经分析相对较慢的原因是本文提出的方法由两个子网络组成,并且每个子网络的深度都比较深。

4 结论

在本文中,针对低分辨图像特征提取不完全的问题,同时引入多尺度和密集连接两个概念设计了一种新颖的包含两个子网络的卷积神经网络模型用于图像超分辨问题。多尺度卷积模块利用不同尺寸大小的卷积核提取到低分辨率图像的多种特征。两个密集连接模块添加到另一个子网络中加深网络模型,用于改善特征表达能力。另外,密集连接模块还可以避免模型训练中的消失梯度问题。实验结果表明,在相同训练集和测试集下,本文提出的算法具有更好的重建效果和更强的泛化能力。

猜你喜欢

密集尺度卷积
基于全卷积神经网络的猪背膘厚快速准确测定
环境史衰败论叙事的正误及其评判尺度
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
密集恐惧症
Seeing Red
做个Patty万人迷
以长时间尺度看世界
9