点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

引言

在我们所熟知经典SLAM系统,以ORB-SLAM为代表的通过特征点法在相机位姿估计方面有很好的表现,但在一些人为构造的弱纹理环境下,由于缺少可靠的特征点的缘故,导致表现性能下降。

针对此种问题,作者通过根据周围环境的几何特征来提升结构化环境下的SLAM追踪和建图准确性。除特征点以外,我们还可以利用结构化环境提供的大量线和面的特征来进行SLAM系统的追踪与建图。在SLAM的追踪模块中,作者对点、线、面做了解耦合的优化处理,同时利用曼哈顿假设对位姿进行优化。对于建图部分,从稀疏到稠密不同等级的地图可以以较低的计算量进行重建。作者使用实例化网格的策略,根据平面网格实例的独立性来建立稠密地图。

01

主要工作

· 基于曼哈顿假设原理,对位姿进行解耦。通过联合平面上的点、线特征以及附加的基于曼哈顿约束的位姿优化过程来提升位姿估计的准确性。

· 提出平面实例化网格方法,将稀疏点云中生成一个轻量化环境表征。

· 提出在结构环境下具有高精度的实时RGB-D SLAM系统。

点击可查看大图

作者结合点、线、面这三者的特征来对提高系统在结构化弱纹理场景下的稳定性,点特征采用ORB特征点,特征点的提取通过LSD方法[A Fast Line Segment Detector with a False Detection Control],由于RGB-D的缘故,我们可以直接得到稠密点云,通过 Efficient Organized Point Cloud Segmentation with Connected Components 这篇文章的思想来根据有序点云进行平面分割,平面方程用进行表示。

在点线提取环节,由于RGB-D相机得到的深度图在物体边界处会出现深度不连续的先天性弱势,当我们将特征根据深度值和相机内参进行投影至相机坐标系下时,势必会存在由于深度错误导致投影的不准确情况,为克服这种情况对系统的影响,作者采用啦一个小trick:对3D线进行滤波,即通过RANSAC的方法对线段上的外点进行剔除。

平面的法向量提取这块,作者采用法向量平滑的方式进行处理,即我取一个10×10大小的patch法向量的平均值来对当前法向量进行平滑。而后将我们提取的平面采用Point-Plane SLAM Using Supposed Planes for Indoor Environments 所介绍的数据关联的方法与我们已有平面进行匹配。大致思想就是说我们先对比它们之间的法向量角度的差异,如果小于一定阈值10度,我们可以再将它们的点到面的距离进行对比,如果小于0.1m的话,我们将其插入已观测地图中,同时在地图中加入平面平行和垂直关系为后续的追踪线程提供约束。

位姿解耦与优化

在追踪线程中包含相机的旋转、平移的估计以及最后的位姿优化过程。位姿的接耦这部分作者推荐三篇论文供大家学习。

· Divide and Conquer: Efficient ensity-based Tracking of 3D Sensors in Manhattan Worlds

· Globally Optimal Manhattan Frame Estimation in Real-time

· Visual Odometry with Drift-free Rotation Estimation Using Indoor Scene Regularities

后续我会针对这三篇论文进行整理,分享一下我们如何基于曼哈顿大世界的位姿解耦问题,在这里大家只要清楚作者通过在曼哈顿坐标系下求得了我们当前帧与曼哈顿坐标系的旋转矩阵,基于此我们就可以求得当前帧到世界坐标系下的旋转矩阵:

通过这种方式我可以先单独将旋转矩阵分解出来,这样的做法区别于之前根据我们典型的根据相邻帧的对极几何约束所求的本质矩阵或基础矩阵不同,每一帧是在我们的曼哈顿坐标下对旋转矩阵进行求解,这的好处是我们可以杜绝根据由于相邻帧的位姿估计所导致的误差的累计,当然我们通过在曼哈顿世界坐标系下求解的旋转矩阵也仍然存在误差,只不过没有累积误差这一说。

