论文阅读: DF-VO: What Should Be Learnt for Visual Odometry

1. Abstract

Multi-view based methods 在动态环境与低纹理环境下性能较差。单目同时suffer from 尺度漂移问题(误差累计)。

最近的研究证明深度神经网络能够通过自监督的方式学习深度图和相对位置关系。一个训练较好的网络可以在很长时间内维持尺度一致性,但是其精度仍是弱于传统的SLAM方法。

作者认为其核心原因在于很多深度网路忽略了多视觉问题中其内在的几何关系。因此作者通过结合结合深度学习与多视觉几何设计出鲁棒的VO系统,DF-VO。其贡献点在于:

  1. 提出了从deep flow上进行高质量采样correspondences的方法,结合视觉几何模块,可以较为准确的恢复相机位姿。
  2. 通过aligning 三角化恢复的深度与deep depths(同时考虑了动态场景问题),解决了尺度漂移问题。

论文相关代码已经开源:https://github.com/Huangying-Zhan/DF-VO

 

2. Introduction

  • 位姿估计: Data Association 对于求解VO问题非常重要(特征匹配的精度与空间多样性)。In contrast, we propose to extract accurate correspondences diversely from the dense predictions of an optical flow network using the consistency constraint between bi-directional flows。Then the selected correspondences are fed into geometry-based trackers (Epipolar Geometry based tracker and Prospective-n-point based tracker) for accurate and robust VO estimation。
  • 尺度估计:深度学习方式通过 Stereo_based traning 或者 Scale-consistency constraint 保持尺度一致性。参考[1][2][3]。

 

3. Related work

3.1 Geometry based VO

传统的VO方式,ORB-SLAM,DSO,等。

3.2 Deep Learnign for VO

 

4. Prelimilaries 

4.1 Epipolar constraints 

对极几何约束,Essential  and Fundamental matrix。但是无法解决一些特殊运动和场景结构导致的模型退化问题。

  • 运动没有平移量
  • 场景结构为平面(F矩阵构建的线性方程之间线性相关)

以上问题会造成求解F矩阵数值不稳定,同时无法恢复尺度,具有尺度不确定性。

4.2 Perspective-n-Points

基于3D与2D之间的匹配对应,求解相机位姿,具体不在赘述。

 

5. DF-VO:Depth and Flow for Visual Odometry

5.1 System Overview

系统框架如上图所示,训练两个子网络,第一个网络用于获得稠密的前向后向稠密光流,以此建立2D-2D的匹配关系;第二个网络用于估计单目深度,结合稠密光流获得的匹配关系,建立3D-2D的匹配。分别基于2D-2D以及3D-2D匹配关系,构建E-tracker 和 PnP-tracker用于位姿估计。注意到由于基于对极几何的E-tracker位姿估计方式不能恢复真实尺度,因此2D-2D位姿估计子模块还额外添加了尺度恢复子模块。

5.2 Deep predictions 

Optical flow: 光流估计深度网路,输入图像对(I_i,I_j),估计光流可以获取i图像上像素点在j图像上的对应关系。光流估计深度网络可以到达非常高的平均精度,但并不是所有的像素点都达到这么高的精度,因此筛选较高精度的对应关系。

Single View Depth: 估计单目深度建立3D-2D关系,单目深度估计准确度不够,大概10%的相对误差,因此主要还是利用E-tracker进行位姿估计,PnP主要是在E-tracker 失败的时候进行辅助。

 

5.3 Correspondence Selection

利用稠密光流获得的2D-2D匹配进行位姿估计将非常耗时,而且可能包含很多错误的匹配(eg. 动态物体,遮挡,out-of-region等问题),最好的方式是从稠密图中随机或者平均的筛选质量较高的匹配关系。作者为了过滤外点并且找到高质量的光流匹配,提出了bi-directional flow consistency 的筛选策略。定义flow consistency:

C = -F_i^j-w(F_j^i,p_f(F_i^j)),其中

w(F_j^i,p_f(F_i^j)) = F_j^i[x+F_i^j[x]]

即将左图的某一像素点x根据正向预测光流预测其在右图的对应位置x+F_i^j[x],然后再将该预测点根据反向光流预测其在左图的像素位置F_j^i[x+F_i^j[x]]。根据双边光流一致性选择原则,找出最好的N个匹配点。

