图像去模糊是低级计算机视觉中的一个经典问题,其目的是从模糊的输入图像中恢复出清晰的图像。深度学习的进步已经在解决这个问题上取得了重大进展,并且已经提出了大量的去模糊网络。本文对最近发表的基于深度学习的图像去模糊方法进行了全面而及时的调查,旨在为社区提供有用的文献综述。我们首先讨论图像模糊的常见原因,介绍基准数据集和性能指标,并总结不同的问题公式。接下来,我们根据结构、损失函数和应用对卷积神经网络(CNN)的方法进行了分类,并进行了详细的回顾和比较。此外,我们还讨论了一些特定领域的去模糊应用,包括人脸图像、文本和立体图像对。最后,我们讨论了主要挑战和未来的研究方向。
图像去模糊是底层计算机视觉中的经典任务,已经引起了图像处理和计算机视觉界的关注。图像去模糊的目标是从模糊的输入图像中恢复出清晰的图像,其中的模糊可能是由各种因素引起的,如聚焦不足、相机抖动或目标快速运动(Abuolaim and Brown 2020;Chen and Shen 2015;康2007;Sun etal. 2015)。图1给出了一些例子。非深度学习图像去模糊方法通常将任务模拟为一个反滤波问题,其中模糊图像被建模为与模糊核卷积的结果,要么是空间不变的,要么是空间变化的。一些早期的方法假设模糊核是已知的,并采用经典的图像反卷积算法,如Lucy-Richardson或Wiener反卷积,带或不带Tikhonov正则化,以恢复清晰的图像(Schmidt et al. 2013;Szeliski 2010;Xu et al. 2014)。另一方面,盲图像去模糊方法假设模糊核是未知的,旨在同时恢复清晰图像和模
糊核本身。由于该任务是病态的,因此使用各种附加约束对解决方案进行正则化 ,而这些非深度学习方法在某些情况下表现良好,但在更复杂但常见的场景(如强运动模糊)中通常表现不佳。
深度学习技术的最新进展彻底改变了计算机视觉领域;在许多领域取得了重大进展,包括图像分类(He et al . 2016;Simonyan and Zisserman 2014)和目标检测(He et al . 2017;Isola等人2017;Ren等人2015;Zhu et al . 2017)。图像去模糊也不例外:对于单个图像和视频去模糊,已经开发了大量的深度学习方法,并且已经推进了目前的技术水平。然而,引入不同网络设计的新方法使得获得该领域的快速概述具有挑战性。本文旨在通过提供最新进展的调查来填补这一空白,并作为新研究人员的参考点。具体来说,我们将重点讨论最近发表的基于深度学习的图像和视频去模糊方法。本文的目的是:
回顾图像去模糊的基础,包括问题定义、模糊的原因、去模糊的方法、质量评估指标和性能评估的基准数据集。
讨论单幅图像和视频去模糊深度学习模型的新发展,并提供对现有方法进行分类的分类法。
分析图像去模糊的挑战,讨论研究机会。
本文组织如下。在第2节中,我们讨论了问题的表述,模糊的原因,去模糊的类型,和图像质量指标。第3节和第4节分别介绍了基于cnn的非盲和盲图像去模糊方法。第5节讨论了在深度去模糊方法中应用的损失函数。我们分别在第6节和第7节中介绍了公共基准数据集和评估。在第8节中,我们回顾了三种特定领域的去模糊方法,用于人脸,文本和立体图像。
最后,我们讨论了该研究领域面临的挑战和未来的机遇。
高斯卷积、混合模糊
全参考度量与无参考度量 (有无真实图像进行对比)
3 非盲去模糊
图像去模糊的目标是从给定的模糊图像Ib中恢复潜在图像Is。如果给出了模糊核,这个问题也被称为非盲去模糊。即使有了模糊核,由于传感器噪声和高频信息的丢失,这项任务也是具有挑战性的。
一些非深度方法使用自然图像先验,例如全局Krishnan和Fergus(2009)和局部Zoran和Weiss(2011)图像先验,无论是在空间域Ren等人(2017)还是在频域Kruse等人(2017)中重建锐利图像。为了克服不希望的环形伪影,Xu等人(2014)和Ren等人(2018)结合了空间反卷积和深度神经网络。此外,已经提出了几种方法来处理饱和区域(Cho et al. 2011;Whyte et al. 2014)以及去除由图像噪声引起的不需要的伪影(Kheradmand and Milanfar 2014;Nan et al. 2020)。 我们在表1中总结了现有的基于深度学习的非盲方法。这些方法可以大致分为两组:第一组使用反卷积,然后去噪,而第二组直接使用深度网络。
4.1 网络输入和帧聚合
单幅图像去模糊网络将单幅模糊图像作为输入,并生成相应的去模糊结果。视频去模糊方法以多帧作为输入,并在图像或特征域中聚合帧信息。图像级聚合算法,例如Su等人(2017),将多个帧堆叠作为输入,并估计中心帧的去模糊结果。另一方面,特征级聚合方法,例如Zhou等人(2019)和Hyun Kim等人(2017),首先从输入帧中提取特征,然后融合特征以预测去模糊结果。
残差层为了避免在训练过程中梯度消失或爆炸,使用全局残差层直接连接图像区域内的低级和高级层 去模糊(Kupyn等人,2018;Nah et al. 2017;Zhang et al.2018)。使用这种架构的一个代表性方法是DeblurGAN Kupyn等人(2018),其中将去模糊网络的输出添加到输入图像中以估计锐利图像。在这种情况下,该架构相当于学习模糊图像和清晰图像之间的全局残差。局部ResBlock使用局部残差层,类似于ResNet中的残差层He等人(2016),这些被广泛用于图像去模糊网络(Gao等人,2019;Hyun Kim等。2017;Kupyn等人2018;Nah et al. 2017;Nimisha 等 ,2017;Tao et al. 2018)。 两种残余层,局部和全局,经常被结合起来以获得更好的性能。
使用密集连接有助于解决梯度消失问题,改善特征传播,减少参数数量。Purohit和Rajagopalan(2019)提出了一种由区域自适应模块组成的区域自适应密集网络,用于学习模糊图像中的空间变化偏移。这些区域自适应模块被整合到一个密集连接的自编码器架构中。Zhang等人(2020)和Gao等人(2019)也应用密集层来构建他们的去模糊网络,其中使用DenseBlocks代替CNN层或ResBlocks。
注意层注意层可以帮助深度网络集中在最重要的图像区域去模糊。
Shen等人(2019)提出了一种基于注意力的深度去模糊方法,该方法由三个独立的分支组成,分别从前景、背景和全局去除模糊。由于包含人的图像区域通常是最感兴趣的,注意力模块检测人的位置,使用人类感知地图的指导来消除图像的模糊。其他方法利用注意力来提取更好的特征图,例如,使用自注意来生成非局部增强的特征图Purohit和Rajagopalan(2019)。
4.3 网络架构
我们将用于图像去模糊的最广泛使用的网络架构分为五组:深度自编码器(DAE)、生成对抗网络(GAN)、级联网络、多尺度网络和重模糊网络。我们将在下面的章节中讨论这些方法。
深度自编码器(Deep Auto-Encoders, DAE)深度自编码器首先提取图像特征,然后解码器根据这些特征重建图像。对于单幅图像去模糊,许多方法使用带有残差学习技术的U-Net架构。(Gao等,2019;Nimisha等,2017;Shen等,2018;Sim和Kim 2019;Tao et al. 2018)。在某些情况下,额外的网络有助于利用额外的信息来指导U-Net。例如,Shen等人(2018) 提出一种人脸分析/分割网络来预测人脸标签作为先验,并使用模糊图像和预测的语义标签作为U-Net的输入。其他方法通过使用多个U-Nets来获得更好的性能。Tao等人(2018)分析了不同的U-Nets和DAE,并提出了一种尺度循环网络来处理模糊图像。第一个U-net获得粗去模糊图像,将其送入另一个U-Net以获得最终结
果。Shen等人(2020)的工作结合了这两种思想,使用去模糊环网络获得粗糙的去模糊图像,然后将其输入人脸解析网络以生成语义标签。最后,将粗去模糊图像和标签送入U-Net,得到最终的去模糊图像。
生成对抗网络(GenerativeAdversarialNetworks, GAN)已广泛应用于图像去模糊(Kupyn等人,2018,2019;Nah et al.2017;Shen等人,2018)。大多数基于gan的去模糊模型都采用相同的策略:生成器(图7)生成清晰的图像,使得鉴别器无法将其与真实的清晰图像区分开来。Kupyn等人(2018)提出了DeblurGAN,这是一种用于运动去模糊的端到端条件GAN。DeblurGAN生成器包含两步卷积块、九个残差块和两个转置卷积块,用于将模糊图像转换为相应的清晰图像。该方法进一步扩展到DeblurGAN-v2Kupyn等人(2019),该方法采用相对论性条件GAN和双尺度鉴别器,该鉴别器由Isola等人(2017)的局部和全局分支组成。生成器的核心块是一个特征金字塔网络,提高了效率和性能。Nah等人(2017)和Shen等人(2018)使用对抗性损失来生成更好的去模糊图像。
级联网络级联网络由多个模块组成,这些模块依次连接在一起,形成更深层次的网络结构。级联网络可以分为两组。第一种方法在每个级联中使用不同的架构。例如,Schuler et al(2015)提出了一个两级联网络,如图9所示。第一阶段的输入是模糊图像,去模糊输出被送入第二阶段来预测模糊核。第二组在每个级联中重新训练相同的结构以生成去模糊的图像。前几个阶段的去模糊图像被输入到相同类型的网络中,以产生更精细的去模糊结果。这种级联方案可用于几乎所有的去模糊网络。虽然该策略获得了更好的性能,但CNN参数的数量明显增加。为了减少这些,最近的方法在每个级联中共享参数Pan等(2020)。
输入图像的不同尺度描述互补信息(Denton et al . 2015;Eigen等人2014;Xia et al . 2016)。多尺度去模糊网络的策略是首先恢复低分辨率去模糊图像,然后逐步生成高分辨率的清晰结果。Nah等人(2017)提出了一种多尺度去模糊网络来去除单幅图像中的运动模糊(图10)。在一种由粗到精的方案中,提出的网络首先生成1/4和1/2分辨率的图像,然后在原始尺度下估计去模糊图像。
许多深度去模糊方法使用多尺度架构(Gao等人2019;Purohit等2019;图11基于重模糊架构的单幅图像去模糊深度网络Zhang等人(2020)改进了不同尺度的去模糊,例如,在Gao等人(2019)中使用嵌套跳跃连接,或增加不同尺度的网络连接,例如Tao等人(2018)中的循环层。
rebluring Networks可以合成额外的模糊训练图像(Bahat et al . 2017;Zhang et al . 2020)。Zhang等人(2020)提出了一个框架,其中包括学习模糊GAN (BGAN)和学习去模糊GAN (DBGAN)。该方法分别学习将清晰图像转换为模糊图像和从模糊图像中恢复清晰图像。Chen等人(2018)引入了用于视频去模糊的reblur2deblur框架。将三幅连续的模糊图像输入到该框架中以恢复清晰图像,然后利用这些图像计算光流并估计模糊核以重建模糊输入。
U-Net架构已被证明对图像去模糊有效;(2018)和低级视觉问题。用于有效图像去模糊的替代骨干架构包括Resblocks级联Kupyn等人(2018)或Denseblocks Zhang等人(2020)。在选择主干之后,深度模型可以通过几种方式进行改进。多尺度网络Nah等人(2017)以从粗到精的方式去除不同尺度上的模糊,但Zhang等人(2019)的计算成本增加。 类似地,级联网络通过多个去模糊阶段恢复更高质量的去模糊图像。去模糊图像被转发到另一个网络,以进一步提高质量。主要区别在于,多尺度网络中的去模糊图像是中间结果,而级联架构中每个去模糊网络的输出可以单独视为最终的去模糊输出。通过将多尺度网络视为级联网络中的单个阶段,也可以将多尺度体系结构和级联网络结合起来。
去模糊的主要目的是提高图像质量,这可以通过PSNR和SSIM等重建指标来衡量。然而,这些指标并不总是与人类的视觉感知一致。可以训练gan来生成去模糊的图像,根据鉴别器网络,这些图像被认为是真实的(Kupyn等人,2018,2019)。对于推理,只需要生成器。基于gan的模型通常在失真指标(如PSNR或SSIM)方面表现较差。
当训练样本数量不足时,可以使用rebluring网络来生成更多数据(Chen et al. 2018;Zhang等人,2020)。该架构由学习模糊和学习去模糊模块组成。上面讨论的任何一个深度模型都可以用来合成更多的训练样本,创建原始锐利图像的训练对和learn-to-blur模型的输出。虽然这个网络可以合成无限数量的训练样本,但它只对训练样本中存在的那些模糊效果进行建模。
对于多帧输入的图像去模糊来说,像素不对齐的问题是一个挑战。对应关系是通过使用光流或几何变换计算连续帧中的像素关联来构建的。例如,一对有噪声和模糊的图像可以通过光流Gu et al.(2021)用于图像去模糊和patch对应。当应用深度网络时,可以通过提供多个图像作为输入并通过3D卷积Zhang等人(2018)进行处理来联合处理对齐和去模糊。
5 损失函数
人们提出了各种损失函数来训练深度去模糊网络。在早期的深度去模糊网络中,基于像素的内容损失函数被广泛用于测量重建误差。然而,像素损失并不能准确地衡量去模糊图像的质量。这启发了其他损失函数的发展,如任务特定损失和对抗损失,用于重建更现实的结果。在本节中,我们将回顾这些损失函数。
像素损失函数计算去模糊图像与地面真值之间逐像素的差异。两个主要的变体是平均绝对误差(L1损耗)和均方误差(L2损耗),定义为:
其中Is(x,y)和Idb(x,y)分别为位置(x,y)处的清晰图像和去模糊图像的值。像素损失引导深度去模糊网络生成接近真实像素值的清晰图像。大多数现有的深度去模糊网络(Chakrabarti 2016;Nah等人应用L2损耗,因为它导致高PSNR值。一些模型被训练来优化L1损失(Nimisha et al . 2017;Xu et al . 2017;Zhang et al . 2020)。然而,由于像素损失函数忽略了远程图像结构,使用该损失函数训练的模型往往会产生过度平滑的结果(Kupyn等人(2019))。
感知损失函数Johnson等(2016)也被用于计算图像之间的差异。与像素损失函数不同,感知损失比较的是高级特征空间的差异,例如用于分类训练的深度网络的特征,例如VGG19 Simonyan和Zisserman(2014)。损失定义为:
对抗损失函数
对于基于gan的去模糊网络,一个生成器网络G和一个鉴别器网络D被联合训练,使得由G生成的样本可以骗过D 建模为具有值函数V(G, D)的最小-最大优化问题:
其中I和Ib分别代表清晰和模糊的图像。为了引导G生成逼真的清晰图像,使用对抗损失函数:
其中D(G(Ib))为去模糊图像为真实图像的概率。基于gan的深度去模糊方法已应用于单幅图像和视频去模糊(Kupyn等人2018,2019;Nah等人2017;Shen et al . 2018;Zhang et al . 2018)。与像素和感知损失函数相比,对抗损失直接预测去模糊图像是否与真实图像相似,并产生逼真的清晰图像。
相对论性损失与对抗性损失有关,对抗性损失可表示为:
其中D(·)是输入是实数图像的概率,C(·)是通过鉴别器捕获的特征,σ(·)是激活函数。在训练阶段,只有Eq. 11的第二部分更新了生成器G的参数,而第一部分只更新了鉴别器。???
为了训练更好的生成器,提出了相对论损失来计算生成的图像是否比合成图像更真实。Jolicoeur-Martineau(2018)。
基于该损失函数,Zhang等(2020)将标准的对抗性损失替换为相对论性损失:
其中E(·)表示对一批图像的平均操作。C(·)是通过鉴别器捕获的特征,σ(·)是激活函数。生成器由相对论性损失函数更新
其中Ir表示实像。Kupyn等人(2019)提供的方法也应用了该损失函数来提高图像去模糊的性能。
由于光流能够表示相邻两帧之间的运动信息,一些研究通过估计光流来消除运动模糊。Gong等(2017)构建了一个CNN,首先从模糊图像中估计运动流,然后根据估计的流场恢复去模糊图像。为了获得成对的训练样本,他们模拟运动流来生成模糊图像。Chen等人(2018)引入了一个reblur2deblur框架,其中三个连续的模糊图像被输入到去模糊子网。然后利用三幅去模糊图像之间的光流来估计模糊核并重建输入。
不同损失函数的优缺点一般来说,上述所有损失函数都有助于图像去模糊的进程。然而,他们的特点和目标不同。像素损失产生的去模糊图像在像素测量方面接近清晰图像。不幸的是,这通常会导致过度平滑。感知损失与人类感知更加一致,但与真实的清晰图像仍有明显差距。对抗损失和光流损失函数分别用于生成逼真的去模糊图像和模拟运动模糊。然而,它们不能有效地提高PSNR/SSIM的值,或者只适用于运动模糊图像。多个损失函数也可以用作加权和,权衡它们不同的性质。
数据集
在本节中,我们将介绍用于图像去模糊的公共数据集。高质量的数据集应该反映真实场景中所有不同类型的模糊。我们还介绍了特定领域的数据集,例如人脸和文本图像,适用于特定领域的去模糊方法。表4给出了这些数据集的概述。
为了构建图像去模糊数据集,Levin et al(2009)将相机安装在三脚架上,通过锁定z轴旋转手柄并允许在X和y方向上运动来捕获实际相机抖动的模糊。
使用此设置捕获包含4张大小为255 × 255的清晰图像和8个均匀模糊核的数据集。
用于评估单个图像、视频和特定领域去模糊算法的代表性基准数据集
Sun et al(2013)通过使用来自Sun and Hays(2012)的80张高分辨率自然图像扩展了Levin et al(2009)的数据集。应用Levin等人(2009)的8个模糊核,得到640张模糊图像。与Levin等人(2009)类似,该数据集只包含均匀模糊的图像,不足以训练鲁棒CNN模型。
Köhler等人。数据集Köhler等人(2012)为了模拟非均匀模糊,使用Stewart平台(即机械臂)记录6D摄像机运动并捕获打印图像。有4个潜在的锐利图像和12个相机轨迹,导致总共48个非均匀模糊图像。
Lai等。数据集Lai等人(2016)提供了一个数据集,其中包括使用均匀模糊核和6D相机轨迹生成的100张真实图像和200张合成模糊图像。该数据集中的图像涵盖了各种场景,例如户外、人脸、文本和低光图像,因此可用于评估各种设置下的去模糊方法。
GoPro数据集Nah等人(2017)创建了一个大规模的数据集,通过帧平均来模拟现实世界的模糊。通过在一段时间间隔内整合多张即时和清晰的图像,可以生成一张运动模糊图像:
式中g(·)为相机响应函数(CRF), T为相机曝光周期。而不是对卷积核进行建模,而是对M个连续的清晰帧进行平均,生成一个模糊的图像:
使用GoPro Hero4 Black相机以240fps的速度拍摄的清晰图像,在不同持续时间的时间窗口中进行平均,以合成模糊图像。时间窗口中心的清晰图像用作地面真值图像。GoPro数据集已被广泛用于训练和评估深度去模糊算法。该数据集包含3,214对图像,分为训练集和测试集,分别包含2,103对和1,111对。
Shen等人(2019)主要关注行人和街道场景,创建了一个运动模糊数据集,其中包括相机抖动和物体运动。该数据集包括6,397和2,025对,分别用于训练和测试。与GoPro数据集Nah等人(2017)类似,HIDE数据集中的模糊图像通过平均11个连续帧来合成,其中中心帧用作清晰图像。
为了在真实模糊图像上训练和测试深度去模糊方法,Rim等人(2020)创建了RealBlur数据集,该数据集由两个子集组成。第一个是RealBlur-J,它包含相机JPEG输出。第二个是RealBlur-R,它包含RAW格式图像。RAW图像是通过使用白平衡、去马赛克和去噪操作生成的。该数据集共包含9476对图像。
评估基于事件的去模糊方法的性能(Jiang等人,2020;Lin et al. 2020;Jiang等人(2020)使用DAVIS240C相机创建Blur-DVS数据集。首先用慢速相机运动捕获图像序列,并通过平均7个相邻帧来合成2,178对模糊和清晰的图像。训练集和测试集分别包含1782对和396对。该数据集还提供了740张真实的模糊图像,没有清晰的ground-truth图像。
7性能评估
在本节中,我们讨论了具有代表性的深度去模糊方法的性能评估。我们在表5中总结了代表性的方法,比较了三种流行的单图像去模糊数据集,GoPro Nah等人(2017)数据集,Köhler等人(2012)和Shen等人的数据集的性能请注意,所有结果均来自各自的论文。对于GoPro数据集上的单幅图像去模糊结果和DVD数据集上的视频去模糊结果,我们额外提供了条形图,以便于比较,如图13和图16所示。 (2018a)开发的方法是基于CNN和RNN的三种早期深度去模糊网络,表明基于深度学习的方法取得了有竞争力的结果。Gao等人(2019)使用粗到精的方案设计了多尺度网络,与单尺度
去模糊网络相比,它们获得了更好的性能,因为粗去模糊网络为更高的分辨率提供了更好的先验。除了多尺度策略外,gan还被用于生成更逼真的去模糊图像(Kupyn等人,2018,2019;Zhang等人,2020)。然而,在GoPro数据集Nah等人(2017)上,基于gan的模型在PSNR和SSIM指标方面取得了较差的结果,如表5所示。Puro-hit和Rajagopalan(2019)将注意力机制应用于去模糊网络,并在GoPro数据集上实现了最先进的性能。Shen等人(2019)的数据集Shen等人(2019)的结果证明了该方法的有效性。网络使用ResBlocks Nah等人(2017)和DenseBlocks (Gao等人,2019);Zhang等人,2020)也比以前直接堆叠卷积层的网络实现了更好的性能(Gong等人,2017;Sun et al.2015)对于非超高清运动去模糊,多补丁体系结构具有比多尺度和基于gan的体系结构更好的恢复图像的优
点。对于其他架构,如多尺度网络,图像的小规模版本提供的细节较少,因此这些方法无法显着提高性能。
图12显示了来自GoPro数据集的单幅图像去模糊的示例结果。我们比较了两个多尺度方法(Nah et al. 2017;Tao等人,2018)和两种基于gan的方法(Kupyn等人,2019;Zhang等人,2020)在实验中。
尽管模型架构存在差异,但所有这些方法在该数据集上都表现良好。同时,使用相似架构的方法可能会产生不同的结果,例如Tao等人和Nah等人(2017),他们基于多尺度架构。Tao等人在不同尺度之间使用循环操作,获得了更清晰的去模糊结果。
我们还使用LPIPS指标分析了GoPro数据集上的性能。代表性方法的结果见表6。在这一指标下,Tao等人(2018)的表现不如Nah等人(2017)和Kupyn等人(2018)。这是因为LPIPS测量的是感知相似性,而不是像L1这样的逐像素相似性度量。具体而言,Tao等人(2018)在GoPro数据集的PSNR和SSIM方面优于Nah等人(2017)和Kupyn等人(2018)。结果表明,当使用不同的指标时,我们可能会得出不同的结论
因此,使用不同的定量指标来评估去模糊方法是至关重要的。由于评估指标优化了不同的标准,因此设计选择是任务相关的。在图像重建任务中存在感知与失真的权衡,并且已经证明这两种测量方法彼此不一致,参见Blau和Michaeli(2018)。为了公平地评估方法,可以设计一个组合成本函数,包括PSNR、SSIM、FID、LPIPS、NIQE等措施,并进行用户研究。
为了分析不同损失函数的有效性,我们设计了几个resblock的公共主干(由DeblurGAN-v2提供)。不同的损失函数,包括L1、L2、感知损失、GAN损失和RaGAN损失Zhang等(2020),以及它们的各种组合用于训练。与DeblurGAN-v2 Kupyn等人(2019)的设置类似,我们在GoPro数据集上训练每个模型200个epoch。学习率调度器对应DeblurGAN-v2中的学习率调度器。实验结果见表7。总的来说,评估的模型在结合重建和感知损失函数时表现更好。然而,使用基于gan的损失函数并不一定能提高PSNR或SSIM,这与之前的综述Ledig等人(2017)的研究结果一致。此外,使用GAN损耗或RaGAN损耗的相同模型实现了相似的去模糊性能。
为了分析盲和非盲去模糊方法之间的性能差距,我们合成了一个具有ground-truth模糊核的新数据集。具体来说,我们使用了Zhang等人(2020)中应用的模糊核(包括4个各向同性高斯核,Zhang等人(2018)的4个各向异性高斯核,以及Boracchi和Foi 2012的4个运动模糊核);Levin et al. 2009)基于GoPro数据集Nah et al.(2017)的清晰图像生成模糊图像。生成方法基于Eq. 3,使用高斯噪声。模糊核和模糊图像是非盲图像去模糊方法的输入(DWDN Dong et al. (2020))和USRNet Zhang等人(2020)),而盲图像去模糊方法(MSCNN Nah等人(2017)和SRN Tao等人(2018))的输入
只是模糊图像。表9和图15分别给出了定量和定性结果。总体而言,如果提供了真值模糊核,非盲图像去模糊方法可以获得比盲图像去模糊方法更好的性能。为了更好地理解不同训练数据集的作用,我们在三个不同的公共数据集(RealBlur-J Rim等人,2020年,GoPro Nah等人,2017年,BSD-B Martin等人,2001年)上训练SRN模型Tao等人(2018);Rim et al. 2020)分别进行了训练。此外,我们还对“RealBlur-J + GoPro”、“RealBlur-J + BSD-B”、“RealBlur-J + BSD-B +GoPro”的组合进行了SRN模型的训练。结果如表13所示。使用不同数据的模型比只使用一种训练数据的模型表现更好。特别是使用三个数据集组合的模型在RealBlur-J测试数据集上实现了最高的PSNR和
SSIM值。考虑到现代移动设备允许捕获超高清(UHD)图像,我们合成了一个新的数据集来研究不同架构对UHD图像去模糊的性能。我们使用索尼RX10相机分别捕捉500张和100张4K分辨率的清晰图像作为训练集和测试集。接下来,我们使用3D相机轨迹生成模糊核,并通过卷积锐利图像和大型模糊核(尺寸为111 ×111、131 ×131、151 ×151、171 ×171、191 ×191)来合成相应的模糊图像。我们使用两个多尺度网络(MSCNN, SRN),两个基于gan的网络AN,DeblurGAN-v2)和一个多补丁网络(DMPHN)进行实验。表14显示了这些具有代表性的去模糊方法的结果。结果表明,UHD图像去模糊是一项更具挑战性的任务,多尺度架构在PSNR和SSIM方面具有更好的性能。对于UHD运动去模糊,多尺度架构实现了更好的性能。由于UHD图像具有更高的分辨率,1/4比例的下采样版本仍然包含足够的细节。多尺度架构以原始分辨率的1/4的UHD模糊图像作为输入,生成相应的清晰版本。在训练阶段,1/4分辨率的图像可以为训练提供额外的信息,从而提高去模糊网络
的性能。
为了分析不同架构对散焦去模糊的性能,我们创建了另一个数据集并进行了大量实验。具体来说,我们使用索尼RX10相机捕捉了500对清晰和模糊的图像用于训练,100对清晰和模糊的图像用于测试。图像分辨率为900×600像素。同样,在该数据集上评估了两个多尺度网络(MSCNN, SRN),两个基于gan的网络(DeblurGAN, DeblurGAN-v2)和一个多补丁网络(DMPHN)。表15显示了上述方法的结果。与基于平均的运动去模糊相比,基于gan的结构可以获得更好的散焦去模糊性能。
多尺度和多补丁架构在PSNR和SSIM方面没有明显的改善。对于散焦去模糊,结果表明,这两种网络(带GAN框架和不带GAN框架)在PSNR和SSIM方面没有显着差异。然而,对于运动去模糊,基于gan的架构产生较低的PSNR和SSIM值。这可能归因于基于gan的架构使用对抗损失函数关注整个图像。相比之下,没有gan的方法考虑像素级误差(L1, L2),因此忽略整个图像。我们在表10中提供了代表性方法的运行时比较
人脸去模糊,文本去模糊,立体图像去模糊
尽管图像去模糊算法在基准数据集上取得了重大进展,但从现实世界的模糊输入中恢复清晰图像仍然具有挑战性(Nah et al. 2017;Su et al. 2017)。在本节中,我们总结了关键局限性,并讨论可能的方法和研究机会。
真实世界的数据去模糊算法在真实世界的图像上表现不佳主要有三个原因。首先,大多数基于深度学习的方法需要对模糊和清晰的图像进行配对训练,其中模糊的输入是人工合成的。然而,由于模糊模型(例如,Eq. 3和15)过于简化,这些合成图像与现实世界的模糊图像之间仍然存在差距(Brooks and Barron 2019;Chen等人2018;张等人,2020)。在合成模糊上训练的模型在合成测试样本上取得了优异的性能,但在真实图像上的表现往往更差。获得更好的训练样本的一种可行方法是构建更好的成像系统Rim等人(2020),例如,通过使用不同的曝光时间捕捉场景。另一种选择是开发更逼真的模糊模型,可以合成更逼真的训练数据。
其次,真实世界的图像不仅会因模糊伪影而损坏,还会因量化、传感器噪声和低分辨率等其他因素而损坏(Shen等人,2018;张等人,2018)。解决这个问题的一种方法是开发一个统一的图像恢复模型,从被各种滋扰因素破坏的输入中恢复高质量的图像。
第三,在一般图像上训练的去模糊模型在具有不同特征的域的图像上可能表现不佳。具体来说,对于一般方法来说,在分别保持文本中特定人物或角色的身份的同时,恢复面部或文本的清晰图像是具有挑战性的。
损失函数虽然在文献中已经开发了许多损失函数,但对于特定场景如何使用正确的公式尚不清楚。例如,如表7所示,在GoPro数据集上,用L1损失训练的图像去模糊模型可能比用L2损失训练的模型获得更好的性能。然而,同样是用L1和感知损失函数训练的网络,其性能却比用L2和感知损失函数训练的模型差。
评价指标图像去模糊最常用的评价指标是PSNR和SSIM。然而,PSNR指标与MSE损失密切相关,这有利于过度平滑的预测。因此,这些指标不能准确地反映感知质量。PSNR和SSIM值越低的图像视觉质量越好Ledig et al.(2017)。平均意见评分(Mean Opinion Score, MOS)是一种有效的感知质量度量。然而,这个度量标准不是通用的,不能轻易复制,因为它需要用户研究。因此,推导出与人类视觉反应一致的评价指标仍然具有挑战性。数据和模型数据和模型在获得有利的去模糊结果方面都起着重要的作用。在训练阶段,高质量的数据对于构建强大的图像去模糊模型非
常重要。然而,很难收集到具有ground-truth的大规模高质量数据集。通常,它需要使用两台相机(配置适当)来捕获真实的训练样本对,因此这些高质量数据的数量很少,多样性也很小。虽然使用合成图像生成数据集更容易,但基于此类数据开发的去模糊模型通常比基于高质量真实世界样本构建的去模糊模型表现更差。因此,构建大量高质量的数据集是一项重要而具有挑战性的任务。
此外,高质量的数据集应该包含不同的场景场景,包括物体类型、运动、场景和图像分辨率。去模糊网络模型主要是基于经验知识设计的。最近的神经架构搜索方法,如 AutoML (Liu et al. 2018;Pham et al. 2018;Zoph and Le2017),也可能适用于去模糊任务。此外,transformers
Vaswani et al.(2017)在各种计算机视觉任务中取得了巨大的成功。如何使用Transformer设计更强大的骨干或许是一个机会。
由于目前许多移动设备支持捕获4K UHD图像和视频,我们测试了几种最先进的基于深度学习的去模糊方法。然而,我们发现大多数这些基于深度学习的去模糊方法无法高速处理4K分辨率的图像。例如,在单个NVIDIATesla V100 GPU上,Tao等人(2018)、Nah等人(2017)和Zhang等人(2020)分别需要大约26.76、28.41、31.62秒来生成4K去模糊图像。因此,如何高效地还原高质量的UHD图像仍然是一个有待研究的课题。请注意,大多数现有的去模糊网络都是在配备高端gpu的台式机或服务器上进行评估的。然而,直接在移动设备上开发高效的去模糊算法需要付出巨大的努力。最近的一个例子是Kupyn等人(2019)的工作,他们提出了一种基于mobilenet的模型来实现更有效的去模糊。
Unpaired Learning当前的深度去模糊方法依赖于成对的清晰图像及其模糊对应图像。然而,综合模糊的图像并不能代表现实世界的模糊范围。为了利用未成对的示例图像,Lu et al.(2019)和Madam Nimisha et al.(2018)最近提出了两种无监督的特定领域去模糊模型。进一步改进半监督或无监督的方法来学习去模糊模型似乎是一个很有前途的研究方向。