vio作业(一)

VIO课程第一节作业
阅读 VIO 相关综述文献 ,回答以下问题:
• 视觉与 IMU 进行融合之后有何优势?
• 有哪些常见的视觉 +IMU 融合方案?有没有工业界应用的例子?
• 在学术界,VIO 研究有哪些新进展?有没有将学习方法用到 VIO
中的例子?

  1. 视觉与 IMU 进行融合之后有何优势
    单目视觉 SLAM 算法存在一些本身框架无法克服的缺陷,首先是尺度的问题 ,单目 SLAM 处理的图像帧丢失了环境的深度信息,即使通过对极约束和三角化恢复了空间路标点的三维信息,但是这个过程的深度恢复的刻度是任意的,并不是实际的物理尺度,导致的结果就是单目SLAM 估计出的运动轨迹即使形状吻合但是尺寸大小却不是实际轨迹尺寸;由于基于视觉特征点进行三角化的精度和帧间位移是有关系的,当相机进行近似旋转运动的时候,三角化算法会退化导致特征点跟踪丢失,同时视觉 SLAM 一般采取第一帧作为世界坐标系,这样估计出的位姿是相对于第一帧图像的位姿,而不是相对于地球水平面 (世界坐标系) 的位姿,后者却是导航中真正需要的位姿,换言之,视觉方法估计的位姿不能和重力方向对齐。
    通过引入 IMU 信息可以很好地解决上述问题,首先通过将 IMU 估计的位姿序列和相机估计的位姿序列对齐可以估计出相机轨迹的真实尺度,而且 IMU 可以很好地预测出图像帧的位姿以及上一时刻特征点在下帧图像的位置,提高特征跟踪算法匹配速度和应对快速旋转的算法鲁棒性,最后 IMU 中加速度计提供的重力向量可以将估计的位置转为实际导航需要的世界坐标系中。同时,智能手机等移动终端对 MEMS 器件和摄像头的大量需求大大降低了两种传感器的价格成本;硬件实现上, MEMS 器件也可以直接嵌入到摄像头电路板上。综合以上,融合 IMU 和视觉信息的 VINS 算法可以很大程度地提高单目 SLAM 算法性能,是一种低成本高性能的导航方案。
    从另外一个角度理解视觉惯性融合的意义,我们一般采用运动方程和测量方程描述机器人的运动过程,具体到视觉惯性紧耦合运动估计问题。整个机器人的运动过程就是运动方程根据上一时刻状态和当前时刻运动输入 u_k 预测当前状态,利用传感器的测量方程作为矫正的过程,在纯视觉SLAM中,因为缺少运动输入,预测方程提供信息不足,我们是直接采用测量方程构建重投影误差进行运动优化估计,而引入IMU数据之后,用IMU作为运动输入 u_k 可以对状态进行很好的预测,VIO就是利用了运动预测和测量方程构建联合估计。具体来说,在假设噪声服从高斯分布,对非线性方程进行一阶近似的条件下,从最大后验估计的角度就可以推导出我们在VIO论文中看到的联合优化目标函数:

  2. 有哪些常见的视觉+IMU融合方案?有没有工业界应用的例子?
    常见的视觉+IMU融合方案:
    基于滤波算法的融合方案:MSCKF、VIO-ROVIO、S-MSCKF、Maplab、Map-Based Visual-Inertial Monocular SLAM using Inertial assisted Kalman Filter proposed by Quan in 2017等。
    基于优化算法的融合方案:OKVIS、VIORB、VINS-mono等。
    VIO在工业中广泛应用于无人机以及移动机器人的导航,自动驾驶技术中目前也开始增加VIO的技术使用,目前自动驾驶广泛应用的是GPS与惯导的组合导航,但在隧道,地下车库等场合,GPS信号弱,不能提供良好的导航效果,于是增加摄像机与惯导的融合,增加了系统正常应用工作的场合。
    AR(Augmented Reality) 增强现实技术是通过带有视觉传感器的设备实现在物理真实场景中添加虚拟信息,实现现实和虚拟场景的交互。如图,Apple在 2017 年 推出的 ARKit在移动设备上实现的AR 效果示例,ipad 显示通过后置摄像头拍摄的真实场景和虚拟场景叠加的效果,其中相机是真实的物体,咖啡杯和花瓶则是添加的虚拟物体,通过光线渲染等实现了很好的效果(使用者甚至无法区分出真实物体和虚拟物体)。举例说明 SLAM 技术在其中发挥的作用,当使用者通过 ipad 向 ipad 拍摄到的场景中添加虚拟信息,为了实现很好的逼真效果,第一步就是需要固定该虚拟物体相对真实环境中的位置,即 ipad 移动而视角发生变化时,虚拟物体和真实环境的相对位置不应该发生变化,而虚拟物体实际是存在于移动设备上的,换言之,我们需要精确估计出移动设备相对空间的位置变化。ARKit 是通过VIO实现移动设备在空间中的精确定位。

