基于GMS特征匹配的面向复杂大尺度场景三维重建方法与流程

文档序号:18170387发布日期:2019-07-13 09:49阅读:802来源:国知局
基于GMS特征匹配的面向复杂大尺度场景三维重建方法与流程

本发明属于三维重建技术领域,具体涉及一种基于gms特征匹配的面向复杂大尺度场景三维重建方法。



背景技术:

目前,场景及物体的三维重建在人机交互、虚拟现实、游戏电影等诸多领域都有着广泛的应用。对于更复杂、更真实的三维模型的需求也日益增加。但是当前的三维重建系统大多基于激光扫描的方法,该方法虽然能获得较理想的三维模型,但是系统的造价十分昂贵。如果更复杂和更真实的三维模型能如照片和视频一样容易获得,那么三维模型将更被应用于更多的领域,如无人机和无人车在运动的时候实时的感知自身方位,进行规划路线等。

基于图像序列的三维重建方案仅通过普通的摄像头采集数据即可实现在未知环境的实时定位和三维重建。当前基于图像序列的三维重建主要分为离线的sfm和实时的视觉slam。该方案虽然成本低,但是,如何仅利用图像序列就能获得更复杂和更真实的三维模型是计算机视觉一个重要的目标。其中对视觉slam系统已经有较多的研究。由klein等在2007年提出的ptam(paralleltrackingandmapping)系统是首个基于关键帧集束调整的slam系统,且在2009年被移植到iphone3g,也是首个移植到智能手机上的slam系统。ptam系统是第一个提出将相机的追踪和地图构建作为并行化的两个线程处理,是视觉slam中首次区分出前端和后端概念,这为后续的slam系统提供了良好的开端。但是与早期工作类似,ptam系统也存在着明显的缺陷,比如重建的场景小,没有回环检测等等。针对ptam系统的缺点,raulmur-artal等提出了一种实时的orb-slam(simultaneouslocalizationandmappingbasedonorientedbrieffeaturerecognition)系统。相比于ptam系统,orb-slam系统使用了orb描述子使系统有更好的视角不变性。且orb-slam添加了回环检测环节以消除累计误差。orb-slam是现代slam系统中做的最完善的,代表了特征点法slam的巅峰。但是也难免存在一些缺点,如在特征稀疏区域难以实现较好的特征追踪且重建的地图为稀疏点云地图。与orb-slam系统跟踪部分类似,只是匹配的方法从特征点法改变为了灰度值匹配法。与orb-slam系统不同的是svo在优化相机位姿之后,还可以再优化地图点,将地图点和相机位姿再次进行优化。且该系统采用半直接法,计算速度快。但是该系统也存在明显的缺点,由于是特征点法和直接法slam的结合,对于快速运动鲁棒性不足,也没有重定位和闭环检测的功能。总之,现在的视觉slam都存在一定的优缺点,特征点法的slam在纹理丰富的区域能够有较好的相机估计,但是在纹理稀疏的区域容易造成追踪丢失。而直接法的slam的方法由于直接对每个像素进行处理,在纹理稀疏的区域也能有较好的效果,但是在相机运动过快时候容易丢失。

针对图像序列的sfm也有很多的研究,但面对更复杂的大尺度场景,传统的sfm方法不可避免的会遇到内存和效率的瓶颈。ni等提出了一种核外的集束调整方法。内存中每次仅加载部分的子场景,每个子场景坐标系各自独立,在优化的过程中只需修改各子场景线性化的结果,从而减少了内存换入换出次数。但是该方法的集束调整算法效率不高,算法耗时过长。但是随着重建场景不断扩大,误差积累逐渐增多,集束调整易陷入局部最优解,误差将难以消除。



技术实现要素:

本发明的发明目的是提供一种基于gms特征匹配的面向复杂大尺度场景三维重建方法,不但在三维重建时候能较好的应对更复杂的大尺度场景,而且能在纹理稀疏区域有较好的相机位姿估计,还能很好的面对相机较大的旋转和平移。

为达到上述发明目的,本发明采用的技术方案是:一种基于gms特征匹配的面向复杂大尺度场景三维重建方法,包括如下步骤:

