基于密集Inception的单图像超分辨率重建方法

2022-01-05 02:32王海勇张开心管维正
计算机应用 2021年12期
关键词:特征提取分辨率卷积

王海勇,张开心,管维正

(1.南京邮电大学计算机学院,南京 210023;2.南京邮电大学物联网学院,南京 210003)

(∗通信作者电子邮箱18336921525@163.com)

0 引言

单图像超分辨率(Super-Resolution,SR)重建是计算机视觉领域一个经典的研究方向。刑事侦查、安全监控、医学影像等领域非常重视图像细节,但是因为摄像设备、拍摄角度、光线等原因,导致拍摄出来的图像分辨率过低,影响工作人员对图像细节的判断[1]。因此,单图像SR重建的研究至关重要。

近几年,随着深度学习的发展,基于卷积神经网络(Convolutional Neural Network,CNN)的单图像SR研究受到广泛关注。经研究发现,CNN越深,可以从较大的感受野中获得越多的上下文信息,重建效果会越好;但是,随着网络层数加深到一定规模,单纯地加深网络会出现有关输入或梯度信息经过多层传播,在到达网络末端时消失[2]。密集连接卷积网络(Densely Connected Convolutional Networks,DenseNets)[3]通过创建每一层到所有后续层的最短路径,有效缓解了梯度消失的问题,并且能够加强特征传播,鼓励特征重用。初期,网络结构的突破大都是纯粹地增加网络的深度或宽度,但是该方法会带来很多问题,比如:在训练集有限的情况下,网络参数过多,会出现过拟合的现象;网络过大,计算复杂度高。在这种情况下,Inception[4]结构应运而生,该架构的主要思想是在增加网络深度和宽度的同时保持计算预算不变,提高网络内计算资源的利用率[4]。

在以上深度模型的启发下,本文提出了一种基于密集Inception 的单图像超分辨率重建方法。该方法全局采用简化后的密集网络,每个分层的特征采用一个跳过连接,仅传入重建层,用于特征重建,可以避免分层特征过度重用,引入冗余信息。核心模块采用堆叠的Inception-残差网络(Inception-Residual Network,Inception-ResNet)[5]结构,本文简称为IRN,该结构通过很少的计算量,保证了模型的深度和宽度,利于图像特征提取和重建,选用的IRN 结构相较于先前的版本,融入了残差连接,可以显著加快网络的训练速度。总的来说,本文所提出的方法参数少,模型的训练速度快,可以在资源受限的设备上进行训练。

1 相关工作

1.1 单图像超分辨率重建

经典的单图像SR重建方法包括基于插值的方法,基于重建的方法和基于学习的方法。其中,基于插值的方法虽然计算简单,但是重建效果差。基于重建的方法存在难以处理噪声、先验约束不生效等问题。因此,基于学习的方法成为研究热点。

Dong 等[6]提出了基于CNN 的超分辨率(Super-Resolution CNN,SRCNN),首次将CNN 用于单图像SR 重建。该模型虽然只有三层,但是相较于传统的重建方法,重建效果异常显著。Kim等[7]提出了具有20个权重层的超深CNN的图像超分辨 率(accurate image Super-Resolution using Very Deep convolutional network,VDSR),具有非常大的感受野,同时VDSR 将多种尺度的图像同时放入模型中进行训练,满足了多尺度图像重建的需求。Dong等[8]又提出了加速的超分辨率CNN(Fast Super-Resolution CNN,FSRCNN),在网络末端引入了一个反卷积层用于上采样。基于学习的图像超分辨率重建方法与传统的方法相比具有显著的优越性,因此,本文采用基于学习的方法进行研究。

1.2 跳过连接

随着卷积神经网络的加深,相应的梯度消失问题也显现出来。为了解决这一问题,Kim等[9]提出了深度递归卷积网络(Deeply-Recursive Convolutional Network,DRCN),使用递归神经网络来解决SR 问题。Huang 等[3]提出了密集卷积网络,在该网络中所有的层通过跳过连接的方式连接起来,L层的卷积神经网络有L(L+1)/2 个连接。Tong 等[10]使用密集跳过连接来解决图像SR问题,表明了使用密集跳过连接的方式重建图像的效果更好。Zhang 等[11]提出了基于残差密集网络的图像超分辨率(Residual Dense Network for image superresolution,RDN),通过密集连接使得每个残差块都能获得来自先前残差块的输出。Tang 等[12]简化了密集连接架构,只在重构层中重用各个特征提取层的特征,减少了冗余信息。

