APP下载

基于多尺度循环残差神经网络的图像去运动模糊

2022-03-22睿,周,刘鹏,刘

计算机工程与设计 2022年3期
关键词:复原尺度损失

方 睿,周 愉+,刘 鹏,刘 凯

(1.成都信息工程大学 计算机学院,四川 成都 610225; 2.成都信息工程大学 控制工程学院,四川 成都 610225)

0 引 言

最为典型的引起图像退化的原因主要有如下3点:大气湍流、太阳辐射等引起的失真、相机和物体相对运动产生的模糊、对焦不准产生的模糊。图像运动模糊是指拍摄时,被拍摄的目标物体与摄像装置之间发生相对运动,而引发的模糊。图像模糊的过程被建模为如下形式

IB=K(M)*IS+N

(1)

式中:IB是模糊后的图像,K(M) 是模糊核,IS代表清晰的图像,*表示空间卷积,N为加性噪声。目前图像复原算法大致分为两种:一是传统方法。图像复原的最初手段是直接做逆滤波,在上个世纪六十年代中期已经被大范围应用在该领域,但有结果表明直接逆滤波的性能是比较差的。文献[1]提到,Shan和Fergus等都是通过各种方法构建了图像恢复过程的正则项,虽然在一定程度上抑制了振铃效应,减少了噪声等,但是他们的复原结果并不是很理想。传统方法有一个共同的特点就是都要预估模糊核,对图像噪声和饱和很敏感[2],并且一般产生的运动模糊都是非均匀模糊,精确预估模糊核是很难的。二是基于学习的方法,它是通过学习大量的数据样本学习得到一个网络模型,然后把运动模糊图像放到该模型中,端到端地复原出潜在的清晰图像。深度学习的典型算法之一是卷积神经网络(convolutional neural networks,CNN)[3],随之发展,CNN逐渐在图像复原领域也受到了很大的重视。Sun等[4]利用深度学习方法,首先尝试预测给定图像的小区域中的运动模糊核信息,然后尝试利用该模糊观察来恢复清晰图像。该方法在对模糊核添加约束的条件下,使处理后的图片达到了较为理想的去模糊效果。Schuler等[5]以粗糙到精细的方式堆叠了多个CNN,以模拟迭代优化。Chakrabarti等[6]在频域中预测了反卷积核,这些方法遵循传统框架,只有其中几个部分被CNN模块取代。Ke等[7]提出一种不同层数的CNN以处理模糊图像,取得了较好的效果。这些网络的共同不足之处在于网络层数较浅,很难提取到图片更深层次的语义信息。之后U-net[8]得到了改进,也称为编码器-解码器网络[9],极大地提高了回归能力,并在FlowNet的最新工作中被广泛使用[10]。Nah等[11]训练了一个多尺度的深度网络(MS-CNN),通过端到端的方法逐步恢复清晰的图像,在图像去模糊方面是比较成功的,但仍然存在图像运动模糊的问题。Tao等[12]在Nah的基础上进行改进,提出了尺度循环网络(SRN-DeblurNet)简称SRN,它是由香港中文大学、腾讯优图实验室和旷视科技的研究者合作提出的模型。但是不足的是它们使得图像复原的结果边缘特征并不明显,高频信息少,原因在于他们依赖于最小化L2损失,导致复原后的图像为均值最优显得过于平滑,并产生伪影现象,使得最后的复原结果上在视觉感知上并不能符合我们的要求,并且它们在卷积层使用大的卷积核,就导致对特征的学习能力不强。

针对上述问题,本文在SRN的基础上改进了一种用于图像去运动模糊的更有效的网络结构。加深了SRN的网络结构,在网络中堆叠多个小卷积核代替大卷积核,使其可以更好拟合图片的特征信息。并且为使纹理信息更强,保护图像边缘信息等,本文进行了多损失融合改进。并将其应用于真实运动模糊图片的处理,实验结果表明,改进算法生成的网络模型取得了更好的去模糊结果,主观视觉效果和客观评价指标明显改善,图像清晰度提高,细节损失减少。

1 多尺度循环卷积神经网络算法改进

1.1 改进思想

