1. Abstract

  • 通过一种Unified Omnidirectional Model作为投影方程。
  • 这种方式可以使用图像的所有内容包括有强畸变的区域,而现存的视觉里程计方案只能修正或者切掉来使用部分图像。
  • 关键帧窗口中的模型参数是被联合优化的,包括相机的内外参,3D地图点,仿射亮度参数。
  • 因为大FoV,帧间的重合区域更大,并且更spatially distributed.
  • 我们的算法更牛逼。

1. Introduction

我们用了一个unified omnidirectional model在fixed-lag smoothing approach.

Pose graph忽略了关键帧间fine-grained(细纹理的) 的相关,并且需要线性化和高斯估计来浓缩测量。

有一个Omnidirectional LSD-SLAM方案甚至可以用大于180°的相机FoV。

4. Camera Models

A. Pinhole Model

\[\pi_{u}(\mathbf{x})=\left[\begin{array}{ll}{f_{x}} & {0} \\ {0} & {f_{y}}\end{array}\right]\left[\begin{array}{l}{x / z} \\ {y / z}\end{array}\right]+\left[\begin{array}{l}{c_{x}} \\ {c_{y}}\end{array}\right] \]

针孔投影模型假设被估计的3D点是在图像平面上方的, i.e. 他们的深度是比焦距大的,这限制了FoV得小于180°。

B. Unifed Omnidirectional Model

这个模型的优势:

  • 可以准确model很多图像设备和镜头的geometric image formation。
  • 反投影函数$ \pi^{-1}$是closed-form. 一个3D点是先投影到单位球,然后投到针孔相机模型with an z-axis offset \(-\xi\)

\[\pi_{u}(\mathbf{x})=\left[\begin{array}{c}{f_{x} \frac{x}{z+\|\mathbf{x}\| \xi}} \\ {f_{y} \frac{y}{z+\|\mathbf{x}\| \xi}}\end{array}\right]+\left[\begin{array}{c}{c_{x}} \\ {c_{y}}\end{array}\right] \]

这里$$|\mathbf{x}|$$是x的norm.

\[\begin{array}{l}{\pi_{u}^{-1}(\mathbf{u}, d)} \\ {\qquad=\frac{1}{d}\left(\frac{\xi+\sqrt{1+\left(1-\xi^{2}\right)\left(\tilde{u}^{2}+\tilde{v}^{2}\right)}}{\tilde{u}^{2}+\tilde{v}^{2}+1}\left[\begin{array}{l}{\tilde{u}} \\ {\tilde{v}} \\ {1}\end{array}\right]-\left[\begin{array}{l}{0} \\ {0} \\ {\xi}\end{array}\right]\right)}\end{array} \]

5. System Overview

A. Model Formulation

标识photometric error的能量函数:

\[E_{\mathbf{p} j} :=\sum_{\mathbf{p} \in N_{p}} w_{p}\left\|\left(I_{j}\left[\mathbf{p}^{\prime}\right]-b_{j}\right)-\frac{t_{j} e^{a_{j}}}{t_{i} e^{a_{i}}}\left(I_{i}[\mathbf{p}]-b_{i}\right)\right\|_{\gamma} \]

第i帧上的一个点p投影到第j帧,用一个patch \(N_p\)上的灰度误差平方和SSD (Sum of Squared Differences) ,\(w_p\)是基于梯度的权重。\(\|\cdot\|_{\gamma}\)$是一个huber norm.

\[\begin{array}{l}{\mathbf{p}^{\prime}=\pi\left(\mathbf{R} \pi^{-1}\left(\mathbf{p}, d_{p}\right)+\mathbf{t}\right)} \\ {\text { with }} \\ {\qquad\left[\begin{array}{cc}{\mathbf{R}} & {\mathbf{t}} \\ {0} & {1}\end{array}\right] :=\mathbf{T}_{\mathbf{j}} \mathbf{T}_{\mathbf{i}}^{-1}}\end{array} \]

滑窗里的光度误差项是:

\[E_{\text {photo}} :=\sum_{i \in F} \sum_{\mathbf{p} \in P_{i}} \sum_{j \in o b s(\mathbf{p})} E_{\mathbf{p} j} \]

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}$$.

\[\begin{aligned} \mathbf{p}_{0} & :=\pi_{s}\left(\mathbf{R} \pi_{u}^{-1}\left(\mathbf{p}, d_{\min }\right)+\mathbf{t}\right) \\ \mathbf{p}_{\infty} & :=\pi_{s}\left(\mathbf{R} \pi_{u}^{-1}\left(\mathbf{p}, d_{\max }\right)+\mathbf{t}\right) \end{aligned} \]

然后线性插值with \(\alpha \in [0, 1]\)

\[\mathbf{p}_{L}(\alpha) :=\alpha \mathbf{p}_{0}+(1-\alpha) \mathbf{p}_{\infty} \]

我们通过把这个线投影到目标图像来获得极曲线

\[\mathbf{u}_{L}(\alpha) :=\pi_{u}\left(\mathbf{p}_{L}(\alpha)\right) \]

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

反正我们牛逼。

posted on 2019-06-25 13:55  四积阴功五读书  阅读(639)  评论(0编辑  收藏  举报