解析单目深度估计经典论文Deeper Depth Prediction with Fully Convolutional Residual Networks


前言

paper: https://arxiv.org/abs/1606.00373

code: https://github.com/irolaina/FCRN-DepthPrediction (tensorflow)
https://github.com/zhohn0/fcrn_pytorch (pytorch)

这篇文章是单目深度估计领域中的经典之作。文章主要提出了两个创新点:1.提出了一个全卷积的残差网络结构(FCRN),使用小卷积代替大卷积实现上采样,减少模型参数。2.使用反向Huber(berHu)作为损失函数。


一、网络架构

1.结构简介

下图是网络的架构:

在这里插入图片描述

这个架构建立在残差网络ResNet-50的基础上。如果对于resnet-50不太熟悉的同学可以点一下超链接了解一下。图中下半部分表示了残差块的两种结构,分别是不包含和包含1x1卷积层的残差块。

如果你对比resnet-50的结构图就会发现,这个网络架构图的前两行和resnet-50是一模一样的,只有在第三行上采样部分才用作者设计的小卷积替换了resnet-50的全连接层。整个网络就变成了一个编码-解码(encoder-decoder)的结构。

下面,我们来分析一下这篇文章的主要创新点:上采样模块、小卷积代替大卷积和损失函数。

2.上采样模块

在这里插入图片描述

上图有四个上采样的结构,(a)结构首先过2x2的unpooling(上池化)层,那什么是unpooling层呢?实际上是pooling层的逆运算,这里操作是把原数据放在左上角,其他位置填补零,实际上这类似图像处理中的插值算法(如下图所示)。unpooling后再过5x5的卷积层,最后relu运算。

在这里插入图片描述

堆叠四个(a)就能得到(b),即fast up-convolution。这样能够放大16倍的feature map。作者发现,如果堆叠五个,性能并没有提高。

在此基础上,作者又设计了 ( c ) (c) (c)即res-blocks,这非常类似残差块的结构。在主干和分支都有5x5的卷积层,我们把分支的连接称为projection connection(投影连接)。这样设计的好处是高级信息能够通过skip的方式在网络中更有效的向前传播,同时逐渐增加feature-map的大小。个人认为,这里可以类比带卷积的残差块的设计去理解。

(d)是 ( c ) (c) (c)基础上的更快等效版本。

3.使用小卷积代替大卷积

在这里插入图片描述

上图实际上表示的是上面一节(b)fast up-convolution这一部分,本质上就是利用小卷积代替大卷积进行上采样。图中第一行表示普通的unpooling操作,这会造成75%的地方都是0,再进行conv操作时,会产生很多无效计算(与0相乘)。所以,图中第二行表示的就是fast up-convolution,将卷积分成四部分,分别计算,最后再聚合。这样提高了训练效率,使得整个网络的训练时间减少15%。

4. 使用berHu作为损失函数

在这里插入图片描述

用于回归问题的损失函数一般是L2 loss。作者使用berHu(反向Huber)作为损失函数,表达式如上图所示,其中c为c = 1 5 m a x i ( ∣ y ~ i − y i ∣ ) \frac{1}{5}max_{i} (|\tilde{y}_{i} - {y}_{i}|) 51maxi(y~iyi)。当loss值小于|c|时,损失函数变为L1,否则变为类L2。

这样做的好处是什么呢?在误差较小时,使用鲁棒性较好的L1,在误差超过c时候,使用对误差有“放大”效果的L2,赋予其更高权重。实验证明,berHu比单纯的L1或者L2能达到更好的拟合效果。

二、实验结果

在这里插入图片描述

上图表示的是在NYU Depth v2数据集上的测试结果,其中前四个指标是越小越好,后三个指标是越大越好。可以看出,基于ResNet的模型比前者效果都要好。

紧接着,作者又做了架构评估。下图为对比结果:

在这里插入图片描述

我们可以清楚地看到从AlexNet到ResNet,预测精度有所改进。但是含全连接层的ResNet虽然提高了精度,却仍然局限于粗略预测。作者所提出的全卷积模型极大地提高了深度图中的边缘质量和细节预测。

三、论文总结

这篇论文的思路其实很明确,主要提出了一个基于ResNet-50的全卷积深度预测网络,同时改进了loss function,用于解决传统CNN方法(如AlexNet、ResNet)只有粗略预测的问题。

这种方法的优点不仅仅是取得了更好的预测精度,同时由于特殊的上采样模块,也大大减少了模型参数量和所需训练的样本量,成为当时单目深度估计的sota方案。

参考文献

  1. (论文阅读)Deeper Depth Prediction with Fully Convolutional Residual Networks:https://blog.csdn.net/yjl9122/article/details/78670009
  2. ResNet-50网络理解:https://blog.csdn.net/Cheungleilei/article/details/103610799
  3. Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)全卷积残差网络:http://t.csdn.cn/4s0Sc
  4. 【论文笔记】Deeper Depth Prediction with Fully Convolutional Residual Networks:https://zhuanlan.zhihu.com/p/358100895
  5. Huber和berHu损失函数:http://t.csdn.cn/PShOh
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值