点云PCL免费知识星球,点云论文速读。

标题:Stereo Plane SLAM Based on Intersecting Lines

作者:Xiaoyu Zhang, Wei Wang*, Xianyu Qi and Ziwei Liao

来源:分享者

代码:https://github.com/fishmarch/Stereo-Plane-SLAM.git

欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈分享快乐。

论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。

摘要

平面特征是SLAM系统中减小漂移误差的一种稳定标志。从密集点云中提取平面是一种简单、快速的方法,常用于RGB-D相机或激光雷达。但是对于立体相机来说,密集点云的精确高效计算是一个难点。本文提出了一种从立体图像中提取相交线计算平面参数的新方法。平面特征普遍存在于人造物体和构筑物的表面,具有规则的形状和直线的线条。在三维空间中,两条相交的直线可以确定这样一个平面。因此,我们从立体左、右图像中提取直线段。通过立体匹配,计算出三维空间中的端点和直线方向,进而计算出平面。在立体SLAM系统中加入这样的计算平面特征可以减小漂移误差,提高系统性能。我们在公共数据集上测试了我们提出的系统,并与最先进的SLAM系统进行了比较,证明了它的鲁棒性和精确性。

主要内容

本文提出了一种从立体图像中计算平面特征的新方法。平面特征普遍存在于人造物体和结构的表面。这些平面通常有规则的形状和直线。在三维空间几何中,两条相交的直线可以确定一个平面。因此,用直线来计算平面特征是合理和可行的。立体匹配可以从立体图像中计算出三维直线[4]。计算平面特征的示例如图1所示。与直接使用线特征相比,平面特征避免了复杂的参数化,实现了简单而稳健的数据关联。此外,平面也是更精确的地标,计算平面特征的过程也起到了滤除不精确线段的作用。

综上所述,我们的贡献如下:

•一种基于相交线的立体图像平面特征计算方法。

•使用提取点和计算平面的立体SLAM系统。

•在公共数据集上进行评估,系统得到了稳健和准确的估计结果,并实现了先进的性能。

相交线提取平面特征

本节主要介绍平面特征的计算方法。我们首先从两幅立体图像中提取线段。通过匹配直线段及其端点,计算直线端点和方向向量的三维位置。然后我们检查它们的位置,找出相交的线。最后,我们计算了平面参数

A 符号说明

我们将平面表示为p=(n^T,d)^T,其中n=(nx;ny;nz)^T是表示平面方向的单位法向量,d是平面到原点的距离。我们使用常用的形式Tcw属于se(3)来表示相机的姿势,p=(x,y,z,1)^T来表示点。因此,Tcw*pi_w将三维点从世界变换到摄影机坐标系,而Tcw^-T*pw将平面从世界变换到摄影机坐标系,对于直线,我们只记录它们的端点(ps;pe)和单位方向向量nl,这足以计算平面特征。

B 线段检测和计算

立体相机的帧由左图像和右图像组成。使用线段检测器(LSD)从两幅立体图像中提取线段,并用LBD描述子进行匹配。在一帧立体图像中,直线匹配具有足够的精确性和鲁棒性。如图2(a)所示,以不同的颜色绘制线段,并且在Il和Ir中匹配的线段是相同的颜色。对于左图像Il中的每一个匹配线段,假设它们在立体帧中的行位置不变,在右图像Ir中找到其端点的对应点。如图2(b)所示,匹配的端点通过横线连接。为了清晰起见,只绘制那些成功计算平面特征的端点。根据端点的立体匹配,基于视差delta_u计算出它们的3D位置p。线方向n_l也由其两个端点(pe−ps)定义

C 线段计算

在计算平面特征之前,需要检查直线之间的关系。在三维空间几何中,相交线或平行线位于同一平面上。然而,对于平行线,很难判断它们是否是从同一个真实平面提取的,因此由它们计算的平面容易带来较大的误差。因此,只计算相交线的平面。为了快速检查相交线,发现满足以下条件的直线:

•两条直线之间的角度大于阈值(在实验中为10°)

•它们的中心点之间的距离小于直线长度。

• 这两条直线的四个端点位于同一平面上。

中心点pc由直线端点ps和pe计算。从前两个条件中,实际上找到了那些紧密的线段用线方向向量的叉乘来计算平面法向量。

利用平面法向量n_pi和四个端点p_k(k=1,2,3,4),计算四个不同的平面系数d_k:

面与面之间的距离为

如果D小于阈值(在实验中为5cm),这两条线满足第三个条件,并且计算了平面系数pi,这里是d_k的算术平均值。有时计算的平面可能不是场景中的真实平面,例如门框线的平面。但是这样的平面也足够稳定,并且提供了精确的约束,因此我们将它们视为真实平面。在这些条件下,我们首先计算尽可能多的平面,稍后检查计算的平面并删除无效平面。

基于检测平面的SLAM系统

点和平面都被用作地标,并在我们的SLAM系统中得到优化。因为平面特征通常不能完全约束摄像机的姿态。我们的系统基于公开提供的ORB-SLAM stereo版本,其中包括特征跟踪和捆绑调整优化。

A、 系统概述

提出的SLAM系统的流程如图3所示。它可以分为帧处理、跟踪和建图三个部分。还没有添加回环检测部分,因为平面特征现在只对相机姿态跟踪有帮助。

在立体相机处理中,我们从左右图像中提取特征点和线段,并基于描述子对这些特征进行匹配。然后我们可以使用上述方法计算平面特征。在跟踪过程中,根据匹配的特征估计出摄像机的每个姿态。首先在最后一个关键帧对摄像机姿态进行估计,然后在局部地图上进行优化。从关键帧创建地图点和平面并将其保存在地图中。为了获得更精确的估计,进行了局部地图优化。

B、 优化公式

SLAM通常被描述为一个非线性最小二乘优化问题,而捆集平差法(BA)通常用于点特征。和点一样我们的系统设计了平面特征的优化公式。在我们的SLAM系统中,我们将摄像机的姿态、点特征和平面特征分别表示为C,P,L,则优化问题可以表述为:

e分别表示摄像机位姿、摄像机平面的测量误差。S是相应的协方差矩阵。优化问题可以用g2o中的LevenbergMarquardt或Gauss-Newton法求解

C、测量误差

1) 摄像机位姿点误差:在我们的系统中,我们使用标准的重投影误差来测量摄像机位姿。

这里Tcw是摄像机的姿态,pw是世界坐标系中的点参数,uc是观测到的像素,r是将3D点投影到图像上的摄像机模型。在优化中,摄像机姿态Tcw被映射到李代数x属于se(3)。

2)相机平面特征误差:由于三维平面只有三个自由度,因此pi参数化过多。因此,需要额外的约束来保证平面法向量的单位长度,在优化中增加了额外的计算量。为了克服这个问题,在优化中使用平面t的最小化参数,其中 括号里分别是平面法线的方位角和仰角:

所以我们定义最小化参数的测量误差方程:

这里pw是世界坐标系中的平面参数,pc是相机坐标系中的平面观测值。相机平面误差测量的是平面地标与其在相机坐标系中的相应观测值之间的距离。

实验

使用两个流行的公共数据集来评估提出的SLAM系统:EuRoC数据集和KITTI vision benchmark。这两个数据集都提供立体图像。所有的实验都在一台笔记本电脑上运行,它有 i7-7700HQ 2.80 GHz CPU, 16GB RAM, 没有GPU.

比较了不同SLAM系统的估计结果。这里我们使用绝对平移均方根误差(RMSE)来评估估计结果

EuRoC数据集与ORB_SLAM2的轨迹比较

EuRoC数据集构建的点云及平面地图

KITTI数据集其一轨迹比较

KITTI数据集的地图构建结果

总结

提出了一种从立体图像中计算平面特征的新方法。许多以前的工作已经证明了在SLAM系统中添加平面特征的好处,但大多数都是针对RGB-D相机的。在本文中,我们根据两条相交线决定一个平面的事实,从立体图像中计算平面特征。在进一步的验证之后,将计算出的平面加入到我们的立体SLAM系统中。我们给出了两个公共数据集的实验结果,证明了系统的准确性和鲁棒性。

从实验结果来看,我们的系统明显优于目前最先进的基于特征点的SLAM系统。与基于线的SLAM系统相比,我们的系统也得到了可比的结果。平面计算滤除了这些不精确的线段,并添加了稳定的约束来估计摄像机的姿态。从构建的地图中,发现一些不精确的平面特征仍然存在,这给数据关联带来了很大的挑战。未来,我们将对平面计算和检查方法进行改进,以获得更精确、更稳健的平面特征。此外,我们还需要一个更健壮的数据关联算法,消除估计误差的影响。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

点云PCL更多活动请查看:点云PCL活动之应届生校招群

扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:

如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:群主微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