网络的深度和宽度是影响网络效果的最重要的两个因素。因此本文基于这两点对网络结构进行改进。首先在网络结构设计上,本文在Tao等[12]提出的SRN网络结构上进行改进,加深了SRN的网络结构,在其卷积层使用堆叠的小卷积核代替大卷积核,不仅与原来具有相同的感受野,而且可以减少网络的参数,对特征的学习能力更强,更好地拟合图片的特征信息。同时为了提高模型训练过程中的收敛速度,防止过拟合,提高图像中的高频细节信息,保护图像边缘信息等,本文进行了多损失融合改进。如图1所示,使得改进后的网络在客观评价指标取得更高的值以外,主观视觉效果也得到一定的改善。保护图像边缘信息等,本文进行了多损失融合改进。

图1 改进后的网络结构

1.2 复原过程

该网络由3个尺度的网络组成,每一个尺度都是由编码器-解码器(encoder-decoder)[9]网络构成,它是对称的CNN结构。在本文中,为满足本文任务需求,我们在此基础上设计了一个参数更少并且易于训练的网络结构,如图1所示。在每个尺度上生成清晰的图像,作为图像去模糊任务的子问题,它将模糊图像和初始去模糊结果(从先前尺度上进行上采样)作为输入,并且在该尺度下估计清晰图像。因此,每个尺度输出的图像如式(2)所示

Ii,hi=Ndeblur(Bi,Ii+1,hi+1;θSR)

(2)

式中:i是其尺度标号,Bi代表第i个尺度下模糊的图片,Ii代表第i个尺度下估计的清晰图片。N是前面所提出的多尺度循环网络,θSR是训练中产生的参数。由于网络是循环的,因此隐藏状态特征hi可以跨越尺度,从先前的网络中捕获图像结构和内核信息。

为保证此网络可以解决更加复杂的运动模糊问题,我们在此网络中做了一些改进,如图2所示,本文加深了InBlock和OutBlocks的结构,在其卷积层使用了2个3×3堆叠的卷积核。在编码器/解码器网络中,每个尺度网络包含1个InBlock,2个EBlock,然后是ConvLSTM循环,2个DBlock和1个OutBlock。编码器部分,每一层卷积层后面添加3个残差网络,称之为EBlock;解码器部分,使用了2个DBlocks(Decoder ResBlock),每一层去卷积层前面添加3个残差网络,称之为DBlock。InBlock产生32通道特征图,OutBlock将先前的要素图作为输入并生成输出图像。EBlock的通道数量分别为64,128。DBlock通道数量分别为128,64。每一个残差网络都包含2个卷积层,它是为了提供更大的感受野并且防止训练过程中梯度消失的问题。中间部分使用的是ConvLSTM循环,Conv和Deconv中使用的激活函数都是ReLU。该网络可以被表示为式(3)

(3)

式中:i是其尺度标号,Bi代表第i个尺度下模糊的图片,Ii代表第i个尺度下估计的潜在清晰图片。NEnconder是前面所提出的编码器网络,θE是编码器训练过程中产生的参数。NDecoder是解码器网络,θD是解码器训练中产生的参数。θLSTM是ConvLSTM训练时产生的参数,hi是隐藏状态特征。

图2 卷积核堆叠替代5*5卷积核

1.3 多损失融合改进

损失函数是影响图像复原效果的主要因素之一,它是用来估量模型的预测值与真实值的不一致程度,损失函数越小,预测值越逼近真实值。为了估计,需要通过最小化损失函数在训练过程中不断优化网络的参数,如下所示

(4)

在本文中,感知损失Lx、L1损失融合被用来提高复原后图像的细节,提升模型训练过程中的收敛速度,改善由于使用传统L2损失函数作为优化目标会导致生成图像上的模糊伪像[13]。

1.3.1 感知损失

由于使用L2损失函数作为优化目标会导致生成图像上的模糊伪像,且容易在视觉感知上产生平滑,所以在本文中,使用了近两年提出来的感知损失[14]。感知损失是简单的L2损失,在网络模型训练中,训练速度快,并且收敛效果好,具有高频细节信息。故以感知损失函数表示生成图像I与清晰图像S之间的差异,它的定义如下,可参考文献[14]

(5)

