Paper name
D3VO: Deep Depth, Deep Pose and Deep Uncertainty for Monocular Visual Odometry
Paper Reading Note
URL: https://openaccess.thecvf.com/content_CVPR_2020/papers/Yang_D3VO_Deep_Depth_Deep_Pose_and_Deep_Uncertainty_for_Monocular_CVPR_2020_paper.pdf
TL;DR
- 提出了预测 deep depth、pose、uncertainty 的深度网络的优化训练方案,并将深度网络的输出与传统的优化方法结合得到 VO 方案,该方案在当时的 hybrid 方案中达到了 SOTA
Introduction
-
背景:
- 目前传统的 geometric-based VO 方案还是主流方法,单目的 VO 方法虽然计算量小并且不需要较多的校准工作,但是无法和双目或者 visual-inertial odometry(VIO) 方法的精度相当
-
提出的 D3VO 是一个单目视觉里程计方案,利用深度神经网络进行 deep depth, pose 和 uncertainty 的估计
- 基于 stereo videos 进行自监督模型训练,模型能够预测相邻帧之间的 camera pose 及每帧的深度
- 为了解决训练过程中不同帧之间的光照不连续问题,网络会预测一个 brightness transformation parameters 用于对齐 source 图片和 target 图片的亮度(Euroc 数据集上深度预测精度提升明显)
- 为了将 deep depth 集成到 VO 系统,首先对深度网络预测得到的 3D 点初始化一个 metric scale,然后采用 Deep Virtual Stereo Odometry (DVSO) 提出的 virtual stereo term 来将预测的相机位姿纳入非线性优化
- 即便做了图片亮度对齐,非朗伯曲面、高频区域和移动对象也会无监督深度训练出问题,网络会同时预测一个以输入图片作为条件的方差当做 photometric uncertainty,一些可能违背亮度一致性的像素造成的误差能被尽量减小;所学习的不确定性度后续还能融合到 direct VO中,即替换 photometric residual 的 weighting function
- 提出了增加单目 VO 鲁棒性的方法:
- 将深度网络估计的 pose 合入前端 tracking:
- 替换 constant velocity motion model 中的相机位姿为网络估计的 pose
- 除了直接图像对齐外,估计的姿势也用作平方正则化器
- 将深度网络估计的 pose 合入后端非线性优化中
- 提出了一个 pose energy term,它与直接VO的 photometric
energy term 联合最小化优化
- 提出了一个 pose energy term,它与直接VO的 photometric
- 将深度网络估计的 pose 合入前端 tracking:
Dataset/Algorithm/Model/Experiment Detail
实现方式
-
Self-supervised Network
- 基于图像重投影隐式监督深度估计网络与 pose 预测网络的训练
其中 V 是所有像素个数,It 是左图,It’ 包含相邻帧图与右目图像,perpixel minimum loss 是 monodepth2 提出的,用于缓解遮挡问题,It’->t 为基于深度与 pose 的重投影图片 - photometric loss 使用通用的 l1 + SSIM:
- 基于图像重投影隐式监督深度估计网络与 pose 预测网络的训练
-
Brightness transformation parameters:affine transformation 来补偿相机曝光调节导致的 image intensity 变化
网络同时预测 transformation parameters: a、b,来对 It 进行亮度对齐
-
光照对齐的样例
-
Photometric uncertainty
- 即便有了光照一致性假设,对于运动物体及 Non-Lambertian surface 也会对无监督训练有影响(Lambertian 反射也叫理想反射或完全漫反射,指一个固定的照明分布下所有的视场方向上观测都具有相同亮度的表面,Lambertian 表面不吸收任何入射光,在整个半球空间内向四周各向同性的反射能量)
- 参考 heteroscedastic aleatoric uncertainty,对每个 pixel 预测一个后验概率分布,该后验概率分布通过其均值和方差
p
(
y
∣
y
~
,
σ
)
p(y|\tilde{y}, \sigma)
p(y∣y~,σ) 在 gt labels 上进行参数化,例如假设噪声符合拉普拉斯分布,负对数似然 loss 为:
- 训练过程中不需要为 σ \sigma σ 提供真实标签,预测的不确定度会让网络在学习过程中根据输入的数据自适应调整功能residual 的权重,从而让网络对噪声数据更鲁棒
- 这里的 y 是目标图像的 pixel intensity,网络对于可能不符合 brightness constancy 的像素会预测更大的
σ
\sigma
σ,参考工作(Supervising the new with the old: learning SFM from SFM)的方法,这里将 loss 改写为:
其中 ∑ t \sum_{t} ∑t 是 It 的不确定度 map,这个不确定度的定性分析图如下,另外这个不确定度在 D3VO 的 photometric residuals 加权中也会使用到
-
整体的 loss 设计如下
其中 Lreg 是深度图上的 edge-aware 平滑性损失,Lab 是光照调整参数的正则化损失,用于约束 affine 参数不太离谱
- D3VO
- 将上述网络预测的 depth map、uncertainty map 和 pose 集成到 Direct sparse odometry 中,即滑窗稀疏 photometric bundle adjustment
实验结果
-
KITTI 上的深度评测结果,可以看到与 monodepth2 相比精度有提升,不确定性度与光照一致性这两个 trick 都能分别提升准确度,合起来后精度最高;与半监督方法相比(基于 stereo 生成的 depth 作为监督)基本接近
-
EuRoC MAV 上的评测结果
-
VO 评测,比 hybrid 方法(深度网络 + 传统方法)好,比端到端的方法好很多;比 baseline DSO 与 ORB 等传统方法好
Thoughts
- 在 monodepth2 上提出了一些修改,增加了深度预测的准确度,值得借鉴