用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业设计下载电子信息自动化通信毕业设计

基于RGB-D相机的实时定位与场景重构系统

联系方式:点击这里给我发消息QQ212181988
官方主页:www.biye114.com
图片预览: 没有预览图片;论坛转帖
插件情况:
售后服务:请联系客服QQ:212181988
一键分享拿折扣:
  • 好的评价 如果您觉得此软件好,就请您
      0%(0)
  • 差的评价 如果您觉得此软件差,就请您
      0%(0)

软件简介

 摘 要
同步定位与场景构建问题一直是多领域学科的研究热点,近年来,随着民用无人机,家庭服务型机器人的出现,以及谷歌的无人车,微软的全息眼镜等高新技术概念产品的提出,让这个问题越来越受到各大高校以及企业的重视。而这其中,基于视觉的同步定位与场景构建问题,由于采用了视觉传感器作为感知场景环境的工具,具有精度高,消耗小等许多优势,特别是相对采用传统传感器的方法而言,利用视觉定位重建的算法不但能够不受到场景和系统本身一些不利因素的影响,而且可以通过优化累积误差的方式准确地对传感器当前位置进行定位。本文正是基于上述特性提出并实现了一个基于RGB-D相机的实时同步定位与场景构建系统,并针对系统实时性以及准确性进行了相关算法的分析与选择。
本文采用RGB-D相机作为视觉输入传感器,将实时同步定位与场景构建问题分成两个主要任务并行处理,其一是基于特征的视觉里程计,主要功能是对相机的运动轨迹进行实时的估计,采用了ORB特征检测与匹配算法对图像帧间进行特征跟踪,保证了特征提取算法的实时性,并采用PROSAC算法对图像帧间添加运动约束以保证计算得到的运动轨迹足够精确;另一个部分是基于深度图生成的点云数据为场景进行同步的三维地图构建,采用了关键帧筛选法来剔除构建过程中的冗余信息,并利用基于概率估计的八叉树结构作为场景的表示方法,提高了系统的存储效率。此外,在整个同步定位与场景构建的过程中,采用了拓扑图优化的方式来降低系统在运行过程中产生的累积误差,并有效地解决了运动闭环问题。最后,通过实验,验证了本文所设计的系统在同步定位与场景构建问题上的有效性,实时性以及精确性。

关键词:RGB-D相机; ORB特征检测;视觉里程计;八叉树;拓扑图优化


摘 要 I
Abstract II
1 绪 论 1
1.1 研究背景与选题意义 1
1.2 SLAM问题概述 2
1.2.1 基于概率方法的视觉SLAM系统研究 2
1.2.2 基于非概率方法的视觉SLAM系统研究 4
1.3 基于RGB-D相机的SLAM方法现状 5
1.4 本文主要工作 6
2.1 相机成像模型 8
2.1.1 参考坐标系 8
2.1.2 针孔相机模型 9
2.2 相机标定 11
2.2.1 基于黑白格棋盘的标定法 11
2.3 对极几何与基础矩阵 13
2.3.1 对极几何 13
2.3.2 基础矩阵 14
2.3.3 8点法求解基础矩阵 15
3.1 图像特征提取算法 17
3.1.1 添加方向性信息的FAST角点检测算子 18
3.2.2 添加旋转不变性的BRIEF特征描述子 20
3.2 图像特征匹配 23
3.2.1 基于比特串的相似性度量 23
3.2.2 添加帧间运动约束 23
3.3 相机运动估计 26
4.1 关键帧筛选策略 29
4.2 三维场景构建 30
4.2.1 基于八叉树结构的场景构建 30
4.2.2 基于概率估计法的场景更新 32
5.1 拓扑图优化问题介绍 35
5.2 拓扑图优化的原理 35
5.2.1 拓扑图优化问题的建模 35
5.2.2 计算非线性最小二乘问题 36
5.2.3 计算非欧式空间中的最小二乘问题 38
5.3 拓扑图优化实现 40
6.1 系统开发环境与流程设计 43
6.2 实验数据集介绍 46
6.3 实验方案及结果 47
结 论 53
参 考 文 献 55
致 谢 58
大连理工大学学位论文版权使用授权书 59