式中:φi,j是VGG19网络中激活之后的第j个卷积在第i层最大池化之前所取得的特征映射,Wi,j是特征映射的宽度,Hi,j是特征映射的高度。

1.3.2 L1损失

本文在损失函数中添加了L1范数损失函数,无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解。因为最小绝对值偏差能处理数据中的异常值,所以它的鲁棒性更好,同时也能够保护图像边缘部分的信息

(6)

式中:Ii为本网络中第i尺度输出的去模糊图片,Si是清晰图像像素值。

1.3.3 总损失

对于本文提出的去模糊算法,总损失函数由感知损失Lx、L1损失融合而成,最小化复原图像与真实图像的误差,保证图像的复原质量,其中k为融合系数

L=Lx+k·L1

(7)

趋向视觉感知的损失函数能够提高感知质量,但是评价指标较低,且缺少生成约束。因此为了平衡PSNR指标与视觉感知质量,总损失融合了以上感知损失Lx、 和L1损失。

1.4 小卷积核堆叠

多个小卷积核叠加使用远比一个大的卷积核单独使用效果要好得多。在VGG16[15]中,使用了更小的卷积核来保证当前网络精度的情况下,减少了参数。图像去运动模糊处理需要大的感受野,所以SRN结构的卷积层中原先使用的都是5*5,但是大的卷积核存在加大了网络参数并且特征学习能力不强的问题。

假设图片(Input)尺寸为M×M, 卷积核(Filter)大小为K×K, 填充(Padding)为P, 步长(stride)为S, 则卷积输出(Output)特征图大小为式(8)

Output=(M+2P-K)/S+1

(8)

为保证此网络可以解决更加复杂的运动模糊问题,所以在此网络中做了一些改进,在卷积层中使用2个3*3的卷积核替代原先的卷积核,如图2所示。如式(8)所示,改进之后的网络在保持感受野大小不变的情况之下,减少了网络训练中的参数,并且具有更多的非线性,使得对特征能力的学习能力变强。

2 实验结果分析

本文的所有实验均是在基于TensorFlow框架的深度学习服务器平台上进行,使用的计算机是3.7 GHz的i3处理器台式机,NVIDA GTX1060显卡,16 GB RAM。

2.1 数据集预处理

为实现与现有先进的MS-CNN、SRN等去模糊算法比较,本文使用两个指定的标准数据集来训练和测试我们的模型。此外,我们在真实的模糊图像数据集上验证了模型的泛化能力。

(1)GoPro公开数据集:Nah等[11]创建了GoPro数据集,它模拟复杂的相机抖动和物体运动,其中含有的运动模糊场景有行人移动、车辆运动等,更适合于真实场景中的模糊图像。模型在256×256像素的GoPro数据集上训练,其中包括3214对模糊/清晰的图片。本文中使用其中的2103对进行训练,剩余的1111对进行测试。

(2)Köhler数据集:Köhler数据集是评估盲去模糊的标准,由4个清晰图像和相应的48个模糊图像组成,这些模糊图像是由重播记录的6D摄像机运动引起的,本文将Köhler数据集用作模型性能评估的测试集。

(3)真实的模糊图像数据集:本文还对实际情况下的图片进行了测试,本数据集由10个清晰图像和相应的50个模糊图像组成,这些图片包括都是汽车在高速行驶下,通过行车记录仪设备拍摄得到行驶中的汽车车牌、交通线、建筑等视频,再使用空间变化的运动模糊退化模型方法合成的运动模糊图像,目的是为了验证模型的泛化能力。

2.2 模型训练以及评价标准

对于模型训练,本文使用Tensorflow训练我们所提出的模型。对于网络优化问题,本文采用Adam优化器,其中参数均为默认值,β1=0.9,β2=0.999,ε=10-8。 训练到2000 epochs时,学习率从初始值1e-4下降到1e-6。 在多次实验的结果调整下,本模型将k值设置为0.05。每一次迭代,我们对一批16张模糊图像进行采样,将训练集尺寸随机剪裁为256×256作为训练的输入。