1.3 Inception结构

2014 年,谷歌推出了一款称为GoogLeNet 的网络,其核心结构是Inception-v1,该结构修改了传统的卷积神经网络结构,将全连接变成稀疏连接[4]。Ioffe 等[13]引入批量归一化的思想,修改后的结构称为Inception-v2。由于大尺寸卷积核进行卷积操作的计算量非常大,为了提高计算效率,Szegedy等[14]将Inception-v1 结构中5× 5 卷积核替换为两层3× 3 的卷积核,通过共享相邻切片之间的权重,减少了参数量,该结构称为Inception-v3[14]。Szegedy 等[5]又提出了Inception-v4 和Inception-ResNet,其中Inception-v4 为先前版本的变体,Inception-ResNet 在普通的Inception 结构中引入了ResNet,极大提高了模型训练速度。

Li 等[15]提出了基于多尺度残差网络的图像SR(Multi-Scale Residual Network for image super-resolution,MSRN),该方法主要由多尺度残差块(Multi-Scale Residual Block,MSRB)构成,该结构采用3× 3 和5× 5 两种卷积核交叉串联的方式从各个尺度提取图像特征,保证提取特征的多样性。Qin 等[16]提出了一种基于多分辨率空域残差密集网络的图像超分辨率重建方法,有效解决了先前方法重建的图像存在纹理区域过度平滑的问题。

2 本文方法

2.1 网络结构

本文所提出的基于密集Inception的单图像超分辨率重建方法的模型结构如图1所示。

本文模型主要由两部分组成:特征提取模块和特征重建模块。用于训练的单个低分辨率(Low Resolution,LR)图像表示为ILR∈RW×H×C,重建的高分辨率(High Resolution,HR)图像表示为ISR∈RWr×Hr×C,其中,W和H表示LR 图像的宽度和高度,r表示放大系数,C表示色彩空间的通道数。模型的输入输出原理表示为:

其中:FFE(⋅)表示特征提取模块的映射函数;FFR(⋅)表示特征重建模块的映射函数;HFE表示特征提取模块的输出,同时作为特征重建模块的输入。

2.1.1 特征提取模块

本文所提出的特征提取模块由低层特征提取模块、高层特征提取模块和一个特征融合层组成。其中,低层特征提取模块由一个卷积核大小为3× 3的卷积层构成;高层特征提取模块由若干个堆叠的IRN 组成;在整个模块外围构建了简化后的密集跳过连接,仅融合低层特征模块的输出与高层特征模块各个子模块的输出,作为特征融合层的输入。

特征提取模块在图像超分辨率重建模型中起着重要作用,提取的特征越多,重建效果越好。先前的图像超分辨率重建模型通常仅使用特征提取模块最终输出的特征来重建图像,而忽略了在特征传递过程中各个特征提取层的多样特征。因此,本文所提出的模型使用简化后的密集网络融合各个特征提取层的特征,从而获得更多上下文信息,可以为重建模块提供丰富的信息。

通常情况下,提高深度神经网络性能的最直接方法是增加模型的大小,包括增加模型的深度和宽度,这是一种简单安全的训练高质量模型的方法,特别是考虑到大量标记的训练数据的可用性。然而,这种简单的解决方案有两个主要问题:1)较大的网络尺度通常意味着提取更多的参数,这使得在训练集数量有限的情况下,容易出现过度拟合,在训练集很大的情况下,运算量又非常巨大;2)统一增加网络大小会导致计算资源的显著增加。例如,在深度卷积神经网络中,如果连接两个卷积层,则任何一个卷积层卷积核数量的增加都会导致计算量成倍的增加,如果无效地使用增加的容量则浪费了大量计算资源。由于在实验中计算预算总是有限的,因此计算资源的有效分配也优于没有限制地增加网络大小[4]。解决这两个问题的根本方法是将卷积层之间的完全连接转变成稀疏连接。