步骤一、采用融合了gms特征匹配的slam方法获取图像并获得相机位姿的初值;

步骤二、采用二三维特征点联合的集束调整的方法对相机位姿的初值进行优化;

步骤三、利用优化后的相机位姿,通过把各个图像的像素反投影到世界坐标系下,得到点云数据,再通过使用surfel构造变形图的方法进行点云融合,得到三维重建模型。

上述技术方案中,所述步骤一中,采用融合了gms特征匹配的orb-slam2方法。

上述技术方案中,所述步骤一中,选用rgb-d相机获取图像。

上述技术方案中,所述步骤二中,以近距离的三维特征点作为约束,融合远距离的二维特征点。

上述技术方案中,所述三维特征点的深度为1.5~3m。

上述技术方案中,所述步骤三中,将面元模型作为最小的处理单元。

由于上述技术方案运用,本发明与现有技术相比具有下列优点:

本发明通过使用融合了gms特征匹配的slam方法在获取图像的同时获得较高精度的相机位姿,以该相机位姿为初值进行三维重建,其中使用gms特征匹配保证稀疏区域特征点匹配的鲁棒性;再通过利用二三维特征点联合的集束调整,可将短距离获得高精度深度信息的三维特征匹配点作为绝对的约束,提供绝对的尺度信息,这样减少了优化时特征点的数量可很好解决内存问题,最终获得更高精度的相机位姿;最后通过使用surfel构造变形图的方法融合点云,最终获得高精度的三维重建模型,有效解决传统的点云融合方案易出现漂移严重等问题。

附图说明

图1是本发明实施例一的orb特征匹配的效果示意图。

图2是本发明实施例一的使用ransac算法后的效果示意图。

图3是本发明实施例一的使用gms特征匹配算法后的效果示意图。

图4是icl-nuim数据集中的图片使用ransac算法后的orb特征匹配效果示意图。

图5是icl-nuim数据集中的图片使用gms特征匹配算法后的orb特征匹配效果示意图。

图6是关于深度图像的slam算法的示意图。

图7是面元模型的示意图。

图8是变形图的结构示意图。

图9至12是orb-slam2和本发明算法在tum数据集上的轨迹误差示意图。

图13是使用改进的orb-slam2系统获得的三维重建模型示意图。

图14是使用二三维特征点联合的集束调整优化后的三维重建模型示意图。

图15至18是使用surfel模型时的系统工作图。

图19是闭环优化后的三维模型示意图。

图20是各个算法使用icl-nuim数据集的重建误差示意图。

图21是本发明算法对icl-nuim数据集kt0的重建模型示意图。

图22是对复杂大尺度场景的三维重建模型示意图。

图23是对复杂大尺度场景的三维重建模型示意图。

图24是本发明实施例一的三维重建方法流程图。

具体实施方式

下面结合附图及实施例对本发明作进一步描述:

实施例一:

参见图24所示,一种基于gms特征匹配的面向复杂大尺度场景三维重建方法,包括如下步骤:

步骤一、采用融合了gms特征匹配的slam方法获取图像并获得相机位姿的初值。

为了保证slam过程中特征匹配的效率和正确率。本发明采用了一种基于网格的运动估计(grid-basedmotionstatistics,简称gms)的特征匹配。特征匹配的核心问题在于邻域一致性这个约束需要怎么利用。一致性是一个强大的约束,但是在稀疏特征的时候不能有很好的邻域定义。这导致了基于一致性的特征匹配计算量很大,难以实现。而gms可以有效的解决这个问题。如果运动是平滑的,那么相邻像素将和特征一起运动。运动的平滑性导致了匹配的特征点的邻域内存在较多的匹配的点。可以通过计算邻域内匹配点的个数来判断一个匹配的正确与否。

假设给定一对从同一场景的不同视图拍摄的图像,特征匹配意味着一个图像中的像素(即特征点)被标记为另一图像中的相同点。一个图像对{ia,ib}分别有{n,m}个特征点。x={x1,x2,k,xi,k,xn}是从ia到ib的所有邻域内的特征匹配。x具有基数|x|=n。主要目标是将x划分出正确的匹配和错误的匹配。可以通过数学推导获得邻域内匹配点的正确匹配概率为pt,错误匹配概率为pf。而衡量邻域内匹配点正确与否的标准si服从二项分布。

