详细理解"Deep Boosting for Image Denoising"这篇文章

目录

 

前言 

文章思路(公式描述)

Result


前言 

Deep Boosting for Image Denoising是ECCV2018年的文章,由于小菜我主要接触的是关于Low-Level Computer Vision,所以在ECCV2018论文集中看到了这一篇文章。

    这篇文章由于利用了Boosting方法,是可以基于一个比较成熟的网络上做进一步的Boosting迭代去进一步的优化网络的效果的方法,所以在论文的Introduction中介绍了目前图像图像去噪的两种方式:

  1. 基于图像的相关性(内部)实现去噪的方法 比如BM3D、CSF和WNNM等等
  2. 基于外部样本学习的方法 比如DNCNN、LRNN等等

    所以基于以上较为成熟的可以进一步的提高PSNR等。论文中提出的几个不错的点可以描述为:

  1. DenseNet 用于克服梯度消失的问题
  2. 一种路径扩展融合的方法、与扩展卷积相结合后将轻量级但高效的卷积神经网络作为增强单元DDFN
  3. Boosting迭代去训练的方法进一步增强网络效果

文章思路(公式描述)

    首先定义网络输入图  y = x(clean image) + v(additive noise)(1)表示为网络输入图是一个遵循实数域下的原始图像添加一个加性正太分布的高斯噪声。然后经过 \hat{x}=S(y)=S(x+v) (2)很好理解 一个含噪图像经过去噪网络S后肯定去除了一定的噪声 当然也会损失一定的原图的信息所以我们定义u =  \hat{x} - x = v_{r}-x_{r} (3) 这里v_{r}定义为剩余的噪声,也就是含噪图像y中的噪声v经过去噪网络后在\hat{x}中还剩下的部分那么x_{r}则是经过网络后含噪图像y中的噪声x丢失的部分这个很好理解了

    所以有(3)可知\hat{x} = x + u,那么y - \hat{x}由(1)、(3)可知y - \hat{x}  = (x + v) - (x + u) =(x + v) - (x + v_{r}-x_{r}) =  x_{r} + (v - v_{r})  (4) 也就是说y-\hat{x}中是包含原始图像的数据和网络去除噪声的部分通过H(*)去经一步提取也就得到了 \hat{x}^{n+1} = \hat{x} + H(y - \hat{x}) (5),从这个公式中我理解是不断的从(4)可知的未提取的x_{r} 中提出原始图像的数据然后增加原来已经去过噪声的噪声,这会导致over-smoothing现象,这个也很好理解,我们可以在平时跑代码的时候发现对于一个不包含GAN网络的图像而言仅仅是做卷积等操作如果训练的epoch次数越多可能就会导致over-smoothing现象。

    所以作者将公式改为\hat{x}^{n+1} = G(y + \hat{x}^n) - \hat{x}^n (6)其中G是做为certain denoising model每一次进入去噪模型是同时还追加了最开始的网络输入图来保证不丢失过多数据以及防止过平滑同时y + \hat{x}  = 2x + (v + u) 假定\left \| u \right \| = \delta \left \| v \right \|是存在一个线性关系去描述的我们可以指到的是这个\delta是一定远远小于1的由这个去噪模型的性能决定。通过Cauchy-Schwarz inequality公式可求得SNR(y+\hat{x} )>SNR(y)的可以知道该迭代过程是可行的。

    也就是起到了网络通过迭代去进一步提取经过一个去噪网络后未提取的数据再去噪的方式,然后做了一定的修正过程包括了防止over-smoothing的方式等,同时扩展融合方法可以作为增强单元DDFN用于提高网络效果下面是boosting framework

                                    详细理解

通过网络我们并没有看到公式(6)中做了减法,我的理解是这个公式应该是有一个比较简单的变换变为了这个公式就可以理解\hat{x}^{n+1} + \hat{x}^n= G(y + \hat{x}^n),然后通过定义Loss目标函数,这里是用了MSE,正常均方差公式是如下的 

                                                             

作者这里实际公式是如下的:

                                                       

多了一个1/2,以小菜我的拙见是因为网络现在的输出是\hat{x}^{n+1} + \hat{x}^n,所以在正常的MSE下应该是需要除于2才是符合正常网络的求解loss方法。所以他的迭代公式是这样的

                                          

这里的\hat{x}^{n+1} + \hat{x}^n应该被作为了现在实际的网络输出\hat{x}^n。然后介绍了在TNRD下面代入该公式的一个推导这部分大同小异。

然后就是正经的网络结构了,D表示扩张卷积,后面的数字是卷积核大小。文章用了整整一章讲述了这四个模型分别是什么,但根据图应该就能看出来,从上到下依次加深复杂度

          详细理解

这里作者做了修正,原因在于网络层数越深,就会遇到很正常的一个问题梯度消失,所以增加了DenseNet网络去修正,这里是一个顺序过程先是正常的一个PN也就是普通网络就是一序列的卷积,然后添加了Resnet然后怎加了D扩展卷积最后添加了DenseNet,同时增加了D扩张卷积,用于扩大卷积的感受野来提高卷积的效果。最后由于Conv-ReLU-Dconv和Dconv-ReLU-Conv分支可以学习不同的东西特征表示的可能性。所以借此提出的路径扩展融合同时利用了这两个顺序,从而促进了网络的效果。

Result

去噪的结果是比dncnn高了0.3左右,这点是值得肯定的,所以他的卷积和扩张卷积同步处理再结合的思想以及Conv-ReLU-Dconv和Dconv-ReLU-Conv分支可以学习不同的东西特征表示的想法,还有Boosting的迭代思路是可以值得借鉴的。

            详细理解

附上一张结果图

              详细理解

 

你可能感兴趣的:(深度学习)