APP下载

基于深度自编码网络的图像去模糊

2021-07-19张晓凯杨鸿波杨明浩

关键词:解码编码卷积

张晓凯,杨鸿波,杨明浩,张 洋

(1.北京信息科技大学 自动化学院,北京 100192;2.中国科学院 自动化研究所,北京 100190)

0 引言

运动模糊是拍照时最常见的伪像类型之一,相机抖动和目标物体快速运动都会引起图像运动模糊,消除模糊成为研究热点。在深度学习之前,传统的去模糊方法主要采用各种约束或正则化来逼近运动模糊核,这会涉及复杂的非线性优化[1],而且从模糊图像复原清晰图像是个病态的过程,往往要引入先验知识[2]来进行约束。此外,模糊核估计过程对噪声和饱和度异常敏感导致对模糊核的假设过于严格,这也让图像去模糊变得复杂与困难。Pan等[3]提出基于正则化先验图像去模糊算法,通过寻找模糊图像的显著边缘达到去除图像伪影的方式恢复图像的质量。Yan等[4]在此基础上提出预测反卷积傅里叶系数来估计全局模糊核的方法,使得图像复原过程有更强的鲁棒性。

无论是基于先验知识约束还是正则化的图像去模糊方法,都需要大量参数调整和迭代优化计算,如果去模糊建模假设过于简单会影响图像复原质量,而过于复杂又会使适应性变差。

近年来,基于深度卷积神经网络(convolutional neural network,CNN)[5]的方法在去模糊领域取得了巨大的成功。Sun等[6]提出基于卷积神经网络来估计模糊核的方法,实现运动图像去模糊。Nah等[7]采用端到端的方式提出多尺度CNN去模糊模型,模仿传统的从粗到精的优化方法,极大地增加收敛性,在动态场景图像去模糊中取得了显著的成果。除此之外,生成对抗网络(generative adversarial network,GAN)[8]在图像重建和图像复原领域展示了巨大的影响力。SRGAN[9]提出基于生成对抗网络进行图像超分辨重建的方法,生成的图像保留了更多的细节信息,使图像在视觉上更精细更真实。

受GAN启发,本文设计了一种多尺度深度自编码的生成器,该生成器通过在编码和解码过程中添加跳层链接,不仅解决了在图像重建过程中特征信息丢失等问题,还加强了图像显著边缘结构。将该生成器引入到GAN中,通过采用端到端的方式使生成图像和清晰图像在视觉感官上更接近。实验结果表明,该方法能有效改善运动模糊图像的质量,得到去除运动模糊的清晰图像。

1 相关工作

1.1 图像去模糊

图像模糊的数学模型可以表示为

B=k(M)⊗S+N

(1)

式中:B为模糊图像;k(M)为由运动M产生的模糊核;S为清晰原图;N为引入噪声;⊗为二维卷积运算。一般模糊图像可以认为是清晰图像和模糊核卷积加上随机噪声所得到的,图像去模糊可以简化为模糊图像B反卷积求清晰图像S的过程。图像去模糊早期工作更多关注模糊核,根据模糊核k(M)是否已知分为非盲去模糊和盲去模糊两大类。非盲去模糊,即模糊核k(M)已知,通过维纳(Wiener)或者正则化(Tikhonov)滤波器进行反卷积得到清晰图像S。而盲去模糊,模糊核是未知的,需要同时估计模糊核k(M)和清晰图像S。实际上,模糊核通常是复杂且不均匀的,错误的核估计会直接影响图像复原的质量,容易产生振铃伪影现象。

1.2 生成对抗网络

(2)

式中:V(D,G)为真实样本和生成样本的差异;Pr为真实样本分布;Pf为假样本分布;E为N个样本概率分布的期望。上述过程可表述为:固定G时,D尽可能地判别出所有的假样本;在固定D时,G最小化生成样本和真实样本的差异。

1.3 深度自编码卷积网络

深度自编码网络是基于Encode-Decode结构的CNN网络,它能够很好地学习到非线性特征,在特征提取及去噪中起到非常重要的作用。如图1所示,深度自编码网络分为编码结构(Encoder)和解码结构(Decoder)两部分。编码结构中,输入数据通过网络结构转换为特征图,特征图再经过卷积和下采样得到多层隐含特征信息(空间信息,语义信息)。解码结构中,根据编码的有效特征信息经过上采样和卷积得到输入数据重构的特征信息。

图1 深度自编码卷积网络示意图

编码结构和解码结构可以分别表示为:

He(x)=Encode(x;ΦE)

(3)

Hd(x)=Decode(He(x);ΦD)

(4)

式中:Encode()为编码网络结构;Decode()为解码网络结构;ΦE和ΦD分别为编码结构和解码结构中的网络参数;He(x)和Hd(x)分别为编码结构和解码结构输出。

2 基于生成对抗网络去模糊方法