VR(Virtual Reality) 虚拟现实技术则是通过虚拟现实头盔投射虚拟信息,给人身临其境的感觉,将使用者在实际空间中的移动反映到虚拟空间上可以很大程度地提高交互体验,通过追踪使用者佩戴头盔的位置可以实现这一效果,实现头盔空间定位的方式可以分为 Outside-in 方案和 Inside-out 方案,前者使用过外部辅助设备实现定位,后者则使用头盔自身传感器实现定位,显然后者的使用场景不受限制是一种更好的定位方式,而 Inside-out 定位目前被广泛采用的方案就是视觉惯性传感器融合实现 SLAM的 VINS 算法。
3. 在学术界,VIO 研究有哪些新进展?有没有将学习方法用到 VIO中的例子?

  1. VINet : Visual-inertial odometry as a sequence-to-sequence learning problem
    VINet,它是一种端到端可训练的深度神经网络架构,用来尝试解决机器人领域视觉惯性里程计的问题。这种网络使用FlowNet来建模视觉运动特征,用LSTM来建模IMU的运动特征,最后通过李群李代数中的SE(3)流行来建模位姿,用帧间堆叠的LSTM网络来预测位姿。在真实的无人驾驶和无人机数据集上,VINet获得了与state of art 方法具有可比性的结果。同时,VINet在面对时间不同步和外参标定不准确的多视觉惯导数据时,表现出了一定的优势。就整体而言,VINet是首次使用DL的框架来解决VIO问题,目前所披露的实验表现出了一定的实用价值。
    2.Shamwell, E. Jared, et al. “Unsupervised Deep Visual-Inertial Odometry with Online Error Correction for RGB-D Imagery.” IEEE transactions on pattern analysis and machine intelligence (2019)1.
    此方法可以在没有Camera-IMU外参的情况下基于学习进行VIO
    网络学习整合IMU测量并生成估计轨迹,然后根据相对于像素坐标的空间网格的缩放图像投影误差的雅可比行列式在线校正。

翻译此篇的introductoin:

Pillai and Leonard的视觉egomotion方法,将光流法映射到mixture density network(MDN)。此方法不仅依赖外部生成的光流(计算量大),也训练了一个supervised方法,其需要真实的姿态作训练集。
SFMLearner [33]是基于图像的unscaled egomotion和深度的非监督学习方法,输入图像序列,输出序列中其他图片和序列中间图片的姿态变化,估计序列中间图片的深度。但是他们的方法不能恢复尺度,尤其是姿态变换的尺度。因此,此方法需要从真实轨迹中估计尺度参数。[34]用semi-differentiable ICP扩展了 SFMLearner 的工作。
UnDeepVO [35] 是另一种估计depth &egomotion的非监督方法。不同于 [33]它可以估计尺度。但是,和[28], [29]相似的是,它用双目图片训练,baseline也是已知的。其网络架构不适用于扩展到imu,因为对于imu而言,图片间的空间转移是不可观的。
VINet [2]是第一个端到端的VI深度supervised网络,它对于相机和IMU之间的时空misalignments 鲁棒。它需要标定相机IMU之间外参。
LS-Net [36] 是一个 learning-based monocular multi-view stereo and egomotion 估计方法.VIOLearner [6], [37]是其扩展。它们是第一个用基于学习的 optimizer去最小化 photometric loss .这些方法都是 supervised 的,需要ground truth.不是端到端可训练的,在优化网络前必须提前训练一个初始化网络。 DeepTAM [38]和本文也是两种最新的用来改进深度估计的基于学习的方法。

你可能感兴趣的:(vio)