1 绪 论
1.1 研究背景与选题意义
当今时代,科技的发展日新月异,如果说计算机的出现在一定程度上解放了人类的生产力,那么各种领域下机器人的问世则会代替人们从事更加繁琐的生产活动。随着新时代的年轻人就职工作的理念日渐转变,更少有人愿意去从事那些繁琐枯燥的工厂式劳动,企业用工荒的趋势正日渐明显,所以社会对机器人技术的研究发展有着迫切的关注与需求。
同步定位与场景构建[1](SLAM,Simultaneous Localization and Mapping)的研究起源于上世纪六十年代末期,由Nilsson[2]等人带头,设计了一架叫做Shakey的移动机器人,从这时起,越来越多的研究开始关注自主机器人这个方向,在过去几十年的发展中,已经出现了许多具有重大意义的研究成果。机器人科学是诸多学科的交叉点,借助于计算机科学,信号处理,控制理论与人工智能等高新技术的大力发展,从最初的摸索式前进向着更稳定更高速的多元化方向发展壮大。从最初在军事中负责处理危险任务的工作,比如:清除炸弹,战场扫雷,探测敌情等等;融入工业作业之中,例如目前在工厂中随处可见的机械手臂,已经在工业生产环境中得到了极其成功的应用;而近些年在民用机器人的领域,已经出现了智能清洁机器人等进入普通百姓家庭中的机器人产品。种种现象表明,在未来机器人将出现在人们所能想象到的方方面面。
机器人相较于计算机,最大的优势就是其拥有可移动性,这也为机器人带去了更加广泛的应用空间。SLAM,简单而言,就是当其置身于一个未知的场景中时,依靠自身传感器所测量到的数据,对自身在当前环境中定位,同时对当前场景环境建立地图。在这里,通常采用雷达,GPS (Global Positioning System),惯性测量单元(Inertial Measurement Unit,IMU),激光等传感器作为观测设备,虽然这些观测设备所收集到的环境数据具有较高的精度,但是这些传感器收集到的数据类型单一,且很容易因不同环境的影响而导致收集数据失败,为此必须寻找其他可靠的解决方案。
近些年随着高效且便宜的RGB-D相机的出现,采用深度传感器在SLAM问题中采集数据信息已经成为研究的热点,特别是在2010年,微软与以色列公司Prime Sense一同推出了Kinect之后,虽然Kinect的推出最初是在影音娱乐方面为用户提供体感游戏体验,但是很快便因其超高的性价比成为了许多研究领域中的宠儿,SLAM领域同样如此。

图1.1 同步定位与场景构建
Fig.1.1 Simultaneous Localization and Mapping

目前已经有很多优秀的算法在SLAM问题中取得了令人瞩目的成果,值得人们借鉴学习。比如最早的基于卡尔曼滤波(Kalman Filter,KF)[3]以及由此衍生出的扩展卡尔曼滤波(Extended Kalman Filter,EKF)算法[4],基于粒子滤波(Particle Filter,PF)的算法[5],还有前些年由其衍生出来的FastSLAM[6]算法。上述算法都能够根据传感器收集的数据信息与机器人运动模型相结合完成对未知环境中的SLAM。不过这些方法都是属于基于概率体系的算法,在概率分析的过程中难免会出现不可避免误差,因此并不适合在大范围或长时间运动的环境中进行SLAM,会使测量结果产生较大的偏移,精度上得不到保证。而本文从计算机视觉的领域出发,结合视觉领域中经典的运动结构恢复问题(Structure From Motion,SFM)[7],利用Kinect视觉传感器,重新研究设计SLAM问题的解决方案,并采用多种算法设计,提高了SFM问题中必然会出现的实时性问题,使得本文中的SLAM达到了一种在线级别的解决方案。
1.2 SLAM问题概述
基于视觉信息的SLAM问题本质上就是一个对相机状态的估计过程,到目前为止,按照问题求解方式,大致分为两个方向,其一就是基于概率方法的系统,此外即是基于非概率方法的SLAM系统。
1.2.1 基于概率方法的视觉SLAM系统研究
因为在SLAM问题中包含了对未知场景的描述以及数据噪声,所以大部分的视觉SLAM都采用概率方法来表述这个问题。其基本原理是以已知出发时间点到此刻的观测值与控制变量为前提,由一个概率密度函数来表示相机的位姿和场景特征的空间分布。采用递归贝叶斯滤波(Bayesian Filter)的方式对这个概率密度函数进行估计,进而实现相机的SLAM。
最早的基于卡尔曼滤波(Kalman Filter,KF)[3]的SLAM方法就是采用这种思想,通过递推计算一连串的测量或观测值来求出该值最有可能的真实解,由于这种方法是在系统收集到信息就立刻进行递推的,因此并不需要存储之前的数据。
之后在KF算法的基础之上进行了一定的改进,产生了基于扩展卡尔曼滤波(Extended Kalman Filter,EKF)[4]的SLAM方法,EKF算法主要对系统过程的非线性方程表达式进行一阶Taylor展开,再通过最小均方差的方法对非线性方程的测量值和状态值进行分别估计。在SLAM问题中,EKF算法假设相机和一些其他的可控因素的误差都服从高斯分布,所以在表示系统的输出状态的时候采用的是系统状态的均值和协方差。在采用EKF算法解决SLAM问题时,相机的位姿信息和已探测的路标数目呈现出指数关系。基于EKF算法的SLAM方法的大致流程如图1.2所示,首先,通过相机的运动模型,状态信息和控制信息,采用EKF算法估计出相机在此次运动之后可能会处于的状态;接着,当系统接收到了观测数据,EKF算法能够对上一个过程中相机的位姿状态进行更新处理,最终得到估计值。


