掌桥专利:专业的专利平台
掌桥专利
首页

一种基于伪深度图的RGB-D SLAM方法、系统和存储介质

文献发布时间:2023-06-19 19:28:50


一种基于伪深度图的RGB-D SLAM方法、系统和存储介质

技术领域

本发明涉及网格地图构建技术领域,尤其涉及一种基于伪深度图的RGB-D SLAM方法。

背景技术

自主导航同步定位和建图(SLAM)是一种定位和建图研究技术,在移动机器人的导航和定位中发挥着重要作用。视觉SLAM由四个部分组成:视觉里程计(VO)、优化、闭环和映射。在VO中,主要是完成对相机位姿的估计,而单目VO由于输入中缺乏深度信息而存在尺度模糊(scale ambiguity)。该问题通常通过结合惯性测量单元(IMU)来解决,但随着深度学习框架的逐渐成熟,无监督单目深度估计方法逐渐取代了传统的单目深度估计方法。

近年来,出现了许多结合单目深度估计的SLAM框架,如UnDeepVO和D3VO。然而,他们的标准做法是将单目深度框架直接与VO集成,这可能导致无法快速有效地利用SLAM框架中新的单目深度估计框架生成的深度信息。在深度学习中,一般的做法是在python中训练出深度估计,使用libtorch进行模型部署,转成C++的格式再改写SLAM算法。虽然跟踪脚本等工具是由Torch官方提供用于转换的,但是,并不是所有的操作和方法都被TorchScript支持。所以结合SLAM框架中单目深度估计框架,测试单目深度估计会进行多次的测试,浪费转换时间和部署时间。

发明内容

为克服上述缺点,本发明的目的在于提供一种基于伪深度图的RGB-D SLAM方法,利用深度学习技术将单目相机的输出彩色图片进行深度预测,并将数据转为伪深度图,可以直接应用于相机ORB-SLAM3系统进行位姿估计和绘制点云地图和稠密地图。

为了达到以上目的,本发明采用的技术方案是:一种基于伪深度图的RGB-D SLAM方法,包括如下步骤:获取原始图像集,单目相机收集多幅彩色原始图像,得到原始图像集。获取伪深度图集,对所述原始图像集中的每幅彩色原始图像进行深度预估,每幅所述彩色原始图像形成一个16位的伪深度图,所有16位的伪深度图形成一个伪深度图集。将所述原始图像集及所述伪深度图集结合形成伪RGB-D集,将所述伪RGB-D集输入预设三维模型成像系统,构建全局地图。

本发明的有益效果在于:通过单目相机采集的彩色原始图像,直接转换成图片格式的16位的伪深度图,将图片格式的16位的伪深度图和彩色原始图像形成伪RGB-D输送到三维模型成像系统,三维模型成像系统直接利用图片格式的数据生成全局地图。减少了转换时间和部署时间。

进一步来说,所述获取伪深度图集具体包括:选择深度估计网络,使用所述深度估计网络对原始图像集内的每幅彩色原始图像进行监督训练,得到所述彩色原始图像的每个像素点所在的位置的第一深度值,将第一深度值保存为第一深度矩阵。将第一深度矩阵通过转换算法转换为第二深度矩阵,并将第二深度矩阵生产成为一个16位的伪深度图,所有16位的伪深度图形成一个伪深度图集。

进一步来说,所述转换算法包括:

将每个第一深度值自0和1之间进行归一化,得到归一化的像素值D

其中d

65.5米也是16位能够表达的最大深度数,但因为后续在ORB-SLAM3系统的使用中对于相机的位姿估计并不会使用40米以外的数据,因此将大于65.5m的深度用65.5表示也不会影响后续的计算。