其中,xi为第i个邻域内特征匹配。si各自的平均值和标准差分别是:

通常情况下,对于统计事件的标准差比平均值偏离太多,表示该事件极大的不可能发生。因此只需代价函数p的值最大即可:

在使用orb进行特征匹配的时候,虽然速度很快,但也存在着较多的错误匹配,其orb特征匹配的效果如图1所示。常用的方法可以通过使用随机抽样一致算法(randomsampleconsensus,简称ransac)来剔除错误匹配。其使用ransac算法以后的效果图如图2所示。从图中可以看出ransac算法能一定程度上的减少匹配,且也会把一部分真实匹配给消除了。但是ransac算法需要最错误的匹配预先消除,不能剔除所有的近邻集错误匹配。而gms将运动平滑约束转化为剔除虚假匹配的统计测度,可得到图3的匹配。经比较发现,本发明采用gms特征匹配方法的效果明显优于ransac算法的结果。

此外,gms在面对低纹理的区域也能有较好的匹配效果。图4和5为icl-nuim数据集中的图片特征匹配结果。其中图4是orb特征匹配使用ransac算法后的效果,图5是orb特征匹配使用gms特征匹配算法后的效果。从图4中可以看出使用ransac算法的特征匹配的方法在面对纹理稀疏的区域的时候,难以有较好的特征匹配结果。而图5中使用gms特征匹配算法可以很好的解决纹理稀疏区域特征匹配的问题。因此,使用gms特征匹配算法在纹理稀疏区域也能保持较高的鲁棒性。

使用gms特征匹配算法能保证在纹理稀疏区域也有较好的特征匹配的效果。高鲁棒性的特征匹配是三维重建的重要一环,通过较好的特征匹配结果才能有高精度的相机位姿的初值。本发明使用了融合gms算法的orb-slam2来获得相机位姿的初值。此种方法可获得较高精度的相机位姿初值,为后续的优化奠定了良好的基础。

步骤二、采用二三维特征点联合的集束调整的方法对相机位姿的初值进行优化。

在获得较高精度的相机位姿初值以后,仍需优化相机位姿,获得更高精度的相机位姿才能重建出高精度的三维模型。rgb-d相机可同时获得高分辨率的rgb图像和低分辨率的深度图像。其中rgb图像可以用来恢复远距离的三维场景,其大范围的测图能力可以很好的弥补rgb-d相机测距和视角的限制。但是rgb相机为单视相机,在远距离的场景无法恢复绝对尺度。因此本发明采用了一种二三维特征点联合的集束调整,以近距离的三维特征点作为约束,融合远距离的二维特征点,联合平差的方法优化相机位姿。

通过rgb图像为数据的三维重建方法中,其相机模型为针孔模型,如公式(4)所示:

其中,fr是rgb相机的焦距,rr和tr是rgb相机的位姿,[uv]是点的像素坐标,[xyz]是点在世界坐标系下的坐标。基于此模型可以通过匹配特征点对恢复相机的位姿。

对于深度图像,也可使用相似的相机模型从一系列二维图像中恢复三维模型。与rgb图像相机模型不同,深度图像中可以直接得知点的深度值,如公式(5)所示:

其中,rd和td是通过融合gms特征匹配的orb-slam2方法获取的深度相机的位姿矩阵。

通过融合了gms特征匹配的orb-slam2算法获得深度相机位姿矩阵,该位姿矩阵可以作为集束调整的初值,这不仅能解决rgb相机的尺度恢复的问题,还能提高算法的收敛性。所以需要将通过融合gms特征匹配的orb-slam2算法获取得到的深度相机的位姿转换到rgb相机的相机模型下。将公式(,5)中的rd和td移到公式右侧可得到公式(6):

再将公式(6)的两侧乘矩阵则公式(6)变为:

在经过相机的校正以后,rgb图像的像素将与深度图像一一对应,则可得到深度相机模型下的相机位姿和rgb相机模型下的相机位姿的关系,如公式(8)

