Advertisement

【三维成像入门论文学习笔记】一、Unsupervised Learning of MonoDE and Visual Odometry with Deep Feature Reconstruction

阅读量:

论文全名 :Unsupervised Learning of Monocular Depth Estimation and Visual Odometry with Deep Feature Reconstruction
基于深层特征重构的单目深度估计和视觉里程计的无监督学习

原文链接https://arxiv.org/pdf/1803.03893v1.pdf
开源代码https://github.com/Huangying-Zhan/Depth-VO-Feat(caffe)


文章目录

  • 1. Abstract

  • 2. Contributions

  • 3. Method

    • 3.1 Network architecture
    • 3.2 Image reconstruction as supervision
    • 3.3 Differentiable geometry modules 可微几何模块
    • 3.4 Feature reconstruction as supervision
    • 3.5 Training loss
  • 4.Experiments

    • 4.1 Visual odometry results
    • 4.2 Depth estimation results
    • 4.3 Ablation studies
  • Wait to learn

    • Confusion
    • Related Work
      • supervised methods
      • Unsupervised or semi-supervised method

1. Abstract

本文探讨了立体图片序列在 学习(训练) 深度和视觉测距中的应用。立体图片序列的使用使得系统能够使用空间(left-right pairs)和时间(forward-backward) photometric warp error?,并且将场景深度和相机运动约束在共同的真实世界尺度内。在测试时,该无监督框架能够使用单目序列来进行单视图深度估计和双视图测距 。我们还展示了如何通过考虑 a warp of deep features ?来改进标准photometric warp loss。大量实验证明:
(i)联合训练单目深度和视觉测距,改善了深度预测(因为对深度附加了额外的约束)并且视觉测距也取得较好结果;
(ii)基于特征的warping loss改善了单视图深度估计和视觉测距的简单photometric warp loss。

本文求场景无遮挡且为刚体,未来还需要对动态场景及遮挡进行建模。


2. Contributions

  1. 提出了联合学习深度估计器和视觉里程估计器的无监督框架 ,且不受尺度模糊影响。
  2. 利用了图像对在时间,空间上的全部约束 ,改进了现有技术基础上单目深度估计的性能。
  3. 产生最先进的、基于帧到帧的测程结果 ,性能显著优于同类无监督学习方法,与基于几何的方法同等水平。
  4. 除了基于颜色强度的图像重构loss(Image Reconstruction Loss)之外,使用了新的重构特征loss(Feature Reconstruction Loss) ,显著改善了深度和量距估计精度

3. Method

立体序列学习框架,从立体图像序列中联合学习单目深度卷积网络 CNN_D(single view depth ConvNet)和视觉里程卷积网络 CNN_{VO} (visual odometry ConvNet)。此框架可克服使用单目图片序列训练遇到的尺度模糊问题,且使系统能够利用(left-right)空间和(forward-backward)时间一致性检查。

3.1 Network architecture

在这里插入图片描述CNN_D包含两个部分:编码器和解码器。

  1. 编码器采用 ResNet50 的变体 ResNet50-1by2 (含一半滤波器)。
  2. 解码器首先使用1x1 kernel 将编码器输出的1024通道特征图转化为1通道特征图,然后采用具有跳连接的传统双线性上采样kernels(使用跳连接融合来自编码器不同阶段提取到的低维特征),在最后预测层之后使用ReLU激活,保证输出预测值(深度值的倒数)为正。
  3. 最后我们将深度值倒数转化为深度值D=1/(D_{inv}+10^{-4})

CNN_{VO}

  1. 将两个沿着颜色通道连接的视图作为输入。
  2. 输出6D向量[u,v]\in se3?(定义了T_{ref->live}),然后将其转化为4x4变换矩阵。
  3. 网络由6个stride为2的卷积层+3个全连接层组成。

训练时,

  1. 采用双目图像序列I为输入,CNN_{VO} 网络根据单目的前后序列图像,输出两个时刻间的变换矩阵T_{21}(下文中的T_{t2->t1})的估计值。
  2. 采用单目图像作为输入,CNN_D输出深度的估计值D_{L,t2}
  3. 深度估计值D_{L,t2}结合左右视图的变换矩阵T_{LR},以及相机的内参K,得到右图的投影坐标。(同理p_{L,t1})
    4.经过warping后,得到重构图和特征图,分别与真值的差异构成了损失函数,利用反向传播算法可以不断优化网络。

训练完成后,只利用单目数据做输入,即可得到深度估计值和单目相机的转移矩阵 T(可实现视觉测距的功能)。


3.2 Image reconstruction as supervision

给定两邻近视图,已知参考视图(reference view)深度两视图之间的 相对相机姿态 ? 的情况下,我们可以从实时视图(live view)中重建参考视图。【深度和相对相机姿态可以通过卷积网络进行估计,真实图和重建图的不一致(loss)可以用来训练网络。】