进一步来说,所述深度估计网络基于Monodepth2网络框架。Monodepth2网络框架是一个性能良好的自监督单目深度模型,Monodepth2网络框架进行单目深度估计运算,使用深度估计和姿态估计网络的组合来预测每一帧彩色原始图像中的每个像素点的第一深度值,每个第一深度值和像素点位置一一对应。Monodepth2网络框架的训练部分不需要提前标注数据集,直接通过在一系列运动的彩色原始图像序列上,训练一个建立在自监督损失函数上的架构来预测彩色原始图像的深度结果。并且在学习过程中直接学习相机参数信息,在后续转深度值输出不需要再输入参数。

进一步来说,在形成一个所述伪深度图集后,还需将所述彩色原始图像与对应的16位的伪深度图进行关联,形成一个关联文本,所述关联文本与原始图像集和伪深度图集同步输入预设三维模型成像系统中。

进一步来说,所述预设三维模型成像系统为ORB-SLAM3系统。伪RGB-D可直接在ORB-SLAM3系统中运行。ORB-SLAM3系统是一个基于特征点的实时SLAM算法,该算法包括跟踪线程、局部建图线程和回环检测线程。ORB-SLAM3系统中包含了单目、双目和RGB-D以及所有相机加IMU的模式,虽然本实施例中只采用RGB-D相机中的彩色相机(单目),但依然选用ORB-SLAM3,可以很好的进行相机之间的结果比较。

进一步来说,所述关联文本中写入彩色原始图像和16位的伪深度图的路径和时间戳,所述预设三维模型可以根据关联文本对彩色原始图像和16位的伪深度图进行匹配。

进一步来说,所述预设三维模型成像系统中设置有一个深度过滤阈值,所述深度过滤阈值用于过滤16位的伪深度图中的第二深度值,当所述预设三维模型成像系统检测到16位的伪深度图中的第二深度值大于深度过滤阈值时,所述预设三维模型成像系统不选用,所述深度过滤阈值为一个小于d

本发明还公开了一种基于伪深度图的RGB-D SLAM系统,包括获取模块,所述获取模块用于获取原始图像集,获取模块包括单目相机,单目相机收集多幅彩色原始图像,得到原始图像集;转换模块,所述转换模块对原始图像集中的每幅彩色原始图像进行深度预估,每幅彩色原始图像形成一个16位的伪深度图,所有16位的伪深度图形成一个伪深度图集;构建模块,所述构建模块用于接收原始图像集及伪深度图集结合形成伪RGB-D集,并构建全局地图。

本发明还公开一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于伪深度图的RGB-D SLAM方法的步骤。

附图说明

图1为本发明实施例中基于伪深度图的RGB-D SLAM方法的流程图;

图2为本发明实施例中获取伪深度图集的流程图;

图3a为本发明实施例中一幅彩色原始图像通过深度估计网络生成的8bit的深度图;

图3b为图3a中的彩色原始图像生成的16位的伪深度图深度图;

图4a为本发明实施例中KITTI的一个彩色原始图像;

图4b为图4a中的彩色原始图像转换成的16位的伪深度图深度图;

图5为本申请中ORB-SLAM3系统基于16位的伪深度图获得的一个的轨迹图;

图6为本申请中ORB-SLAM3系统基于16位的伪深度图获得的另一个的轨迹

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

参见附图1所示,本发明的基于伪深度图的RGB-D SLAM方法,包括如下步骤:

步骤一、获取原始图像集,单目相机收集多幅彩色原始图像,得到原始图像集。

单目相机可选用RGB-D相机中的彩色相机。

步骤二、对原始图像集中的每幅彩色原始图像进行深度预估,每幅彩色原始图像形成一个16位的伪深度图,所有16位的伪深度图形成一个伪深度图集。

参见附图2所示,步骤二具体包括:

步骤21、选择深度估计网络,使用深度估计网络对原始图像集内的每幅彩色原始图像进行监督训练,得到彩色原始图像的每个像素点所在的位置的第一深度值,将第一深度值保存为第一深度矩阵。第一深度矩阵能形成一个8位的深度图。

