1. Abstract
- 通过一种Unified Omnidirectional Model作为投影方程。
- 这种方式可以使用图像的所有内容包括有强畸变的区域,而现存的视觉里程计方案只能修正或者切掉来使用部分图像。
- 关键帧窗口中的模型参数是被联合优化的,包括相机的内外参,3D地图点,仿射亮度参数。
- 因为大FoV,帧间的重合区域更大,并且更spatially distributed.
- 我们的算法更牛逼。
1. Introduction
我们用了一个unified omnidirectional model在fixed-lag smoothing approach.
2. Related Work
Pose graph忽略了关键帧间fine-grained(细纹理的) 的相关,并且需要线性化和高斯估计来浓缩测量。
有一个Omnidirectional LSD-SLAM方案甚至可以用大于180°的相机FoV。
4. Camera Models
A. Pinhole Model
针孔投影模型假设被估计的3D点是在图像平面上方的, i.e. 他们的深度是比焦距大的,这限制了FoV得小于180°。
B. Unifed Omnidirectional Model
这个模型的优势:
- 可以准确model很多图像设备和镜头的geometric image formation。
- 反投影函数$ pi^{-1}$是closed-form. 一个3D点是先投影到单位球,然后投到针孔相机模型with an z-axis offset (-xi)。
这里$$|mathbf{x}|$$是x的norm.
5. System Overview
A. Model Formulation
标识photometric error的能量函数:
第i帧上的一个点p投影到第j帧,用一个patch (N_p)上的灰度误差平方和SSD (Sum of Squared Differences) ,(w_p)是基于梯度的权重。(|cdot|_{gamma})$是一个huber norm.
滑窗里的光度误差项是:
B. Distance Estimation along with Epipolar Curve
当一帧被成功track了,我们用stereo matching来refine候选点的逆深度。
DSO在极线上搜索匹配。但是当在鱼眼图上用unified omnidirectional model来做的时候,就变成一条曲线(更准确的说是锥线。
极曲线:我们在单位球上定义两个点(mathbf{p}_{0}, mathbf{p}_{infty} in mathbb{R}^{3})围绕在投影中心(C_{ref})上,来对应最大最小的逆深度$$d_{max}, d_{min}$$.
然后线性插值with (alpha in [0, 1])
我们通过把这个线投影到目标图像来获得极曲线。
C. Frame Management
- Initial Frame Tracking:
5层金字塔,场景和亮度变化是持续估计。
- Keyframe Creation
当关键帧被创建的时候,候选点会基于space distribution and image gradient来被选择。我们用初始化的逆深度和大variance来给这些点。后续有帧被tracked的话,来refine点的深度。
- Keyframe Marginalization
当超过7帧关键帧的时候,旧的点和帧就会被边缘化掉。heuristic distance
- Windowed Optimization
6. Evaluation
A. TUM SLAM for Omnidirectional Cameras Dataset
提供了室内鱼眼数据和真值. 是global shutter的,然后是185°FoV. 1280 ×1024分辨率。
我们把图crop然后scale到480×480的。
1) Accuracy Comparison
DSO在精度和鲁棒性上比SVO和LSD-SLAM厉害。
Unified Omnidirectional camera model更提高了DSO和LSD-SLAM的表现。
2) Benefit of Large Field of View
3) Timing measurement
视角广的话,关键帧插入就少了,mapping快了。
B) Oxford Robotcar Dataset
这数据有100组重复的路线,并且有着不同的光照,交通场景。
7. Conclusions
反正我们牛逼。