2

CVPR2021:推广到开放世界的在线自适应深度视觉里程计

 3 years ago
source link: https://mp.weixin.qq.com/s/r_9kjcvW8eqvd-UOFEasUw
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
CVPR2021:推广到开放世界的在线自适应深度视觉里程计点击上方“3D视觉工坊”,选择“星标”干货第一时间送达640?wx_fmt=jpeg

Generalizing to the Open World Deep Visual Odometry with Online Adaptation

CVPR2021:推广到开放世界的在线自适应深度视觉里程计

近些年,基于学习的视觉里程计已经展现出了较为可观的结果,但预训练网络在未知环境中很容易失效。在这篇论文中,提出一个用于深度VO的在线自适应网络(借助场景不可知的几何计算和贝叶斯推理的辅助)。与基于学习的位姿估计不同,论文的苏阿女法从深度和光流中解算出位姿,同时通过在线学习新观测的不确定性不断提高单证图像的深度估计。另外,通过差分高斯牛顿层,一种在线学习光度不确定性算法也被用于进一步的深度和位姿估计。论文提出的算法在KITTI室外数据集和TUM室内数据集上得到了验证,实验证明,我们的算法在自监督VO算法中实现了最佳的泛化能力(泛化能力:机器学习算法对新样本的适应能力)。

640?wx_fmt=png

【主要内容】

经典的SLAM/VO算法由于依赖底层特征因此在弱纹理、动态环境下表现性差,而深度神经网络可以提取高级特征和并通过学习进行端到端的推断,许多基于学习的VO算法已打破了经典VO的限制。在这些算法中,自监督VO算法能通过最小化光度误差同时学习相机位姿、深度和光流。然而基于学习的VO当遇到与预训练环境不同的场景时,表现性能较差,因此预训练网络需要以自监督的方式实现在线自适应。

为提高未知场景下VO的在线自适应能力,论文提出了一种自监督的架构,结合了深度学习和几何计算的优点。

主要贡献:

  1. 提出一个泛化的深度VO,其使用场景未知几何公式和贝叶斯推断来加速自监督在线自适应性;

  2. 估计的深度不断被贝叶斯融合网络优化,后续用于训练深度和光流

  3. 引入在线学习的深度和光流不确定度以实现精度更高的深度估计和差分高斯牛顿优化。

【整体结构】

640?wx_fmt=png

系统框架图

首先,FlowNet网络估计关键帧和当前帧之间的稠密光流,同时估计光流不确定度映射。另外,使用DepthNet网络估计关键帧的深度均值和不确定度(为当前场景几何提供先验)。通过本质矩阵或PNP从被选择的匹配图像中求解位姿。在线自适应阶段,首先通过可微三角化算法重建了的稀疏深度。然后先验关键帧深度通过贝叶斯更新网络的深度估计得到进一步的提高。接着,差分高斯牛顿层最小化了和的光度损失。最后,优化后的深度和光流作为伪真值来监督DepthNet和FlowNet的在线学习。

【从光流中进行位姿恢复】

使用RAFT学习关键帧和当前帧之间的稠密光流,关键帧和上一帧之间的光流作为先验来初始化当前光流估计。选择鲁棒的对应关系(),设定这个对应关系有较好的前后光流一致性和适度的流动幅度:

640?wx_fmt=png

通过用RANSAC算法求解本质矩阵来计算关键帧和当前帧之间的位姿:

640?wx_fmt=png

通过PNP算法,最小化重投影位姿来计算相机的位姿:

640?wx_fmt=png

【深度模型】

论文提出在一个统一的贝叶斯网络中建模深度估计和更新。由于逆深度遵循高斯分布且比目标距离更具有鲁棒性,因此使用逆深度进行建模。将好的逆深度测量值建模为围绕真值的高斯分布,而不好的逆深度视为观测噪声,均匀分布于:

640?wx_fmt=png