Inception 结构的主要思想是将各个卷积层以串联并联的方式相结合,使得在每个卷积层中增加卷积核的数量而不会引入过多的计算量,因此本文提出的模型选择该结构作为主要的特征提取模块[4]。由于该结构现行的版本很多,本文仅选择IRN 进行叠加,其结构如图2 所示,该结构与先前各版本相比融入了残差结构,可以显著加快模型的训练速度。

图2 IRN结构Fig.2 Structure of IRN

具体地,整个特征提取模块的输入输出原理表示为:

其中:H0表示低层特征提取模块的输出同时作为高层特征提取模块的输入;分别表示第1、2、i和n个IRN 的输出;FLF(·)表示低层特征提取模块的映射函数,表示各个IRN 映射函数;表示串联结构;HGF表示特征融合层的输出;FGF(·)表示融合层的映射函数。

构成高层特征提取模块的IRN 主结构由1× 1 和3× 3 两种卷积层组成,宽度上采用多通道串联的结构,全局采用残差连接,第i个IRN的输入输出原理可以表示为:

2.1.2 特征重建模块

大多数模型的特征重建模块选用反卷积层将图像恢复到原始尺寸,与插值方法相比,减少了计算量。但是对于不同尺度的模型,需要设置不同数量和尺寸的反卷积层,以2 × 2 反卷积层为基准,逐渐将图片恢复到原始尺寸大小。放大因子越大,需要堆叠的2 × 2 反卷积层越多,会增加训练的不确定性;并且,该方法不适用于奇数放大因子。因此,重建模块由一个卷积层、一个Pixel Shuffle 层和一个特征重建层组成,重建模块的输入是由特征融合层的输出得到。

该模块的输入输出原理表示为:

其中:HCN表示卷积层的输出;FCN(·)表示卷积层的映射函数;HPX表示Pixel Shuffle 层的输出;FPX(·)表示Pixel Shuffle 层的映射函数;ISR为重建的SR 图像;FRC(·)表示重建层的映射函数。

2.2 损失函数

大多数通用的损失函数包括两种:一种是L1_Loss,也称为最小绝对值偏差(Least Absolute Deviation,LAD),实现原理是把目标值与估计值的绝对插值总和最小化;另一种是L2_Loss,也称为最小平方误差(Least Square Error,LSE),原理是把目标值与估计值的插值平方和最小化。为了便于和先前的工作比较,选择常用的L1_Loss。假设训练集表示为,包括N个LR 图像和对应的HR 图像,以LR 图像作为输入,输出重建的SR 图像,最终目标是最小化两者之间的差距。L1_Loss的原理表示为:

3 实验与结果分析

3.1 训练和测试数据集

为了将本文方法和现有的方法进行比较,本文的训练集采用DIV2K 数据集[17],其中包括800 张训练图像、100 张验证图像和100 张测试图像,不同于以往的291 幅图像,该数据集每一张图像都是分辨率为2 048× 1080 的高清图像,对图像重建的效果要求更高。本文选用前800 张图像作为训练集,训练集采用缩放、旋转、翻转三种方式进行扩充。

测试集选择通用的基准数据集:Set5[18]、Set14[19]、Urban100[20],这些数据集包含各种类型的图像,满足在各种场景的图像中验证本文的模型。测试集的图像均通过Matlab代码使用双三次插值下采样进行处理,得到LR 图像,下采样尺度包括×2、×3、×4。为了便于与先前方法比较,仅在基于YCbCr色彩空间中的亮度通道Y进行测试。

3.2 实验参数

模型的高层特征提取模块中,IRN 的个数设置为8。为了避免在训练过程中出现尺寸不匹配的情况,在代码上使用零填充的方法,保证在特征传递过程中图像大小保持一致。实验环境在基于Ubuntu 系统的远程服务器上进行,配置两台英伟达GPU,使用python进行编程,版本为3.6.9,深度学习框架采用pytorch,版本为1.0.0,对应的torchvision 版本为0.2.0,CUDA版本为11.0。

