Motivation
使用线特征的SLAM方法主要使用线特征的重投影模型,但由于线特征的投影只与Plücker表示中的normal vector有关而与direction vector无关,直线的方向无法被修正,难以解决线特征的退化问题。
本文提出了利用灭点进行结构化建图的无约束的线特征SLAM.重点是不使用任何结构化假设,如Manhattan world假设。算法从线特征中提取灭点,将当前帧中的灭点观测和通过direction vector计算的灭点估计的差异作为BA的残差。通过使用Fisher信息矩阵秩分析,证明了灭点测量约束可以得到唯一的建图结果。
Contribution
- 第一个使用灭点测量进行结构化建图的单目SLAM系统,不受相机运动和环境的限制,且不适用结构化假设,如Manhattan world假设。
- 基于3D直线的Plücker表示和正交表示,定义了vanishing point测量的残差和雅可比形式。
- 通过Fisher信息矩阵秩分析(FIM),证明了提出的方法保证了3D线特征的可观性。
Methodology
算法框架
采用LSD提取直线,LBD匹配直线
采用Plücker表示 L ( n , d ) ⊤ ∈ R 6 \mathbf{L}(\mathbf{n}, \mathbf{d})^{\top} \in \mathbb{R}^6 L(n,d)⊤∈R6进行直线的三角化和重投影
采用正交表示 o = [ ψ , ϕ ] \mathbf{o}=[\boldsymbol{\psi}, \phi] o=[ψ,ϕ]用于后端优化,其中 ψ \psi ψ是3D直线相对相机坐标系的旋转的欧拉角表示, ϕ \phi ϕ是相机中心到线的最小距离
使用J-linkage算法对直线进行聚类,判断每一直线是否具有结构化约束
优化状态
待估计的变量如下
X
=
[
x
0
,
x
1
,
…
,
x
I
−
1
,
λ
0
,
λ
1
,
…
,
λ
J
−
1
,
o
0
,
o
1
,
…
,
o
K
−
1
]
,
x
i
=
[
p
b
i
w
,
q
b
i
w
,
v
b
i
w
,
b
a
,
b
g
]
,
i
∈
[
0
,
I
−
1
]
,
o
k
=
[
ψ
k
,
ϕ
k
]
,
k
∈
[
0
,
K
−
1
]
,
\begin{aligned} \mathcal{X}=& {\left[\mathbf{x}_0, \mathbf{x}_1, \ldots, \mathbf{x}_{I-1},\right.} \\ & \lambda_0, \lambda_1, \ldots, \lambda_{J-1}, \\ &\left.\mathbf{o}_0, \mathbf{o}_1, \ldots, \mathbf{o}_{K-1}\right], \\ \mathbf{x}_i=& {\left[\mathbf{p}_{b_i}^w, \mathbf{q}_{b_i}^w, \mathbf{v}_{b_i}^w, \mathbf{b}_a, \mathbf{b}_g\right], i \in[0, I-1], } \\ \mathbf{o}_k=& {\left[\boldsymbol{\psi}_k, \phi_k\right], k \in[0, K-1], } \end{aligned}
X=xi=ok=[x0,x1,…,xI−1,λ0,λ1,…,λJ−1,o0,o1,…,oK−1],[pbiw,qbiw,vbiw,ba,bg],i∈[0,I−1],[ψk,ϕk],k∈[0,K−1],
其中
x
i
\mathbf{x}_i
xi代表滑动窗口中的第i帧对应的body系状态,包括位置、四元数、速度、陀螺仪bias、加速度计bias
λ j , j ∈ [ 0 , J − 1 ] \lambda_j, j \in[0, J-1] λj,j∈[0,J−1]代表特征点的逆深度, o \mathbf{o} o代表线特征的正交表示
Cost function
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{aligned} &\min _{\mathcal{X}}\left\{\left\|\mathbf{r}_0-\mathbf{J}_0 \mathcal{X}\right\|^2+\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\right. \\ &+\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+\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 \\ &\left.+\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{aligned}
Xmin{∥r0−J0X∥2+i∈B∑∥∥∥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⎭⎬⎫
其中
r
0
\mathbf{r}_0
r0是边缘化残差
r
I
\mathbf{r}_I
rI是IMU预积分残差
r
p
\mathbf{r}_p
rp是特征点残差
r
l
\mathbf{r}_l
rl是线特征残差
r
v
\mathbf{r}_v
rv灭点残差
特征点残差和线特征残差使用Huber核函数
由于灭点残差有无界问题,使用inverse tangent核函数
cost function对应的因子图如下所示
Line Measurement Model
3D直线的投影方程如下
l
c
=
[
l
1
l
2
l
3
]
=
K
′
n
c
=
f
x
f
y
(
K
−
1
)
⊤
n
c
=
[
f
y
0
0
0
f
x
0
−
f
y
c
x
−
f
x
c
y
f
x
f
y
]
n
c
=
n
c
\begin{aligned} \mathbf{l}^c &=\left[\begin{array}{l} l_1 \\ l_2 \\ l_3 \end{array}\right]=\mathbf{K}^{\prime} \mathbf{n}^c=f_x f_y\left(\mathbf{K}^{-1}\right)^{\top} \mathbf{n}^c \\ &=\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}^c=\mathbf{n}^c \end{aligned}
lc=⎣⎡l1l2l3⎦⎤=K′nc=fxfy(K−1)⊤nc=⎣⎡fy0−fycx0fx−fxcy00fxfy⎦⎤nc=nc
本文提出的算法在归一化平面上进行,因此,K和K’是单位阵。投影直线方程等于Plücker表示中的normal vector。
线特征重投影残差如下
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)]
其中
d
(
p
,
1
c
)
=
p
⊤
l
c
l
d
,
l
d
=
l
1
2
+
l
2
2
p
s
=
(
u
s
,
v
s
,
1
)
,
p
e
=
(
u
e
,
v
e
,
1
)
d\left(\mathbf{p}, 1^c\right)=\frac{\mathbf{p}^{\top} \mathbf{l}^c}{l_d}, l_d=\sqrt{l_1^2+l_2^2} \\ \mathbf{p}_s=\left(u_s, v_s, 1\right), \mathbf{p}_e=\left(u_e, v_e, 1\right)
d(p,1c)=ldp⊤lc,ld=l12+l22ps=(us,vs,1),pe=(ue,ve,1)
对应Jacobian如下
其中
T
c
b
\mathcal{T}_c^b
Tcb是Plücker的变换矩阵
Vanishing point measurement model
将直线上的3D点的齐次坐标表示为如下形式
其中
灭点相当于该直线上的无穷远点在像素平面上的投影
其中
P
=
K
[
I
∣
0
]
\mathbf{P}=\mathbf{K}[\mathbf{I} \mid \mathbf{0}]
P=K[I∣0]是相机投影矩阵
在UV-SLAM中,灭点对应直线的direction vector
灭点的估计值是
v
c
\mathbf{v}^c
vc和图像平面的交点,如下图所示
灭点残差如下
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=pv−v31[v1v2]
其中
p
v
\mathbf{p}_v
pv是灭点的观测值
Jacobian矩阵如下
$$
其中
可观性分析
判断标准:如果FIM奇异,则系统不可观。该结果等价于:如果Jacobian列满秩,则系统可观。
首先,直线观测模型对正交表示的FIM如下
其中
Ω
l
δ
o
\Omega_l^{\delta o}
Ωlδo是直线观测的协方差矩阵的逆
由于 ∂ l c ∂ L c , ∂ L c ∂ L w , ∂ L w ∂ δ o \frac{\partial \mathbf{l}^c}{\partial \mathbf{L}^c}, \frac{\partial \mathbf{L}^c}{\partial \mathbf{L}^w}, \frac{\partial \mathbf{L}^w}{\partial \delta \mathbf{o}} ∂Lc∂lc,∂Lw∂Lc,∂δo∂Lw均为满秩矩阵,Jacobian的秩由 ∂ r l ∂ l c \frac{\partial \mathbf{r}_l}{\partial \mathbf{l}^c} ∂lc∂rl确定
∂
r
l
∂
l
c
\frac{\partial \mathbf{r}_l}{\partial \mathbf{l}^c}
∂lc∂rl是一个2x3矩阵,最大秩为2.考虑如下退化情况
此时其秩为1
由于正交表示中的直线具有4个参数,仅依靠直线的测量模型无法保证直线的可观性,为了解决这一问题,使用了新的观测,如下
p
l
=
α
p
s
+
(
1
−
α
)
p
e
,
α
∈
(
0
,
1
)
\mathbf{p}_l=\alpha \mathbf{p}_s+(1-\alpha) \mathbf{p}_e, \alpha \in(0,1)
pl=αps+(1−α)pe,α∈(0,1)
其中
p
l
\mathbf{p}_l
pl是新的观测,添加该观测可以使Jacobian的秩变为2,直线仍不可观
考虑灭点测量的FIM如下
其中
类似地,只需分析
∂
r
v
∂
v
c
\frac{\partial \mathbf{r}_v}{\partial \mathbf{v}^c}
∂vc∂rv,其秩为2,因此Jacobian的秩为2
通过特征值分解,可以得到同时考虑直线测量和灭点测量的FIM如下
其中
在新的Jacobian矩阵中,直线测量和灭点测量对应的行是相互独立的,因此除上文提到的退化情况外,新的Jacobian矩阵的秩为4.可以得出结论,加入灭点观测可以使线特征完全可观。
Evaluation
在Euroc数据集上进行了测试
Conclusion
提出了 UV-SLAM,一种使用灭点测量的无结构化约束的点线SLAM.通过FIM秩分析证明了直线的可观性。