平移向量的估计我们通过构建残差方程,通过最小二乘来实现对平移向量的求解,作者根据点、线、面的约束构建了三个子残差方程,根据特征点的重投影误差所构建的残差方程为:

对于线特征,作者在文章中介绍过于简短,有必要参考论文Accurate and Linear Time Pose Estimation from Points and Lines 在此进行简短的介绍,对线特征的残差构之前,我们使用线特征的归一化法向量来对我们的线特征进行表征。

将线特征的端点P、Q投影至齐次坐标系下与观测量点乘得其残差

关于线段的残差方程为:

点击可查看大图

面特征的残差方程为:

我们假设我们的观测量服从高斯分布,那最终的非线性最小二乘可以写为:

位姿优化

在进行位姿求解过程中,我们均在理想的曼哈顿假设进行位姿的接偶与估计。在实际环境中难免会出现不严格遵循曼哈顿假设的情况是我们的位姿估计存在偏差,所以在获取到初始化位姿后我们需要通过优化模型对其偏差进行补偿。将根据关键帧建立起局部地图投影到当前帧进行匹配搜索,另为作者加入平行和垂直的关系对平面进行约束。

建图

在建图部分包含稀疏地图以及平面实例网格地图。其中稀疏地图有点、线以及面的特征组成。建图的策略跟其他经典SLAM类似,即将新观测到的点线面特征保存在局部地图中,然后将质量较高的特征放入全局地图中。这里注意一点就是不同于点、线特征,对于面特征来说我们对于新检测到的面特征在插入到全局地图之前我们需要先检查一下当前面特征是否与已观测到的平面相关联,若关联则将其加入到相关联平面中,否则就以新的平面插入到地图中。

点击可查看大图

02

实验验证

作者在与其他SLAM系统进行对比时,选择将回环检测模块关闭来进行对比,取得了不错的实验效果,下面我将在ICL-NUM数据集上同ORB-SLAM2进行对比实验。

点击可查看大图

点击可查看大图

误差对比分析针对ICL-NUM的living_room_traj0_frei_png以及traj3_frei_png这两个数据集进行了测试,做了绝对轨迹误差(ape)分析,结果如下所示:

点击可查看大图

表的左半部分为living_room_traj0_frei_png分析结果,右半部分为traj3_frei_png分析结果。

planar SLAM

ORB-SLAM2的运行轨迹

上图为在traj3_frei_png数据集上测试的相机轨迹。

通过在数据集上的实验对比发现,在弱纹理、结构化场景中,通过将线、面特征加入到ORB-SLAM2的框架中,可以有效的为SLAM位姿提供强有力的约束,提升了SLAM系统的稳定性及精度,但同时由于加入面和线特征的缘故,会增加系统计算资源的投入。由于没有真值进行对比,仅将小车的运动轨迹显示出来。

由于作者的程序仅提供在数据集下运行的接口,为与实验室的D435相匹配,我将其封装在ROS环境下运作的程序,ros版本的程序分享在github:

https://github.com/WangWen-Believer/PlanarSLAM ros

下面为在走廊环境下的实验效果:

点击可查看大图

点击可查看大图

通过实际测试效果来看,Planar在走廊基本实现对自身位姿的准确估计,但在测试过程中需要注意,虽然PlanarSLAM有效的提升了在结构化弱纹理场景下的鲁棒性和精度。但在实际运行中应该避免相机直接面对一堵白墙,此时对相机来说无纹可言,无法有效提升点、线特征导致位姿估计错误。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

