编辑丨当SLAM遇见小王同学

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_服务器

声明: 本文只是个人学习记录,侵权可删。论文版权与著作权等全归原作者所有,小王自觉遵守《中华人民共和国著作权法》与《伯尔尼公约》等国内外相关法律,本文禁止转载!!

由不可靠的网络引起的数据丢失严重影响了远程可视SLAM系统的结果。根据实验,少于1秒的数据丢失会导致视觉SLAM算法失败。作者提出一种新颖的缓冲方法ORBBuf,以减少数据丢失对远程视觉SLAM系统的影响。通过在帧之间引入相似性度量,将缓冲问题建模为优化问题,并使用高效的贪婪算法将帧丢弃,从而使SLAM结果的质量损失最小。通过对真实场景和数据集的广泛评估,验证了ORBBuf方法可以应用于不同的状态估计算法(DSO和VINS-Fusion)、不同的传感器数据(单目图像和双目图像)、不同场景(室内和室外)以及不同的网络环境(WiFi网络和4G网络)。实验结果表明,网络损耗确实会影响SLAM结果,并且与DropOldest和Random缓冲方法相比,ORBBuf方法最多可以将RMSE降低50倍。

1

介绍

定位与建图任务在计算上非常昂贵,尤其是对于同时具有功耗和内存限制的嵌入式设备。在集中式服务器上执行这些计算的远程可视SLAM系统可以克服这些限制。另一方面,许多应用程序将一个或多个机器人用于特定任务,包括3D场景重建和景观探索。远程视觉SLAM系统中的集中式服务器可用于执行计算并从一个或多个机器人收集视觉信息。因此,远程视觉SLAM已成为一个新兴的研究主题。

在远程视觉SLAM系统中,机器人将收集到的视觉数据(例如图像或3D点云)传输到高性能服务器。这需要较高的网络带宽和网络可靠性。例如,以30 fps(每秒帧数)传输未压缩的1080p图像需要1.4Gbps的网络带宽,而商用WiFI路由器最多只能提供54Mbps的带宽。

网络连接,尤其是无线连接(例如通过WiFi或4G)并不总是可靠的。一项详细的测量研究显示,由于隧道,大型建筑物或总体覆盖范围较差,数十秒内可能发生吞吐量降低甚至网络中断的情况。随着5G的到来,网络带宽和延迟的问题将得到缓解,但是由于覆盖范围较差而导致的不可靠性仍然存在。

2

概述

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_数据集_02

在本文中,作者解决了网络可靠性问题可能对远程可视SLAM系统的准确性产生相当大的影响。为了验证,构建了一个远程可视SLAM系统,该系统通过公共WiFi路由器将Turtlebot3和服务器连接起来。如图1(a)所示,机器人在实验室周围移动。作者将相机固定在机器人的顶部,捕获的图像通过公共WiFi路由器传输到服务器。作者发现服务器上的SLAM算法在某些特定位置反复失败。在这些位置,网络连接非常不可靠(可能已受到周围金属桌的影响)。为了容忍这种网络不可靠性,一种常见的解决方案是缓冲。当网络不可靠时,机器人会将新帧放入其缓冲区中,并等待将来的传输。由于这种不可靠性持续存在,因此缓冲区已满,并且缓冲方法负责确定应丢弃哪些帧。作者尝试了两种常用的缓冲方法(Drop-Oldest和Random [7]),但是SLAM算法在两种情况下均失败(如图1(b)和(c)所示)。

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_数据集_03

真实世界方案的实验结果表明,网络中断确实会影响SLAM结果,并且ORBBuf方法可以大大缓解这种影响。本文的主要贡献包括:

  • 解决了远程可视SLAM的网络可靠性问题。通过引入相似性概念,将缓冲问题建模为优化问题
  • 研究揭示了SLAM算法在很大程度上依赖于连续输入帧之间的相关性,并使用该研究提出了一种新颖的相似性度量。
  • 基于ROS实现ORBBuf方法,并且它将为社区的利益而开源
  • 通过对现实世界场景和数十GB的3D视觉数据集的广泛评估,证明了ORBBuf方法可以应用于不同的状态估计算法以及不同的网络环境(WiFi网络和4G网络)。实验结果表明,使用ORBBuf方法最多可以将RMSE(均方根误差)降低50倍。

3

实验

作者进行了三个实验。在这些实验中,采用了不同种类的网络情况,不同的SLAM算法和不同种类的输入数据。

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_3d_04

为了显示实际结果,我们的实验是完全在实际硬件上在线进行的。作者将一台笔记本电脑与Intel Core i7-8750H @ 2.20GHz 12x CPU,16GB内存以及GeForce GTX 1080 GPU用作SLAM服务器。在前两个实验中,使用了大型视觉数据集。作者使用不支持GPU的笔记本电脑来重播每个数据序列,并将其传输到服务器。所有软件模块均与ROS中间件连接。ROS版本是Ubuntu 16.04上的Lunar。

 1   模拟网络中断

在本实验中,使用TUM monoVO 数据集作为输入数据序列,并在SLAM服务器上运行DSO 算法。所有数据序列均以25 fps的速度重放,并且缓冲区大小设置为1秒。TUM monoVO数据集是一个大型室内数据集,其中包含使用校准的单眼相机捕获的50个真实世界序列(总计43GB)。此数据集中的所有图像都压缩为.jpg文件,分辨率为1280x1024。机器人和服务器通过真实的54Mbps WiFi路由器连接。为了模拟网络中断,通过添加三个新参数来修改数据序列重播模块。在传输指定的帧“ Intr”之前,作者使用tc命令模拟网络中断,从而向网络添加T毫秒的延迟,其中每个网络中断的时间持续L帧。在此实验期间,网络等待时间T设置为1000毫秒,网络中断持续时间L设置为50帧。ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_服务器_05

表I给出了数字评估结果。在该表中,“ Seq”表示数据集中的序列号,“ Size”表示数据序列的总大小,“ Frames”表示帧的总数,“ Intr”表示发生网络中断时的帧,“ Points” ”表示基本事实结果中的点总数,“Policy”表示使用的缓冲方法,“ Cnt”表示使用缓冲方法时结果中的点数,“Percent”表示完整性(Cnt除以点数),“Mean”表示相应点之间的平均误差距离,“ Std”表示误差距离的标准偏差。图5显示了两个可视化结果。

可以看到,当使用Drop-Oldest方法时,SLAM算法最有可能在发生网络中断时失败(百分比很低)。使用随机方法时,SLAM算法在某些情况下仍会失败。当使用ORBBuf方法时,SLAM算法在所有情况下都成功,并且对应点之间的误差距离小于其他成功情况。

 2   收集的4G网络跟踪

在本实验中,使用KITTI 数据集作为输入数据序列,并在服务器上运行VINS-Fusion 等算法。KITTI数据集是一个大型室外数据集,包含22个现实世界序列(总计22.5GB)。该数据集中的所有图像均为.png文件,分辨率为1241x376。在此实验过程中,所有数据序列均以10 fps的速度重放,并且缓冲区大小设置为2秒。机器人和服务器通过网络电缆连接,以最小化其他因素。

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_3d_06

表II给出了数字评估结果。在该表中,“ Seq”表示数据集中的序列号,“ Size”表示数据序列的总大小,“ Frames”表示帧的总数,“ Net Trace”表示网络跟踪,“ RMSE”表示使用缓冲方法的地面真实情况与结果之间的均方根误差。图6显示了两个可视化结果。

VINS-Fusion算法从不警告故障,但结果可能非常不稳定。当使用Drop-Oldest方法时,所得的RMSE值相对较大。当使用ORBBuf方法时,所得到的轨迹更符合地面真实情况,并且RMSE值最多降低了50倍。

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_服务器_07

作者进一步测试了更改缓冲区大小的效果。使用KITTI数据集的序列号00和带有不同缓冲区大小的标记为Car02的网络迹线重复该实验。将每个测试重复10次,结果总结在图7的方框图中。使用Drop-Oldest方法时,当缓冲区大小增加到30或更大时,所得的RMSE变低。当使用ORBBuf方法,由于缓冲区大小为15或更大,因此生成的RMSE变低。当使用随机方法时,即使缓冲区大小为35,结果RMSE也不稳定。此结果表明,ORBBuf方法可以在较小缓冲区大小的情况下容忍相同级别的网络不可靠性ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_数据集_08

此外,在实验期间测试了ORBBuf方法的运行时间。由于ORBBuf方法将ORB功能的计算引入到消息入队例程中,因此引入了一些时间开销。在上一个实验中,作者记录了入帧的时间。使用KITTI数据集的序列00和标记为Car02的网络跟踪的结果如图8所示。该结果与使用的网络跟踪有关。当网络稳定时,根本不会引入任何时间开销。当网络带宽不足或发生网络中断时,ORBBuf方法开始计算ORB功能。在最坏的情况下,ORBBuf方法会引入大约23ms的开销,这不会影响定期数据传输(即本实验中为10 Hz,下一个实验中为25Hz)。

 3   现实世界网络

在此实验中,作者构建了具有Raspberry Pi和1GB内存的Turtlebot3 Burger。Turtlebot顶部的摄像头捕获的图像通过公共WiFi路由器传输到服务器。在服务器上运行DSO算法,并在使用不同的缓冲方法时使用蓝牙键盘控制机器人沿相同路径移动。结果如图1所示。使用DropOldest和Random方法时,SLAM算法会丢失其轨迹。使用ORBBuf方法时,SLAM算法可以成功估计正确的轨迹(红色曲线)并构建稀疏的3D地图(白点)。

总的来说,实验已经证明ORBBuf方法可以用于不同类型的网络情况,并且可以适应不同类型的输入传感器数据。网络中断确实会影响远程SLAM系统,并且在使用ORBBuf方法之后,SLAM系统对网络的不可靠性变得更加强大。

 4   其他结果

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_服务器_09

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_数据集_10

ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_数据集_11

4

结论

作者提出了一种用于远程视觉SLAM系统的新型缓冲方法。通过考虑缓冲区内部帧之间的相似性,提出的缓冲方法有助于克服网络中断。将ORBBuf方法与常用的通信中间件ROS集成在一起。实验结果表明,与Drop-Oldest和Random缓冲方法相比,ORBBuf方法可帮助视觉SLAM算法更可靠地抵御网络不可靠性,并将RMSE降低多达50倍。

总体而言,为了抵制网络的不可靠性,作者的工作在缓冲方法中考虑了视觉帧之间的相关性。还有望进一步考虑机器人的运动计划。

本文仅做学术分享,如有侵权,请联系删文。


ORBBuf : 一种鲁棒的视觉SLAM缓冲方法_服务器_12