对复原后的图像评价标准主要分为两种:主观评价标准和客观评价标准。主观评价标准具有简单直观的特点,通过肉眼去观察对比,这种方式容易受到主观因素等多方面的影响,比如每个人的心理状态。客观评价标准采用峰值信噪比(PSNR)和结构相似性(SSIM),其中PSNR和SSIM的值越大,就代表图像失真越少,复原的效果越好。综上所述,要综合考虑客观评价标准和主观评价标准才能对复原后的图像做出科学、客观的评价。

PSNR定义如式(9)、式(10)所示

PSNR=10lg((2n-1)2/MSE)

(9)

(10)

其中,图像的大小为H×W,S为清晰图像,Y为模糊图像通过网络复原后的图像,这里的n取值为8,因为本文使用的是彩色图像。

SSIM定义如式(11)~式(14)所示,SSIM的取值为[0,1],值越大,代表图像失真越小,图像的去模糊效果越好。分别从亮度l(X,Y)、 对比度c(X,Y)、s(X,Y) 结构这3个方面进行比较

SSIM(X,Y)=l(X,Y)·c(X,Y)·s(X,Y)

(11)

(12)

(13)

(14)

其中,X为清晰图像,Y为模糊图像通过网络复原后的图像,μX为图像X的均值,μY为图像Y的均值;σX为图像X的方差,σY为图像Y的方差;σXY为图像X、Y的协方差。c1、c2、c3均为常数,避免除零,c1=(K1×L)2,c2=(K2×L)2,c3=c2/2,K1=0.01,K2=0.03, 均为默认值,L=255。

2.3 实验结果

2.3.1 多损失融合性能验证

这一部分将通过实验验证该损失融合的性能,在本文的图像去运动模糊任务中,我们将其与L2损失进行比较。多损失融合性能验证模型设计见表1。

表1 多损失融合性能验证模型设计

感知损失可以使得模型具有更好的复原效果,边缘特征更加明显。Net-L2模型使得复原后的图像为均值最优显得过于平滑,并产生伪影现象,使得最后的复原结果上在视觉感知上并不能符合我们的要求。Net-PR1模型使得复原后的效果更加逼真,提高了复原后图像的细节,改善了由于使用传统L2损失函数作为优化目标会导致生成图像上的模糊伪像。如图3所示,从左到右依次为:模糊图像、Net-L2的去模糊结果、Net-PR1模型的去模糊结果。

图3 不同损失函数的去模糊结果

该模型在GoPro数据集上训练迭代55万次后达到收敛状态。表2列出了两种模型在GoPro测试集下平均PSNR和SSIM值的比较。

表2 GoPro测试集下的质量评价

从表2的结果中可以看出Net-PR1模型在测试集上的平均PSNR值和SSIM值都比Net-L2模型要高,多损失的融合改进也使得图片质量效果更好。

2.3.2 小卷积核堆叠性能验证

本文在2.3.1的实验基础上,为了验证小卷积核堆叠的性能,本文训练了经小卷积核堆叠处理与未经过处理的两个模型进行比较,验证模型设计见表3。

表3 小卷积核堆叠性能验证模型设计

实验设置550 000次迭代,每经过5000次训练保存并输出模型,并对模型在GoPro数据集中进行PSNR指标检测,结果显示网络如果在卷积层使用小卷积核堆叠的模型PSNR评价指标要明显高于直接在卷积层使用大的卷积核的模型,其中比较结果如图4所示。

图4 小卷积核堆叠性能验证PSNR指标结果比较

在卷积层应用小卷积核堆叠后的Net-KS模型,在保持感受野大小不变的情况之下,减少了网络训练中的参数,并且具有更多的非线性,使得对特征能力的学习能力变强。结果显示Net-KS模型的图像复原具有更清晰逼真的细节纹理,其中比较结果如图5所示。

图5 小卷积核堆叠性能验证视觉质量比较

2.3.3 与其它模型比较

整个训练过程是在GoPro训练集上进行的,经过550 000次迭代后达到收敛状态。将本文方法ELKS-SRN与其它算法从主观上和客观上进行比较。图6主要是主观上对从GoPro数据集上的测试集进行评价,其中的测试图包含了各个不同的运动模糊场景。图6中的图像从左到右依次为模糊图像、文献[7]的去模糊结果、文献[12]模型的去模糊结果以及本文所提模型的去模糊结果。