在线推导阶段,我们在每个时间戳上寻找的最大后验估计,可用的高斯分布和贝塔分布来近似:

640?wx_fmt=png

DepthNet中关键帧的深度通过单张图像估计和逆深度的不确定度来进行初始化:

640?wx_fmt=png

在自适应过程中,DeepNet在线学习新的场景几何的先验知识。此外,学习到的不确定性还可以用来衡量概率深度融合的可靠性。

【在线深度优化】

关键帧的深度估计可进一步通过双视图三角化进行计算:

640?wx_fmt=png

其中,dis()表示距离。中点三角化是差分的,是的我们的VO架构可以实现端到端的在线学习。

在线自适应过程中,用于更新先验深度估计从而获得MAP估计,如下图:

640?wx_fmt=png

【学习不确定度的光度误差】

已知估计的位姿和优化后的深度,可通过转换到来合成:

640?wx_fmt=png

然而视场合成是建立在光度一致性假设下,实际中可能并不适用。为了缓解这种情况,我们将这种情况视为观测噪声并使用深度神经网络来对每个RGB像素估计一个后验概率分布。通过将观测噪声设想为拉普拉斯形式,在线学习过程可以被建模为最小化负对数,从而来转换光度损失:

640?wx_fmt=png

【差分高斯牛顿优化】

进一步,论文提出使用差分高斯牛顿层来最小化,从而实现优化深度和位姿。计算两个关键帧中每一个像素的权重光度损失:

640?wx_fmt=png

计算关于和的一阶偏导:

640?wx_fmt=png

得到当前估计的增量:

640?wx_fmt=png

高斯-牛顿算法是自然可微的,我们实现它作为一个层的神经网络。在实践中,我们发现它只在3次迭代内收敛

【损失函数】

论文提出使用下列的损失函数来以自监督的形式在线学习DepthNet和FlowNet。

  1. Smoothness loss

为了加强局部平滑,我们引入了深度和光流的边缘感知损失:

640?wx_fmt=png
  1. Depth Loss

640?wx_fmt=png
  1. Flow Loss

优化后的深度和位姿可用于合成光流,在在线自适应过程使用来监督FlowNet:

640?wx_fmt=png

  1. Photometric Loss

在之前定义过光度损失,因此总的损失函数为:

640?wx_fmt=png

对于DepthNet网络,使用与Monodepth同样的架构,并在输出时增加一个5*5的卷积层来估计深度不确定度映射;

光流网络是基于RAFT的,在输出时增加了一个5*5的卷积层和Sigmoid层来估计光流不确定度。

FlowNet和DepthNet先以自监督的方式进行进行预训练,Adam优化器使用的参数。

在在线自适应阶段,我们在每一个时间戳进行两次迭代重新训练FlowNet和DepthNet。

640?wx_fmt=png

论文的实验方面,是在Cityscapes数据集上进行预训练的,在KITTI数据集上进行测试。比较了当前较好的自监督VO:GeoNet, Vid2Depth, Zhan, SAVO, Li以及经典算法ORB-SLAM2和VISO2。另外对比了Zhao和DF-VO,这两种算法都结合了预训练网络和经典的VO过程。

640?wx_fmt=png

上图是在KITTI数据集上测试的深度估计结果,得益于论文提出的三角化过程和多帧深度优化,算法在边缘估计上得到了较好的表现能力。

在本文中,我们提出了一个基于场景不可知几何计算和贝叶斯推理的深度VO在线自适应框架。利用贝叶斯深度滤波器对观测数据进行改进,得到了预测的单视图深度。同时,为了处理观测噪声,我们对深度和光度的不确定性进行了显式建模。利用可微高斯-牛顿层优化的位姿、深度和光流进行在线自我监监督。大量的环境变化实验表明,我们的方法比目前最先进的基于学习的VO方法有更好的泛化能力。

本文仅做学术分享,如有侵权,请联系删文。下载1在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。下载2在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计汇总等。下载3在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK