主要观点总结
本文提出一种基于ORB-SLAM2和TSDF的在线三维重建算法ORB-TSDF,通过光线碰撞检测和特征点法向量优化TSDF值,实现实时高精度三维重建。在ASL开源数据集上,相比于Voxblox、Voxfield和VDBblox,该方法在均方根误差、标准误差、均值误差、重建覆盖率、TSDF地图更新速率上均有所提升,平均更新速率达7.35ms/帧。实验表明,该方法能够实时构建高精度三维重建地图。
关键观点总结
关键观点1: ORB-TSDF算法
提出结合ORB_SLAM2与TSDF的ORB-TSDF系统框架,用于实时三维重建。
关键观点2: 光线碰撞检测融合策略
通过限制光线遍历特征点的数量,减少系统计算量,同时提升系统建图效率。
关键观点3: 特征点法向量优化TSDF值
利用特征点法向量信息优化体素投影距离,构建更精确的TSDF地图。
关键观点4: 实验结果
在ASL开源数据集和真实场景下,相比其他方法,ORB-TSDF算法在精度和实时性上均有提升,平均更新速率为7.35ms/帧。
关键观点5: 轻量化多机协同三维重建
通过回环检测融合子端地图,实现全局一致的三维重建地图。
正文
确保小型机器人在复杂环境下进行实时探索的主要挑战是构建高精度的TSDF地图的同时高效地维护和更新TSDF地图,针对构建TSDF地图精度低和小型机器人计算资源受限导致实时建图效率低的问题,本文创新性地构建了1个全新的在线三维重建框架,该框架采用RealSensed435i相机获取重建物体的RGB图像和深度图像,为了满足系统的实时性,本文使用ORB-SLAM2作为前端实时采集图像特征点和计算位姿,ORB-SLAM2作为一种实时定位与建图算法,可快速高效提取图像特征点并计算相机位姿,将构建TSDF地图算法与深度图结合,实时进行三维重建;为了在不降低精度的情况下加速TSDF地图的构建,本文提出一种光线碰撞检测融合策略减少光线遍历体素数量,实现了在线三维模型重建。
为了构建高精度三维重建模型,本文提出基于特征点法向量优化体素到物体表面真实距离,得到更精确的TSDF值,实现了一种实时高精度场景三维重建。相比于Voxblox、Voxfield在ASL开源数据集上TSDF地图平均更新速率分别提升了9.7%和12.9%,在ASL开源数据集上三维重建地图均方根误差相比于Voxblox、Voxfield和VDBblox分别下降了55.6%、47.11%、21.7%。
ORB-TSDF三维重建系统框架
针对传统算法在线构建三维重建场景精度低、计算量大、实时性不稳定等问题,本文创新性地提出结合ORB_SLAM2与TSDF的ORB-TSDF系统框架,结构图如图1所示。
图1 三维重建模型系统框架
系统首先从视觉传感器(如单目相机、双目相机、RGBD和视觉惯性里程计(如VIO),获得点云信息和位姿信息,然后通过机器人操作系统(Robot Operating System,ROS)在无线局域网的环境下利用不同的话题节点将前端采集的位姿信息和特征点云传输到TSDF积分器。
传感器通过光线投影特征点的方式更新空间内每个体素,为了加速TSDF地图构建,本文提出光线碰撞检测策略减少光线遍历体素的数量,通过减少光线遍历体素的数量减轻系统计算量。同时为了提高TSDF地图精度,本文提出利用碰撞检测后的特征点构建局部平面获取特征点法向量信息,利用法向量更新体素梯度从而得到更准确的体素到物体表面真实距离,并以此更新TSDF地图。最后利用Merching Cube[26]算法构建Mesh,利用Mesh进行在线三维重建。
本文的主要贡献如下:
(1)针对文献[12]和文献[13]建图速率低和实时性差等问题,本文提出一种通过光线碰撞检测降低光线遍历体素的数量并将体素内所有特征点融合的策略,减少每个体素融合的特征点数量,在保证系统精度的同时提升系统构建TSDF地图的效率。
(2)针对文献[12]、文献[13]和文献[19]建图精度低的问题,本文通过(1)筛选后的特征点,为每个特征点寻找其相邻特征点并构建局部平面,利用局部平面构建特征点法向量,并更新体素梯度信息,通过光线投影方向与体素梯度方向优化光线投影距离,构建更精确的TSDF地图。
(3)结合ORB-SLAM2,提出了一种能够实时构建高精度三维重建地图的框架。
2.1 基于光线碰撞检测构建TSDF地图
为了满足在线构建三维场景的实时性,本文通过限制光线遍历特征点的数量减小系统计算量,同时将体素内所有特征点融合为1个平均点,从而优化系统建图精度。本文提出的方法主要采用ORB_SLAM2的Tracking线程实时提取特征点来提高位姿估计的精度。Tracking线程的结构如图2所示,ORB_SLAM2作为目前主流的实时定位与建图系统,在实时提取目标特征点中有非常高的精度,同时还能通过匹配当前帧和相邻帧特征点输出位姿信息。
图2 Tracking线程流程
传感器利用光线投影将所有点云投射到全局地图的体素当中,然后将新的投影测量值更新到原有的体素当中。TSDF是一种将特征点云结构化并以参数来表达物体表面的地图重建算法,可以高效地实时进行三维重建,其原理如图3所示。图中,TSDF首先将全局三维地图划分为等体积大小的体素立方体,每个小立方体存储体素值和权重。TSDF根据相机内参、位姿、像素点坐标和深度值得到特征点P对应坐标,并根据式(1)~(5)计算体素的值和权重:
式中,下标i表示当前帧;i+1表示下一帧; w
const
(x,p)为体素的权重,默认为1;W
max
为最大权重,默认为2;s为传感器原点,p为输入传感器数据中3D点的位置;d
s
为视觉传感器到物体表面的距离,d
v
为传感器到体素的距离,sdf为体素到物体表面的真实距离;trunc表示截断距离;d(x,p,s)为sdf除以截断范围的体素值;W
i
(x)为当前体素融合更新前的体素立方体的权重,W
i+1
(x)为当前体素融合更新后的体素立方体的权重,D
i
(x)为体素融合更新前的体素立方体的值,w(x,p)为采集像素点p的权重,D
i+1
(x)为体素融合更新后的体素立方体的值。得到D
i+1
(x)后,计算所有D
i+1
(x)为0的等势面,即可得到三维重建的Mesh模型。
图3 ORB特征点投影体素示意图
传感器会发射光线到达特征点从而遍历地图中的每个体素,因此同一个体素可能会穿过多条光线,体素的尺寸越大则穿过该体素的光线越多,根据式(2)可以求得这个体素的有符号距离d
i
。
为了加快光线遍历体素的效率,本文创新性地提出了如图4所示光线碰撞检测融合策略。已知传感器在移动过程中会发射光线投影特征点并穿过空间中的体素,定义当2条及以上光线穿过同一体素时,将其视为光线碰撞。光线碰撞检测即对穿过同一体素的光线进行检测,若穿过该体素的历史光线数量达到设定的阈值时,禁止后续光线穿过该体素;反之则允许光线穿过体素,并根据光线投影
图4 光线碰撞检测融合像素点
距离对体素进行更新。阈值的设定根据实验可知:当体素内穿过光线数量达到20时,随着体素内光线数量的增加,建图精度没有出现明显提升,但系统计算开销会持续增大,不利于系统三维重建的实时性能,这表明合理地限制穿过体素的光线数量有利于提高系统实时性能,同时能够保证系统建图的精度不会出现显著下降。
如图4所示,设置体素内穿过的最大光线数量为3,上面3条光线可正常穿过体素,最下层光线由于光线碰撞检测不能穿过体素。根据已经穿过该体素的光线的所有投影点求其平均坐标,将其视为1个平均点,对此平均点投影射线,根据光线投影距离可得到此体素的TSDF值。平均点的更新如式(6):
式中,