2.1 总体框架

本文基于GAN的原理实现图像去运动模糊,其核心思想是先将模糊图像B输入到生成器并将生成图像和数据集中与模糊图像配对的清晰图像S一同输入到判别器,训练相互对抗不断优化各自参数的神经网络。G的目标是生成视觉上更接近S的清晰图像G(B),即最小化G(B)和S的差异以混淆判别器;D的目标是更准确地辨别出S和G(B)。图像去模糊总体模型框架如图2所示。

图2 图像去模糊总体模型框架

2.2 生成器网络结构设计

基于深度自编码卷积网络的生成器通过对输入图像进行编码得到通道数更长的特征向量,而该特征向量在解码过程中因数据重构往往会缺失空间、内容等有效信息。因此本文在深度自编码卷积网络结构的基础上,设计了如图3所示的多尺度深度自编码生成器。其一,添加同一维度跳层链接,不但加强特征空间、内容信息在网络层之间的传递,而且可有效地解决梯度消失等问题;其二,借鉴传统图像去模糊“粗到精”的思想,结合多尺度CNN模型结构去运动模糊。

图3所示的多尺度深度自编码生成器依次将图像分为粗糙、中等、精细3个水平,分别记为Stage1、Stage2、Stage3。实验表明精细和中等图像特征信息更有利于粗糙图像去运动模糊。

记Si,j为第i阶段、第j个卷积核尺寸为3×3的卷积层的输出,即:

Si,j(xi,j)=BN[δ(ki,j⊗xi,j+bi,j)]

(5)

式中:xi,j为输入的特征图;ki,j为卷积核;bi,j为偏置项;δ为修正线性单元激活函数(ReLU);BN为批量正则化函数。将第i+1阶段的解码特征和第i阶段的编码特征进行融合可表示为

(6)

本文对在同一阶段不同尺寸特征图分别使用跳层连接,目的主要是解决解码过程上采样特征信息丢失等问题。编码其实是特征抽象过程,下采样之前特征图包含更多低级特征信息(边界、轮廓),经过下采样后特征图则包含更多高层抽象特征信息。相反解码是抽象特征恢复过程,特征尺寸变化必然会导致信息丢失,而跳层连接起到补充信息的作用,在高层抽象特征补充语义信息,底层特征补充边缘轮廓信息,经跳层连接后同一阶段特征融合可表示为

i=1,2,3

(7)

本文中下采样使用2×2的最大池化层(Maxpooling),上采样使用2×2的线性上采样。通道数为256的特征图采用改进的残差网络块Resblock,目的是提高网络训练的收敛速度。通道数为128的特征图中引入瓶颈层,即先用1×1大小的卷积核,再用3×3大小卷积核,最后用1×1大小的卷积核,目的是通过减少网络参数来降低计算量。

2.3 判别器模型结构

判别器网络模型不断优化生成器使生成图像更接近真实图像。该网络主要有9个卷积层结构,每个卷积层都添加LReLU激活函数,之后添加全连接层,最后添加Sigmoid激活函数将输出映射到[0,1]之间,具体判别器网络层次结构如表1所示。

表1 判别器模型参数

2.4 损失函数

损失函数用来指导模型训练,对训练效果起着关键作用。本文采用的GAN[8]损失函数由内容损失和对抗损失两大部分加权而成,表示为:

Ltotal=Lcont+λLadv

(8)

式中:Ltotal为总的损失;Lcont为内容损失;Ladv为对抗损失;λ为对抗损失函数的权重,在本实验中λ=1×10-3。对抗损失通过不断优化生成器和判别器使生成图像更接近真实图像,将其表示为

[log[1-D(G(B))]]

(9)

式中:psharp(S)为清晰图像的分布;pblur(B)为模糊图像的分布。该损失函数使得生成图像在视觉效果上更真实。

在内容损失上,本文采用多阶段损失函数。考虑到Stage1模糊图像和清晰图像边缘特征差异比较大,故在Stage1阶段使用L1损失函数,该函数利用L1梯度正则化[14]约束低频特征细节信息,保留图像更多边缘信息和结构细节,将其表示为

(10)

本文在Stage2和Stage3使用L2损失损失函数,该损失函数有助于解决图像生成时高频特征信息缺失等问题。相较于L1损失,该损失函数训练生成的图像更符合自然图像的整体分布,细节也更逼真,将其表示为

(11)

式中:Li为第i阶段生成器模型的输出;Si为第i阶段清晰图像;ci为第i阶段通道数;wi为第i阶段宽;hi为第i阶段高。最后,总损失函数定义为:

Ltotal=Lstage1+Lstage2+Lstage3+λLadv

(12)

3 实验

3.1 实验环境

本文实验环境配置如表2所示。

表2 实验环境配置

3.2 实验数据集和训练参数设置

