本文提出一种基于特征点和特征线的一种视觉里方法,提出了一种对特征点和线性特征信息进行并行处理的方式,线性特征信息快速匹配算法、以及一种基于采样的3D线性特征快速重构的方式。
这一部分主要针对当前主流的视觉SLAM方案进行描述,基于特征信息法和直接法的优缺点进行讲解,其中针对传统的特征点法容易丢失的问题通过结合点特征和线性特征信息提升系统的精度和鲁棒性。类似方案中所面临的问题主要是计算来那个太大的问题,分别是多种特征信息的处理和对线性特征信息的匹配以及重构问题中,为了提升线性特征信息的处理速度,文中通过对线性特征信息进行采样处理避免由于线性特征信息处理加大计算量,本文主要的贡献有:
整个系统框架是在ORB-SLAM的基础上构建的,唯一不同之处是在多个对特征信息操作的部分实现了特征点和线性特征信息的并行处理。
系统狂图如下:
1.Line Segment Matching
针对线性特征信息,相比比较常见的通过端点信息对线性信息带来不确定性文中通过普吕克坐标和可视关键帧来表示线性特征,通过寻找最合适的线轴角的关键帧来获取对应的关键帧信息,通过构建平面信息获取对应的匹配线性特征信息,将所有的线性特征信息通过方向分为36组,将匹配线性特征所在的组所有线性特征信息作为候选信息,标记为 S L S_L SL。
定义线性特征之间的误差信息如下:
d 1 ( l L , l ) = α ( d ( l L , p 1 ) + d ( l L , p 2 ) ) d 2 ( l L , l ) = ( 1 − α ) ( d ′ ( p 1 , a ) + d ′ ( p 2 , b ) ) d ( l L , l ) = ( d 1 ( l L , l ) + d 2 ( l L , l ) ) l F ∗ l L ∗ d_1(l_L,l)=\alpha (d(l_L,p_1)+d(l_L,p_2))\\d_2(l_L,l)=(1-\alpha) (d'(p_1,a)+d'(p_2,b))\\d(l_L,l)=(d_1(l_L,l)+d_2(l_L,l))\frac{l^*_F}{l^*_L} d1(lL,l)=α(d(lL,p1)+d(lL,p2))d2(lL,l)=(1−α)(d′(p1,a)+d′(p2,b))d(lL,l)=(d1(lL,l)+d2(lL,l))lL∗lF∗
其中, d ( l L , p 1 ) d(l_L,p_1) d(lL,p1)表示端点到线性特征的距离, d ′ ( p 2 , b ) d'(p_2,b) d′(p2,b)表示端点之间的距离, l F ∗ , l L ∗ l^*_F,l^*_L lF∗,lL∗分别表示图像中所有线性特征的长度,和待匹配的线性特征长度。
2.Map Line Initialization
线性特征信息的初始化通过对匹配线性特征之间的采样点进行3D空间构造再进行3D线的拟合。对应的伪代码如下:
1.Parallel Processing of Points and Lines
通过并行运行实现特征点和线性特征信息的同时操作。
2.Bundle Adjustment with Points and Lines
这里主要是构建整体系统的代价函数由线性特征和点特征误差函数组成: C = ∑ k , i , j ρ ( d k , i ′ T Ω k , i − 1 d k , i ′ + d k , j T Ω k , j − 1 d k , j ) d k , j = ∥ l j ∗ π ( K , T k , L j a ) l j ∗ π ( K , T k , L j b ) ∥ 2 d k , i ′ = ∣ ∣ p i − π ( K , T k , P i ) ∣ C=\sum_{k,i,j}\rho(d'^T_{k,i}\varOmega_{k,i}^{-1}d'_{k,i}+d^T_{k,j}\varOmega_{k,j}^{-1}d_{k,j})\\d_{k,j}=\begin{Vmatrix} l_j*\pi(K,T_k,L_j^a)\\l_j*\pi(K,T_k,L_j^b) \end{Vmatrix}^2\\d'_{k,i}=||p_i-\pi(K,T_k,P_i)| C=k,i,j∑ρ(dk,i′TΩk,i−1dk,i′+dk,jTΩk,j−1dk,j)dk,j=∥∥∥∥lj∗π(K,Tk,Lja)lj∗π(K,Tk,Ljb)∥∥∥∥2dk,i′=∣∣pi−π(K,Tk,Pi)∣
1.Localization accuracy
2.Computation Time
本文提出一种结合特征点和线性特征信息的视觉里程计方案,针对线性特征信息由于大量的计算而无法满足实时性的问题本文通采样的方式对该问题进行了解决。