PlanarSLAM:基于结构化约束的视觉SLAM相关推荐

  1. 基于结构化数据的文本生成:非严格对齐生成任务及动态轻量的GCN生成模型

    作者|邴立东.程丽颖.付子豪.张琰等 单位|阿里巴巴达摩院.香港中文大学等 摘要 基于结构化数据生成文本(data-to-text)的任务旨在生成人类可读的文本来直观地描述给定的结构化数据.然而,目前 ...

  2. 计算机结构化思维学计算机,基于结构化知识的学习/思考机器和学习/思考方法以及计算机系统和信息生成方法...

    主权项: 1.一种学习/思考机器,具备由网罗地收集信息的装置:\r\r\r\r\n 对收集到的信息的进行解析,并按照多个规则抽出语义关系的装\r\r\r\r\n置:\r\r\r\r\n 由将语义内容作 ...

  3. 结构化场景中的RGB-D SLAM

    点云PCL免费知识星球,点云论文速读. 文章:RGB-D SLAM with Structural Regularities 作者:Yanyan Li , Raza Yunus , Nikolas B ...

  4. 基于环视相机的视觉SLAM在自动泊车系统上的应用

    作者 | dianyunPCL  编辑 | 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[全栈算法]技术交流群 摘要 自动泊车正成为 ...

  5. 124页,UC伯克利大学胡戎航博士论文公布:视觉与语言推理的结构化模型

    来源:机器之心 本文约1500字,建议阅读5分钟 UC 伯克利大学计算机科学博士胡戎航(Ronghang Hu)的博士论文新鲜出炉,内容涉及视觉与语言推理的结构化模型. 视觉 - 语言任务(如基于图像 ...

  6. 电子科大(申恒涛团队)京东AI(梅涛团队)提出用于视频问答的结构化双流注意网络,性能SOTA!优于基于双视频表示的方法!...

    本文分享论文『Structured Two-stream Attention Network for Video Question Answering』,由电子科大(申恒涛团队)&京东AI(梅 ...

  7. 视觉SLAM:模型介绍、算法框架及应用场景

    作者:张长鸿 湖南大学 校稿:董亚微 编辑:郑欣欣@一点人工一点智能 原文地址:视觉SLAM:模型介绍.算法框架及应用场景 目录 01 什么是SLAM 1.1 相机模型 1.2 相机运动 1.3 建图 ...

  8. Rockwell 罗克韦尔AB Logix 5000控制器 结构化文本语言(ST) 梯形图(LD)顺序功能图(SFC)功能块图(FBD) IEC 61131-3 手册

    Logix 5000 Controllers IEC 61131-3 Compliance 1756 ControlLogix, 1756 GuardLogix, 1769 CompactLogix, ...

  9. 用于单眼深度估计的结构化注意力导向卷积神经场(论文2018)

    Structured Attention Guided Convolutional Neural Fields for Monocular Depth Estimation 原文:https://cn ...

最新文章

  1. mysql条件填充命令_mysql的简单命令
  2. 如何选择适合自己公司的移动办公系统?
  3. 登陆用友服务器超时未响应,用友T3软件10.8plus1普及版服务器提示“客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录”?-用友T3...
  4. 常用计算机二级函数,计算机二级MS office常用函数
  5. 递归算法(一)递归概念与思路
  6. arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)
  7. 从零开始学PowerShell(5)自定义格式化信息
  8. 使用jedis访问redis
  9. XSS-Game Level 2
  10. 2017.11.24
  11. Python变量的作用范围
  12. 【OpenCV学习】准确定位帧
  13. 地址坐标LA3708:Graveyard
  14. 空间相关分析与SDM
  15. 超实用的XRD数据定性分析方法,三分钟上手,科研小白变大神!
  16. 年度编程榜出炉!Python第一,Java程序员哭晕:又翻车了!
  17. 路由器专用计算机,AUX端口常是通过专用连线与计算机连接,用来对路由器进行基本配置.._简答题试题答案...
  18. 用tensorflow深度学习梵高的画并模仿
  19. [BUUCTF]PWN——pwnable_orw
  20. Slasher Flick(算法)

热门文章

  1. Python.h: No such file or directory
  2. formValidator BUG
  3. 初学架构设计的第一步:需求、愿景与架构
  4. 联机分析处理(OLAP)简介
  5. Java基础篇:IO流
  6. 开发计费系统中学到的 5 件事
  7. 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构
  8. Arthas 实践——生产环境排查 CPU 飚高问题
  9. 阿里一面:如何保证API接口数据安全?
  10. 为什么不建议把数据库部署在Docker容器内