【优秀论文解读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping

论文简介

提出了一种UV-SLAM的算法,整体建立与VINS-MONO的基础上:
【优秀论文解读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping_第1张图片

在VINS—MONO的基础上增加了线特征的约束和消影点的约束。
其中线特征的提取用的是line segment detector(LSD)算法,线特征的跟踪或线特征的描述子的提取用的是line binary descriptor(LBD)算法。
构建如下的误差方程:
min ⁡ X { ∥ r 0 − J 0 X ∥ 2 + ∑ i ∈ B ∥ r I ( z b i + 1 b i , X ) ∥ Σ b i + 1 b i 2 + ∑ ( i , j ) ∈ P ρ p ∥ r p ( z p j c i , X ) ∥ Σ p j c i 2 + ∑ ( i , k ) ∈ L ρ l ∥ r l ( z l k c i , X ) ∥ Σ l k c i 2 + ∑ ( i , k ) ∈ V ρ v ∥ r v ( z v k c i , X ) ∥ Σ v k c i 2 } \begin{array}{c} \min _{\mathcal{X}}\left\{\left\|\mathbf{r}_{0}-\mathbf{J}_{0} \mathcal{X}\right\|^{2}\right. \\ +\sum_{i \in \mathcal{B}}\left\|\mathbf{r}_{I}\left(\mathbf{z}_{b_{i+1}}^{b_{i}}, \mathcal{X}\right)\right\|_{\Sigma_{b_{i+1}}^{b_{i}}}^{2}+\sum_{(i, j) \in \mathcal{P}} \rho_{p}\left\|\mathbf{r}_{p}\left(\mathbf{z}_{p_{j}}^{c_{i}}, \mathcal{X}\right)\right\|_{\Sigma_{p_{j}}^{c_{i}}}^{2} \\ \left.+\sum_{(i, k) \in \mathcal{L}} \rho_{l}\left\|\mathbf{r}_{l}\left(\mathbf{z}_{l_{k}}^{c_{i}}, \mathcal{X}\right)\right\|_{\Sigma_{l_{k}}^{c_{i}}}^{2}+\sum_{(i, k) \in \mathcal{V}} \rho_{v}\left\|\mathbf{r}_{v}\left(\mathbf{z}_{v_{k}}^{c_{i}}, \mathcal{X}\right)\right\|_{\Sigma_{v_{k}}^{c_{i}}}^{2}\right\} \end{array} minX{r0J0X2+iB rI(zbi+1bi,X) Σbi+1bi2+(i,j)Pρp rp(zpjci,X) Σpjci2+(i,k)Lρl rl(zlkci,X) Σlkci2+(i,k)Vρv rv(zvkci,X) Σvkci2}

其中第一项为边缘化 后面分别对应IMU、point、line和vanishing point(消影点)

图构建如下:

【优秀论文解读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping_第2张图片

x为不同状态 原来只有预积分和特征点的边 现增加了线特征的边和消影点的边。
下面围绕着新增加的这两个边的约束进行讲解

线特征模型

两种直线表示法的说明:

原文中的讲解有一点点啰嗦 其实就是很正常的线特征误差函数构建。使用Plücker坐标系表示直线会用六个参数表示四自由度的直线 所以导致了六个参数并不是无约束的 因此这无法使用无约束优化 但是它的优点是初始化直线和空间变换的时候的形式表达非常简单。

因此在进行优化的时候 我们使用另一种直线的表达方式——正交表达。正交表达正好是四个参数表达四个自由度。且能够很方便的和Plücker坐标进行相互转换。

感性上构建直线残差的方式
【优秀论文解读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping_第3张图片

图片的说明如下:

【优秀论文解读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping_第4张图片

清晰明了。图片为线特征残差构建的举例说明。直线通过另外两帧三角化得到再重投影到第三帧图像上,和第三帧图像上的对直线的观测求差构建目标函数。

这里有一个三维直线的投影说明。论文中的公式较为冗余,这里做简化说明:

l = K n = [ f y 0 0 0 f x 0 − f y c x − f x c y f x f y ] n l=\mathcal{K} \mathbf{n}=\left[\begin{array}{ccc} f_{y} & 0 & 0 \\ 0 & f_{x} & 0 \\ -f_{y} c_{x} & -f_{x} c_{y} & f_{x} f_{y} \end{array}\right] \mathbf{n} l=Kn= fy0fycx0fxfxcy00fxfy n

l l l为重投影的直线表达形式 k k k为相机矩阵的内参 n n n为三维直线的Plücker坐标表示中的法向量 即直线和相机光心组成的平面的法向量

论文中强调 都是在归一化平面做处理 所以 k k k为单位阵 导致二者直接相等了。

残差的构建 其实就是观测到的线段的端点分别到重投影直线的距离
r l = [ d ( p s , l c ) d ( p e , l c ) ] \mathbf{r}_{l}=\left[\begin{array}{l} d\left(\mathbf{p}_{s}, \mathbf{l}^{c}\right) \\ d\left(\mathbf{p}_{e}, \mathbf{l}^{c}\right) \end{array}\right] rl=[d(ps,lc)d(pe,lc)]

对状态量和直线的位置同时求雅可比进行优化。

消影点特征模型

【优秀论文解读】UV-SLAM: Unconstrained Line-based SLAM Using Vanishing Points for Structural Mapping_第5张图片

图中红色为观测的消影点 蓝色为计算的消影点。

计算消影点的方法:

v c = [ v 1 v 2 v 3 ] = lim ⁡ t → ∞ P ( V 0 + t D ) = K d c = d c \mathbf{v}^{c}=\left[\begin{array}{l}v_{1} \\v_{2} \\v_{3}\end{array}\right]=\lim _{t \rightarrow \infty} \mathbf{P}\left(\mathbf{V}_{0}+t \mathbf{D}\right)=\mathbf{K d}^{c}=\mathbf{d}^{c} vc= v1v2v3 =tlimP(V0+tD)=Kdc=dc

可以得到消影点的齐次坐标等于三维直线的方向向量

于是构建约束:

r v = p v − 1 v 3 [ v 1 v 2 ] \mathbf{r}_{v}=\mathbf{p}_{v}-\frac{1}{v_{3}}\left[\begin{array}{l} v_{1} \\ v_{2} \end{array}\right] rv=pvv31[v1v2]
关于雅可比的构建同线特征模型 这里不再赘述。

实验结果

a为ALVIO的结果 b为该实验室以前的结果 c为本实验做出的结果

本文最大的亮点还是将消影点考虑进了残差内 得到的线特征比规整了很多。数据上看:

In addition, we showed that localization accuracy and mapping quality have increased through quantitative and qualitative comparisons with state-of-the-art algorithms. For future work, we will implement mesh or pixel-wise mapping through sparse line mapping from the proposed algorithm.

精度和质量都有提高 下一步工作是从稀疏的线条中恢复地图。

你可能感兴趣的:(算法,slam)