没有额外约束的单目框架会有尺度模糊问题,因此作者提出使用立体序列框架,因为含有一个通过已知立体基线设置的额外约束(将CNN_D预测的场景深度和CNN_{VO}预测的相对相机运动(姿态)约束在一个共同、真实的世界尺度中)。除了仅具有一个实时视图的立体对之外,时间对还为参考视图提供第二实时视图。 多视图场景利用了立体和时间图像对可用的全部约束。
【简单来说,使用双目序列可以解决尺度模糊问题以及引入更多约束】

对于每一个训练实例,

  1. 一个时间对(I_{L,t1},I_{L,t2})和一个立体对(I_{L,t2},I_{R,t2}),其中I_{L,t2} 为参考视图,I_{L,t1},I_{R,t2} 为实时视图。
  2. 分别合成两个参考视图 I'_{L,t1},I'_{R,t2}
  3. 合成函数f(·) 见3.3 Differentiable geometry modules
  4. D_{L,t2} 为参考图深度(I_{L,t2} 经过CNN_D映射得到)
  5. K 为相机固有矩阵(已知)
  6. T_{L->R}T_{t2->t1} 为参考视图和实时视图之间的相对相机姿态变换(T_{t2->t1} 是[I_{L,t1},I_{L,t2}] 通过CNN_{VO}映射得到)

合成过程为:

  • I'_{L,t1}=f(I_{L,t1},K,T_{t2->t1},D_{L,t2})
  • I'_{R,t2}=f(I_{R,t2},K,T_{L->R},D_{L,t2})

Image Reconstruction loss为:

  • L_{ir}=\sum_p (|I_{L,t2} (p) -I'_{L,t1}(p)|+|I_{L,t2} (p) -I'_{R,t2}(p)|)
    可用于训练CNN_DCNN_{VO}

3.3 Differentiable geometry modules 可微几何模块

合成函数f(·)含有两个允许梯度传播的可微运算:

  1. epipolar geometry transformation【定义了两个视图像素之间的对应关系】
  2. warping【通过warping (变形?) 实时视图来合成图像】

p_{L,t2} 是参考视图中一个像素的齐次坐标,使用 epipolar geometry transformation来获得p_{L,t2} 在实时视图上的投影坐标。

  1. p_{R,t2},p_{L,t1} 分别为I_{R,t2},I_{L,t1} 的投影坐标
  2. D_{L,t2}(p_{L,t2})是像素p_{L,t2}处的深度值
  3. T\in SE3 是一个4x4变换矩阵 ?,含6个参数:一个轴-角表示3D向量u \in so3和一个3D向量v\in R^3表示平移 ?。

epipolar geometry transformation公式如下

  • p_{R,t2}=KT_{L->R}D_{L,t2}(p_{L,t2}) K^{-1} p_{L,t2}
  • p_{L,t1}=KT_{t2->t1}D_{L,t2}(p_{L,t2}) K^{-1} p_{L,t2}

得到投影坐标之后,则可使用可微双线性插值方法(warp)从实时帧合成新的参考帧。

3.4 Feature reconstruction as supervision

以上提出的立体框架是隐含假设条件的:场景是Lambertian的,即无论观察者视角如何,亮度都是恒定的。若实际不符合这个假设,则会传回错误的梯度影响训练过程,为提高鲁棒性,提出feature reconstruction loss :使用稠密特征作为额外监督信号,而不是单独使用3通道颜色强度信息(image reconstruction loss)

  1. F_{L,t2},F_{L,t1},F_{R,t2} 分别是I_{L,t2},I_{L,t1},I_{R,t2}对应稠密特征表示。
  2. F_{L,t1},F_{R,t2}分别合成两幅参考图 F'_{L,t1},F'_{R,t2}

合成过程:

  • F'_{L,t1}=f(F_{L,t1},K,T_{t2->t1},D_{L,t2})
  • F'_{R,t2}=f(F_{R,t2},K,T_{L->R},D_{L,t2})

Feature Reconstruction loss为:

  • L_{fr}=\sum_p |F_{L,t2} (p) -F'_{L,t1}(p)|+\sum_p|F_{L,t2} (p) -F'_{R,t2}(p)|

3.5 Training loss

  1. 主要监督信号来自 image reconstruction loss
  2. 辅助监督信号来自 feature recontruction loss
  3. 鼓励预测深度平滑 depth smoothness loss
    引入边缘感知(edge-aware smoothness)平滑项使局部深度平滑。在同一区域,若图像连续而深度不连续,则将被惩罚;其他不连续深度则惩罚较小。

edge-aware smoothness loss 为:

  • L_{ds}=\sum_{m,n}^{W,H}|\partial_xD_{m,n}|e^{-|\partial_xI_{m,n}|}+|\partial_yD_{m,n}|e^{-|\partial_yI_{m,n}|}
  1. \partial_x(·)\partial_y(·)分别为水平和垂直方向的梯度。
  2. D_{m,n}在上述正则化中为深度的倒数(inverse depth)

Final loss function:

  • L= \lambda_{ir} L_{ir}+\lambda_{fr} L_{fr}+\lambda_{ds} L_{ds}
    其中,\lambda_{ir}\lambda_{fr}\lambda_{ds}分别为不同loss项的权重。