图6 GoPro数据集去模糊结果

从图6的运动模糊图像复原结果来看,本文提出的模型去模糊效果在高频细节和边缘特征等方面明显好于文献[12]。本文复原后的图像消除了较明显的伪影,如第一张图中的指示牌边缘以及车牌中的字符“0”“1”“2”等。本文所提出的去运动模糊算法尽可能保证了复原后图像的真实度,提升了图像的高频细节信息,保护了图像的边缘特征。该模型有效地解决了物体间相对运动造成的模糊。

图7是Köhler数据集中的去模糊结果,从上到下依次为模糊图像、Tao等的去模糊结果、本文所提模型的去模糊结果。如图7所示,我们对比第一幅图中的图(c)、图(e),可以看出图(e)的纹理信息比图(c)强,图(c)圈出来的墙壁明显过于平滑。对比图(d)、图(f)两张图片可以发现,图(d)圈出来的那一排时针数字,边缘模糊,其中还出现较明显的伪影现象,相较于图(d)来说,图(f)图恢复得更好,边缘特征较明显,没有出现大幅度的伪影现象。相较于图(f),图(d)中的时针数字“9”周围边缘比较模糊,边缘特征没有图(f)明显。

图7 Köhler数据集去模糊结果

表4列出了几种算法比较,从左到右分别是GoPro测试集下平均PSNR与SSIM值、Köhler测试集下平均PSNR与SSIM值、在测试集中恢复图片的平均时间。

从表4的结果中可以看出本文所提出的模型在测试集上的平均PSNR值和SSIM值都比前面提出的算法要高,特别相对于Tao等来说,虽然我们在此基础上加深了整个网络结构,但是并没有使网络的收敛速度变慢,反之,恢复的时间反而更快。验证了在卷积层使用小卷积核叠代替

表4 测试集下的质量评价以及性能

大卷积核会使得整个网络收敛速度更快,多损失的融合改进也使得图片质量效果更好。

2.3.4 真实模糊图片处理

为验证模型的泛化能力,本文再对真实的模糊图片进行处理,因为Gopro测试集和Köhler测试集中的图片是在高速相机下采集后合成的,它和实际情况下的模糊图片有可能不同,所以在这一小节,本文使用训练好的模型来处理实际情况下的模糊图片,这些图片都是实际情况中,汽车在高速行驶下,通过行车记录仪设备拍摄得到行驶中的汽车、交通线、建筑等视频。去模糊结果对比如图8所示,图8中的图像从左到右依次为模糊图像、文献[12]模型的去模糊结果以及本文所提模型的去模糊结果。

图8 真实模糊图片去模糊结果

在实际场景下,本文提出的去模糊算法相较于其它算法保证了图片的复原效果,并且边缘模糊小。如在第一张图片中,“大众的标志”、“标志旁边的棱”、“3”等字符的去模糊处理效果都较好;第二张圈出来的“交通线”的去模糊结果显示出整张图片的模糊程度减小;第三张图片中的车牌,文献[12]还原的车牌字符“6”“2”相较于本文所提出的去模糊模型明显带有一定的失真,并且边缘模糊区域大,而本文的去模糊效果好。所以综上所述,本文提出的算法可以较好地处理运动模糊。

3 结束语

本文提出了一种改进的图像去运动模糊方法,通过多损失融合和在卷积层使用小型卷积核堆叠平衡了评价指标(PSNR、SSIM)与感知质量,提高图像中的高频细节信息等,并且使得网络参数更少更容易训练,并且更好拟合图片的特征信息。最终的实验结果表明,改进算法生成的网络模型取得了更好的去模糊结果,主观视觉效果和客观评价指标明显改善,图像清晰度显著提高,细节损失减少,并且算法在去模糊的速度上相比于其它的算法也有明显的提升。

猜你喜欢

复原尺度损失
温陈华:唐宋甲胄复原第一人
胖胖损失了多少元
浅谈曜变建盏的复原工艺
财产的五大尺度和五重应对
毓庆宫惇本殿明间原状陈列的复原
玉米抽穗前倒伏怎么办?怎么减少损失?
宇宙的尺度
菜烧好了应该尽量马上吃
损失
9