论文研读-图像深采样-<>

ECCV 2016的文章
github代码:DeepJointFilter

Motivation

Basic Idea about Joint image filtering

Joint image filtering要解决的问题是给定一张Guidance Image,和被noise影响或是Low-spatial-resolution的Target Image,我们要利用这样的Guidance Image作为prior,将Guidance Image中的structural details的信息transfer到对应的Target Image上,最终得到一张High-Resolution的Target Image.

TrackOff

  • 需要的部分
    Guided image中和target image consistent structures.
  • 不需要的部分
    避免Guided image中erroneous structures的影响.

Inconsistent structure problem in Joint image filtering

Guidance image和Target image中的structures并不都是consistent的,传统的Filtering based和Global optimization framework based的方法都缺乏对erroneous structures部分的关注,或者说因为传统方法的局限性,需要explicit filter kernel或者是handle-designed object function,因此不能很好handle这个问题。
作者提出了一个learning-based方法,构建一个CNN的网络来得到joint filter,来handle这种inconsistent structure problem.

Contributions

  • 提出了一个learning-based framework - CNN,来构建joint image filters,来解决guided fitering中的inconsistent structure问题.
  • 利用上述learned filters,作者在四个joint depth upsampling datasets上得到了state-of-the-art performance.
  • 作者证明了在RGB/D datasets上train好的模型对于输入数据的类型有很好地泛化能力,能够transfer到一系列的domains上。

Related Work

Joint Image filters

传统方法中的Joint image filtering的方法可以分为如下两类:

  • explict filter based
    比较有代表性的就是bilateral filtering和它的变式,以及之后的guided image filtering.
    这种方法的问题是kernel的pattern是显式定义的,缺乏inconsistency check,会引入不必要的erroneous structures.

  • global optimization based
    这类方法一般会有一个object function,主要包含了data terms和regularization terms。

    • data term
      确保output尽可能接近于input target image.
    • regularization term
      这是大多数方法做文章的地方,主要是希望output的structures尽可能接近guidance image.

    这种方法的问题是比较time-consuming,同时handle-designed object function不能很好反应自然世界的复杂情况.

Deep model for low-level vision

受到CNN在high-level视觉任务上的有效应用的启发,近些年在一些low-level的视觉任务上也出现了一些CNN的应用,比如image denoising, rain drop removal, image super-resolution, optical flow estimation等等.
作者在这些工作的基础上受到了启发,希望利用CNN强大的特征提取和泛化能力,来解决joint image filter的问题。

Network Architecture

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第1张图片
Network Architecture

整个CNN model主要包含three sub-networks: CNNT,CNNG,CNNF

  • CNNT

    负责提取Target Image的特征,可以看做是non-linear的feature extractors,来capture the local structural details.

  • CNNG

    负责提取Guidance image的特征.

  • CNNF
    负责concatenate sub-network CNNT 和subnetwork CNNG的特征,来生成最终的joint filtering的结果。

整个网络可以看做是从target image和guidance image的feature responses中,进行non-linear regression.

要注意的几个点:

  1. 各个子网络都是9x9conv+1x1conv+5x5conv,都是三层,但是输出的channels数量有细微的区别,单个子网络的结构类似于SRCNN..
  2. 在特征提取的两个子网络CNNG和CNNT的输出的feature map的channel数量都是1,作者认为更多地channel可能会有助于特征的表达,但是实验发现会降低训练速度,而且精度没有太大提升(这里要质疑一下,真的吗)
  3. 作者继续增加网络层数,更深的网络并没有提升性能,认为和SRCNN的结论一致,所以认为更深的网络并不能带来性能的提升(然而SRCNN已经被后面的VDSR网络反驳了,这个结论也有待论证)
  4. 更大的Kernel和Filter的数量没有帮助性能的提升。

当然这个看似非常简单的网络,作者也给出了为什么这样设计的思路,还是有很强的逻辑性在里面的,之后将会分析。

Loss Function

作者用的就是最基本的L2 Loss来train.

L2 loss

Design Ideas

要不要直接把target image和guidance image concat训练一个CNN作为CNNF

经验主义告诉他们performance肯定不好,他们做了一些实验,如下:

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第2张图片
直接Concat RGBD输入,构建一个CNNF网络

Blurry boundaries and the texture-copying
作者认为guided image上的detail structrues没有很好transfer到target image,比如床的边缘结构。而不需要的texture的信息却出现在了最终的image上,比如墙上的纹理。
通过加深网络,这样的现象并没有减缓,而作者提出的网络却可以handle这两个问题。
所以作者认为这样直接Concat guidance image和target image的方式是不好的。

什么样的指导是有效的
之后作者思考了既然这样是不好的,那是为什么,什么样的指导是有效的?
作者认为RGB直接Concat起来效果不好,因为一次性混合了太多的信息(texture,indensity,edges)
如果把原始的RGB图像换成RGB检测得到的Edge Map,特征更加干净直接,是不是会有一定的作用。
作者做了如下实验:

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第3张图片
把edge detection的结果和target map concat起来

作者发现确实加了Edge Map以后效果比直接Concat RGB图像好很多.
因此作者认为有效的特征,可以更好的进行指导,于是才出现了划分两路分别提取特征的网络,效果证明这样的方式比Edge Detection的结果更有效。

Experimental Results

Network Training

160000 training patch pairs of size 32x32 from 1000 RGB an depth in NYU2 dataset.

image upsampling: 4x,8x,16x

Test

Depth Upsampling

在Middlebury,Lu,NYU v2, SUN RGB/D四个Dataset上测试

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第4张图片
Depth Upsampling Result

各个Dataset情况:

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第5张图片
Dataset

其实效果和传统方法差的不多,个人感觉。

Discussions

What has the network learned

作者把CNNG部分输出的Feature map,和Edge Map做了比较,

发现网络学到的结果更加的shape,说明CNN特征提取的结果是比较好的。
但是我们会发现这时候被子上的不必要的纹理也被提取了出来,别急,作者在后面会解释

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第6张图片
What has the network learned:和edge map的比较

Selective structure transfer

作者认为RGB那路学到的Feature有可能是inconsistent feature,比如前面我们提到过的被子的纹理,但是CNNF部分的网络可以有效的滤除那部分的信息,实验结果如下:

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第7张图片
Selective structure transfer

作者提取了各个子网络的中间特征层,发现在Fusion网络的帮助下,墙上的窗户,被子的纹理这些inconsistent feature得到了抑制。

作者又举了一个例子,关于texture-copying问题,传统的方法本身利用的就是guidance image的structure信息,当Guidance image中有很强的color constrast时,就会导致text-copying.而Fusion网络有助于帮助解决这个问题。

论文研读-图像深采样-<<Deep Joint Image Filtering>>_第8张图片
texture-copying removed

我的总结

总体来看这篇文章的网络其实没有太大的创新,feature map的concat也是非常直接常规的操作,子网络的设计也借鉴了其他问题的网络。
个人觉得这篇文章的亮点就在于整个网络设计的流程,对出现的问题一步步地分析,并且证明了每一步的修改的有效性,整个逻辑还是非常严谨的。
我自己在读这篇文章的时候想到的问题,作者都会合理的在后面一一进行解释,这点是比较值得欣赏的。
其他的网络设计上的创新,就见仁见智了,我觉得没有太大的针对这个问题的创新点。

你可能感兴趣的:(论文研读-图像深采样-<>)