将上述方法获得的rd和td作为二三维特征点联合的集束调整的初值。这个初值不仅包含了全局的尺度信息,还能减少集束调整的迭代次数,实现集束调整算法的快速收敛。

图6是关于深度图像的slam算法的示意图,从图中可以看出图像中的近距离特征点被用来相机的追踪。这类特征点可以从深度图像中获得高精度的深度信息,恢复其相应的三维坐标,因此这类特征点被标记为三维特征点。本发明使用的rgb-d相机为微软的kinect,其深度的精度在1.5m-3m之间最高,因此本发明的三维特征点深度在1.5m-3m之间,其余的三维特征点将被舍弃,降低计算量。在但是在单视相机的三维重建中,因为特征点的三维坐标点是未知的,所以集束调整通常被用来最小化像方的投影误差,联合调整特征点和相机的位姿。但是这种方法只采用了二维特征点进行相机位姿估计,无法得到绝对的尺度信息,且传统的集束调整效率不高。为了解决尺度问题和加快算法的收敛性,本发明将短距离获得高精度深度信息的三维特征匹配点作为绝对的约束,提供绝对的尺度信息。同时将利用融合了gms特征匹配的orb-slam2获得的相机位姿作为相机位姿的初始值来增强算法的收敛性。

假设存在关键帧数据的集合v,在闭环检测后图优化模型中边要素有m条。边的集合为e。则与任意一条边关联的两个数据可记作fi,fj。通过特征匹配获得的特征点可以分为两类,二维特征点和三维的特征点因为初始的相机位姿存在一定的误差,且二维三维特征点也都存在投影误差,结合rgb的相机模型,在fi上的投影差误差可表示为:

其中,[k]为rgb相机内参,是关键帧fi的初始相机的位姿。在关键帧fj上投影误差同理。仅考虑关键帧fi,fj的集束调整,则最小二乘优化函数可以表示为:

此方法只对两帧关键帧rgb图像进行二三维特征点联合的集束调整。因为是对rgb图像的图像序列的相机位姿进行优化,则其最小二乘优化代价函数为:

通过公式(12),迭代最小化特征匹配点的总投影误差。可集束调整特征匹配点的三维坐标和rgb相机的位姿,使其更加的精确。通过上述方法优化后的rgb相机位姿可再重新转换至深度图像的相机模型下,既可用于融合深度数据,也可用于密集匹配和获得远距离点的三维信息。

步骤三、利用优化后的相机位姿,通过把各个图像的像素反投影到世界坐标系下,得到点云数据,通过使用surfel构造变形图的方法进行点云融合,得到三维重建模型。

通过slam方法较精确的相机位姿,再经过二三维特征点联合的集束调整得到更为精确的相机位姿和特征匹配点的三维坐标。此后,利用这些高精度的相机位姿,通过把各个图像的像素反投影到世界坐标系下,得到点云数据,再对点云数据进行融合将得到高精度的三维模型。

本发明将面元(surfel)模型作为最小的处理单元。其中,每个面元都储存了点的颜色信息(r,g,b)、位置信息(x,y,z)、面元半径r、法向量n、权重w、以及点的获取时间信息t。面元模型的表示如图7所示

在面元模型中,三维点的位置信息可以通过深度图像的深度数据和rgb图像一一对应的关系获得,面元的半径可以通过距离相机光心的距离求得:

其中,d表示此面元对应的点的深度值,fd表示深度相机的焦距,nz是面元的估计法向量的z分量;其权重w的计算方式如下:

其中,γ表示深度归一化的径向距离,σ是经验值0.6。

通过深度图像生成点云以后,可通过点到面的icp算法对两对点云进行融合,计算点云的相对位置姿态。icp的误差模型如下:

其中,表示当前帧点云第k个三维点的到上一帧点云的投影,vk表示此点在上一帧中的重合点,nk是表示重合点的法线,t表示两对点云之间的变换关系。

构建变形图被用来全局的优化。变形图是由很多节点和边共同组成。且每个节点gn都存储了旋转矩阵gr、平移矩阵gt、位置信息gg、和时间信息gt0。其中待优化的参数是旋转矩阵和平移矩阵。其变形图的结构如图8所示:

