论文笔记:Depth Map Prediction from a Single Image using a Multi-Scale Deep NetworkEigen(Eigen 1)

一、基本信息

标题:Depth Map Prediction from a Single Image using a Multi-Scale Deep Network
时间:2014
出版源:NIPS
论文领域:单目深度估计、深度学习、CNN
引用格式:Eigen D, Puhrsch C, Fergus R. Depth map prediction from a single image using a multi-scale deep network[C]//Advances in neural information processing systems. 2014: 2366-2374.

二、摘要

单目视图估计深度比较难,在本文中通过使用两个深度网络堆栈来解决这个问题:
1.基于整个图像进行粗略的全局预测
2.局部优化这个预测
使用尺度不变误差测量深度关系。

二、研究背景

大多数研究基于多目或者运动,比较少数基於单目深度的研究。但是大多数web和社交媒体上的图片是单目的。
单目没有被用于立体可能原因:

  • 不够精确

2个技术不合适的问题:

  • 3D到2D有无数种可能,虽然大多数可以排除,但是总体是不精确的
  • 尺度变换(本文使用尺度不变的误差解决 scale-invariant error)

本文直接使用神经网络进行深度回归预测。

早期研究:

  • Make3D 线性回归和MRF,依赖于图像的水平对齐,参数少。将图像区域划分为几何结构(地面、天空、垂直),简单的场景三维模型。
  • 语义标签对应,需要手工特征和超像素
  • 基于SIFT光流使用knn方法,需要对齐
  • 在图像补丁上训练了一个因子自动编码器来从立体序列预测深度;然而,这依赖于立体声提供的局部位移
  • 还有几种基于硬件的单图像深度估计解决方案

三、创新点

在这里插入图片描述
2个网络:
1.基于整个图像进行粗略的全局预测网络
2.局部优化这个预测的网络

卷积输出计算公式,具体看这里
设图像大小:n*n, 步长:s,卷积核大小:f,padding:p
(n+2pfs+1)(n+2pfs+1)\left(\frac{n+2 p-f}{s}+1\right) *\left(\frac{n+2 p-f}{s}+1\right)

全局粗尺度网络

(上图上方网络,该网络的输出作为局部细化网络的输入)
这不就是AlexNet ?再分析分析一波
在这里插入图片描述

  • 96 卷积(池化) 1/2
    输入:304 * 228 * 3
    卷积核大小:11 * 11 *3 步长:4(这个是11x11核的中心视野) 数目:96
    输出:75 * 56 * 96
    (304 - 11)/4 +1 = 74.25,取了上整75
    (228- 11)/4 +1 = 55.25,取了上整56
    ReLu激活
    池化层
    核大小:2 * 2 * 1 步长:1
    输出:38 * 28 * 96
    (75 - 2)/2 + 1 = 37.5 ,取了上整38
    (56- 2)/2 + 1 = 28

.
.
.

  • 256 卷积(池化) 1/4
  • 384 卷积
  • 256 卷积
  • 256 卷积
  • 4096 全连接
  • 1 全连接

在这里插入图片描述
没具体看论文实验,不过上次分析了AlexNet,可以看到这个网络就是AlexNet,网络都一样,2012提出,本论文2014应用倒也合理。
不过仔细发现这里只用了2次池化,第5层没有池化。所以输出对于输入时1/4。

局部细化网络

在这里插入图片描述

  • Fine1卷积 (池化) 63
    大小:9 * 9 数目:63 步长:2
  • Fine2 组合
    输入1:74 * 55(来自Coarse网络)
    输入2:
  • Fine3 卷积
    大小:5 * 5 数目:64
  • Fine4 卷积
    大小:5 * 5 数目:1

尺度不变误差

定义:
D(y,y)=12ni=1n(logyilogyi+α(y,y))2D\left(y, y^{*}\right)=\frac{1}{2 n} \sum_{i=1}^{n}\left(\log y_{i}-\log y_{i}^{*}+\alpha\left(y, y^{*}\right)\right)^{2}
α(y,y)=1ni(logyilogyi)\alpha\left(y, y^{*}\right)=\frac{1}{n} \sum_{i}\left(\log y_{i}^{*}-\log y_{i}\right)
di=logyilogyid_{i}=\log y_{i}-\log y_{i}^{*}
D(y,y)=12n2i,j((logyilogyj)(logyilogyj))2=1nidi21n2i,jdidj=1nidi21n2(idi)2\begin{aligned} D\left(y, y^{*}\right) &=\frac{1}{2 n^{2}} \sum_{i, j}\left(\left(\log y_{i}-\log y_{j}\right)-\left(\log y_{i}^{*}-\log y_{j}^{*}\right)\right)^{2} \\ &=\frac{1}{n} \sum_{i} d_{i}^{2}-\frac{1}{n^{2}} \sum_{i, j} d_{i} d_{j}=\frac{1}{n} \sum_{i} d_{i}^{2}-\frac{1}{n^{2}}\left(\sum_{i} d_{i}\right)^{2} \end{aligned}

就是说有2个配对点i和j,i位置有预测深度yiy_i和真实深度yiy_i^*,j位置有预测深度yjy_j和真实深度yjy_j^*, 如果didj>0d_i d_j > 0,说明预测同向,误差会更小,否则误差更大。
损失函数就是上述式子最后一项:
L(y,y)=1nidi2λn2(idi)2L\left(y, y^{*}\right)=\frac{1}{n} \sum_{i} d_{i}^{2}-\frac{\lambda}{n^{2}}\left(\sum_{i} d_{i}\right)^{2}

作者λ=0.5\lambda=0.5

数据增强

  • 大小缩放s[1,1.5]s\in[1, 1.5],深度也缩放s,注意:会改变空间结构,因为缩放s倍,不能保证镜头移动s倍
  • 旋转
  • 平移(随机裁剪),注意:会改变空间结构,平移后,深度值还是平移之前的,但是这种作者说操作有利于网络-_-
  • 颜色
  • 水平翻转

四、实验结果

在这里插入图片描述
在这里插入图片描述
L2 scale-inv是使用了尺度不变损失函数结果,虽然没有数值上的改进,但是观察图片可以看到细节有所改善。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、结论与思考

作者结论

从单个图像预测深度估计值是一项具有挑战性的任务。但是,通过组合来自全局和本地视图的信息,可以很好地执行它。我们的系统通过使用两个深度网络来完成这一任务,一个用于估计全局深度结构,另一个用于在局部进行更精细的解析。我们为NYU Depth和KITTI数据集实现了一种新的最先进的技术,有效地利用了完整的原始数据分布。在未来的工作中,我们计划扩展我们的方法,以纳入更多的三维几何信息,如曲面法线。Fouhey等人在预测法线贴图方面取得了令人鼓舞的结果。[2]将法线贴图与深度贴图结合起来,可以提高[16]的整体性能。我们还希望通过不断地应用规模更小的局部网络,将深度映射扩展到完整的原始输入分辨率。

总结

使用卷积网络预测深度,使用了2个网络,一个用于全局,一个用于局部细节。

思考

参考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章