本次实验采用公开的GOPRO数据集[5]和Kohler数据集[15]。GOPRO数据集是由Nal等用GOPRO4相机拍摄一系列连续视频图像累加高速视频中的视频帧,来模拟不同场景下运动模糊图像的产生过程。该数据集共包含3 214对模糊图像和清晰图像,其中训练集2 103对,测试集1 111对,每对图像分辨率为1 280×720。Kohler数据集是标准的基准数据集,该数据集可用于对非均匀去模糊模型进行定性评估。该数据集总共有48张图像,是由4张原始图像经过12种不同模糊核卷积得到,可用来评估算法去模糊的程度。

在GOPRO训练集上进行测试前要将每对模糊图像和清晰图像随机在相同位置裁剪出分辨率为256×256的图像。首先进行单阶段训练:将裁剪后的图像对送入Stage1阶段,256×256图像对下采样为128×128图像对后送入Stage2阶段,128×128图像对下采样为64×64图像对后送入Stage3阶段,不同阶段分别训练一个模型;然后进行多阶段训练,即Stage2阶段和Stage3阶段特征融合到Stage1阶段。本次实验采用Adam优化器,将batchsize设为2,对抗损失权重λ设为1×10-3,梯度L1正则化权重β设为1×10-4,学习率设为5×10-3,在迭代训练3×104之后,学习率降为5×10-4,实验总共迭代5×104次。

3.3 实验评价指标

实验采用峰值信噪比(peak signal to noise ratio,PSNR)和结构相似度(structural similarity,SSIM)[16]评价算法有效性。

3.4 实验结果

在GOPRO测试集上首先进行单阶段测试,即其他两个阶段未对该阶段进行特征共享的情况下,分别测试Stage1、Stage2和Stage3的PSNR和SSIM值。然后测试多阶段特征共享后的PSNR和SSIM值,同时对比了不同阶段图像去运动模糊的运行时间。实验结果如表3所示。

表3 不同阶段去模糊性能

从表3可以看出,单阶段中Stage2阶段PSNR和SSIM值高于Stage1和Stage3阶段,运行时间上Stage3阶段图像复原耗时最短。

在GOPRO数据集中将本文方法与3种常用的去模糊算法进行对比,性能指标值和直观效果图分别如表4和图4所示。Kim等[17]的算法基于传统的图像去运动模糊方法,图像复原结果存在明显的失真现象,且图像复原时间太久,不满足实际场景应用需求。Sun等[6]的算法基于卷积神经网络估计模糊核,这种方法适用于复原均匀运动引起的模糊,但无法复原非均匀运动引起的模糊,导致在复杂场景中去模糊后的图像仍不清晰。Nah等[7]的算法基于多尺度CNN去模糊方法,相比较上述两种算法无论是图像复原质量还是复原时间均有较大提升,但复原后图像边缘轮廓、局部细节仍不够清晰。本文算法复原的图像在视觉感官上更接近清晰图像,且在边缘细节上也有明显改善。而且本文方法的PSNR和SSIM指标均高于其他方法,且图像复原时间更短。

表4 GOPRO测试集上不同方法去模糊性能

图4 GOPRO测试集上各类算法去模糊结果对比

在Kohler数据集上,将原始图像经过几种不同的模糊核卷积后得到不同的模糊图像如图5所示,然后采用本文算法对得到的模糊图像去模糊,实验结果如图6所示。从两图对比可以看出,本文方法能够较好地复原几种不同的模糊图像,对于在不同模糊图像中失真严重的具体细节例如墙灯和门灯,本文方法均可达到不同程度去模糊的效果。实验结果表明本文方法能有效改善运动模糊图像的质量,得到去除运动模糊的清晰图像。

图5 Kohler测试集上不同模糊核卷积后得到的模糊图像

图6 Kohler测试集上本文去模糊结果

4 结束语

本文基于生成对抗网络提出一种高效的图像去模糊的新方法。通过深度自编码卷积网络和多尺度特征融合机制设计了一种多尺度深度自编码的生成器,减少了图像复原过程中特征信息丢失等问题,重建出边缘结构更锐利、局部细节更丰富的清晰图像。该网络结构简单、网络参数量少,采用端到端方式,既加快了网络训练的收敛速度,又避免了模糊核估计带来的困扰,缩短了图像复原时间。在GOPRO数据集上,实验结果表明,本文方法在评价指标PSNR和SSIM上均取得了不错效果,显著提高了图像复原质量。本文方法为后续深度去模糊等相关工作提供了一种新思路,此外,本文方法还可以推广到复杂场景目标识别任务中,如水下目标识别、无人机目标识别等。

猜你喜欢

解码编码卷积
基于全卷积神经网络的猪背膘厚快速准确测定
HEVC对偶编码单元划分优化算法
住院病案首页ICD编码质量在DRG付费中的应用
生活中的编码
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
解码 四十五度仰望天空
文化解码
文化 解码