每个待重建物体的三维表面都是由很多个面元构成,且每个面元ms都将受到变形图i(ms,g)中的节点影响。在每个节点优化获得新的位姿参数以后,都将对影响面元,该影响主要是面元法向量的变化和位置的变化。在节点优化以后,被影响面元的位置将变为:

其中,表示面元位置变形以前的坐标,表示变形以后的坐标,gr和gt表示节点优化以后的位置和姿态。面元法向量将变为:

其中,表示变形以前的面元法向量,表示变形以后的面元法向量。公式(16)和(17)中wn(ms)表示节点gn对当前的面元影响的权重,对当前面元有影响的全部节点的权重总和为1:

其中,dmax为当前面元与其全部邻域中的节点的欧氏距离的最大值。

变形图构建完成以后,通过变形图优化对位姿参数进一步的优化解算。检测到闭环的时候,进行变形图的优化解算。按时间节点将点云划分为活跃区域和非活跃区域。活跃区域是最近时间内刚重建完成的点。非活跃区域是以前重建完成的点。回环检测就是将活跃区域的点对齐到非活跃区域,实现活跃区域和非活跃区域点云的融合。两个待融合的点云中会存在许多的对应点对,其对应关系可以使用一个四元组来表示。其中,表示目标点云中的位置,表示在当前帧点云中的位置,表示对应的时间戳。变形图的优化是对这些闭环处的点进行优化融合,可使用如下四个代价函数进行优化。

首先,对每个节点的姿态进行优化通过使用forbenius范数,从而保证姿态矩阵r是正交的,其代价函数是:

其次,正规化约束节点,以保证相邻节点的参数是连续的,其代价函数是:

然后,结合公式(16)可以解出变形以后的坐标把当前帧点云向目标点云中对齐并优化,代价函数是:

最后,因为目标点云是非活跃区域以前生成的点云,位姿相对稳定,闭环优化主要对当前帧生成的点云进行校准,因此主要对目标点的坐标进行优化,代价函数是:

综上以上的四个代价函数,可构建最终总的优化函数,优化解算变形图,总的代价函数是:

edef=wroterot+wregereg+wconecon+wpinepin(23)

其中,各项权重可取经验值wrot=1,wreg=10,wcon=wpin=100。

通过slam方法获得较高精度的相机位姿,在通过使用二三维特征点联合的集束调整获得更高精度的相机位姿,利用更高精度的位姿,结合surfel模型和构造变形图来进行点云融合和优化,最终可获得高精度的三维地图。

下面对本发明的三维重建方法进行实验验证:

为了验证本发明提出的基于gms特征匹配的面向复杂大尺度场景三维重建方法,设计了多组实验。本发明所有实验的采用微软的kinect相机(rgb-d相机)获取数据。运行于ubuntu64位系统,interi7-4710hq,显卡gtx860,内存8g。首先,通过使用tum(technicaluniversityofmunich)数据集,对比本发明方法和其他方法获得的相机位姿精度。其次,通过对比使用本发明提出的二三维特征点联合的集束调整前后的模型对比。接着,验证surfel模型对点云融合优化的作用。然后再次使用icl-nuim数据集对本发明重建获得的三维模型精度进行评测,最后通过使用本发明的三维重建方法对更多的复杂大尺度场景进行重建,测试本发明提出的三维重建方法的稳定性和鲁棒性。

为了验证本发明使用融合gms算法的orb-slam2获得相机位姿的初值,再通过二三维特征点联合的集束调整优化后相机位姿的精度。本发明使用了tum数据集。tum数据集提供了真实路径。可以将使用本发明方法获得的相机位姿与真实路径做对比,可计算获得路径的均根方误差。其图9和11是orb-slam2的相机轨迹与真实轨迹的对比,图10和12是使用本发明分段式集束调整优化的相机轨迹与真实轨迹的对比。其图9和10是采用tum数据集fr1/xyz获得,其图11和12是采用tum数据集fr1/large_cabinet获得。从图中可以看出,orb-slam2估计的相机轨迹已经非常接近真实轨迹。但是在有些地方也存在误差较大的情况。而本发明的方法通过融合gms算法的orb-slam2获得相机位姿的初值,再通过二三维特征点联合的集束调整优化后相机位姿的更接近于真实轨迹。

