当前位置:网站首页>Dynamic Scene Deblurring with Parameter Selective Sharing and Nested Skip Connections
Dynamic Scene Deblurring with Parameter Selective Sharing and Nested Skip Connections
2022-08-01 23:21:00 【Wanderer001】
参考 Deblurring with Parameter Selective Sharing and Nested Skip Connections - 云+社区 - 腾讯云
摘要
动态场景去模糊是一项具有挑战性的低水平视觉任务,其中空间变异模糊是由相机抖动和物体运动等多种因素造成的。最近的研究取得了重大进展。通过与参数无关方案和参数共享方案的比较,提出了一种通用的、有效的选择性共享方案,给出了约束去模糊网络结构的一般原则。在每个尺度的子网中,我们提出了一种非线性变换模块的嵌套跳跃连接结构来代替堆叠的卷积层或剩余块。此外,我们建立了一个新的大的模糊/锐化图像对数据集,以获得更好的恢复质量。综合实验结果表明,本文提出的参数选择共享方案、嵌套式跳跃连接结构和新数据集对建立动态场景去模糊新技术具有重要意义。
1、简介
由相机抖动、物体运动或失焦引起的图像模糊是拍照时最常见的视觉假象之一。图像去模糊,即从模糊图像中恢复出清晰的图像,是几十年来的一个重要研究领域。由于不适定的性质,需要特定的假设来建模不同类型的均匀、非均匀和深度模糊。许多自然图像先验被提出用于正则化解空间和推进去模糊研究。
相对于单纯的相机平移或旋转所产生的模糊,动态模糊更具真实感和挑战性,因为空间变异模糊是多种因素共同作用的结果。以往的动态场景去模糊方法通常依靠精确的图像分割掩模来估计对应图像区域的不同模糊核,并采用复杂的运算时间化方法来恢复潜像。最近,人们提出了基于学习的方法,通过替换传统框架中的某些步骤或学习从模糊到潜在图像的端到端映射来促进去模糊过程。
参数选择共享
Nah等人首先提出了“由粗到细”的模糊神经网络,通过逐步地由粗到细的方式恢复清晰图像。该方法建立了具有独立参数的深度神经网络。它没有考虑跨尺度的参数关系。Tao等人提出了一个尺度递归网络,通过共享参数在不同尺度下进行模糊处理。该参数共享方案虽然简洁、紧凑,但忽略了特征的尺度变异特性,这对每个尺度的恢复都是至关重要的。
我们认为规模-递归结构属于一组更广泛的参数选择共享策略。其背后的原理是,图像模糊高度依赖于尺度——当图像向下采样到粗糙尺度时,在精细尺度下的大型模糊可能是不可见的。特定模块执行尺度变量操作,因此不能共享,而其他模块执行类似的尺度不变转换,从共享参数中获益。我们将深入研究这种选择性共享策略,并详细说明为什么特定模块可以共享或不能共享。我们还讨论了跨范围和范围内的各种共享策略。这些发现导致了选择性参数共享的一般原则,有助于未来的模糊系统设计。
嵌套跳跃连接
Skip连接在最近的CNN中被广泛使用。在ResNet和ResBlocks中,经过两个或多个卷积层后将输入添加到输出的短期跳跃连接是在目标检测、去模糊和超分辨率方面产生优异结果的关键因素。通过这种短期跳跃连接,可以在很大程度上克服梯度消失的问题;因此,可以很容易地建立和优化非常深的网络。长时间的跳跃连接在编译码网络中很常见,它将底层的特征映射到顶层。该方案允许信息更灵活地反向传播,并将图像细节从底层传递到顶层,以实现更好的细节重建。
然而,我们注意到,短期和长期跳跃连接都没有相交的路径,因为根据我们在下一小节的分析,它们只考虑一阶剩余学习。相反,我们提出了一个嵌套的跳跃连接结构,它对应于我们的去模糊网络中的转换模块的高阶剩余学习。
数据集
对于训练深度去模糊网络,足够的模糊/锐化图像是必不可少的。GoPro的数据集提供了3214对,但部分图像存在缺陷,可能会对网络训练产生不利影响。因此,我们构建了一个更大、更高质量的数据集。通过克服缺陷来训练更好的去模糊网络。按照[19]的程序,它有5290个模糊/清晰的图像对。我们将仅使用GoPro数据集训练的同一个网络与使用GoPro数据集和我们的数据集一起训练的网络进行比较。实验结果表明,我们的数据集是有益的,无论是在数量和质量。
我们工作的主要贡献如下:
- 我们分析了去模糊网络的参数策略,并提出了一种通用的有原则的参数选择共享方案,该方案具有每个尺度下的子网络的独立模块和共享模块。
- 针对网络中的特征变换模块,我们提出了一种嵌套的跳跃连接结构,对应于各个变换模块中的高阶剩余学习。
- 我们建立了一个更大、更高质量的数据集,拥有5290幅模糊/锐化图像对,以帮助网络训练。它是公开可用的,以促进一般的图像去模糊研究。
2、相关工作
在本节中,我们将简要回顾网络结构中使用的动态场景去模糊方法、CNN参数共享方案和跳跃连接。
动态场景去模糊
在Kim等人的工作之后,动态场景模糊成为了非静态场景的一个易于处理的话题,而模糊是由相机抖动和复杂的物体运动引起的。然而,该方法的性能高度依赖于运动分割的准确性。后来,Kim和Lee假设运动是局部线性变化的,因此提出了一种无分段的方法来处理这个问题。在[20]中,我们使用了一个分割置信度图来减少不同运动区域之间的分割歧义。
最近,有几种方法使用深度学习来更好地解决修复质量和对不同情况的适应性方面的任务。Sun等人利用分类CNN预测局部斑块的模糊方向和强度。利用稀疏模糊核的马尔可夫随机域(MRF)得到稠密运动场。最后用非盲去模糊方法生成潜像。Gong等人利用全卷积网络从模糊图像中估计出密集的非均匀运动流,仍使用[39]方法恢复潜像。Nah等人基于传统的“由粗到细”的优化框架,提出了一种多尺度去模糊CNN,以端到端的方式逐步恢复多尺度的锐化图像。Tao等人对管道进行了改进,建立了具有共享参数的尺度递归结构模型。Zhang等人提出了一个RNN来对空间变化的模糊进行建模,其中RNN的像素加权是从CNN学习来的。
CNN参数共享
尽管在时间和顺序数据处理中被广泛采用,但参数共享仍然是图像算法的关键。事实上,CNN的参数共享包含了大量的上下文信息,但同时保持了模型的大小。它在目标分类、场景解析、目标识别、图像超分辨率、动态场景去模糊等方面都有很好的效果。具体来说,Socher等人首先使用CNN学习平移不变性特征,然后递归地使用相同的网络学习树形结构中的层次特征表示。Pinheiro和Collobert提出了一个由两个或三个具有相同参数的相同cnn组成的循环结构。Liang和Hu将循环连接合并到每个卷积层中,以整合不同层次的上下文信息。Kim等人利用图像超分辨率网络中的深度递归层来增加接收域。Taoetal。利用尺度递归网络,[33]逐步地将潜像从粗尺度恢复到细尺度。
跳跃连接
随着神经网络的不断深入,梯度消失问题严重影响了训练的有效性。许多架构被提出来解决这个问题。 Highway network是最早使用旁通路径训练深度很深的公路网之一。ResNet使用身份映射来跳过一个或多个层,并支持实质上更深层次的网络培训。DenseNet进一步将密集模块中的每一层连接到另一层,以传播所有前面的信息以进行后续处理。尽管在高级视觉任务中取得了成功,skip连接在图像处理中也得到了广泛的应用。在图像/视频恢复中,输入图像经常被添加到重建的图像中,因为通过CNN学习剩余图像要比重建像样的输出容易得多。此外,内部层之间也使用了skip连接,以充分利用不同级别的特性。在U-Net的开创性工作之后,相应的编码器和解码器级之间的跳过连接被广泛地用作光流估计、图像恢复和雨滴去除中像素级回归的有效架构。
3、提出的方法
如图1所示,我们的网络由几个堆叠的编码器-解码器子网络组成,从这些子网络中产生不同尺度的清晰图像,并将其作为输入输入到下一个尺度的子网络中。与[33]中的堆叠重块不同,我们的网络由三种不同的模块组成,分别执行不同的功能。特征提取、非线性变换和特征重构。与[33]相比,我们更好地利用了参数,为非线性转换模块设计了一种新的嵌套跳跃连接结构。
3.1、参数选择共享
虽然这两种方法都是从粗到精逐步恢复清晰图像,但它们利用不同的参数策略来达到目的。[19]中的参数独立方案为每个量表分配独立的参数。但是,它缺乏处理不同规模的约束。[33]中的参数共享方案在不同尺度上使用共享参数约束解空间。关于参数问题,我们考虑两个方面。第一个问题是什么类型的参数可以跨尺度共享。第二个问题是一个scale内不同模块的参数是否可以共享。
参数独立
图2是动态场景中典型的模糊图像。背景建筑大致清晰,但前景人物模糊不清。当我们使用“从粗到细”的框架来执行模糊处理时,应该处理不同的特性。在这里,我们通过在相同位置裁剪11×11块patch来分析图像金字塔中的两个典型区域。
一个是背景建筑的清晰区域,另一个是前景人物的模糊区域。锐区特征相似,因为下采样的锐边仍然是锐的。然而,模糊区域的特征是不同的,因为一个模糊的边缘在缩小后变得尖锐。如果特征提取模块跨尺度共享,则无法同时提取锐化和模糊特征。共享特征提取模块在粗尺度上学习锐特征时,无法提取精细尺度上的模糊特征。
在此基础上,我们放宽了参数共享方案,在子网络的各个阶段为特征提取模块分配独立的参数,使网络能够自动提取出各个尺度上最具鉴别性的特征。如图3所示,对于独立的特征提取模块,我们的参数-ter方案(b)不同于(a)中的尺度-递归模块,特征在编码器部分提取和变换后,特征重构模块逐步将特征重构回锐化图像。由于尺度变异特征是用独立的参数来提取的,相应的特征重构模块也具有独立的参数来处理尺度变异特征。
参数共享
在提取尺度变异特征后,将其转化为相应的锐特征。跨越不同尺度的非线性变换模块执行相同的模糊-锐化变换。因此,参数可以跨尺度共享,这在尺度递归结构[33]中得到了证实。这种跨尺度参数共享方案如图3(b)所示。
在传统的迭代图像去模糊算法的驱动下,我们假设在子网络的各个阶段非线性模块之间也存在尺度内的参数共享。在这种策略下,每个阶段的转换模块共享相同的参数,如对模糊特征迭代应用固定的求解器。如图3(c)所示,子网一个编码器阶段的结构由(b)演化为(c),其中迭代使用相同的模块进行非线性变换。形式上,每个子网中的函数定义为:
其中是第
个尺度的子网络,尺度独立的参数为
,尺度共享的参数为
。在第
个尺度中,以当前模糊图像B i和上采样的第
尺度
恢复后的清晰图像为输入。在这个尺度上产生了清晰的图像
。将其输入第
刻度,作为下一刻度渐进恢复的输入。
3.2、嵌套跳跃连接
他等人通过验证了与期望映射相比,拟合剩余映射更容易优化。Nah等人和Tao等人都选择了ResBlocks作为模糊-锐化特征转换的内部构建块。具体来说,一个ResBlock被定义为:
其中、
、
为第n个残差单元的输入、输出和残差函数。我们将其称为图4(a)所示的一阶残差。假设输入
也是由另一个一阶残差函数产生的,则可将其代入式(2)。经验上,残差的残差拟合比原残差映射更容易。二阶剩余函数表示为
如图4(b)所示,在堆叠的2个重块中,有3个具有一个交叉点的跳跃路径,而不是2个短期跳跃连接。进一步将二阶残差函数扩展到三阶残差函数如
图4(c)为三阶残差函数。递归可以继续推导出更高阶的剩余函数。如图4所示,这些函数是一个嵌套连接结构,在视觉上类似于DenseNet[8]。然而,不同之处在于两个方面。首先,这里的skip连接表示特性求和,而不是通道连接。第二,这里的直接连接数是,与DenseNet相比,
在最后一个卷积层的末端有更多的连接。
可以将高阶残差函数分组到一个嵌套模块中,以改进信息流,更好地处理网络中的梯度消失问题。虽然在[19,33]中堆叠的重块有许多短期跳过连接,但它只是堆叠了一阶剩余函数。不同的是,我们的嵌套模块模拟高阶残差函数,这些残差函数具有复杂的表示能力,并且更容易优化。我们使用这个嵌套的模块来代替在我们的编码器-解码器子网的不同阶段进行非线性转换的堆叠重块。
3.3、网络结构
在[19]和[33]之后,我们利用3种尺度来追求“从粗到细”的策略。因此,三个编译码子网络由独立的特征提取和重构、共享的非线性变换模块构成。与使用内核大小5×5[19,33]不同,我们使用内核大小3×3来控制模型大小,因为2层3×3内核可以覆盖与1层5×5内核相同的接受域,节省了约25%的参数。
默认情况下,每个非线性变换模块由4个处理单元组成,每个处理单元由2个卷积层组成。将特征提取和重构模块分别实现为一个卷积层和转置卷积层。这个默认设置旨在覆盖与[33]相似的接受域。在编码器-解码器子网的每个阶段,我们的模型有17个卷积层,其核尺寸为3×3。
给定N对S尺度的模糊图像和锐化图像,在整个训练集的每个尺度上,最小化恢复图像与ground truth之间的均方误差(Mean Squared Error, MSE):
4、实验
数据集:
与通过将模糊内核与清晰图像进行卷积来生成模糊图像不同,Nah等人通过在高速视频中对连续帧进行平均来合成真实的模糊图像。发布的GoPro数据集包含2103双用于训练,1111双用于评估。如图5所示,GoPro训练集中部分ground truth sharp图像存在缺陷,如噪声严重、平滑区域大、图像模糊明显。为了提高训练性能,我们使用GoPro Hero6和iPhone7以240帧/秒的速度建立了一个遵循[19]程序的新数据集。
我们坚持收集视频的3个原则来克服这些缺陷。首先,相机是稳定的,我们避免记录高速车辆或物体,以确保没有相机运动或物体运动存在于锐利的帧。其次,我们在白天录制户外视频,以保证低噪音。第三,我们只对场景进行了足够的细节采样,避免了大面积的平滑区域,比如天空或者不变的背景。在这些指导下,我们收集了5290幅模糊/锐化图像对。这个新的数据集补充了GoPro的数据集,以帮助动态场景去模糊研究。除非另有说明,以下定量结果均基于GoPro训练数据集进行公平比较。
实现
我们在PC上使用Intel Xeon E5 CPU和NVIDIA P40 GPU来实现我们的算法。在训练过程中,将同一位置的模糊图像和ground truth图像随机裁剪出256×256区域作为训练输入。批处理大小在训练期间设置为16。使用Xavier方法初始化所有权值;偏差初始化为0。网络优化与默认设置使用亚当方法和
。学习速率最初设置为0.0001,使用0.3的幂指数衰减为0。根据我们的实验,4000个世代足以使所有的网络聚合。
4.1、选择参数共享的作用
为了验证所提出的参数选择共享方案的有效性,我们将所提出的模型(模型SE共享)与参数无关方案和参数共享方案进行了比较。参数共享方案(模型共享)是在[33]之后实现的。参数独立方案(Model Indep.)与模型分割具有相同的网络结构,但各尺度参数独立。对于选择共享方案,我们使用了独立的特征提取和重构模块,以及跨不同尺度的共享非线性变换模块。模型SE共享采用了标度内的参数共享,在编译码子网的每个阶段都有共享的非线性变换模块。我们还测试了不带尺度内参数共享(模型SE共享w/o IS)的策略,其中两个非线性变换模块有不同的参数。
我们从这些定量结果中获得了重要的观察结果。首先,参数共享方案(模型共享)确实比参数独立方案(模型独立)性能更好,参数更少。其次,与参数共享方案相比,独立的特征提取和重构模块可以进一步增强系统。第三,规模内参数共享(模型SE共享)与没有规模内参数共享(模型SE共享w/o IS)的性能相当。注意,它只有大约一半的参数。
4.2、跳跃连接的作用
为了演示嵌套跳过连接的有效性,我们将这个结构与几个基线结构进行比较。为了公平比较,所有模型在编译码子网的每个阶段都有8个卷积。模型简单地叠加了8个卷积层。模型ResBlock在每个模块中使用4个ResBlock。模型密集块堆叠在DenseNet[8]之后的2个密集块。模型嵌套表示建议的嵌套跳过连接结构。
如表2所示,model ResBlock的性能优于model Plain。它们都比模型DenseBlock工作得更好,因为增长率被设置为一个小的值,使DenseBlock的输出通道与其他结构相同。从表中可以看出,所提出的嵌套跳跃连接结构具有较好的性能。
4.3、和其他去模糊方法的比较
我们将我们的方法与当前最先进的动态场景去模糊和非均匀去模糊方法在GoPro评估数据集上进行了定量比较,并在更模糊的图像上进行了定性比较。Sun等人和Gong等人对模糊场进行了估计,并采用非盲反褶积方法对锐化图像进行恢复。由于[5]的方法可以处理一般运动而不是局部线性运动,所以我们只将我们的方法与[5]的解进行比较。Nah等人[19]和Tao等人[33]在构建深度网络时分别采用了参数独立性和参数共享方案。Zhang等人提出了一种用于动态场景去模糊的空间变异RNN。GoPro评价数据集的定量结果如表3所示。如表3的最后一列所示,我们还列出了在混合GoPro和我们的数据集上训练的结果。统计数据显示了添加数据集用于训练的优点。
对GoPro评价数据集的可视化比较如图6所示。这些结果是由只在默认GoPro训练数据集上训练的模型生成的。为了测试我们的模型的泛化能力,我们将我们最好的模型应用到更多的图像上。我们从[15]中收集合成的模糊图像,从网上下载模糊图像,并对真实的模糊图像进行采样。如图7所示,我们的模型总体上比[19]和[33]的效果更好。与其他模型相比,我们的模型可以很好地处理不均匀且高度动态的场景,如图7中第一幅和第二幅图像的特写所示。在图7的第三张和第四张图像上,我们的方法比其他方法成功地恢复了更多可识别的文本细节。
5、结论
在这项工作中,我们分析了在去模糊网络中明智地使用参数的一般原则,并提出了一种参数选择共享方案,而不是参数独立和共享方案。针对网络中的非线性变换模块,提出了一种新的嵌套跳跃连接结构。此外,为了训练更好的模型,我们建立了一个大的模糊/清晰的成对数据集。通过采用参数选择共享方案、嵌套跳跃连接结构和新的训练数据集,提出了一种新的动态场景去模糊技术。
边栏推荐
- Three, mysql storage engine - building database and table operation
- Avoid hidden text when loading fonts
- [LeetCode304周赛] 两道关于基环树的题 6134. 找到离给定两个节点最近的节点,6135. 图中的最长环
- 软技能之UML图
- JAX-based activation function, softmax function and cross entropy function
- Calculate the distance between two points
- How do programmers solve online problems gracefully?
- Deep Learning Fundamentals - Numpy-based Recurrent Neural Network (RNN) implementation and backpropagation training
- SQL Server (design database--stored procedure--trigger)
- Access the selected node in the console
猜你喜欢
随机推荐
数据库表设计规则
6133. Maximum number of packets
Additional Features for Scripting
论文解读(GSAT)《Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism》
excel vertical to horizontal
When using DocumentFragments add a large number of elements
The third chapter of the imitation cattle network project: develop the core functions of the community (detailed steps and ideas)
深度学习基础-基于Numpy的循环神经网络(RNN)实现和反向传播训练
Is TCP reliable?Why?
IDEA常用插件
SQL Server (design database--stored procedure--trigger)
6133. 分组的最大数量
drf生成序列化类代码
简单3D渲染器的制作
Solve the port to take up
Check if point is inside rectangle
img 响应式图片的实现(含srcset属性、sizes属性的使用方法,设备像素比详解)
如何使用pywinauto和pyautogui将动漫小姐姐链接请回家
System availability: 3 9s, 4 9s in SRE's mouth... What is it?
excel split text into different rows