训练的batch_size设置为16,图像分多个批次进行反向迭代训练,总共训练1 000 个epoch。训练下采样倍数为×2 的模型时,patch_size 设置为96;训练下采样倍数为×3 的模型时,patch_size 设置为144;训练下采样倍数为×4 的模型时,patch_size 设置为192。低层特征提取模块的卷积核大小设置为3× 3。特征提取模块和特征融合层的所有卷积层的输出均设置为64 个特征图,即64 个通道。初始学习率设置为1E-4,每200 个epoch 后,将学习率降至原来的一半。使用自适应矩估计(ADaptive Moment Estimation,ADAM)优化器[21]训练模型,参数设置为β1=0.9,β2=0.999,ǫ=10-8。

为了加快模型的训练,提高图形处理器(Graphics Processing Unit,GPU)的内存占用率,充分利用GPU 内存,Pytorch 框架的Dataloader 模块里面的参数num_workers 设置为8,分配多个子线程训练模型,pin_memory 设置为True,节省了将数据从中央处理器(Central Processing Unit,CPU)传入随机存取存储器(Random Access Memory,RAM),再传输到GPU 的时间,直接映射数据到GPU 的专用内存,减少数据传输时间,可以避免CPU 被疯狂占用而GPU 空闲,提高了GPU利用率。

3.3 性能评价指标

本文主要选用峰值信噪比(Peak Signal-to Noise-Ratio,PSNR)和结构相似性(Structural SIMilarity,SSIM)作为重建图像质量的评价指标。PSNR的计算式为:

其中:MAX表示图像点颜色的最大数值;L1 表示损失函数。两幅图像间的PSNR 值(单位dB)越高,则重建图像相对于HR图像失真越少。

SSIM 计算式基于样本x和y之间的三个比较衡量:亮度、对比度和结构。SSIM的计算式表示为:

其中:μx为x的均值,μy为y的均值;为x的方差,为y的方差,σxy为x和y的协方差;c1=(k1L)2,c2=(k2L)2为两个常数,L为像素值的范围2B-1(B是比特深度,一般取值为8),k1=0.01,k2=0.03为默认值。

每次计算时都从图像上取一个N×N的窗口,然后不断滑动窗口进行计算,最后取平均值作为全局的SSIM。

3.4 结果分析

3.4.1 重建性能对比

图3给出了本文方法在放大倍数为2、3、4时,模型的损失变化情况,横坐标为epoch,纵坐标为loss。可以看出,本文方法可以使loss 迅速收敛至很小值,且运行稳定,可以较好地优化模型参数,使重建性能更佳。

图3 本文方法的损失收敛曲线Fig.3 Loss convergence curve of proposed method

为了验证本文方法在重建性能上的优越性,将本文方法与SRCNN[6]、高效亚像素CNN(Efficient Sub-pixel CNN,ESPCN)[22]、FSRCNN[8]、VDSR[7]、DRCN[9]、深度拉普拉斯金字塔超分辨率重建网络(fast and accurate image Super-Resolution with deep Laplacian pyramid Network,LapSRN)[23]、深度递归残差网络(Deep Recursive Residual Network,DRRN)[24]、用于图像恢复的持久性存储网络(persistent Memory Network for image restoration,MemNet)[25]和MSRN[15]方法进行比较,这些方法的实验结果均通过原文公开的实验数据获取。针对插值处理过的×2、×3、×4 的LR 图像,采用本文所提出的模型进行重建,得到对应的SR 图像,再通过Matlab 代码,得到SR 图像的PSNR值和SSIM值。

图4 给出了本文方法在测试数据集上生成的部分SR 图像与其他方法重建图像的细节对比,能够观察到,本文方法重建图像的细节恢复得最好。其中,SRCNN 等方法重建的婴儿睫毛和蝴蝶翅膀细节非常模糊且失真严重,小鸟嘴巴边缘和辣椒轮廓存在伪影,而本文方法得到的婴儿睫毛根根分明,蝴蝶翅膀细节完整,小鸟嘴巴和辣椒边缘轮廓清晰,线条明朗,高频细节得到恢复,更接近原始HR图像。

