(论文阅读)Deeper Depth Prediction with Fully Convolutional Residual Networks

对于深度估计这个问题来说,这篇文章是非常经典的一篇文章了。FCRN做了两点贡献:
- 1 使用了小卷积代替大卷积的方式实现了上采样
- 2 使用了huber作为了loss
[code] https://github.com/iro-cp/FCRN-DepthPrediction
[paper] https://arxiv.org/pdf/1606.00373.pdf

  • 1 使用小卷积代替大卷积,实现上采样
    首先我们先要明白,为什么作者这么做,传统的反卷积以及双线性插值到底存在什么问题。反卷积,得到的结果存在很强的棋盘效应。双线性插值,得到的结果边缘模糊,噪声很大。那么FCRN中采用小卷积代替大卷积,一方面,可以使棋盘效应降低,一方面,尽量的保留边缘信息。当然啦,依照FCRN中所说,可以提升其速度,毕竟这样可以减小参数嘛。

    (论文阅读)Deeper Depth Prediction with Fully Convolutional Residual Networks_第1张图片

    • 在文章中,作者首先使用了上图的a结构,过2*2的uppooling层,没有值的地方填补0,过5*5的卷积,使让所有有0的地方都能被卷积到,过relu。据作者说,4个这种结构就行了,不需要反卷积到原来的尺寸。作者又在该基础上,设计了res-block的结构,也就是c。为什么这么设计,我也说不清楚,可能是做了skip模仿了别的结构,得到了比较好的结果吧。
    • 在设计完基础结构部分,作者对baseline结构做了改进,也就是fast版。因为上述结构中,存在uppooling的结构,这种方式得到的结果中很多0值,然后使用5*5的卷积核,这让网络很难训练好,于是作者采用了小卷积的方式。作者使用了四种小卷积核,这四种小卷积核恰好能够包含5*5卷积核的所有部分。卷积得到的结果可以大量减少0的出现。在拼接的时候作者记录了每个feature map上的位置,根据位置再上采样。将这种小卷积的结构替换掉unpooling就是fast up-projection。
      (论文阅读)Deeper Depth Prediction with Fully Convolutional Residual Networks_第2张图片
  • 2 使用了huber做loss

    (论文阅读)Deeper Depth Prediction with Fully Convolutional Residual Networks_第3张图片

    Empirically, BerHu shows a good balance between the two norms in the given problem; it puts high weight towards samples/pixels with a high residual because of the L2 term, contrary for example to a robust loss, such as Tukey’s biweight function that ignores samples with high residuals [2]. At the same time, L1 accounts for a greater impact of smaller residuals’gradients than L2 would.

这个根据我实验结果,也是huber会更好。

  • 3 实验
    (论文阅读)Deeper Depth Prediction with Fully Convolutional Residual Networks_第4张图片
    本人尝试复现这篇文章,至写博客之时也未能达到0.127 0.573的性能。本人的rel仅能在0.142左右。

文章比较粗糙,存在问题的地方希望大家批评指正

你可能感兴趣的:(papers)