Dynamic Scene Deblurring动态场景去模糊,简单来说将一张模糊的图片清晰化
传统方法常常使用上式,这里的b指的是矢量化的模糊图像,s指的是清晰的潜在图像,n指的是噪声,K指的是非均匀模糊矩阵,其每行代表附加到清晰图像以生成模糊像素的局部模糊核。 而这里用的变形卷积的采样点逼近局部模糊核 那么就需要了解这里的几种核心卷积方式 首先是dilated convolutions空洞卷积 首先先是它的用处,在图像分割领域中常见的传统做法像FCN、Unet这种都是卷积+池化,先用sampling池化去减小图像尺寸,因为这样才能使用卷积来保证卷积到的信息视野较大,然后再用upsampling去还原尺寸。但其实sampling这一步存在着损失,这里就可以用空洞卷积。 图一是正常的3×3卷积,(3×3的卷积核)×(3×3的patch),图二就是空洞卷积(空洞率为1)(3×3的卷积核)×(7×7的patch),图三同理,这样做的好处就是在不减小图片尺寸的前提下能使每个卷积核获得更大的视野,也就是卷积输出包含大范围的语义信息。但其实这里也有缺点,这样就损失了局部信息,不过后面好像有提出更新的网络来进行改进。 然后是deformable convolution变形卷积 首先也是它的用处,标准卷积中的采样过于规格化,无法理解一定程度上形变的图形内容,这时候就可以在每个采样点上加一个偏移量,使它不再是规格局部化,相比于空洞卷积,两者具有很高的相似度,但变形卷积会更加灵活一点,能适应不同物体的形状,大小等
整体结构分为四个部分,分别为backbone部分、neck部分、head部分、global skip connection部分。 首先是backbone部分,这部分的输入即为原始的blur image,目的是为了获得雾形特征和内容特征,结构👇 这里的卷积核大小均为3×3,而卷积使用的是上文解释过的空洞卷积,由这个结构得到的输出分为两路,即为雾形特征和内容特征 然后是Neck部分和Head部分 这部分的输入是backbone得到的雾形特征和内容特征,雾化特征走上路,内容特征走下路,首先是下路部分,由两个上面写过的变形卷积组成,而变形卷积所需要的偏移量offset和它的权重则由上路部分给出,上路部分的输入是雾形特征。总的来说这部分的特点在于,卷积的感受野也就是它的视野可以通过前面得到的雾形特征来进行改变。因为前面的backbone部分使用过仅仅一次sampling,这里为了得到结果图需要做一次upsampling,于是采用了transpose conv逆卷积来得到最后的结果 最后是global skip connection部分,这部分就很简单了,就是个简单的skip connection 最后就是如何得到offset和weight即权重和偏置量的方式了,这里的x就是雾形特征,f是激活函数,这里用的都是PRelu,Conv使用的就是常规的卷积,可见得到的方法也是容易理解的。 然后就是训练的方式和LOSS了 首先这里需要得到它的optical flows即光流图,这里采用的是DIS光流算法,一个传统的光流计算图,就不多做介绍了。然后这里因为输入图像一般是不会有我们所需要的模糊核,所以需要模拟,需要做的是将变形卷积的采样点的分布尽可能的靠近上面得到的双向光流
这里提出了两种方法来进行模拟靠近,首先第一种是根据采样点拟合一个二维的曲线,然后计算曲线和光流匹配误差。第二种是 所有采样点对光流图最短距离之和的平均值,这里采用的是这种方法,规划好方法后接下来是计算loss 这里的S是GT,L是模型的输出,Np是S和L的元素数量,很普遍的一种LOSS,为了计算逐元素的差的平均值 这里的S和L同理,φ是VGG也就是另外训练的特征提取网络,这个loss是为了计算GT和模型输出的语义特征差 这里的n是采样点的数量,M是一个事先定义好的最大间隔值,这里是为了使采样点尽可能的接近光流图,然后将所有loss合并
1.变形卷积、空洞卷积值得深入了解,已经有很多篇都使用网络参数不固定而随输入改变的方法了,说明这种方法比较适合应对各种多语义的情况 2.光流(optical flow)是空间运动物体在观察成像平面上的像素运动的瞬时速度,似乎基于光流的训练方式可以指导所有情况的采样点,那么就很多地方都可以使用了