图4 不同方法重建的SR图像局部细节对比Fig.4 Local detail comparison of SR images reconstructed by different methods

表1~3 分别给出了在测试集中,本文方法与其他方法在放大倍数为2、3和4时的PSNR值和SSIM值的比较,加粗显示的数据代表所有方法中最优的。可以看出,与SRCNN 等方法相比,本文方法得到的PSNR值和SSIM值均有显著提升,主要是由于本文方法采用一种稀疏连接的方法,可以在增加模型深度和宽度时,保证参数量尽可能少地增加,同时使重建性能得到提升;与同样采用稀疏连接方法的MSRN 相比,互有优劣,主要是由于MSRN 采用5× 5 和3× 3 两种卷积交叉串联的方式,本文方法采用1× 1 和3× 3 两种卷积直接连接的方法,使得MSRN 的参数量远远多于本文方法,从而导致其部分性能优于本文方法。其中,放大倍数为4 时,针对数据集Set5,相较于VDSR,本文方法的SSIM 高了0.013 6,相较于MSRN,其SSIM 高了0.002 9。具体的参数对性能的影响在3.4.2节进行了详细的分析对比。

表1 本文方法与其他方法在放大倍数为2时的PSNR/SSIM对比Tab.1 Comparison of PSNR/SSIM between proposed method and other methods at 2 magnification

表2 本文方法与其他方法在放大倍数为3时的PSNR/SSIM对比Tab.2 Comparison of PSNR/SSIM between proposed method and other methods at 3 magnification

通过整体分析可以得出,相较于其他方法,本文方法不管在主观视觉还是客观评价上,重建效果均有显著的提升。

表3 本文方法与其他方法在放大倍数为4时的PSNR/SSIM对比Tab.3 Comparison of PSNR/SSIM between proposed method and other methods at 4 magnification

3.4.2 参数量、平均训练时间和SSIM的对比

为了验证本文方法在参数规模和训练时间上的优越性,将其与SRCNN、ESPCN、FSRCNN、VDSR、DRCN、LapSRN、DRRN、MemNet和MSRN方法进行了比较,如表4所示。

表4 不同方法在参数量、平均训练时间以及SSIM上的对比Tab.4 Comparison of parameters,average training time and SSIM of different methods

从表4中可以看出,本文方法的平均训练时间最短,SSIM值最高。本文方法的参数量与MSRN 和DRCN 相比,分别减少了78%和21%,SSIM 分别提升了0.000 5 和0.005 2,主要是因为本文方法采用IRN 结构组建模型,该结构采用稀疏连接的方法。在同样深度和宽度的情况下,与直接连接3× 3卷积核的结构相比,IRN 可以节省60%的参数量;与采用MSRB作为主要结构的MSRN 相比,单个IRN 的参数量比MSRB 减少68%。与SRCNN、ESPCN、FSRCNN 等方法相比,本文方法虽然参数量略微增加,但重建性能得到大幅提升,主要是因为参数量过少会对重建性能的提升略有影响。

总体来说,本文方法在减少参数量、缩短训练时间,以及提升重建效果上,均有显著的提升。同时,文献[4]证明了模型对资源的占用与参数量呈正相关,而本文方法拥有更少的参数可以证明本文所提出的模型对实验设备资源的占用少,能够适应设备资源受限的情况。

4 结语

本文提出了一种基于密集Inception的单图像超分辨率重建方法。该方法全局融合了简化的密集网络,将每一个分层特征提取模块的输出用于重建,核心模块引入了Inception-ResNet 结构,将其应用在图像超分辨率重建领域。实验结果表明,本文方法具有较好的重建效果,并且使用了更少的参数,极大提升了模型的训练速度。但是,由于该方法着重缩减模型参数,对图像的重建性能稍有影响,下一步将研究在模型参数尽可能少的情况下,提升重建性能。

猜你喜欢
特征提取分辨率卷积
同步定位与建图特征提取和匹配算法研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
我国科学家发明计算超分辨图像重建算法拓展荧光显微镜分辨率极限
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
ARM发布显示控制器新品重点强化对分辨率的支持
从600dpi到9600dpi