[关闭]
@iStarLee 2021-08-25T07:43:56.000000Z 字数 7366 阅读 1196

PLSLAM: 基于点线综合特征的双目视觉

SLAM-VisualSLAM


Reference

1 VLSAM中的线特征

1.1 线段特征的提取

LSD(Line Segment Detector)是一种能在线性时间内得到亚像素级精度的局部提取线段的算法,其核心思路是将梯度方向相近的像素点合并。

LineSegmentsDetection

pl-SLAM

1.2 线段特征的描述子

LBD_Descriptor

1.3 空间直线的参数化

空间点坐标
空间点的齐次坐标 , where
面的齐次坐标

1.3.1 空间直线方程表示(两个平面相交)


也就是

1.3.2 直线上任意两点其次坐标构成直线

直线上任意两个点可以构成直线方程约束一条直线。将直线方程看成是两个空间点的齐次坐标,这两空间点的齐次坐标作为的行向量构成2×4矩阵:

然而这是一种非紧凑的表示,具有多余的4个参数,在优化问题中会引入额外的约束,在表达点线、线面相交以及相机投影时不太便利。这里引入其他两种空间直线的表示。

1.3.3 普吕克坐标

普吕克坐标由两空间点确定,其齐次坐标分别为
这个齐次坐标里面的表示直线3维坐标的模,也就是


首先定义普吕克矩阵如下:

代入计算,发现普吕克矩阵有特殊性质

根据以上性质,可以知道因为6个非零元素只有5个是有意义的,另外由于,所以普吕克矩阵实际自由度为4。

普吕克坐标即由普吕克矩阵中6个非零的元素,将其按照一定的顺序排列成的一个六维向量,这里采用Bartoli论文中记号

几何意义理解:

image_1dffbmref180gnk13bnr91d2g2c.png-49.7kB

普吕克坐标与普吕克矩阵的关系如下:

普吕克坐标在表达坐标变换和重投影时具有线性的形式,其中坐标变换的公式为


将空间直线投影到当前相机图像中,得到其投影直线方程为

这个推导过程很简单,就是比较繁琐,
空间直线上的两个点变换到相机坐标系下得到,这两个点也可以构成
首先将相机坐标系下的两个点分别按照如下投影关系投影到相机平面,


得到两个二维平面点,然后得到两点的平面直线方程,将方程统一成的形式,就可以得到相机坐标系下直线投影到图像坐标系下的投影关系。

这里推导谢晓佳的硕士论文时,发现他的这个投影矩阵中第三行第二列少写了一个负号,在贺一家博士的PLVIO论文中印证了我的推导,hiahia,论推公式的重要性呀~

然而这种6参数的形式大于空间直线自由度,且存在正交约束,因此普吕克坐标是一种过参数化的表示。因此Bartoli提出了一种4参数的最小化表示方法,称之为正交表示。

1.3.4 直线参数化的正交表示

组成如下曾广矩阵,然后进行QR矩阵分解如下:

, 其中,对应的

正交表示可以很容易地转为普吕克坐标:


其中表示矩阵的第列。

空间直线的正交表示属于积流形(product manifold),因此可以利用切空间上的元素定义其增量。设增量为


前三个元素用于更新,最后一个元素用于更新

其中,

中的4个参数具有具体的几何意义,隐含了的比值,也就是原点到空间直线的距离,因此第4个参数调节空间直线到远点的距离。距离确定的时候,调节空间直线绕3个轴的旋转,在图中分别用橙色、绿色和蓝色的直线簇表示,其中黑色直线为更新前的空间直线。

image_1dffotqo8aggtc3mur1g6r7ud2p.png-119.2kB

然而正交表示并不能像普吕克坐标一样很好地表示坐标变换和重投影,因此在本文中除了在后端优化中采用正交表示,其他情况下均采用普吕克坐标。

1.4 空间直线的观测模型

空间直线的观测模型存在多种定义方式,可以通过3D.3D的方式定义空间直线与匹配空间直线的误差,也可以通过3D.2D的方式定义空间直线与匹配图像直线的误差,通常采用后一种方法精度更高。

3D-2D的方式首先将空间直线重投影到图像上,然后计算投影直线和图像中的匹配线段的误差,图像中的线特征也可以用两个端点表示,分别为
Bartoli列出了几种误差的定义方式,如

由于孔径问题以及在连续帧的图像中空间直线端点不准确,只有匹配线段垂直于投影直线这部分才能提供有效信息,而平行于投影直线方向可能存在很大的误差,因此使用该模型作为观测模型是比较合理的。

image_1dffqcmpj1i6d1c7g96c1i2l18oj46.png-54.6kB

2 点线综合的BA后端优化框架

2.1 点线综合的图模型

image_1dffr8vhgu7416tqbcsqv019mc50.png-95.5kB

image_1dfn66mco1mqqin98jnrdt98vm.png-133.9kB

下表总结三维点和空间直线的坐标变换和投影方程,采用了齐次坐标的表示使得式子更加简洁,其中第三行表示将空间特征投影到双目的右图像中
image_1dffrg9ju1o9c5s117b0b14g9i9.png-57.6kB

将三维点和空间直线进行重投影后的结果如图
image_1dffrh1dt16ncvtvi5h1h9i1gf9m.png-35.9kB

这两种误差的表示形式如下

在假设观测误差为高斯分布的情况下,可以得到最后的代价函数:
image_1dffrka9q166p6mr15h7dh512pk13.png-15.8kB
image_1dffrlj04i2u1v9f1vk71l0m1cf71g.png-17.5kB

image_1dffrmfq2151f1ri810h2u1ageo2d.png-32kB

2.2 点线误差的雅可比矩阵

2.2.1 点误差关于位姿和三维点的雅克比矩阵

image_1dffsa63dmbi1m2417ei1fh85o954.png-33.3kB
image_1dffsf9q9luq1dkkihgua89u76e.png-45.9kB

image_1dffsk0ij1abjl801d4t1pq51de37o.png-68.9kB

2.2.2 线误差关于位姿的雅克比矩阵

需要求解直线重投影误差关于位姿增量和空间直线正交表示增量的雅可比矩阵。
求导思路是使用链式法则
image_1dffti56q1p2l1irqjtbdbl31h9s.png-23.8kB

image_1dffst0mq12voqmq1b1d1b981j7s8l.png-90.5kB
image_1dffsv0r511fl1bq91cl5lsdnds92.png-37.7kB
image_1dfft463h1h5ddsqdi84hsj5m9f.png-100.7kB

image_1dfftpsoq1hg7ji117395513vdap.png-22.5kB
image_1dfftq9kv1tej1anbf891nn4bm2b6.png-5.6kB
这里直接给出结果,详细推导请参看该论文
image_1dfftrk0p1m6rp0fl0r1890mahbj.png-19.4kB

3点线综合的视觉词典

这里使用ORB点特征描述子和LBD直线特征描述子,由于它们都是256位的二进制描述子,因此把它们放在同一个视觉词典里,可以简化建立视觉字典的过程以及进行回环检测时所进行的操作。通常图像中的点特征多和线特征少,点线特征在视觉词典里要区别对待,因此为ORB描述子添加标志位0,为LBD描述子添加标志位1,用标志位便可区分点特征与直线特征。

这个地方涉及到回环问题,先占坑。。。。。。。。。。。。。。

4 PL-SLAM系统框架和细节

基于ORB-SLAM

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注