Local best-K selection: 为了让筛选的点对均匀的分布在图像中,将图像划分为M*M的网格,选择每个网格中一致性最好的K个匹配点对。

优势:(1) increasing location diversity as described; (2) speeding up correspondence selection process since part of flows are rejected in the first place and sorting flow inconsistency is performed in a local image region instead of the whole image region。

之后就是利用匹配点对求解Essential Matrix,进而分解获得R与t。(recorved motion is up-to-scale)

 

5.4 Scale Recovery

Simple alignment: 作者使用单目预测的深度作为参考去恢复真实尺度信息。当根据对极几何恢复R,t后,可以根据位姿关系和匹配点对对3D点进行三角化得到D_i^{'},因此直接将D_i^{'}与单目深度预测的D_i进行对齐,可以得到较粗的尺度估计。利用网络预测深度信息有两个优势:

  • Depth CNN 预测的结构是尺度一致的。
  • 尺度漂移一般由在三角化新的地图点时引起的,在这个过程中我们不产生新的地图点,而仅仅是利用网络进行尺度恢复。

Iterative alignment: 基于Simple alignment的尺度对齐方式可以满足大多数常规场景,但是在动态场景,光流预测不佳,或者深度估计不可能在每一个像素都非常准确,因此采用迭代优化的方式进行尺度的求解。假设左图某一点的深度预测为D_i,根据对极几何求解的位姿T_0(注意这个位姿是尺度不确定的)可以获取到其在右图上的对应像素点,因此可以计算其光流F_{rigid}为:

F_{rigid} = KTK^{-1}(xD_i)-x

将该计算光流与深度网络预测的光流求残差可以确定两种方式的一致性,只有残差越小,那么估计的尺度就越接近与单目深度预测的尺度。

cost = ||F' - F_{rigid}||_{2}

 

5.5 Model Selection

对极几何有无法解决的问题,运动退化或者场景结构退化,作者提出用PnP模块进行位姿求解,代替对极几何失效的情况。那么模型的选择就非常重要。

Flow magnitude: 利用预测的光流匹配可以计算像素平均视差,当像素平均视差较大时进行对极几何求解,这种方式可以规避相机运动量较小的问题,但是仍然无法解决纯旋转问题(因为纯旋转运动也可以造成较大的视差);另外也没有对外点进行考虑。基于此,作者提出了更robust的选择模型。

Geometrical Robust Information Criterion(GRIC): GRIC选择模型考虑以下因素

  • 匹配数量,n
  • 匹配残差,e_i
  • 观测误差的标准差,\sigma
  • 数据维度,\gamma(4 for two views)
  • 模型参数,k(Essential matrix 是5,Fundamental 矩阵是7,Homography矩阵是8)
  • 结构维度,d(3 for F, 2 for H)

GRIC = \sum \rho (e_i^2) + \lambda _{1}dn + \lambda _{2}k,其中

\rho (e_i^2) = min(\frac{e^2}{\sigma ^2},\lambda _{3}(r-d))

综上,类似ORB-SLAM中初始化时在H和F模型中切换,本论文在F和PnP模型中切换。

Cheirality Condition: 在本质矩阵分解中,还要对四对R,t进行验证,原则是三角化的点在相机前方。

 

5.6 Jointly learning of depths and pose

 

作者采用文章[4]的框架进行深度训练:Real-time joint semantic segmentation and depth estimation using asymmetric annotations

后续阅读更新。


5.7 Learning of optical flows 

 

采用文章[5]框架进行光流估计:Liteflownet: A lightweight convolutional neural network for optical flow estimation
后续阅读更新。

 

Implementation

TODO。。。

 

Reference

[1] Digging into self-supervised monocular depth prediction

[2] Unsupervised learning of monocular depth estimation and visual odometry with deep feature reconstruction

[3] Unsupervised scale-consistent depth and ego-motion learning from monocular video

[4] Real-time joint semantic segmentation and depth estimation using asymmetric annotations

[5]Liteflownet: A lightweight convolutional neural network for optical flow estimation

 


 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值