基于SLAM的远程操作场景三维重建方法与流程

文档序号:29906803发布日期:2022-05-06 00:11阅读:316来源:国知局
基于SLAM的远程操作场景三维重建方法与流程
基于slam的远程操作场景三维重建方法
技术领域
1.本发明涉及载人航天领域,具体涉及到一种基于slam的远程操作场景三维重建方法。


背景技术:

2.目前,用于航天员在轨空间操作的地面训练的虚拟仿真系统中,航天员要获得设备的操作结果主要有两种途径,一是需地面任务指挥人员或远程教员通过语音通报获得;二是航天员转移到仪表机柜位置通过调取仪表信息页面,根据参数值人工判断操作结果是否正确。目前采取的两种方法均需中断航天员空间操作流程,其中语音通报获取方式航天员需中断操作训练,等待远程支持人员判读语音通报,导致航天员空间操作对地面支持系统的依赖性强,同时由于天地传输延迟导致航天员空间操作及训练持续时间长,效率低。而采用仪表判读方法,航天员需要在空间操作位置与仪表位置之间频繁来回切换,加重航天员的负担,易受环境影响,出错率高,而且过于依赖航天员的个人技能和经验。同时,目前基于增强现实/混合现实的新型航天员操作辅助系统都是“以计算机为中心”的程序化引导系统,普适能力差,仅实现了虚拟信息和真实场景的增强现实叠加,尚未做到对操作过程的实时状态自主判断与实时诱导反馈。综上所述的,现有的航天员远场操作场景的虚拟仿真系统存在实效性差和实时诱导反馈能力不足的问题,如何对航天员的远程操作场景进行有效的实时重建,是当前急需解决的问题。


技术实现要素:

