深度图像去模糊:综述
摘要
图像去模糊是低层计算机视觉中的经典问题,其目标是从模糊的输入图像中恢复出清晰图像。模糊可能由多种因素引起,例如失焦、相机抖动或目标快速运动。近年来,深度学习技术的进步显著推动了这一问题的解决,大量去模糊网络被提出。本文旨在对近期发表的基于深度学习的图像去模糊方法进行全面且及时的综述,以服务于学术界作为有价值的文献参考。我们首先讨论图像模糊的常见成因,介绍基准数据集和性能指标,并总结不同的问题建模方式。接着,我们提出一种基于卷积神经网络(CNN)的方法分类体系,从架构、损失函数和应用角度进行详细回顾与比较。此外,我们探讨了一些特定领域的去模糊应用,包括人脸图像、文本和立体图像对。最后,我们讨论了关键挑战与未来研究方向。
1 引言
图像去模糊是低层计算机视觉中的经典任务,长期受到图像处理与计算机视觉领域的关注。其目标是从模糊的输入图像中恢复出清晰图像,模糊可能由失焦、相机抖动或目标快速运动等多种因素引起,图1展示了不同模糊类型的示例。
传统去模糊方法通常将任务建模为逆滤波问题,即模糊图像被视为清晰图像与模糊核(空间不变或空间变化)的卷积结果。早期方法假设模糊核已知,并采用经典反卷积算法(如Lucy-Richardson或维纳反卷积)结合或不结合Tikhonov正则化来恢复清晰图像。另一方面,盲图像去模糊方法假设模糊核未知,旨在同时恢复清晰图像和模糊核本身。由于此问题的不适定性,需通过多种附加约束对解进行正则化。尽管传统方法在某些情况下表现良好,但在复杂现实场景(如强运动模糊)中通常性能有限。
深度学习技术的革命性进展显著推动了计算机视觉领域的发展,在图像分类、目标检测等任务中取得了巨大成功。图像去模糊也不例外:大量基于深度学习的方法被提出用于单图像和视频去模糊,并不断刷新技术水平。然而,新方法在架构设计上的多样性使得快速把握领域全貌变得困难。本文旨在填补这一空白,综述最新进展,并为新研究者提供参考。
具体而言,本文聚焦于近期发表的基于深度学习的图像与视频去模糊方法,目标包括:
- 回顾图像去模糊的基础,包括问题定义、模糊成因、去模糊方法、质量评估指标及性能评估基准数据集;
- 讨论单图像与视频去模糊深度学习模型的新进展,并提出现有方法的分类体系;
- 分析图像去模糊的挑战并探讨研究机遇。
全文结构如下:
第2节讨论问题建模、模糊成因、去模糊类型及图像质量指标;
第3节和第4节分别介绍基于CNN的非盲与盲去模糊方法;
第5节探讨深度去模糊中的损失函数;
第6节介绍公开基准数据集;
第7节总结代表性方法的性能评估;
第8节讨论特定领域应用;
第9节展望关键挑战与未来方向。
2 基础知识
2.1 问题定义
“空间不变模糊”和“均匀模糊”在这里指的是同一个概念,都是指模糊核在整个图像范围内保持一致,不随位置变化。
非均匀模糊的特点
空间变化性 :模糊核(Blur Kernel)在图像的不同位置不同,无法用单一的均匀核(如高斯核)描述。
离焦模糊由物体位于景深外引起,与相机或物体运动无关。
离焦模糊呈圆形或椭圆形(由光圈形状决定)。
运动模糊呈线状或轨迹状(沿运动方向)。
2.2 图像质量评估
图像质量评估(IQA)方法分为主观评估和客观评估两类。
主观评估
主观评估基于人类观察者的判断,通常无需参考图像。典型指标是平均意见得分(MOS),即参与者对图像质量按1-5分进行评分。由于MOS依赖样本群体的主观判断,实际应用中通常会统计评分的分布情况。
客观评估
客观评估通过算法自动计算质量分数,可进一步分为两类:
全参考指标(Full-Reference Metrics) 需要与清晰的参考图像对比,常用指标包括:
- PSNR(峰值信噪比)
- SSIM(结构相似性)
- WSNR(加权信噪比)
- MS-SSIM(多尺度SSIM)
- LPIPS(基于感知的相似性)
其中,PSNR和SSIM因计算高效,广泛用于去模糊任务的评估,而LPIPS和E-LPIPS更接近人类视觉感知。
无参考指标(No-Reference Metrics) 无需参考图像,仅通过去模糊图像自身评估质量,无真实清晰图像的情况。常用方法包括:
- BIQI
- BLINDS2
- BRISQUE
- CORNIA
- DIIVINE
- NIQE
- SSEQ
此外,部分指标通过下游任务(如目标检测、识别)的性能间接评估去模糊效果。
总结
主观评估 依赖人类评分(如MOS),但受主观因素影响较大。
客观评估 通过算法量化质量,全参考指标(如PSNR、SSIM)适用于有真实图像的实验,而无参考指标(如NIQE)更适合真实场景应用。
感知一致性 :LPIPS等指标能更好反映人类视觉感知,弥补传统指标(如PSNR)的不足。
3 非盲去模糊
反卷积与去噪 这一类别的代表性算法包括[104, 108, 143, 151, 156]。
- Schuler等人[108]开发了一种多层感知器(MLP)来对图像进行反卷积。该方法首先通过傅里叶域中的正则化逆恢复清晰图像,然后使用神经网络去除反卷积过程中产生的伪影。
- Xu等人[143]使用深度CNN来去模糊包含异常值(如噪声、过曝区域或传感器故障导致的“坏点”)的图像。该算法对模糊核应用奇异值分解,并在传统优化方案和CNN之间建立联系。然而,该模型需要针对不同的模糊核重新训练。
- 利用[143]中伪逆核的低秩性质,Ren等人[104]提出了一种通用的深度CNN,在统一框架中处理任意模糊核而无需为每个核重新训练。然而,模糊核的低秩分解可能导致性能下降。这两种方法[104, 143]分别连接了一个反卷积CNN和一个去噪CNN,以去除模糊和噪声。
-
然而,这些去噪网络设计用于去除加性白高斯噪声,无法处理模糊图像中的异常值或饱和像素。此外,这些非盲去模糊网络需要针对固定的噪声水平进行训练以获得良好的性能,这限制了它们在一般情况下的应用。
-
Kruse等人[58]提出了一种傅里叶反卷积网络(FDN),通过展开迭代方案实现,其中每个阶段包含一个基于FFT的反卷积模块和一个基于CNN的去噪器。合成具有多种噪声水平的数据用于训练,从而实现更好的去模糊和去噪性能。
上述方法学习了用于非盲图像去模糊的去噪模块。学习去噪模块可以被视为学习先验知识,将在下文中讨论。
学习反卷积先验
- Bigdeli等人[7]学习了一个均值偏移向量场,该向量场表示自然图像分布的平滑版本,并使用梯度下降来最小化非盲去模糊的贝叶斯风险。
- Jin等人[48]使用贝叶斯估计器同时估计噪声水平和去除模糊。他们还提出了一种网络(GradNet)以加速去模糊过程。与学习固定图像先验不同,GradNet可以与不同的先验结合,并改进现有的基于最大后验概率(MAP)的去模糊算法。
- Zhang等人[156]训练了一组判别性去噪器,并将它们集成到基于模型的优化框架中,以解决非盲去模糊问题。
- 如果不处理异常值,非盲去模糊方法即使在估计的模糊核准确的情况下也容易产生振铃伪影(非盲去模糊就像你已经知道模糊的原因,但依然可能在恢复清晰图像时出现“ ringing(振铃)”伪影,就像照片边缘周围出现了奇怪的波纹或光圈。)。
- 值得注意的是,一些超分辨率方法(具有1的比例因子)可以用于非盲去模糊任务,因为其作为图像重建任务的公式非常相似,例如USRNet[155]。
4 盲去模糊
在本节中,我们讨论了最近的盲去模糊方法。对于盲去模糊,潜在图像和模糊核都是未知的。早期的盲去模糊方法主要集中在去除均匀模糊(指图像中所有区域的模糊程度和方向完全一致 ,就像给整张照片均匀地蒙上一层薄纱一样)。然而,现实世界中的图像通常包含非均匀模糊(画面中不同区域模糊程度/方向不同,比如拍摄时有人快速从镜头前跑过,跑动的人糊成拖影,但背景清晰),即同一图像的不同区域由不同的模糊核生成。
为了应对非均匀模糊,许多方法通过建模3D相机运动来处理模糊核。
尽管这些方法可以模拟平面外的相机抖动,但它们无法处理动态场景,这促使了使用移动物体的模糊场[12,29,42]。
运动不连续性和遮挡使得准确估计模糊核变得具有挑战性。最近,针对动态场景的去模糊提出了几种基于深度学习的方法。表2和表3分别总结了代表性的单张图像和视频去模糊方法。
为了分析这些方法,我们首先介绍用于网络输入的帧聚合方法。
然后,我们回顾现有去模糊网络中使用的基层数块(基础模块)。
最后,我们讨论架构以及当前方法的优势和局限性。
4.1 网络输入和帧聚合
单张图像去模糊网络以单张模糊图像作为输入,并生成相应的去模糊结果。
视频去模糊方法则以多帧图像作为输入,并在图像域或特征域中聚合帧信息。
例如,图像级聚合算法将多个帧堆叠作为输入,并估计中心帧的去模糊结果。
另一方面,特征级聚合方法首先从输入帧中提取特征,然后融合这些特征以预测去模糊结果。
4.2 基本层和模块
本节简要回顾了图像去模糊中最常用的网络层和模块。
卷积层
许多方法训练二维卷积神经网络(2D CNNs)直接恢复清晰图像,而无需进行核估计步骤。另一方面,一些方法使用额外的先验信息,如深度或语义标签来指导去模糊过程。
此外,所有视频去模糊方法也采用了二维卷积。单张图像去模糊和视频去模糊的主要区别在于三维卷积,它可以同时从空间域和时间域提取特征。
循环层
对于单张图像去模糊,循环层可以以粗到细的方式在多个尺度上跨图像提取特征。
两种代表性方法是SRN和PSS-SRN。SRN是一种从粗到细的架构,通过共享权重的深度自动编码器去除运动模糊,而PSS-SRN包含一种选择性参数共享方案,从而在性能上优于SRN。
循环层也可以用于从视频中的相邻帧中提取时间信息。与单张图像去模糊的主要区别在于,基于视频的方法中的循环层从相邻图像中提取特征,而不是仅在一个输入图像的不同尺度上传递信息。这些方法可以分为两类。第一类方法将前一步的特征图传递到当前网络以获得更精细的去模糊帧。第二类方法通过直接输入前一步的去模糊帧来生成清晰帧。
残差层
为了避免在训练过程中梯度消失或爆炸,全局残差层被用于直接连接图像去模糊领域的低级层和高级层。一种使用这种架构的代表性方法是DeblurGAN,其中去模糊网络的输出与输入图像相加以估计清晰图像。在这种情况下,该架构等同于学习模糊图像和清晰图像之间的全局残差。局部ResBlock使用局部残差层,类似于ResNet中的残差层,并且这些在图像去模糊网络中被广泛使用。这两种类型的残差层,局部和全局,通常结合使用以实现更好的性能。
密集层
使用密集连接可以有助于解决梯度消失问题,改善特征传播,并减少参数数量。Purohit等人提出了一种由区域自适应模块组成的区域自适应密集网络,用于学习模糊图像中的空间变化偏移。这些区域自适应模块被整合到一个密集连接的自动编码器架构中。Zhang等人和Gao等人也在他们的去模糊网络中应用了密集层,其中DenseBlocks被用来替换CNN层或ResBlocks。
注意力层
注意力层可以帮助深度网络专注于图像中最重要的区域进行去模糊处理。Shen等人[116]提出了一种基于注意力的深度去模糊方法,该方法由三个独立分支组成,分别用于去除前景、背景和全局的模糊。由于包含人的图像区域通常是最感兴趣的,因此注意力模块通过使用人类感知图的引导来检测人的位置,从而对图像进行去模糊处理。其他方法则利用注意力机制提取更好的特征图,例如,使用自注意力生成非局部增强的特征图。
4.3 网络架构
我们将图像去模糊中最常用的网络架构分为五类:深度自编码器(DAE)、生成对抗网络(GAN)、级联网络、多尺度网络和重模糊网络。我们将在以下部分讨论这些方法。
深度自编码器(DAE)
深度自编码器首先提取图像特征,然后解码器根据这些特征重建图像。对于单张图像去模糊,许多方法使用带有残差学习技术的U-Net架构。在某些情况下,额外的网络有助于利用附加信息来指导U-Net。例如,Shen等人提出了一种人脸解析/分割网络,用于预测人脸标签作为先验信息,并将模糊图像和预测的语义标签一起作为U-Net的输入。其他方法则应用多个U-Net以获得更好的性能。Tao等人分析了不同的U-Net以及DAE,并提出了一种尺度递归网络来处理模糊图像。第一个U-net获得粗略去模糊图像,这些图像被输入到另一个U-Net中以获得最终结果。文献[115]结合了这两种思想,使用一个去模糊网络来获取粗略去模糊图像,然后将它们输入到一个人脸解析网络中生成语义标签。最后,粗略去模糊图像和标签一起被输入到U-Net中以获得最终的去模糊图像。
视频去模糊方法
视频去模糊方法可以根据其输入分为两组。第一组采用相邻模糊帧堆栈作为输入来提取时空信息。Su等人[122]和Wang等人[134]设计了DAE架构,通过将几个连续帧输入到编码器中去除视频中的模糊,解码器恢复中心清晰帧。从编码器不同层提取的特征逐元素地添加到相应的解码器层中,如图4所示,这加速了收敛并生成更清晰的图像。第二种方法是将单个模糊帧输入编码器以提取特征。已经开发了各种模块来从相邻帧中提取特征,这些特征联合输入解码器以恢复去模糊帧[165]。来自相邻帧的特征也可以输入编码器进行特征提取[43]。基于这种架构的许多深度视频去模糊算法已经被开发出来[87,118,134]。主要区别在于融合相邻帧时间信息的模块(不同的视频去模糊方法在处理相邻帧的时间信息时,采用了不同的技术或模块),例如STFAN[165](见图5)和RNN模块[87](见图6)。
生成对抗网络(GAN)
生成对抗网络(GAN)近年来在图像去模糊任务中得到了广泛应用。大多数基于GAN的去模糊模型采用相同的核心策略:生成器(如图7所示)生成清晰图像,使判别器无法将其与真实的清晰图像区分开 。Kupyn等[59]提出了DeblurGAN ,这是一种端到端的条件GAN方法(仍然要对抗学习但是也是端到端,端到端的意思是输入和输出中间不用人为干预),用于运动去模糊。DeblurGAN的生成器包含两个步长卷积块(strided convolution blocks)、九个残差块(residual blocks)和两个转置卷积块(transposed convolution blocks),以将模糊图像转换为对应的清晰版本。该方法进一步扩展为DeblurGAN-v2 [60],其采用了相对论条件GAN (relativistic conditional GAN)和双尺度判别器(包含局部和全局分支) (double-scale discriminator)。生成器的核心模块是特征金字塔网络FPN (feature pyramid network),提升了效率和性能。Nah等[86]和Shen等[114]也在方法中引入了对抗损失(生成器最小化此损失)(adversarial loss)以生成更优的去模糊结果。
GAN也被用于视频去模糊网络。与单图像去模糊的主要区别在于,视频去模糊的生成器需额外考虑相邻帧的时间信息 。例如,Zhang等[153]提出了一种基于3D卷积神经网络(3DCNN)的模型,通过对抗学习同时利用空间和时间信息恢复清晰细节(如图8所示)。Kupyn等[60]则通过改进单图像去模糊方法DeblurGAN,提出了DeblurGAN-v2 ,用于恢复清晰视频。
级联网络(分步骤修复 每一阶段弥补上一阶段的不足)
级联网络包含多个模块,这些模块通过顺序连接构建出更深的结构。级联网络可以分为两类。第一类在每个级联中使用不同的架构。例如,Schuler等人[109]提出了一种两阶段的级联网络(见图9)。第一阶段的输入是模糊图像,去模糊后的输出被送入第二阶段以预测模糊核。第二类则在每个级联中重新训练相同的架构以生成去模糊图像。前一阶段生成的去模糊图像会被送入相同类型的网络以生成更精细的去模糊结果。这种级联方案几乎可以应用于所有去模糊网络。尽管该策略能够取得更好的性能,但卷积神经网络参数的数量显著增加。为了减少参数数量,近期的方法选择在每个级联中共享参数[92]。
多尺度网络(分辨率降低 :图案内容不变,长宽缩小,但细节模糊)
输入图像的不同尺度描述了互补的信息[22,24,141]。多尺度去模糊网络的策略是首先恢复低分辨率的去模糊图像,然后逐步生成高分辨率的清晰结果。Nah等人[86]提出了一种多尺度去模糊网络,用于从单张图像中去除运动模糊(见图10)。在一个由粗到精的方案中,所提出的网络首先生成1/4和1/2分辨率的图像,然后再估计原始尺度下的去模糊图像。许多深度去模糊方法使用多尺度架构(多尺度架构通过分阶段处理不同分辨率的图像 ,从模糊图像中恢复清晰结果)[28,99,131],在不同尺度上改进去模糊效果,例如在[28]中使用嵌套跳跃连接,或在[131]中增加跨不同尺度的网络连接,如递归层。
重模糊网络(重模糊网络是一种“先模糊再修复 ”的特殊训练策略,通过让网络学习如何“制造模糊”和“修复模糊”,从而提升去模糊模型的鲁棒性(抗干扰能力))
重模糊网络可以合成额外的模糊训练图像[6,154]。Zhang等人[154]提出了一种框架,该框架包括一个学习模糊GAN(BGAN)和一个学习去模糊GAN(DBGAN)。这种方法分别学习将清晰图像转换为模糊版本,并从模糊版本中恢复清晰图像。Chen等人[14]引入了一个用于视频去模糊的reblur2deblur框架。三个连续的模糊图像被输入到该框架中以恢复清晰图像,这些清晰图像进一步用于计算光流并估计模糊核,以重建模糊输入。
各种模型的优点和缺点
U-Net架构已被证明在图像去模糊和低级视觉问题中是有效的。除了主流的U-Net架构外,还有一些其他高效的网络设计被提出,其中两种代表性方法是级联残差块(ResBlocks)和密集连接块(DenseBlocks)。在选择骨干架构后,深度模型可以通过多种方式改进。**多尺度网络(侧重于分辨率)**以粗到精的方式在不同尺度上去除模糊,但计算成本增加[158]。类似地,**级联网络(侧重于多阶段)**通过多个去模糊阶段恢复高质量的去模糊图像。去模糊图像被传递到另一个网络以进一步提高质量。主要区别在于,多尺度网络中的去模糊图像是中间结果,而级联架构中每个去模糊网络的输出可以单独视为最终去模糊输出。多尺度架构和级联网络也可以通过将多尺度网络作为级联网络中的一个阶段来结合。
去模糊的主要目标是提高图像质量,这可以通过重建指标如PSNR和SSIM来衡量。然而,这些指标并不总是与人类视觉感知一致。GAN可以训练生成去模糊图像,根据判别器网络[59,60]认为这些图像是真实的。对于推理,只需要生成器。基于GAN的模型通常在失真指标(如PSNR或SSIM)方面表现较差。
当训练样本数量不足时,可以使用重模糊网络生成更多数据[14,154]。该架构由学习模糊和学习去模糊模块组成。上述讨论的任何深度模型都可以用来合成更多的训练样本,创建原始清晰图像和从学习模糊模型输出的训练对。虽然这个网络可以合成无限数量的训练样本,但它只模拟存在于训练样本中的那些模糊效果。
像素错位的问题对具有多帧输入的图像去模糊来说是一个挑战。通过使用光流或几何变换计算连续帧中的像素关联来构建对应关系。例如,一对噪声和模糊图像可以通过光流用于图像去模糊和补丁对应。在应用深度网络时,通过对齐和去模糊进行联合处理,提供多张图像作为输入并通过3D卷积进行处理。
5 损失函数
为了训练深度去模糊网络,已经提出了各种损失函数。像素级内容损失函数在早期的深度去模糊网络中被广泛使用,用于测量重建误差。然而,像素损失不能准确地衡量去模糊图像的质量。这激发了其他损失函数的发展,如任务特定损失和对抗损失,以重建更真实的结果。在本节中,我们将回顾这些损失函数。
5.1 像素损失(需要模糊图像和清晰图像)
5.2 感知损失
5.3 对抗损失(GAN中生成器G和判别器D的互相对抗)
5.4 相对论损失(GAN中基于对抗损失的一种改进 目的在于更有效的训练 侧重于比真实图像还真)
5.5 光流损失
由于光流能够表示两个相邻帧之间的运动信息,一些研究通过估计光流来去除运动模糊。Gong等人[31]构建了一个CNN,首先从模糊图像中估计运动流,然后基于估计的流场恢复去模糊图像。为了获得训练样本对,他们模拟运动流以生成模糊图像。Chen等人[14]引入了一种reblur2deblur框架,其中三个连续的模糊图像被输入到去模糊子网络中。然后使用这三个去模糊图像之间的光流来估计模糊核并重建输入。
不同损失函数的优点和缺点:一般来说,上述所有损失函数都促进了图像去模糊的进步。然而,它们的特性和目标各不相同。像素损失生成的去模糊图像在像素级测量上接近清晰图像。不幸的是,这通常会导致过度平滑。感知损失更符合人类视觉感知,但结果与真实清晰图像相比仍存在明显差距。对抗损失和光流损失函数分别旨在生成逼真的去模糊图像和建模运动模糊。然而,它们不能有效地提高PSNR/SSIM值或仅适用于运动模糊图像。多个损失函数也可以作为加权和使用,平衡它们的不同特性。
6 图像去模糊基准数据集
在本节中,我们介绍用于图像去模糊的公开数据集。高质量的数据集应反映现实场景中所有不同类型的模糊。我们还介绍了特定领域的数据集,例如人脸和文本图像,适用于特定领域的去模糊方法。表4概述了这些数据集。
6.1 图像去模糊数据集
Levin等人数据集
为了构建一个图像去模糊数据集,Levin等人[64]将相机安装在三脚架上,通过锁定Z轴旋转手柄并允许X和Y方向的运动来捕捉实际相机抖动引起的模糊。使用这种设置捕获了一个包含4张大小为255×255的清晰图像和8个均匀模糊核的数据集。
Sun等人数据集
Sun等人[126]通过使用来自[127]的80张高分辨率自然图像扩展了Levin等人的数据集。应用[64]中的8个模糊核后,生成了640张模糊图像。与Levin等人[64]类似,该数据集仅包含均匀模糊的图像,不足以训练鲁棒的CNN模型。
Köhler等人数据集
为了模拟非均匀模糊,Köhler等人[56]使用Stewart平台(即机械臂)记录6D相机运动并拍摄打印图片。有4张潜在的清晰图像和12条相机轨迹,总共生成48张非均匀模糊的图像。
Lai等人数据集
Lai等人提供了一个包含100张真实模糊图像和200张合成模糊图像的数据集,这些图像使用均匀模糊核和6D相机轨迹生成(三个平移自由度和三个旋转自由度)。该数据集中的图像涵盖了各种场景,例如户外、人脸、文本和低光图像,因此可用于在多种设置下评估去模糊方法。
GoPro数据集
清晰图像使用GoPro Hero4 Black相机以240帧每秒(fps)的速度拍摄,并在不同持续时间的时间窗口内进行平均,以合成模糊图像。每个时间窗口中心的清晰图像用作真实图像(ground truth image)。GoPro数据集被广泛用于训练和评估深度去模糊算法。该数据集包含3,214对(成对的)图像,分为训练集和测试集,分别包含2103对和1111对。
HIDE数据集
Shen等人主要关注行人和街道场景,创建了一个运动模糊数据集,其中包括相机抖动和物体移动。该数据集包括6,397对用于训练和2,025对用于测试。与GoPro数据集类似,HIDE数据集中的模糊图像是通过平均11个连续帧合成的,其中中央帧用作清晰图像。
RealBlur数据集
为了在真实的模糊图像上训练和基准测试深度去模糊方法,Rim等人[105]创建了RealBlur数据集,该数据集由两个子集组成。第一个是RealBlur-J,它包含相机JPEG输出。第二个是RealBlur-R,它包含RAW图像。RAW图像通过白平衡、去马赛克和降噪操作生成。该数据集总共包含9476对图像。
Blur-DVS数据集
为了评估基于事件的去模糊方法的性能,Jiang等人使用DAVIS240C相机创建了一个Blur-DVS数据集。首先捕捉一个慢速相机运动的图像序列,并用于通过平均七个相邻帧来合成2,178对模糊和清晰图像。训练集和测试集分别包含1,782对和396对。该数据集还提供了740张没有清晰真实图像的真实模糊图像。
6.2 视频去模糊数据集
DVD 数据集
Su等人[122]使用不同设备上的相机捕捉了模糊视频序列,包括iPhone 5s、Nexus 4x和GoPro Hero 4等不同设备。为了模拟真实的运动模糊,他们在240帧每秒(fps)下捕捉清晰视频,并对8个相邻帧进行平均,以生成30帧每秒的相应模糊视频。该数据集包含一个定量子集和一个定性子集。定量子集用于评估模型的PSNR或者SSIM性能指标,其中包括来自71个视频(61个训练视频和10个测试视频)的6,708张模糊图像及其对应的清晰图像。定性子集覆盖了22个时长为3-5秒的视频,用于视觉检查。
REDS 数据集
为了捕捉快速移动物体的运动,Nah等人使用GoPro Hero 4 Black相机以120帧每秒和1080×1920分辨率捕捉了300段视频片段,并通过递归应用帧插值将帧率提高到每秒1920帧。通过从1920帧每秒的视频中生成24帧每秒的模糊视频,DVD数据集中存在的尖峰和阶梯伪影被减少。合成的模糊帧和清晰帧都被缩小到720×1280,以抑制噪声和压缩伪影。该数据集还被用于评估单图像去模糊方法。
6.3 领域特定数据集
文本去模糊数据集
Hradiš等人从互联网上收集了文本文档。这些图像被下采样到120-150 DPI分辨率,并分为训练集和测试集,大小分别为50K和2K。还对图像应用了小的几何变换和双三次插值。最后,分别从50K和2K图像中裁剪出3M和35K个图像块用于训练和测试去模糊模型。运动模糊和失焦模糊用于从清晰图像生成模糊图像。Cho等人也提供了一个文本去模糊数据集,但可用图像数量有限。
人脸去模糊数据集
模糊的人脸图像数据集是从现有的面部图像数据集中构建的。Shen等人从Helen数据集、CMU PIE数据集和CelebA数据集中收集了图像。他们合成了20,000个运动模糊核来生成1.3亿张模糊图像用于训练,并使用另外80个模糊核生成了16,000张图像用于测试。
立体模糊数据集
立体相机广泛应用于快速移动设备,如空中车辆和自动驾驶汽车。为了研究立体图像去模糊,Zhou等人使用ZED立体相机捕捉60帧每秒fps的视频,并通过帧插值技术将其增加到480帧每秒fps。不同数量的连续清晰图像被平均以合成模糊图像。该数据集包含20,637对图像,分别划分为17,319和3,318对用于训练和测试。
7 性能评估
在本节中,我们将讨论代表性深度去模糊方法的性能评估。
7.1 单图像去模糊
我们在表5中总结了具有代表性的方法,该表比较了三种流行的单图像去模糊数据集上的性能:GoPro数据集,Köhler等人的数据集以及Shen等人的数据集。请注意,所有结果均来自各自论文。
对于GoPro数据集上的单图像去模糊结果,我们还提供了条形图以便于比较,如图13所示。
Sun等人[125]、Gong等人[31]和Zhang等人[152]开发的三种基于CNN和RNN的早期深度去模糊网络表明,基于深度学习的方法可以取得有竞争力的结果。Nah等人[86]、Tao等人[131]和Gao等人[28]采用粗到精的策略设计了多尺度网络,并取得了比单尺度去模糊网络更好的性能,因为粗去模糊网络为更高分辨率提供了更好的先验。除了多尺度策略外,GAN也被用来生成更逼真的去模糊图像[59,60,154]。然而,基于GAN的模型在GoPro数据集上的PSNR和SSIM指标上表现较差,如表5所示。Purohit等人[98]将注意力机制应用于去模糊网络,在GoPro数据集上实现了最先进的性能。在Shen等人的数据集[116]上的结果证明了其有效性。使用ResBlocks[86]和DenseBlocks[28,154]的网络也比直接堆叠卷积层[31,125]的先前网络表现出更好的性能。对于非UHD运动去模糊,多补丁架构在恢复图像方面优于多尺度和基于GAN的架构。对于其他架构,例如多尺度网络,小尺度版本的图像提供的细节较少,因此这些方法无法显著提高性能。
对于DVD数据集上的视频去模糊结果,我们还提供了条形图以便于比较,如图16所示。图12显示了GoPro数据集中单图像去模糊的样本结果。我们在实验中比较了两种多尺度方法[86,131]和两种基于GAN的方法[60,154]。尽管模型架构存在差异,但所有这些方法在此数据集上表现良好。同时,使用相似架构的方法可能会产生不同的结果,例如Tao等人和Nah等人[86,131],它们都是基于多尺度架构的。Tao等人在不同尺度之间使用递归操作并获得了更清晰的去模糊结果。
我们还使用LPIPS度量分析了在GoPro数据集上的性能。表6显示了代表性方法的结果。在此度量下,Tao等人[131]的表现不如Nah等人[86]和Kupyn等人[59]。这是因为LPIPS度量的是感知相似性,而不是像L1那样的逐像素相似性度量。具体来说,Tao等人[131]在GoPro数据集上的PSNR和SSIM方面优于Nah等人[86]和Kupyn等人[59]。结果表明,当使用不同的度量时,我们可能会得出不同的结论。因此,使用不同的定量度量来评估去模糊方法至关重要。由于评估度量优化不同的标准,设计选择取决于任务。在图像重建任务中存在感知与失真之间的权衡,已经证明这两个度量是相互矛盾的,见[8]。为了公平地评估方法,可以设计一个包含PSNR、SSIM、FID、LPIPS、NIQE等度量的综合成本函数,并进行用户研究。后面作者做了什么不再记录
7.2 视频去模糊
在本节中,我们比较了两种广泛使用的视频去模糊数据集上的最新视频去模糊方法:DVD[122]和REDS[85]数据集(见表11)。深度自编码器[122]是用于深度视频去模糊方法中最常用的架构。与单图像去模糊方法类似,卷积层和残差块[36]是最关键的组件。循环结构[55]用于从相邻模糊帧中提取时间信息,这是与单图像去模糊网络的主要区别。
大多数视频去模糊方法使用像素级损失函数,但与单图像去模糊类似,感知损失和对抗损失也被使用。虽然单图像去模糊方法可以应用于视频,但利用时间信息的视频专用方法表现更优。Su等人[122]开发了一个模糊视频数据集(DVD)并引入了一种基于CNN的视频去模糊网络,该网络优于非深度学习的视频去模糊方法。通过使用帧内迭代,Nah等人[85]提出的基于RNN的视频去模糊网络比Su等人[122]的方法表现更好。Zhou等人[165]提出了STFAN模块,该模块能更好地将先前帧的信息融入当前帧的去模糊过程中。此外,还采用滤波器自适应卷积(FAC)层来对齐这些帧的去模糊特征。Pan等人[92]通过使用级联网络和PWC-Net估计光流以计算清晰度先验[124],在DVD数据集上实现了最先进的性能。DAE网络使用这些先验和模糊图像来估计清晰图像。代表性方法的运行时间如表12所示。
8 领域特定的去模糊
虽然大多数基于深度学习的方法是为去模糊通用图像设计的,即常见的自然和人造场景,但一些方法已经研究了在特定领域或设置中的去模糊问题,例如人脸和文本。
8.1 人脸图像去模糊
早期的人脸图像去模糊方法利用了面部图像的关键结构[34,93]。最近,通过利用特定的面部特征,深度学习解决方案主导了人脸去模糊的发展[47,103,114,147]。Shen等人[114]使用语义信息来指导人脸去模糊的过程。通过解析网络提取像素级语义标签,并作为先验信息提供给去模糊网络以恢复清晰的人脸。Jin等人[47]开发了一个端到端的网络,采用重采样卷积操作来扩大感受野。Chrysos等人[20]提出了一种两步架构,首先恢复低频部分,然后恢复高频部分,以确保输出位于自然图像流形上。为了处理人脸视频去模糊任务,Ren等人[103]探索了三维人脸先验。一个深度三维人脸重建网络为模糊输入生成一个纹理化的三维人脸,而人脸去模糊分支则在对齐人脸的指导下恢复清晰的人脸。图17展示了两种非深度学习方法[93,145]和两种基于深度学习的方法[86,114]的去模糊结果。
8.2 文本图像去模糊
模糊的文本图像会影响光学字符识别(OCR)的性能,例如在阅读文档、显示屏或路标时。通用的图像去模糊方法并不适合处理文本图像。在早期的研究中,Panci等人[95]将文本图像建模为随机场,通过盲反卷积算法[27]去除模糊。Pan等人[94]则利用基于强度和梯度的L0正则化先验来对文本图像进行去模糊。最近,深度学习方法,如Hradiš等人[40]提出的方法,已被证明能有效去除离焦和运动模糊。Xu等人[147]采用基于GAN的模型,学习特定类别的先验知识,设计了一个多类GAN模型以及一种新颖的损失函数,适用于人脸和文本图像。图18展示了几个非深度学习方法[16,17,18,94,142,145,163]和基于深度学习的方法[40]的去模糊结果,表明[40]在文本图像去模糊方面取得了更好的效果。
8.3 立体图像去模糊
立体视觉已被广泛用于实现深度感知[30]和3D场景理解[25]。当将立体相机安装在移动平台上时,振动会导致模糊,从而对后续的立体计算产生负面影响[110]。为了解决这一问题,Zhou等人[166]提出了一种深度立体去模糊方法,利用深度信息以及两幅立体图像中对应像素的变化信息。
深度信息有助于估计空间变化的模糊,因为它提供了先验知识:在平移运动的情况下(这是常见的现实场景),较近的点比远处的点更模糊。此外,两幅立体图像中对应像素的模糊程度不同,这使得可以在最终的去模糊图像中使用更清晰的像素。除了上述任务外,其他特定领域的去模糊任务包括从单张模糊图像中提取视频序列[47,99]、合成高帧率清晰帧[113],以及联合去模糊和超分辨率[161]。
9 挑战与机遇
尽管图像去模糊算法在基准数据集上取得了显著进展,但从现实世界的模糊输入中恢复清晰图像仍然具有挑战性[86,122]。在本节中,我们总结了关键的局限性,并讨论了可能的方法和研究机会。
现实世界数据
去模糊算法在现实世界图像上表现不佳的主要原因有以下三点:
-
合成数据与真实模糊之间的差距
大多数基于深度学习的方法需要成对的模糊和清晰图像进行训练,而模糊输入通常是人工合成的(如通过公式3和15)。然而,这些模糊模型过于简化,无法完全模拟现实世界中的复杂模糊情况[10,14,154]。在合成测试样本上表现优异的模型,在现实世界图像上往往表现较差。- 解决方法:
- 构建更好的成像系统(例如,使用不同曝光时间拍摄场景)以生成更高质量的训练数据[105]。
- 开发更逼真的模糊模型,用于生成更贴近真实的训练数据。
- 解决方法:
-
多重退化因素
现实世界的图像不仅受到模糊的影响,还受到量化误差、传感器噪声和其他因素(如低分辨率)的影响[114,161]。- 解决方法:
开发统一的图像恢复模型,从受多种干扰因素影响的输入中恢复高质量图像。
- 解决方法:
-
领域特定图像的特殊性
在通用图像上训练的去模糊模型可能在特定领域的图像(如人脸或文本)上表现不佳,因为这些领域需要保留特定的身份特征(如人脸身份或文本字符)。- 解决方法:
针对特定领域(如人脸和文本)设计专门的去模糊模型。
- 解决方法:
损失函数
尽管文献中提出了许多损失函数,但对于特定场景如何选择合适的损失函数仍不明确。
- 问题示例:
表7显示,在GoPro数据集上,使用L1损失训练的去模糊模型可能比使用L2损失的模型表现更好。然而,当结合感知损失时,使用L1和感知损失的模型效果反而不如使用L2和感知损失的模型。 - 挑战:
不同损失函数的效果因任务和数据特性而异,如何选择最优组合仍是未解的问题。
评估指标
目前最常用的图像去模糊评估指标是PSNR和SSIM。
- 问题:
PSNR与均方误差(MSE)密切相关,倾向于偏好过度平滑的预测结果,因此这些指标无法准确反映感知质量。有时,具有较低PSNR和SSIM值的图像可能视觉质量更好[63]。 - 改进方向:
平均意见得分(MOS)是一种有效的感知质量评估方法,但需要用户研究,难以普遍应用。因此,开发与人类视觉响应一致的评估指标仍是一个挑战。
数据与模型
数据和模型在获得良好的去模糊结果中起着重要作用。
-
高质量数据的重要性
在训练阶段,高质量数据对于构建强大的去模糊模型至关重要。然而,收集大规模高质量数据集非常困难,通常需要使用两台相机(适当配置)捕捉真实成对的训练样本,导致数据量少且多样性不足。- 解决方法:
虽然生成合成数据更容易,但基于此类数据开发的去模糊模型通常表现不如基于高质量现实世界样本的模型。因此,构建大规模高质量数据集是一个重要且具有挑战性的任务。此外,高质量数据集应包含多样化场景(如物体类型、运动、场景和分辨率)。
- 解决方法:
-
模型设计的自动化探索
当前的去模糊网络主要基于经验知识设计。最近的神经架构搜索方法(如AutoML [69,97,168])也可以应用于去模糊任务。此外,Transformer[133]在各种计算机视觉任务中取得了巨大成功,如何设计更强大的基于Transformer的骨干网络可能是一个机会。
计算成本
由于当前许多移动设备支持捕捉4K超高清图像和视频,我们测试了几种最先进的基于深度学习的去模糊方法。然而,我们发现大多数方法无法快速处理4K分辨率图像。例如,在单个NVIDIA Tesla V100 GPU上,Tao等人[131]、Nah等人[86]和Zhang等人[154]分别需要约26.76秒、28.41秒和31.62秒才能生成一张4K去模糊图像。因此,高效恢复高质量UHD图像仍然是一个开放的研究课题。
- 现状:
大多数现有的去模糊网络是在配备高端GPU的桌面或服务器上评估的,但在移动设备上直接开发高效的去模糊算法需要大量努力。 - 最新进展:
Kupyn等人[60]提出了一种基于MobileNet的模型,实现了更高效的去模糊。
无配对学习
当前的深度去模糊方法依赖于清晰图像和其模糊对应物的配对数据。然而,合成模糊图像无法代表现实世界模糊的范围。为了利用无配对样本图像,Lu等人[72]和Madam等人[75]最近提出了两种无监督领域特定去模糊模型。进一步改进半监督或无监督方法以学习去模糊模型似乎是一个有前途的研究方向。