基于相交线的立体平面SLAM相关推荐

  1. 基于相交线的双目平面SLAM

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 论文题目:Stereo Plane SLAM Based on I ...

  2. 在结构化场景中基于单目的物体与平面SLAM方案

    点云PCL免费知识星球,点云论文速读. 文章:Monocular Object and Plane SLAM in Structured Environments 作者:Shichao Yang, S ...

  3. matlab求三维图形表面积,基于MATLAB的不规则平面立体表面积计算

    ·12· 设计与研究 机械 2012 年第 2 期 总第 39 卷 --------------- 收稿日期:2011-06-10 作者简介:和蕴锋(1988-),女,河南漯河人,硕士研究生,主要研究 ...

  4. 面向动态环境基于面元的RGB-D SLAM系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:robot L https://zhuanlan.zhihu.com/p/142175916 本 ...

  5. QXRService:基于高通QXRService获取SLAM Camera图像

    上一篇博文讲解了基于Snapdragon XR OpenXR SDK v1.x系列SDK怎么进行QXRService实战开发,以及通过QXRService相关API如何获取到头显位姿和IMU数据. 这 ...

  6. vins中imu融合_基于非线性优化算法—当视觉SLAM遇到VINS会碰撞出怎样的火花?

    今天来给大家分享一个视觉SLAM中比较综合且复杂的系统-VINS.VINS旨在通过融合两个传感器测量数据获得移动机器人的位姿和特征点在空间中的位置,在现代控制理论学科中属于最优估计问题.在移动智能机器 ...

  7. 基于树莓派3b+学习视觉slam

    基于树莓派3b+学习视觉slam(1) 搭建ubuntu mate16.04 参考jacka654321的博客树莓派3B+安装Ubuntu Mate 16.04 PS:本人使用外接显示屏与外设并没有用 ...

  8. 【泡泡图灵智库】基于优化的视觉惯性SLAM与GNSS紧耦合

    转载自:https://mp.weixin.qq.com/s/jlkXvygaTsql1nk76HD94g [泡泡图灵智库]基于优化的视觉惯性SLAM与GNSS紧耦合 原创 泡泡机器人 泡泡机器人SL ...

  9. ORB-SLAM2可以说是目前最优秀的基于特征点的视觉SLAM

    ORB-SLAM2可以说是目前最优秀的基于特征点的视觉SLAM https://blog.csdn.net/qq_38589460/article/details/82559816

最新文章

  1. python【力扣LeetCode算法题库】892-三维形体的表面积
  2. linux tomcat下部署多个项目启动失败
  3. cumprod--累积连乘
  4. 报告预测:到2027年,全球数据中心基础设施市场规模将达1423.1亿美元
  5. pyqt5讲解6:菜单栏,工具栏,状态栏
  6. 随机数生成器c语言,句子随机生成器-怎么用C语言生成随机数
  7. CSS浏览器兼容性----Hack
  8. Android 8.0 学习(4)---Android通用内核
  9. 在Linux中实现https访问站点
  10. [Z]Java Architecture for XML Binding (JAXB)
  11. python 导入.so 文件
  12. 带圆圈的数字和markdown常用表达式记录
  13. Rabbitmq二进制集群搭建
  14. 如何彻底清除流氓的2345安全卫士及2345SafeCenterSvc服务?
  15. latex 参考文献显示问号_回「LaTeX 的罪与罚」
  16. 部署Openstack报错及解决办法
  17. JAVA计算机毕业设计腾讯网游辅助小助手(附源码、数据库)
  18. 对方接住了你人的php,接住你了表情包 - 接住你了微信表情包 - 接住你了QQ表情包 - 发表情 fabiaoqing.com...
  19. [运放滤波器]4_积分微分电路
  20. c语言oj运行时错误,大佬们,帮初入门小菜吧,本地能运行,在oj上运行显示运行时错误...

热门文章

  1. codeforces-1132 (div2)
  2. 中国互联网+果汁行业商业模式创新与投资机会深度研究报告
  3. MySQL半同步安装以及参数
  4. [代码]--WinForm 窗体之间相互嵌套
  5. 优先级队列实现哈夫曼树的编码和译码
  6. java记事本环境变量_java环境变量配置以及用记事本写程序
  7. Linux导入ora-39070,impdp 导入数据报ORA-39002,ORA-39070,ORA-39002, ORA-39087
  8. 模拟器不全屏_iOS 14实测GBA游戏模拟器下载
  9. 蠕虫mysql_警惕!MySQL蠕虫再度对Windows发动攻击
  10. 查看显卡显存_强力散热别浪费 显卡超频这样搞