1.Introduction
相机对特征具有较强的追踪性能,但立体视觉对外参标定的依赖过强,对于有细小误差的标定结果可能会导致较大的深度估计误差,然而激光的深度估计误差较小,并且独立于外参估计误差。
目前激光到相机的标定仍是一个活跃领域,精度在几个像素误差之内。
该paper不显式使用任何LIDAR-SLAM算法,实现激光和相机的深度信息融合的里程计和BA,但没有实现回环检测。
pipeline:
monocular image sequence(Camera)
- Feature extraction
- Feature preprocessing
- Frame to frame motion estimation
scale information(LIDAR)
- scale estimation
fusion
- compute camera poses and 3d structure
2.Feature extraction and preprocessing
该paper使用了viso2实现了特征提取和匹配,viso2包含了非极大值抑制、剔除离群值等功能,能在30-40ms能匹配2000个特征。作者还使用了深度学习来剔除在运动物体上的landmark
3.Scale estimation
思想:从LIDAR中获得被检测到的特征点的深度
A.方法概述
首先将LIDAR点云转换到相机坐标系,然后投影到图像平面,然后对每一个图像特征点f执行一下五步:
- 选择f周围的ROI中的LIDAR点云集F(块B)
- 从F中分割除前景集F_seg(块C)
- 用前景集F_seg拟合平面p(块D),如果f属于地面,则使用一种特殊的拟合算法(块E)
- 将p和f对应的视线相交,得到f的深度
- 对估计的深度执行测试
B.选择邻域(即ROI)
用矩形框作为ROI,ROI中的激光点要能组成一个平面,而不是一条直线上
C.前景分割
由于特征点通常都是角点,如果直接对点集F拟合一个平面,通常都会产生错误的估计,因此需要将前景分割出来。
前景分割算法利用了深度直方图,以深度跳变点作为前后景的分界点,分割后f可以看作是前景平面中的一条边。
D.平面拟合
从F_seg中选择三点张成一个能够稳定估计值的最大面积的三角形F_delta。如果F_delta过小,则不使用该深度估计
E.特例:地面上的点
F_seg拟合得到的平面是垂直于雷达的垂直轴(?我认为是水平轴)的。但在地面上的点是不可以用该方法估计的,因为激光雷达在垂直方向上的精度低于水平方向上的精度。但地面上的点是有价值的,所以利用RANSAC算法对激光雷达点云提取出具有鲁棒拟合特性的地面
4.Frame to frame odometry
用PnP估计相机运动,为了解决具有有效深度的特征点较少的问题,该paper加入了极线约束。为了减少离群值的影响,该paper使用了柯西核函数包裹损失函数和极线约束。
5.后端
该paper提出了一个基于关键帧的BA框架,该框架从结构和软件上独立于先验估计。
A.选择的重要性
衡量了准确率和花销
B.关键帧的选择
C.地标(Landmark)选择
该paper将Landmark分成了三部分:近(Near),中(Middle),远(Far)
- Near对平移估计较为重要
- Middle对平移和旋转都重要
- Far对旋转重要
为了保证三维地标的均匀分布,该paper对三维地标采用了中值滤波的体素滤波器。对不同的部分使用了不同的选择策略。