如图13所示,在使用改进的orb-slam2系统进行三维重建的结果。从图中可发现,该方法对纹理丰富的区域能较好的重建,但是在面对纹理稀疏的区域的时候,难以保证特征匹配的鲁棒性,不能较好地进行位姿估计,从而导致无法较好的进行三维重建。造成了如图13中方框框定部分,在两个房间之间的走廊区域相机位姿漂移验证,模型出现了明显的漂移。

当使用本发明提出的二三维特征点联合的集束调整的方法,通过将短距离获得高精度深度信息的三维特征匹配点作为绝对的约束,提供绝对的尺度信息。同时使用融合了gms特征匹配的orb-slam2系统获得的位姿作为初值,加速算法的收敛,可得到如图14所示的三维模型。可明显看出在方框框定部分,走廊区域通过gms特征匹配可保证纹理稀疏区域特征匹配的鲁棒性,二三维特征点联合的集束调整增加测图能力,可对纹理稀疏的区域较好的三维重建。

本发明在使用surfel模型进行点云融合构建的时候系统的工作画面如图15至18所示。其图15中较亮的部分是点云融合的时活跃区域的点云,较暗的区域是非活跃区域的点云。图16中可看出当前重建区域内所构建的surfel模型。图17中可看出即将要进行点云的融合的所有点云。该点云在通过添加各个面的法向量以后分布图如图18所示,其椭圆框中区域内,桌子的一个面上本应是一个颜色的,但却是两种颜色,该区域有明显的模型漂移。再经过闭环检测后,活跃区域的点云向非活跃区域进行对准。对准优化后的点云如图19所示。使用surfel可直接获得点云的各个信息,并且通过闭环检测,活跃区域的点云直接向非活跃区域的点云进行对准,可更好的优化点云。此方法获得的三维重建模型也更加的精细。

本发明使用了icl-nuim数据集对重建获得的三维模型进行精度评估。icl-nuim数据集同时该数据集提供了surfreg工具可将rgb-d稠密三维重建的模型与地面真实3d表面模型进行比较。本发明选用了livingroomdataset的四个带有噪声的数据集进行检测本发明方法的鲁棒性,同时将本发明的方法的重建结果的误差与其他算法进行对比。其对比结果如图20所示。

图20中从左至右的算法依次是rgb-dslam[8]、dvoslam[11]、mrsmap[14]、kintinous[16]、elasticfusion[11]和本发明的。从图中可以看出本发明重建三维模型的误差是明显低于其它算法的。elasticfusion算法虽然在该数据集误差也较低,但是该算法只能在较小场景的时候才有较好的重建结果,在面对复杂大尺度场景时,本发明的重建能力更强。图21所示是本发明对icl-nuim数据集kt0的重建结果,从图中可以看出,本发明重建的模型是十分精细的。

当将本发明提出的基于gms特征匹配的面向复杂大尺度场景三维重建方法应用于更多复杂大尺度场景进行重建时,如图22所示,两室一厅的家庭场景也得到了较好的重建模型。图23为更加复杂的四室一厅的大尺度场景的高精度重建模型。

实验表明,在通过slam方法获得较精确的相机位姿,再把该较高精度的相机位姿所为二三维特征点联合的集束调整的初值,通过将短距离获得高精度深度信息的三维特征匹配点作为绝对的约束,提供绝对的尺度信息。可对纹理稀疏区域进行重建。使用surfel模型,可以很好的储存点的颜色信息、位置信息、面元半径、法向量、权重等。构造变形图进行点云的优化,通过闭环检测,将活跃区域点云对准到非活跃区域点云。可更好的优化点云,获得的模型也将更加的精细。实验证明了本发明提出的基于gms特征匹配的面向复杂大尺度场景三维重建方法能较好的面对纹理稀疏的区域,且通过将slam方法获得的较高精度的相机位姿作为sfm方法中的二三维特征点联合的集束调整的初值,能较好的解决sfm算法中内存和效率的问题。该方法能得到高精度的三维重建模型,且能较好的面对各种复杂大尺度场景,具有较好的稳定性和鲁棒性。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对上述实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的上述实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1