其中深度估计网络基于Monodepth2网络框架,Monodepth2网络框架是一个性能良好的自监督单目深度模型,Monodepth2网络框架进行单目深度估计运算,使用深度估计和姿态估计网络的组合来预测每一帧彩色原始图像中的每个像素点的第一深度值,每个第一深度值和像素点位置一一对应。Monodepth2网络框架预测出的第一深度值根据彩色原始图像的大小保存成第一深度矩阵。

Monodepth2网络框架的训练部分不需要提前标注数据集,直接通过在一系列运动的彩色原始图像序列上,训练一个建立在自监督损失函数上的架构来预测彩色原始图像的深度结果。并且在学习过程中直接学习相机参数信息,在后续转深度值输出不需要再输入参数。

步骤22、将第一深度矩阵通过转换算法转换为第二深度矩阵,并将第二深度矩阵生产成为一个16位的伪深度图,所有16位的伪深度图形成一个伪深度图集。

图像的位数越多,可用的颜色就越多,图像的色彩表现就越准确,16位的伪深度图则可以表达从0-65535整数值的深度结果。Monodepth2网络框架仅能生成基于8位的深度图的第一深度矩阵,为了提高深度图的精度,通过转换算法将8位的深度图转换为16位的伪深度图。同时单目相机就是16bit色深相机,因此生成一个16位的伪深度图与单目相机匹配,不会占用过多的存储空间,又提高了得到的伪深度图的精度,更精准的反映每个像素的深度。

具体步骤包括:

首先将每个第一深度值自0和1之间进行归一化,得到归一化的像素值D

其中d

归一化的像素值D

然后将归一化的像素值D

D

最后利用图像自定义颜色条,将第二深度矩阵与像素点位置对应,生成16位的伪深度图。

参见附图3a所示,KITTI中sequence07的第一张图经过Monodepth2网络框架预测的第一深度矩阵,生成一个8bit的深度图。第一深度矩阵再经过转换算法转换为第二深度矩阵,生成一个16位的伪深度图,16位的伪深度图参见附图3b所示。附图3a和附图3b中的方框标注处可明显看出,普通生成的8bit的深度图会导致一些深度值的丢失,降低了深度图的精度,进而影响最终全局地图的生成。本实施例中通过矩阵转换生成的16位的伪深度图形成。

步骤三、将原始图像集及伪深度图集结合形成伪RGB-D集,将伪RGB-D集输入预设三维模型成像系统,构建全局地图。

预设三维模型成像系统选用ORB-SLAM3系统,生成的伪深度图和对应的彩色原始图像组合的伪RGB-D,伪RGB-D可直接在ORB-SLAM3系统中运行。ORB-SLAM3系统是一个基于特征点的实时SLAM算法,该算法包括跟踪线程、局部建图线程和回环检测线程。ORB-SLAM3系统中包含了单目、双目和RGB-D以及所有相机加IMU的模式,虽然本实施例中只采用RGB-D相机中的彩色相机(单目),但依然选用ORB-SLAM3,可以很好的进行相机之间的结果比较。

本实施例中,直接采用RGB-D相机中的彩色相机,即一个单目相机采集彩色原始图像,通过Monodepth2网络框架预测出第一深度值一形成第一深度矩阵。将第一深度矩阵通过转换算法转换为第二深度矩阵,并将第二深度矩阵生产成为一个16位的伪深度图,保存图像的深度信息。使用生成的伪深度图和彩色原始图像组合的伪RGB-D可以直接在ORB-SLAM3系统中运行,无需python到C++预训练模型的端口。减少了ORB-SLAM3系统的运算时间和运算难度。

步骤二中在形成一个伪深度图集后,还包括步骤23、将彩色原始图像与对应的16位的伪深度图进行关联,形成一个关联文本。在步骤三中,关联文本与原始图像集和伪深度图集同步输入预设三维模型成像系统中。

关联文本中写入彩色原始图像和16位的伪深度图的路径和时间戳,ORB-SLAM3系统可以根据关联文本对彩色原始图像和16位的伪深度图进行匹配,形成一一对应的关联。

