在某些场景中语义信息不是很丰富,单纯的依靠点型特征信息无法实现鲁棒性的获取位姿变换信息,因此本文提出一种结合点特征和线性特征的视觉里程计,提升了视觉里程计的鲁棒性,同时在线性特征匹配中对右侧视图中的特征部分由于遮挡等原因无法完全可视化,依旧可以在右侧视图中精准的匹配到于左侧对应的线性特征。
本文章中所做的贡献:
A.System Overview
这一部分主要说明了相邻的帧之间进行的特征信息匹配问题,通过有效的特征匹配使得能够构建有效的三角化估计,尤其注意线性特征间的匹配问题的解决方案。
A.Stereo Reconstruction
1)Point Reconstruction
点特征的操作使用一般的手法就行,提取双目视图中的左右特征点像素坐标信息,之后计算上述 提取的特征点描述信息以及通过极线假设(将设每一帧双目中的左右视图中匹配的特征点像素坐标的纵坐标相等)进行特征点之间的匹配。
2)Line Reconstruction
线性特征需要考虑比较多的问题,文中线性特征提取的方法用LSD,匹配问题主要通过计算SAD的方式实现,为了加速运算需要提前进行梯度和角度检测,只有在极线上有相近的梯度信息采进行SAD计算,否则检测下一个像素坐标,选择具有最低SAD值得像素点作为匹配点。本文中的另外一个特点就是针对右侧线性特征信息部分遮挡的情况下依旧可以获取有效的匹配结果。
已知左侧视图中的线性特征来个端点,对左侧的线性特征进行等距采样,并结合之前的SAD方式计算右侧视图对应的等距点,通过利用RANSAC和最小二乘法拟合一条右侧视图中对应的线性特征(这里没有提取右侧视图中的线性特征信息,直接通过左侧的特征信息进行的匹配。),通过计算右侧拟合的特征线和俩条极线的交点获取右侧匹配特征线的端点,并计算左右视图中每个匹配特征线对应的俩对端点之间的视差信息。
B.Matching Frame to Frame
接下来是将帧之间的对应特征信息进行匹配,以进行后续的位姿变换估计问题求解,为了保证特征信息的均匀分布,将原始图像信息分解成
n
∗
m
n*m
n∗m个方格,保证每个方格中有指定数量的特征信息。在线性特征的匹配过程中,我们在一定范围内满足反向相似的待匹配线性特征都进行候选,实现
o
n
e
−
t
o
−
m
a
n
y
one-to-many
one−to−many,之后通过特征线中点对应的几何一致性距离从中选出最优的匹配线,实现
o
n
e
−
t
o
−
o
n
e
one-to-one
one−to−one。
C.Robust Inlier Selection
这一部分主要是对上述线性特征匹配的精确性进行提升,和上述的使用的几何信息一致性以及后续的最小几何模型投票机制不同,这一部分我们使用
M
a
x
i
m
u
m
−
C
l
i
q
u
e
−
P
r
o
b
l
e
m
Maximum-Clique-Problem
Maximum−Clique−Problem(最大团问题),相比传统的
R
A
N
S
A
C
RANSAC
RANSAC方法,在方案能够在更大概率不合理点的几何中实现一致性信息最大化。
针对特征点和特征线我们考虑分成俩种情况对匹配信息的一致性进行验证。
1)Inlier Selection in 3D
针对特征点信息,我们构建一致性矩阵
M
M
M,其中每一对匹配的特征点
m
i
j
=
(
p
i
,
p
j
)
m_{ij}=(p_i,p_j)
mij=(pi,pj)作为其中的元素,与另一个元素
m
k
l
m_{kl}
mkl之间应该保持如下关系
∣
∣
X
i
−
X
k
∣
−
∣
X
j
−
X
l
∣
∣
<
δ
P
||X_i-X_k|-|X_j-X_l||<\delta_P
∣∣Xi−Xk∣−∣Xj−Xl∣∣<δP其中
δ
p
\delta_p
δp 是认为设定的阈值,该不等式意义是 在同一视图中保证每对匹配的特征之间也保持几何距离的一致性,如果该公式满足,在一致性矩阵
M
M
M中对应的位置值为1,否则为0。于是我们的任务就变成了选择最优的匹配信息使得一致性矩阵
M
M
M数值最多,该目的通过一种次优的方式实现。随着特征的加入不断更新一致性矩阵直到不在有新的特征信息加入为止。
2)Inlier Selection in the Image Domain
在线性特征中建立类似特征点的一致性矩阵
M
l
i
n
M_{lin}
Mlin,该矩阵中对应的元素主要为
m
i
j
=
(
l
i
,
l
j
)
m_{ij}=(l_i,l_j)
mij=(li,lj),针对线性特征的特殊性,引入俩个判断标准分别是:
∣
α
i
j
−
α
k
l
∣
<
δ
l
1
∣
x
i
j
−
x
k
l
∣
<
δ
l
2
|\alpha_{ij}-\alpha_{kl}|<\delta_{l_1}\\|x_{ij}-x_{kl}|<\delta_{l_2}
∣αij−αkl∣<δl1∣xij−xkl∣<δl2当相应的元素位置满足以上的条件时对应位置为1,否则为0,。之后依旧使用最大团算法构建方向和距离最大的一致性矩阵。
通过构建上一帧中构建的3D特征信息呵呵当前帧对应特征间的重投影误差最小二乘信息,求解
3
D
−
2
D
3D-2D
3D−2D问题下的位姿信息恢复问题。针对点特征和线性特征构建的误差信息有所差异,但是最终主要是构建点之间的误差函数。对于特征点,我们构建的误差函数为
E
(
x
,
y
)
=
x
i
−
p
i
E(x,y)=x_i-p_i
E(x,y)=xi−pi其中
x
i
,
p
i
x_i,p_i
xi,pi分别表示的是特征点的投影和
d
e
t
e
c
t
detect
detect点坐标信息。
针对线性特征信息,假设通过上一帧中重构的3D特征投影到当前帧中的特征线的端点分别是
x
i
′
,
x
i
′
′
x'_i,x''_i
xi′,xi′′,当前帧中的
d
e
t
e
c
t
detect
detect线性特征为
l
j
l_j
lj,对应该特征线构建的误差信息为
E
x
′
=
∣
D
(
x
i
′
,
l
j
)
∣
E
x
′
′
=
∣
D
(
x
i
′
′
,
l
j
)
∣
E_{x'}=|D(x'_i,l_j)|\\E_{x''}=|D(x''_i,l_j)|
Ex′=∣D(xi′,lj)∣Ex′′=∣D(xi′′,lj)∣,其中
D
(
x
,
l
)
D(x,l)
D(x,l)表示点到直线的距离。
利用柯西损失函数
ρ
(
s
)
=
l
o
g
(
1
+
s
)
\rho(s)=log(1+s)
ρ(s)=log(1+s)来外点进行踢除。
构建总体最小代价函数,通过
L
M
LM
LM最小化其值
E
=
[
E
x
,
E
y
,
E
x
′
,
E
y
′
]
T
E=[E_x,E_y,E_{x'},E_{y'}]^T
E=[Ex,Ey,Ex′,Ey′]T对应的雅可比矩阵为
J
E
=
∂
E
∂
w
J_E=\frac{\partial E}{\partial w}
JE=∂w∂E其中的
w
=
(
r
x
,
r
y
,
r
z
,
t
x
,
t
y
,
t
z
)
T
w=(r_x,r_y,r_z,t_x,t_y,t_z)^T
w=(rx,ry,rz,tx,ty,tz)T。通过获取误差函数最小值下对应的位姿信息来获取尽可能精确的相对位姿变换。