4.Experiments

4.1 Visual odometry results

在这里插入图片描述t_{err}为平均位置漂移误差,r_{err}为平均旋转漂移误差

4.2 Depth estimation results

在这里插入图片描述

4.3 Ablation studies

在这里插入图片描述

Wait to learn

Confusion

  1. photometric warp error
  2. a warp of deep features
  3. warp???
  4. CNN_{VO}输出6D向量[u,v]\in se3?(定义了T_{ref->live}),然后如何将其转化为4x4变换矩阵?。
  5. 相对相机姿态(relative camera pose)

supervised methods

depth estimation:

  1. D. Eigen, C. Puhrsch, and R. Fergus. Depth map prediction from a single image using a multi-scale deep network
    【used a multi-scale deep network and scale-invariant loss 】
  2. F. Liu, C. Shen, and G. Lin. Deep convolutional neural fields for depth estimation from a single image
  3. F. Liu, C. Shen, G. Lin, and I. Reid. Learning depth from single monocular images using deep convolutional neural fields
    【formulated depth estimation as a continuous conditional random field learning problem(CRF)】
  4. I. Laina, C. Rupprecht, V. Belagiannis, F. Tombari, and N. Navab. Deeper depth prediction with fully convolutional residual networks
    【a residual network using fully convolutional architecture to model the mapping between monocular image and depth map.
    Also introduced reverse Huber loss and newly designed up-sampling modules】
  5. A. Kendall, H. Martirosyan, S. Dasgupta, P. Henry,R. Kennedy, A.Bachrach, and A. Bry. End-to-end learning of geometry and context for deep stereo regression
    【 an end-to-end learning framework to predict disparity from a stereo pair.
    Use an explicit feature matching step as a layer in the network to create the cost-volume matching two images】

odometry:

  1. P. Agrawal, J. Carreira, and J. Malik. Learning to see by moving
    【 a visual feature learning algorithm which aims at learning good visual features.
    Learns features from an egomotion estimation task. The model is capable to estimate relative camera poses.】
  2. S. Wang, R. Clark, H. Wen, and N. Trigoni. Deepvo:Towards end-to-end visual odometry with deep recurrent convolutional neural networks
    【a recurrent ConvNet architecture for learning monocular odometry from video sequences.】
  3. B. Ummenhofer, H. Zhou, J. Uhrig, N. Mayer, E. Ilg, A. Dosovitskiy, and T. Brox. Demon: Depth and motion network for learning monocular stereo
    【an end-to-end visual odometry and depth estimation network by formulating structure from motion as a supervised learning problem.
    Highly supervised: not only does it require depth and camera motion ground truths, in addition the surface normals and optical flow between images are also required.】

Unsupervised or semi-supervised method

Recent works suggest that unsupervised pipeline for learning depth is possible from stereo image pairs using a photometric warp loss to replace a loss based on ground truth depth.

  1. R. Garg, V. K. B G, G. Carneiro, and I. Reid. Unsupervised cnn for single view depth estimation: Geometry to the rescue
    【used binocular stereo pairs (for which the inter-camera transformation is known) and trained a network to predict the depth that minimises the photometric difference between the true right image and one synthesized by warping the left image into the right’s viewpoint, using the predicted depth】
  2. C. Godard, O. Mac Aodha, and G. J. Brostow. Unsupervised monocular depth estimation with left-right consistency
    【made improvements to the depth estimation by introducing a symmetric leftright consistency criterion and better stereo loss function】
  3. Y. Kuznietsov, J. Stuckler, and B. Leibe. Semi-supervised deep learning for monocular depth map prediction
    【a semi-supervised learning framework by using both sparse depth maps for supervised learning and dense photometric error for unsupervised learning】
  4. J. Y. Jason, A. W. Harley, and K. G. Derpanis. Back to basics: Unsupervised learning of optical flow via brightness constancy and motion smoothness
    【use structure-from-motion techniques to estimate the interframe motion (optic flow) instead of depth using the known stereo geometry】
  5. T. Zhou, M. Brown, N. Snavely, and D. G. Lowe. Unsupervised learning of depth and ego-motion from video
  6. S. Vijayanarasimhan, S. Ricco, C. Schmid, R. Sukthankar,
    and K. Fragkiadaki. Sfm-net: Learning of structure and motion from video
    【 use a photometric error for supervising a monocular depth and ego-motion estimation system. Similar to other monocular frameworks, suffer from scaling ambiguity issue】
  7. R. Garg, V. K. B G, G. Carneiro, and I. Reid.** Unsupervised
    cnn for single view depth estimation: Geometry to the rescue**
  8. C. Godard, O. Mac Aodha, and G. J. Brostow. Unsupervised
    monocular depth estimation with left-right consistency

    【use stereo pairs for training,since this avoids issues with the depth-speed ambiguity that exist in monocular 3D reconstruction】

全部评论 (0)

还没有任何评论哟~