ORB-SLAM3系统中设置有一个深度过滤阈值,深度过滤阈值用于过滤16位的伪深度图中的第二深度值,当ORB-SLAM3系统选取的16位的伪深度图中的第二深度值大于深度过滤阈值时,ORB-SLAM3系统不选用,即ORB-SLAM3系统只选用16位的伪深度图中小于或等于深度过滤阈值的第二深度值。16位的伪深度图可映射出65.5m的深度值,但ORB-SLAM3系统对位姿估计时,并不会使用深度过大的数据,为了节约计算,在ORB-SLAM3系统中设置一个深度过滤阈值,过滤掉过大的第二深度值,在保证构建全局地图精度的同时,减少了计算。

深度过滤阈值为一个可自行设定的可变量,深度过滤阈值小于d

在本实施中,由于仅仅使用了RGB-D相机中的彩色相机,因此针对本实施例中生成的伪RGB-D,彩色相机和深度相机在这里是一个相机,是重合的,深度相机是伪生产的,并不是RGB-D相机中实际的深度相机。在RGB-D相机的的相机参数中有一个设定值Stereo.b,表示RGB-D相机的彩色相机和深度相机之间的距离,在本实施中,由于只使用一个相机,将Stereo.b设置为一个非常小的值或0,在ORB-SLAM3系统中,将设定值Stereo.b定义为基线baseline。

但在现有技术中,需要收集RGB-D相机中深度相机和彩色相机拍摄的图像,因此,当深度相机和彩色相机同时使用时,真实的三维坐标数据和投影图像之间会存在像素值的位置转化,因此还需要矫正模块对每个像素值的位置进行矫正。需要计算深度相机和彩色相机之间的旋转矩阵(R)和平移矩阵(T)。彩色相机拍摄的彩色图像的每个像素的位置,还需根据旋转矩阵(R)和平移矩阵(T)矫正。但在本申请中,仅仅使用RGB-D相机中的彩色相机,避免了图像的矫正,减小了运算。

在一个实施例中,Monodepth2网络框架使用KITTI 00-08作为训练集进行了预训练,这里测试的是KITTI的序列07和序列10的相机数据image02作为单目相机的数据。

参见附图4a所示,为RGB-D相机中的彩色相机采集的彩色原始图像,通过Monodepth2网络框架对图像及进行深度预测得到第一深度矩阵,对第一深度矩阵归一化并形成16位的第二深度矩阵,绘制出16位的伪深度图,此时16位的伪深度图参见附图4b所示。

ORB-SLAM3系统从RGB-D相机读取数据,读取image02和对应的16位的伪深度图,同时读取关联文本。按照本领域的惯例,使用相对位置误差(RPE)和绝对轨迹误差(ATE)作为精度度量,其中均方根误差(RMSE)通常在RPE和ATE的所有时间指标上进行评估,以计算评估中的平移分量,因此对异常值的影响较小,当RMSE较小时,证明漂移较小。基于KITTI中的相机信息,测试了ORB-SLAM3系统中单目、立体和本申请的伪RGB-D三种情况的相机的定位和构建。相对位置误差(RPE)的测试结果比较如表1所示,其中本申请中的伪RGB-D可以达到与立体声相同的精度并且表现更好。证明了ORB-SLAM3系统中的伪RGB-D的结果没有显示出大的漂移。

表1:相对位置误差(RPE)的测试结构比较

绝对轨迹误差(ATE)的测试结果比较如表2所示,其中序列07和序列10中立体和伪RGB-D之间的RMSE结果均小于3米,优于单目目的结果。证明ORB-SLAM3上的伪RGB-D结果也没有大的平移误差。

表2:绝对轨迹误差(ATE)的测试结构比较

/>

参见附图5所示,为本申请中ORB-SLAM3系统基于16位的伪深度图和采用立体相机获得的序列07数据的轨迹结果的比较。其中虚线的07_tum_index为来自KITTI序列07的原始相机轨迹的GT,ORBSLAM3_stereo_turn是立体相机的估计轨迹,ORBSLAM3_rgbd16是本身器基于16位的伪深度图的估计轨迹。它们都非常适合GT,但在某些角落,伪RGB-D的表现更接近真实值。

参见附图6所示,为本申请中ORB-SLAM3系统基于16位的伪深度图和采用立体相机获得的序列10数据的轨迹结果的比较。其中虚线的07_tum_index为来自KITTI序列07的原始相机轨迹的GT,ORBSLAM3_stereo_turn是立体相机的估计轨迹,ORBSLAM3_rgbd16是本身器基于16位的伪深度图的估计轨迹。再次可以看出路径转向的部分是两个结果与GT相比最容易偏离的地方,并且伪RGB-D可以拟合真实值更好。

本申请利用单目深度估计(Monodepth2网络框架)的结果直接生成16位的伪深度图后,16位的伪深度图可以直接和彩色原始图像组成伪RGB-D的数据集使用ORB-SLAM3系统。在保证精度的同时,减少了运算,可以SLAM降低测试新型单目深度估计框架的成本。

本发明还公开了一种基于伪深度图的RGB-D SLAM系统,包括获取模块、转换模块和构建模块,获取模块用于获取原始图像集,获取模块包括单目相机,单目相机收集多幅彩色原始图像,得到原始图像集。转换模块对原始图像集中的每幅彩色原始图像进行深度预估,每幅彩色原始图像形成一个16位的伪深度图,所有16位的伪深度图形成一个伪深度图集。构建模块用于接收原始图像集及伪深度图集结合形成伪RGB-D集,并构建全局地图。

其中转换模块包括预估单元、转换单元和生成单元,预估单元对原始图像集内的每幅彩色原始图像进行监督训练,得到幅彩色原始图像的每个像素点所在的位置的第一深度值,将第一深度值保存为第一深度矩阵。预估单元选用Monodepth2网络框架。转换单元接收第一深度矩阵,并将第一深度矩阵转换为16位的第二深度矩阵。生成单元将每个第二深度矩阵生成一个16位的伪深度图,并将所有的16位的伪深度图形成一个伪深度图集。

转换模块还包括关联模块,关联模块用于将彩色原始图像与对应的16位的伪深度图进行关联,形成一个关联文本。

本发明还公开一种本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于伪深度图的RGB-D SLAM方法的步骤。

存储介质存储有能够实现上述所有方法的程序指令,其中,该程序指令可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

其中,处理器还可以称为CPU(Central Processing Unit,中央处理单元)。处理器可能是一种集成电路芯片,具有信号的处理能力。处理器还可以是:

DSP(Digital Signal Processor),数字信号处理器,数字信号处理器是由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器。它是为适应高速实时信号处理任务的需要而逐渐发展起来的。随着集成电路技术和数字信号处理算法的发展,数字信号处理器的实现方法也在不断变化,处理功能不断提高和扩大。

ASIC(Application Specific Integrated Circuit),专用集成电路,即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。

FPGA(现场可编程门阵列,Field Programmable GateArray)是在PAL(Programmable Array Logic,可编程阵列逻辑)、GAL(generic array通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

通用处理器,所述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。其他可编程逻辑器件、分立门或者晶体管逻辑器件和分立硬件组件等。

以上实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人了解本发明的内容并加以实施,并不能以此限制本发明的保护范围,凡根据本发明精神实质所做的等效变化或修饰,都应涵盖在本发明的保护范围内。

相关技术
  • 一种基于Slam定位方法、装置、电子设备及计算机存储介质
  • 基于SLAM的平面多边形物体测量方法及机器可读存储介质
  • 一种基于存储介质的固件自动升级方法及其存储介质
  • 一种基于中间件的开票系统、方法及装置与一种存储介质
  • 一种伪基站的定位方法、装置及计算机可读存储介质
  • 一种基于动态场景的RGB-D SLAM方法和系统
  • 一种基于RGB-D SLAM的无人机路径规划方法
技术分类

06120115928818