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

1|0论文简介

提出了一种UV-SLAM的算法,整体建立与VINS-MONO的基础上:
在这里插入图片描述

在VINS—MONO的基础上增加了线特征的约束和消影点的约束。
其中线特征的提取用的是line segment detector(LSD)算法,线特征的跟踪或线特征的描述子的提取用的是line binary descriptor(LBD)算法。
构建如下的误差方程:

minX{r0J0X2+iBrI(zbi+1bi,X)Σbi+1bi2+(i,j)Pρprp(zpjci,X)Σpjci2+(i,k)Lρlrl(zlkci,X)Σlkci2+(i,k)Vρvrv(zvkci,X)Σvkci2}

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

图构建如下:

在这里插入图片描述

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

2|0线特征模型

两种直线表示法的说明:

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

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

感性上构建直线残差的方式
在这里插入图片描述

图片的说明如下:

在这里插入图片描述

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

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

l=Kn=[fy000fx0fycxfxcyfxfy]n

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

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

残差的构建 其实就是观测到的线段的端点分别到重投影直线的距离

rl=[d(ps,lc)d(pe,lc)]

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

3|0消影点特征模型

在这里插入图片描述

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

计算消影点的方法:

vc=[v1v2v3]=limtP(V0+tD)=Kdc=dc

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

于是构建约束:

rv=pv1v3[v1v2]

关于雅可比的构建同线特征模型 这里不再赘述。

4|0实验结果

在这里插入图片描述

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.

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


__EOF__

本文作者铃灵狗的水墨书香
本文链接https://www.cnblogs.com/linglingdog/p/17059851.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   铃灵狗  阅读(282)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示