图1.2 基于EKF的同步定位与场景构建方法
Fig.1.2 The SLAM method of EKF

通常基于EKF算法的SLAM方法都存在两个问题:首先是在运行EKF算法的过程中,需要维护一个与相机已探测的路标数目呈现指数相关的协方差矩阵,并且每当有新的数据到来时,这个庞大的协方差矩阵都要得到更新,这就致使基于EKF算法的SLAM方法的时间复杂度为,其中代表路标的数量;再者就是在某些情景下,系统的一致性状态不够稳定,这是由于EKF算法是通过融合里程计信息与相机运动模型得到的最终估计,而在估计过程中采用的一阶泰勒展开方法属于非线性的估计,所有当系统状态中的线性成分不够明显的时候,EKF算法得到的估计值浮动剧烈,甚至可能无法收敛。
1.2.2 基于非概率方法的视觉SLAM系统研究
基于非概率方法的SLAM方法通常采用光束平差法(Bundle Adjustment,BA)[8]等优化算法设计实现。基本思想是通过保留所有观测数据,计算帧间的相机运动约束来估计相机在整个运动过程中的轨迹,此类方法通常用一个场景拓扑图来表示,拓扑图中的节点表示每帧相机的位姿状态,而边线则代表对应两时刻相机之间的刚体变换。Kelin等人[9]提出了基于单目视觉的SLAM解决方案,PTAM,它通过一个线程对相机的位姿进行跟踪,与此同时建立另外一个线程对相机经过的场景进行场景构建,从而实现了一个实时的SLAM系统,其算法框架如图1.3所示。


图1.3 PTAM的算法框架
Fig.1.3 The system framework of PTAM algorithm

这种思路下的SLAM方法一般的缺点在于随着时间的无限制增加,所要存储的观测数据以及计算的状态向量不断增加,空间复杂度高。
1.3 基于RGB-D相机的SLAM方法现状
近些年,随着高实用性且便宜的Kinect视觉传感器的诞生,能够同时采集到颜色与深度信息的RGB-D相机在各个学科领域正逐渐得到更多的关注。与采用激光雷达的方法类似,基于RGB-D相机的SLAM方法通过图像帧与三维点云数据来对相机的刚体变换进行估计。
2010年,华盛顿大学的Herny等人设计了一套基于图优化算法的工具包,TORO (Tree-based netwORk Optimizer),能够实时的重建出场景的三维点云地图,接着在2012年他们又对算法进行了改进[10]。改进之后的算法采用FAST (Features from Accelerated Segment Test)角点特征[11]与Calonder描述子[12]结合的方式首先求得当前帧初始的位姿估计,接着利用重投影误差随机抽样一致(Re-projection Error RANdom Sample Consensus,RE-RANSAC)算法[13]辅助帧间配准,之后再通过迭代最近点(Iterative Closest Point,ICP)算法[14]对点云进行匹配以更新位姿估计值,当检测出闭环时,采用稀疏光束平差法(Sparse Bundle Adjustment,SBA)[15]来对全局进行优化,进而求得更加精确的地图数据。该解决方案的核心内容就是RGB-D ICP,是ICP算法的一种衍生方法,它通过使用RGB-D数据中包含的丰富信息来完善位姿估计。之后Herny等人[16]在2013年又提出了一种基于片块法来构建整体一致场景,通过融合基于特征的全局一致法和基于GPU(Graphic Processing Unit)体素法,对于构建室内场景效果不错。
Huang等人[17]结合SBA算法[15]和最小化重投影误差法来构建地图。文献[18; 19]通过使用最小化光度误差和深度信息对点云进行配准,从而求得帧间变换。由于相机的轨迹估计位于一个全局进程中,并不需要借助中间层次的特征,使用定位技术来对环境的光度模型进行测量,所获得的位姿非常精确,因此在复杂的室内环境中使用[18]中的方法非常有效。文献[19]结合RGB-D相机视觉传感器与视觉里程计技术进行了实验分析,通过能量方程来计算RGB-D相机在空间中的刚体运动估计,通过实验可以看出,该方法适合于解决复杂环境下规划机器人前行路径的问题。文献[20]利用GPU对视觉里程计算法进行了另一种实现,通过6个自由度(DOF,Degree Of Freedom)对相机进行跟踪,将彩色图像信息融入到KinectFusion[21]的三维场景重建过程中获得了质量、精度、稠密度都相当高的场景三维模型。
Hu等人[22]针对基于RGB-D相机的SLAM方法过分受限于场景的几何结构以及对深度信息的严重依赖,提出了一种大范围场景的方法。该算法将SBA算法应用于RE-RANSAC和ICP算法中,利用启发式方法,对在 (RGB-D Bundle Adjustment)过程中出现的各种失效情况进行处理,该方法显著降低了计算开销,使得基于RGB-D相机的SLAM方法开始适用于大规模环境计算之中。Fioraio和Konolige在[23]中直接使用算法对Kinect生成的密集点云进行配准,不过没有进一步对彩色图像进行研究。
文献[24]中提出的算法与Herny在[10; 25]中提出的方法原理类似,都是仅在图像对之间的特征点对较少或者完全没有时才使用ICP算法直接将对应点云数据进行配准,大大降低了算法的时间复杂度。此外针对在三维场景中的相机位姿优化,采用g2o (General Graph Optimization)的算法框架[26],最终构建了一个能够为机器人导航、定位和避障等用途的三维场景[27]。
Kerl等人在[28]中研究了一种基于RGB-D相机的稠密场景重建的方法,釆用了一种相似性度量算法对关键帧进行选取以及闭环检测,相较于采用稀疏特征的方法[24; 25],该算法减少了结果的漂移,增强了实时性。文献[29]中利用相机的非刚体变换和位姿优化在闭环检测期间对地图进行调整,一定程度上解决了传统方法中闭环检测时间复杂度过高的问题。
Felix在[30]中从彩色图像提取特征点,接着通过深度图像在三维场景中定位这些点的位置,利用RANSAC算法估计特征点之间的变换和非线性优化。相较于其它基于RGB-D相机的SLAM方法,它分析了例如特征类型,匹配方式等很多方面,对常用数据集做了全面的评估。同时,该方法在相机快速运动或是特征点较少的场合下的鲁棒性也很好。
多数基于RGB-D相机的SLAM方法都是将图像中的几何与纹理特征相结合,将场景当成是一个整体的点云集来处理。文献[31]采用点和平面的特征来研究SLAM问题,文章中说明了怎样利用相机的运动估计来搜索两者的对应位置,依靠BA算法来优化相机位姿状态。
1.4 本文主要工作
本文的主要内容是对基于RGB-D相机的实时SLAM的研究,采用Kinect相机作为感知场景环境信息的传感器,将Kinect相机所采集的彩色图像与深度图像,在相机周围环境中进行视觉里程计的研究设计,并同步地构建场景的三维模型,出于对系统实时性的考虑,在系统设计的每一个步骤中都采用了能够高效计算存储的算法思想以及数据结构,最后使用SLAM问题研究中常用的数据集对本文系统进行了实验验证。具体论文结构如下:
第二章介绍了在SLAM问题中所需要的理论基础,包括RGB-D相机的成像原理和对相机参数的标定估计,以及在三维重建中的经典计算机视觉理论体系,对极几何原理[32],以为后续视觉里程计的设计,场景构建提供了严谨了理论证明。
第三章介绍了本文中基于特征的视觉里程计的设计,通过采用最近几年才提出的具有计算速度快,存储效率高等优势的ORB特征提取[33]与匹配算法来加速视觉里程计的前期数据处理问题,结合PROSAC算法[34]剔除图像中的运动噪声为定位造成影响的因素,设计了一套高效鲁棒的视觉里程计系统。
第四章介绍了本文在SLAM问题中数据存储规模的研究,通过关键帧筛选策略,利用基于概率估计的八叉树构图的方法,有效地解决了SLAM问题中噪声以及存储效率问题。
第五章介绍了本文在SLAM问题中的误差处理问题,由于在整个流程中,对于观测数据和计算的误差都在所难免,SLAM在系统运行到后期很容易造成结果漂移,因此,本文结合g2o通用图优化算法框架,针对上述问题进行优化处理,并结合闭环检测的过程逐渐在相机运动过程中修正计算结果。
第六章介绍了本文系统的实验验证,采用在研究SLAM问题中常用的数据集,通过实验结果表明本文设计的SLAM方法是一种高效实时的可靠系统。

下载地址

点击此处→注册会员上传设计赚钱
以上是大纲和介绍,如需要完整的资料请在线购买.

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 本站所有资料均已审核通过,内容原创保密,标准格式,质量保证
* 无需注册,点击在线购买后即可获取该套毕业设计(论文)完整
* 支付后请联系在线客服QQ:212181988发送资料
  • 官方微信