3.针对现有的航天员远场操作场景的虚拟仿真系统存在实效性差和实时诱导反馈能力不足的问题,本发明公开了一种基于slam的远程操作场景三维重建方法,其具体步骤包括:图像获取,利用获取的图像进行特征/像素匹配,再进行最优相机位姿估计,闭环检测和建图,网格地图生成。
4.所述的图像获取,采用rgb-d相机对航天员操作场景进行图像采集,获取航天员操作场景的rgb图和depth图。depth图用于记录相应的rgb图上每个像素点对应的空间点的深度值。
5.具体地,在相机运动过程中,利用rgb-d相机逐帧获得图像,并对获得的每帧图像都打上时间戳。
6.所述的利用获取的图像进行特征/像素匹配,再进行最优相机位姿估计,是根据当前帧图像与上一帧图像(或者之前所有帧的优化模型)的匹配信息来估算当前相机的位姿,采用迭代最近点法实现两帧图像的配准,利用rgb直接匹配法通过最小化空间点对应的图像rgb像素光度误差来优化相机位姿态,将迭代最近点法和rgb直接匹配法得到的结果进行加权融合,得到相机位姿的估计结果。
7.所述的采用迭代最近点法实现两帧图像的配准,其具体包括,将每帧图像的2d点数据转换为3d点云数据,利用两帧图像的3d点云数据的距离最小为约束条件,计算得到两
帧图像之间的旋转矩阵和平移向量,从而实现两帧图像的配准;
8.所述的闭环检测和建图,利用相机位姿的估计结果,将各个时刻的3d点云数据配准并融合成一个完整的航天员操作场景的三维地图。
9.具体的,闭环检测的实现包含局部优化与全局优化两个步骤,局部优化的实现步骤为:利用位姿跟踪算法求解航天员所操作设备的位姿,根据位姿将不同图像的3d点云数据进行融合;按照时间将融合后的3d点云数据划分成active和inactive两个集合,active为随时间发生变化的3d点云数据的集合,inactive为不随时间发生变化的3d点云数据的集合;根据求解得到的航天员所操作设备的位姿,将active集合和inactive集合分别在图像上进行投影,得到两幅点云图像,并对其进行配准。
10.具体的,全局优化包括:按照邻接关系,将rgb-d相机获取的整个序列图像划分成等大小的图像块;对每个图像块进行块内优化,块内优化后,用块内的第一帧图像代表该块,对块内所有帧提取的特征做融合,该块的特征用融合后的特征表示。在图像块间建立匹配关系,进行全局优化。在进行块内或者块间的位姿匹配时,先通过稀疏的sift特征点进行估计,再用块内图像的稠密像素进行优化。
11.具体的,所述的进行块内或者块间的位姿匹配,其具体包括:
12.e(t)=w
sparseesparse
(t)+w
denseedense
(t),
13.其中,t是待优化的位姿转化矩阵,e(t)是位姿误差函数,通过最小化e(t)来计算最优的位姿t,e(t)的最小化包括通过稀疏特征点匹配产生的误差e
sparse
(t)和通过稠密像素匹配产生的误差e
dense
(t)之和的最小化,w
sparse
和w
dense
分别为通过稀疏特征点匹配产生的误差和通过稠密像素匹配产生的误差的权重。
14.具体的,建图过程包括,获得图像中每个特征点的深度信息,根据投影算法计算出每个特征点对应的3d点云数据,采用surfel模型进行点云信息的存储与融合,在相机运动的过程中不断扩展、拼接3d点云数据,并通过全局优化和局部优化生成点云地图。
15.所述的采用surfel模型进行点云信息的存储与融合,其具体包括,对新获取的点云信息建立一个新的形变图deformation graph,该形变图包括若干个节点,该节点是从重建的3d点云数据均匀抽样得到。
16.每个节点包含了其节点信息利用slam中的局部回环检测和全局回环检测建立优化约束参数和
17.建立surfel模型的每个模型点和形变图节点之间的连接,并根据模型点和节点之间的距离关系,按照加权平均的方式,用优化后的和更新新获取的点云位置和法向量。
18.对于rgb-d相机采集的当前帧图像,根据当前帧图像位姿,将当前帧图像的点云融合到待重建的三维场景中之后,再用光线投影算法计算在当前视角下航天员所看到的场景的表面,并用该表面来对下一帧的输入图像进行配准,计算下一帧图像的位姿。采用光线投影算法计算得到点云,再计算其法向量,用带法向量的点云和下一帧的输入图像进行配准,获取下一帧输入图像的位姿。
19.所述的网格地图生成,将点云数据转化为mesh三角网格模型,即将空间点(vertex)转化成相互连接的三角网格mesh;并根据点云深度值动态地调整三角网格mesh的
mesh顶点的高度以及三角网格mesh的分辨率,最后再将该三角网格mesh融合到点云地图中,得到网格地图。
20.具体的,先预定义基础mesh网格,并且以固定的拓扑结构对其进行三角分割,得到mesh三角网格。在距离rgb-d相机指定远的位置预设一个平行于水平面的mesh网格,对预定义的基础mesh网格进行递归地分割,同时引入若干个的mesh网格顶点。
21.具体的,采用动态分层的方式选择mesh网格的分辨率等级,分辨率等级的计算公式为:
22.l=round(log2([δb]/a)),
[0023]
其中,l为当前mesh网格采用的分辨率级别,δb为一个基础mesh网格在图像投影的区域大小,a为期望的投影区域大小,round表示取整数。
[0024]
每个mesh三角网格的高程值通过z=f(x;y)函数来描述,z∈rm,m=n
×
n,n为mesh三角网格在水平面上一个方向的节点数量,m为高程的维度。将点云投影到三角分割后的预定义mesh网格平面中,每个mesh三角网格中落入若干点,选择最接近每个mesh三角网格质心的空间点,用其代表该mesh三角网格。设第i个mesh三角网格的关联空间点为(xi,yi,zi),其与该mesh三角网格3个顶点的高度值和的关系表示为:
[0025][0026]
上式中,zi为已知量,和为需要求解的值,k为mesh三角网格的数目,将上述关系表达为矩阵形式:
[0027]
jh=z,
[0028]
其中,j∈rk×m,h∈rm,z∈rk,j为mesh三角网格的关联空间点坐标构成的矩阵,h为mesh三角网格3个顶点的高度值构成的向量,z为mesh三角网格的关联空间点的高程构成的向量,对该矩阵形式左乘j
t
后,得到:
[0029]jt
jh=j
t
z,
[0030]
其中,j
t
j为对称稀疏结构,采用gauss-seidel算法来解算,得到上述三个顶点的高度值。
[0031]
具体的,采用slam中的图优化方法来实现网格地图重建误差的最小化,将优化变量作为是slam中图的顶点(vertex),观测方程作为slam中图的边(edge)。对于slam中顶点和边的选择,其具体包括:
[0032]
具体的,从全局优化角度,用特征点匹配误差最小化来估计得到初步的相机位姿,再利用最优相机位姿估计的方法,得到全局最优的位姿误差代价函数:
[0033]
e(t)=es(t)+ed(t),
[0034]
其中,es(t)为平面方向上的位姿误差函数,ed(t)为深度方向上的位姿误差函数,t是待优化的位姿转化矩阵,e(t)是位姿误差函数;以该位姿误差代价函数最小为目标,对相机位姿进行估计。
[0035]
本发明的有益效果为:
[0036]
针对现有的航天员远场操作场景的虚拟仿真系统存在实效性差和实时诱导反馈能力不足的问题,研究航天员空间操作场景重建与匹配技术,以提高航天员增强现实操作辅助系统智能性和可用性。本发明具有以下优点:
[0037]
1)以航天员视觉关注焦点为中心,实现了多模态融合交互;
[0038]
2)基于slam重建远程操作场景,能重建操作设备状态,并根据状态驱动操作信息同步诱导,以主动方式为航天员提供实时信息支持;
[0039]
3)利用该重建的远程操作场景,航天员可独立进行操作训练,减少航天员空间操作或训练过程对地面支持系统或教员的依赖性。
附图说明
[0040]
图1为本发明方法的实现流程图;
[0041]
图2为本发明的rgbd-slam位姿估计方法的实现示意图;
[0042]
图3为本发明的icp算法的实现示意图;
[0043]
图4为本发明的rgb直接匹配法的估计过程示意图;
[0044]
图5为本发明预定义的mesh三角网格和拓扑结构的示意图;
[0045]
图6为本发明的多分辨率mesh网格示意图。
具体实施方式
[0046]
为了更好的了解本发明内容,这里给出二个实施例。
[0047]
图1为本发明方法的实现流程图;图2为本发明的rgbd-slam位姿估计方法的实现示意图;图3为本发明的icp算法的实现示意图;图4为本发明的rgb直接匹配法的估计过程示意图;图5为本发明预定义的mesh三角网格和拓扑结构的示意图;图6为本发明的多分辨率mesh网格示意图。
[0048]
实施例1:基于slam的远程操作场景三维重建方法
[0049]
一种基于slam的远程操作场景三维重建方法,其具体步骤包括:图像获取,利用获取的图像进行特征/像素匹配,再进行最优相机位姿估计,闭环检测和建图,网格地图生成。
[0050]
所述的图像获取,采用rgb-d相机对航天员操作场景进行图像采集,获取航天员操作场景的rgb图和depth图。depth图用于记录相应的rgb图上每个像素点对应的空间点的深度值。
[0051]
具体地,在相机运动过程中,利用rgb-d相机逐帧获得图像,并对获得的每帧图像都打上时间戳。
[0052]
所述的利用获取的图像进行特征/像素匹配,再进行最优相机位姿估计,是根据当前帧图像与上一帧图像(或者之前所有帧的优化模型)的匹配信息来估算当前相机的位姿,采用迭代最近点法实现两帧图像的配准,利用rgb直接匹配法通过最小化空间点对应的图像rgb像素光度误差来优化相机位姿态,将迭代最近点法和rgb直接匹配法得到的结果进行加权融合,得到相机位姿的估计结果。
[0053]
所述的采用迭代最近点法实现两帧图像的配准,其具体包括,将每帧图像的2d点数据转换为3d点云数据,利用两帧图像的3d点云数据的距离最小为约束条件,计算得到两帧图像之间的旋转矩阵和平移向量,从而实现两帧图像的配准;
[0054]
所述的闭环检测和建图,利用相机位姿的估计结果,将各个时刻的3d点云数据配准并融合成一个完整的航天员操作场景的三维地图。
[0055]
具体的,闭环检测的实现包含局部优化与全局优化两个步骤,局部优化的实现步
骤为:利用位姿跟踪算法求解航天员所操作设备的位姿,根据位姿将不同图像的3d点云数据进行融合;按照时间将融合后的3d点云数据划分成active和inactive两个集合,active为随时间发生变化的3d点云数据的集合,inactive为不随时间发生变化的3d点云数据的集合;根据求解得到的航天员所操作设备的位姿,将active集合和inactive集合分别在图像上进行投影,得到两幅点云图像,并对其进行配准。
[0056]
具体的,全局优化包括:按照邻接关系,将rgb-d相机获取的整个序列图像划分成等大小的图像块;对每个图像块进行块内优化,块内优化后,用块内的第一帧图像代表该块,对块内所有帧提取的特征做融合,该块的特征用融合后的特征表示。在图像块间建立匹配关系,进行全局优化。在进行块内或者块间的位姿匹配时,先通过稀疏的sift特征点进行估计,再用块内图像的稠密像素进行优化。
[0057]
具体的,所述的进行块内或者块间的位姿匹配,其具体包括:
[0058]
e(t)=w
sparseesparse
(t)+w
denseedense
(t),
[0059]
其中,t是待优化的位姿转化矩阵,e(t)是位姿误差函数,通过最小化e(t)来计算最优的位姿t,e(t)的最小化包括通过稀疏特征点匹配产生的误差e
sparse
(t)和通过稠密像素匹配产生的误差e
dense
(t)之和的最小化,w
sparse
和w
dense
分别为通过稀疏特征点匹配产生的误差和通过稠密像素匹配产生的误差的权重。
[0060]
具体的,建图过程包括,获得图像中每个特征点的深度信息,根据投影算法计算出每个特征点对应的3d点云数据,采用surfel模型进行点云信息的存储与融合,在相机运动的过程中不断扩展、拼接3d点云数据,并通过全局优化和局部优化生成点云地图。
[0061]
所述的采用surfel模型进行点云信息的存储与融合,其具体包括,对新获取的点云信息建立一个新的形变图deformation graph,该形变图包括若干个节点,该节点是从重建的3d点云数据均匀抽样得到。
[0062]
每个节点包含了其节点信息利用slam中的局部回环检测和全局回环检测建立优化约束参数和
[0063]
建立surfel模型的每个模型点和形变图节点之间的连接,并根据模型点和节点之间的距离关系,按照加权平均的方式,用优化后的和更新新获取的点云位置和法向量。
[0064]
对于rgb-d相机采集的当前帧图像,根据当前帧图像位姿,将当前帧图像的点云融合到待重建的三维场景中之后,再用光线投影算法计算在当前视角下航天员所看到的场景的表面,并用该表面来对下一帧的输入图像进行配准,计算下一帧图像的位姿。采用光线投影算法计算得到点云,再计算其法向量,用带法向量的点云和下一帧的输入图像进行配准,获取下一帧输入图像的位姿。
[0065]
所述的网格地图生成,将点云数据转化为mesh三角网格模型,即将空间点(vertex)转化成相互连接的三角网格mesh;并根据点云深度值动态地调整三角网格mesh的mesh顶点的高度以及三角网格mesh的分辨率,最后再将该三角网格mesh融合到点云地图中,得到网格地图。
[0066]
具体的,先预定义基础mesh网格,并且以固定的拓扑结构对其进行三角分割,得到mesh三角网格。在距离rgb-d相机指定远的位置预设一个平行于水平面的mesh网格,对预定
义的基础mesh网格进行递归地分割,同时引入若干个的mesh网格顶点。
[0067]
具体的,采用动态分层的方式选择mesh网格的分辨率等级,分辨率等级的计算公式为:
[0068]
l=round(log2([δb]/a)),
[0069]
其中,l为当前mesh网格采用的分辨率级别,δb为一个基础mesh网格在图像投影的区域大小,a为期望的投影区域大小,round表示取整数。
[0070]
每个mesh三角网格的高程值通过z=f(x;y)函数来描述,z∈rm,m=n
×
n,n为mesh三角网格在水平面上一个方向的节点数量,m为高程的维度。将点云投影到三角分割后的预定义mesh网格平面中,每个mesh三角网格中落入若干点,选择最接近每个mesh三角网格质心的空间点,用其代表该mesh三角网格。设第i个mesh三角网格的关联空间点为(xi,yi,zi),其与该mesh三角网格3个顶点的高度值和的关系表示为:
[0071][0072]
上式中,zi为已知量,和为需要求解的值,k为mesh三角网格的数目,将上述关系表达为矩阵形式:
[0073]
jh=z,
[0074]
其中,j∈rk×m,h∈rm,z∈rk,j为mesh三角网格的关联空间点坐标构成的矩阵,h为mesh三角网格3个顶点的高度值构成的向量,z为mesh三角网格的关联空间点的高程构成的向量,对该矩阵形式左乘j
t
后,得到:
[0075]jt
jh=j
t
z,
[0076]
其中,j
t
j为对称稀疏结构,采用gauss-seidel算法来解算,得到上述三个顶点的高度值。
[0077]
具体的,采用slam中的图优化方法来实现网格地图重建误差的最小化,将优化变量作为是slam中图的顶点(vertex),观测方程作为slam中图的边(edge)。对于slam中顶点和边的选择,其具体包括:
[0078]
具体的,从全局优化角度,用特征点匹配误差最小化来估计得到初步的相机位姿,再利用最优相机位姿估计的方法,得到全局最优的位姿误差代价函数:
[0079]
e(t)=es(t)+ed(t),
[0080]
其中,es(t)为平面方向上的位姿误差函数,ed(t)为深度方向上的位姿误差函数,t是待优化的位姿转化矩阵,e(t)是位姿误差函数;以该位姿误差代价函数最小为目标,对相机位姿进行估计。
[0081]
实施例2:基于slam的远程操作场景三维重建方法
[0082]
本发明公开了一种基于slam的远程操作场景三维重建方法,其具体步骤包括:图像获取,利用获取的图像进行特征/像素匹配,再进行最优相机位姿估计,闭环检测和建图,网格地图生成。
[0083]
所述的图像获取,采用rgb-d相机对航天员操作场景进行图像采集,获取航天员操作场景的rgb图和depth图。depth图用于记录相应的rgb图上每个像素点对应的空间点的深度值。
[0084]
rgb图主要用于特征提取和匹配,获得不同帧图像的匹配的特征点,然后再根据
depth图计算特征点对应的3d点云,进而使用icp算法进行点云匹配,并通过最小距离匹配估计最优的相机位姿。为了获取全局一致的相机轨迹和地图,使用了局部优化与全局优化的方法实现回环检测,最终建立三维场景点云模型。
[0085]
具体地,在相机运动过程中,利用rgb-d相机逐帧获得图像,并对获得的每帧图像都打上时间戳。与其它相机不同的是,rgb-d相机除了可以获取一张rgb图,还能获取一张depth图,它记录了rgb图上每个像素点对应的空间点的深度值。
[0086]
所述的利用获取的图像进行特征/像素匹配,再进行最优相机位姿估计,是根据当前帧图像与上一帧图像(或者之前所有帧的优化模型)的匹配信息来估算当前相机的位姿,也就是其相对于参考帧的旋转矩阵r和平移向量t,该环节是slam技术的核心步骤。不同于一般的slam技术,本方法估计的相机位姿能配准空间点云,还能配准空间点云对应的色彩信息,采用迭代最近点法实现两帧图像的配准,利用rgb直接匹配法通过最小化空间点对应的图像rgb像素光度误差来优化相机位姿态,将迭代最近点法和rgb直接匹配法得到的结果进行加权融合,得到相机位姿的估计结果。
[0087]
所述的采用迭代最近点法实现两帧图像的配准,其具体包括,将每帧图像的2d点数据转换为3d点云数据,利用两帧图像的3d点云数据的距离最小为约束条件,计算得到两帧图像之间的旋转矩阵和平移向量,从而实现两帧图像的配准;
[0088]
所述的采用迭代最近点法(icp)实现两帧图像的配准,icp算法主要用于两帧点云配准,通过算法icp实现基于相机位姿估计,实现方法如图3所示。
[0089]
根据上述的步骤,我们可以得到两组匹配好的特征点对,但这些点对还只是图像平面的2d点,所以首先根据投影算法将它们转化为3d点云数据。已知图像平面像素点坐标为(u,v)以及该像素点对应的归一化深度值为d,相机坐标系下对应的点云为(x,y,z),根据相机投影算法有:
[0090][0091]
其中f
x
,fy为焦距,c
x
,cy为像平面偏离光心的距离,均为相机内参,s深度值缩放因子,如果给定深度数单位为mm,则s=1000。假设根据相机投影算法获得的是两组3d点云数据分别为:
[0092]
p={p1,p2,

},p’={p
’1,p
’2,

},
[0093]
得到的是3d-3d间的关系,icp算法假设两帧之间各对应点位姿关系满足:
[0094][0095]
其中r和t分别为点云p到点云p’的姿态变换矩阵和平移向量,反映了相机位姿的变化,是icp算法的计算目标。可以看出,3d-3d点云之间的位姿姿态变换与相机无关,因为无需相机内参。当匹配的空间点距离最小时即为最优的r,t,
[0096][0097]
对于rgb直接匹配法实现,基于本发明三维重建需求,采用了直接法来进行相机匹配。直接法以图像像素为处理对象,而不只是其中的角点和边缘。直接法有一个假设前提:同一个空间点的像素值,在各个图像中是一样的。
[0098]
空间点p的世界坐标为[x,y,z],其在两帧相机图像上像素点分别为p1,p2。设第一帧处相机旋转矩阵为i和平移为0,求其到第二帧相机位姿态变换矩阵r,t(李代数为ξ),相机内参为k。rgb直接匹配法的计算公式包括:
[0099][0100][0101][0102]
与特征点法的最小化重投影误差(reprojecton error)来优化相机位姿态不同,直接法通过最小化空间点对应的图像rgb像素误差(称为光度误差,photometric error)来优化相机位姿态r,t。本发明将icp与直接法结合起来,将icp中的重投影误差和直接法中的rgb像素误差同时最小化来优化相机位姿,同时加入权重参数来控制两种对相机位姿的贡献,用公式表示为:
[0103]
e=eicp+w*ergbd。
[0104]
所述的闭环检测和建图,利用相机位姿的估计结果,将各个时刻的3d点云数据配准并融合成一个完整的航天员操作场景的三维地图。
[0105]
具体的,闭环检测的实现包含局部优化与全局优化两个步骤,局部优化的实现步骤为:利用位姿跟踪算法求解航天员所操作设备的位姿,根据位姿将不同图像的3d点云数据进行融合;按照时间将融合后的3d点云数据划分成active和inactive两个集合,active为随时间发生变化的3d点云数据的集合,inactive为不随时间发生变化的3d点云数据的集合;根据求解得到的航天员所操作设备的位姿,将active集合和inactive集合分别在图像上进行投影,得到两幅点云图像,并对其进行配准。如果可以配准上,则说明存在局部回环。
[0106]
局部优化针对相邻帧以及区域的位姿配准,全局优化实现整个三维空间的位姿与航天员操作场景的三维地图的一致性。准确的三维重建不但要对齐空间位置,还要对齐深度与rgb像素值,所以位姿估计的约束条件更多。具体的,全局优化包括:按照邻接关系,将rgb-d相机获取的整个序列图像划分成等大小的图像块,{ti,i=1,2,

,n},新的图像帧加入后,当其数量累计到一个图像块所包含的图像数量后才开始做块内优化;对每个图像块进行块内优化,块内优化后,用块内的第一帧图像代表该块,对块内所有帧提取的特征做融合,该块的特征用融合后的特征表示。在图像块间建立匹配关系,进行全局优化。在进行块内或者块间的位姿匹配时,先通过稀疏的sift特征点进行估计,再用块内图像的稠密像素进行优化。
[0107]
具体的,所述的进行块内或者块间的位姿匹配,其具体包括:
[0108]
e(t)=w
sparseesparse
(t)+w
denseedense
(t),
[0109]
其中,t是待优化的位姿转化矩阵,e(t)是位姿误差函数,通过最小化e(t)来计算最优的位姿t,e(t)的最小化包括通过稀疏特征点匹配产生的误差e
sparse
(t)和通过稠密像素匹配产生的误差e
dense
(t)之和的最小化,w
sparse
和w
dense
分别为通过稀疏特征点匹配产生的误差和通过稠密像素匹配产生的误差的权重。稠密像素的误差包含了来自深度匹配的误差和rgb像素匹配的误差:
[0110]edense
(t)=w
depthedepth
(t)+w
colorecolor
(t),
[0111]
具体地,该误差最小化可通过randomized ferns算法实现。
[0112]
具体的,建图过程包括,获得图像中每个特征点的深度信息,根据投影算法计算出每个特征点对应的3d点云数据,采用surfel模型进行点云信息的存储与融合,在相机运动的过程中不断扩展、拼接3d点云数据,并通过全局优化和局部优化生成点云地图。
[0113]
本发明中不但需要生成一个全局的三维点云,还需要每个点云的rgb信息,这个我们在slam前端的直接法阶段已经获取到了每个特征点的rgb值。采用surfel模型进行点云信息的存储与融合,采用该模型方便使用opengl进行处理,提高融合、更新的效率。surfel模型对于每个点主要存储点的位置(x,y,z),面片半径(r),法向量(n),颜色信息(r,g,b)以及点的获取时间t等。
[0114]
所述的采用surfel模型进行点云信息的存储与融合,其具体包括,对新获取的点云信息建立一个新的形变图deformation graph,该形变图包括若干个节点,该节点是从重建的3d点云数据均匀抽样得到,node的数量和重建好的点的数量成正相关。
[0115]
每个节点包含了其节点信息利用slam中的局部回环检测和全局回环检测建立优化约束参数和
[0116]
建立surfel模型的每个模型点和形变图节点之间的连接,并根据模型点和节点之间的距离关系,按照加权平均的方式,用优化后的和更新新获取的点云位置和法向量。
[0117]
位置坐标更新公式如下:
[0118][0119]
法向量更新公式如下:
[0120][0121]
权值计算公式如下:
[0122][0123]
对于rgb-d相机采集的当前帧图像,根据当前帧图像位姿,将当前帧图像的点云融合到待重建的三维场景中之后,再用光线投影算法计算在当前视角下航天员所看到的场景的表面,并用该表面来对下一帧的输入图像进行配准,计算下一帧图像的位姿。光线投影算
法在实际计算的时候,也是用gpu并行计算,gpu的单个线程处理单个的像素点。采用光线投影算法计算得到点云,再计算其法向量,用带法向量的点云和下一帧的输入图像进行配准,获取下一帧输入图像的位姿,如此是个循环的过程。
[0124]
所述的网格地图生成,将点云数据转化为mesh三角网格模型,即将空间点(vertex)转化成相互连接的三角网格mesh;并根据点云深度值动态地调整三角网格mesh的mesh顶点的高度以及三角网格mesh的分辨率,最后再将该三角网格mesh融合到点云地图中,得到网格地图。
[0125]
具体的,为了高效地生成mesh网格,先预定义基础mesh网格,并且以固定的拓扑结构对其进行三角分割,得到mesh三角网格,类似于laplace金字塔分层模型,如图5所示。在距离rgb-d相机指定远的位置预设一个平行于水平面的mesh网格,只允许mesh网格顶点改变一个自由度:其法线方向上的距离,初始为垂直方向。根据点云数据以及mesh分辨率要求,对预定义的基础mesh网格进行递归地分割,同时引入若干个的mesh网格顶点。预设mesh网格数量和最大mesh网格数量可根据要求设定。
[0126]
假设预定义的mesh网格数量为m0=n
×
n(n为x和y方向网格数),进行一次过采样之后数量增加d1=(2n-1)
×
(2n-1),此时网格总数m1=m0+d1,网格的分辨率也会提高一级。类似地,每提高一级分辨率,mesh网格的数量就以该规律增长:
[0127][0128]
其中,i指当前的分辨率级别。理论上,最小可以达到像素级别的分辨率。
[0129]
根据相机成像原理,随着与相机成像平面距离不同,物体的成像区域大小也不同:距离越近区域越大,反之越小。如果一直采用一个精细层次的mesh网格结构,或者会使近距离的物理分辨率过低,降低重建精度;或者会使远距离的物体分辨率过高,增加系统运算负担。所以,具体的,采用动态分层的方式选择mesh网格的分辨率等级,分辨率等级的计算公式为:
[0130]
l=round(log2([δb]/a)),
[0131]
其中,l为当前mesh网格采用的分辨率级别,δb为一个基础mesh网格在图像投影的区域大小,a为期望的投影区域大小,如4个像素点,round表示取整数。距离越近,δb值随着变大,则分辨率级别提高;反之,分辨率级别减小。图6为多分辨率mesh网格示意图。
[0132]
每个mesh三角网格的高程值通过z=f(x;y)函数来描述,z∈rm,m=n
×
n,n为mesh三角网格在水平面上一个方向的节点数量,m为高程的维度。将点云投影到三角分割后的预定义mesh网格平面中,每个mesh三角网格中落入若干点,选择最接近每个mesh三角网格质心的空间点,用其代表该mesh三角网格。设第i个mesh三角网格的关联空间点为(xi,yi,zi),其与该mesh三角网格3个顶点的高度值和的关系表示为:
[0133][0134]
上式中,zi为已知量,和为需要求解的值,k为mesh三角网格的数目,将上述关系表达为矩阵形式:
[0135]
jh=z,
[0136]
其中,j∈rk×m,h∈rm,z∈rk,j为mesh三角网格的关联空间点坐标构成的矩阵,h为
mesh三角网格3个顶点的高度值构成的向量,z为mesh三角网格的关联空间点的高程构成的向量,对该矩阵形式左乘j
t
后,得到:
[0137]jt
jh=j
t
z,
[0138]
其中j
t
j为对称稀疏结构,采用gauss-seidel算法来解算,得到上述三个顶点的高度值。当新的图像帧出现,更新j
t
j和j
t
后,gauss-seidel算法迭代很少次就可以快速地收敛。且所有的计算值都保存于j
t
j和j
t
z结构中,所以其对计算量和内存要求也很有限。
[0139]
在前端定位环节,通过特征匹配误差最小化来估算最优的位姿。由于特征提取与匹配存在噪声影响,所以无法总是保证位姿正确。为了提高位姿的估计精度、加强系统鲁棒性,本发明将在建图环节进一步优化位姿。
[0140]
具体的,采用slam中的图优化方法来实现网格地图重建误差的最小化,图优化是用图论的概念进行优化,将优化变量作为是slam中图的顶点(vertex),观测方程作为slam中图的边(edge)。对于slam中顶点和边的选择,其具体包括:
[0141]
对于顶点的选择,以相机位姿t=[r|t]=:ξ∈se(3)(矩阵t对应的李代数),以及网格地图中代表每个mesh网格的空间点p∈r3,作为顶点;
[0142]
对于边的选择,每个mesh网格的空间点在相机或者全局dem模型中的投影,以观测方程来描述:
[0143]
z=h(ξ,p),
[0144]
将该观测方程作为slam中图的边。假设位姿ξ和空间点p已知,当以位姿ξ去观测空间点p,可通过投影关系h(ξ,p)获得其在图像平面上的投影z。但实际上由于噪声的存在,z不可能精确地等于h(ξ,p),于是就有了误差,其表达式为:
[0145]
e=z-h(ξ,p),
[0146]
设z
ij
是在位姿ξi处观测mesh网格空间点pj产生的数据,那么整体优化的代价函数:
[0147][0148]
上式的求解属于最小二乘问题,其对相机和空间点空间位置同时做了优化调整。通过非线性优化算法求解,首先将其转化为线性的增量方程形式,然后可通过列文伯格-马夸尔特法(liebenberg-marquardt)求解。
[0149]
具体的,从全局优化角度,用特征点匹配误差最小化来估计得到初步的相机位姿,再利用最优相机位姿估计的方法,得到全局最优的位姿误差代价函数:
[0150]
e(t)=es(t)+ed(t),
[0151]
其中,es(t)为平面方向上的位姿误差函数,ed(t)为深度方向上的位姿误差函数,t是待优化的位姿转化矩阵,e(t)是位姿误差函数;以该位姿误差代价函数最小为目标,对相机位姿进行估计。
[0152]
最优相机位姿估计的方法也为闭环检测提供了判断依据,回顾在前述的定位步骤使用的位姿估计公式:
[0153]
[0154]
通过加权求和,得到全局最优的位姿误差代价函数:
[0155]
e(t)=es(t)+ed(t)。
[0156]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1