没有合适的资源?快使用搜索试试~ 我知道了~
*引文:朱丹萍,谭萍,余文贤。多个代理的协作视觉SLAM:一个简短的调查。虚拟现实智能硬件,2019,1(5):461-482DOI:10.1016/j.vrih.2019.09.002虚拟现实智能硬件2019年第5·回顾·多智能体协同视觉SLAM:简要综述DanpingZOU1*,PingTAN2,Wenxi nYU11. 上海交通大学上海市导航与位置服务重点实验室,上海市智能传感与识别重点实验室,上海2002402. 西蒙弗雷泽大学计算机科学学院,加拿大本拿比V5A 1S6通讯作者,dpzou@sjtu.edu.cn投稿时间:2019年7月21日修订日期:2019年9月15日接受日期:2019年9月25日项目资助:JZX 7 Y2 -0190258055601和国家自然科学基金(61402283)。摘要本文简要介绍了视觉同步定位和地图(SLAM)系统应用于多个独立移动的代理,如一队地面或空中车辆,一组用户持有增强或虚拟现实设备。这种视觉SLAM系统,称为协作视觉SLAM,与部署在单个代理上的典型视觉SLAM的不同之处在于,信息在不同代理之间交换或共享,以实现更好的鲁棒性、效率和准确性。我们回顾了在过去十年中提出的关于这个主题的代表性作品,并描述了设计这样一个系统所涉及的关键组件,包括协作姿态估计和映射任务,以及分散式架构的新兴主题。我们相信这个简短的调查可能会有助于那些正在研究这个主题或开发多智能体应用程序的人,特别是微型飞行器群或协作增强/虚拟现实。关键词 视觉SLAM;多智能体;无人机群;协同AR/VR1引言视觉同步定位和地图构建(Visual Simultaneous Localization and Mapping,SLAM)[1,2]是一项关键技术,受到计算机视觉、机器人和增强现实社区的极大关注。对于一个或多个摄像机,视觉SLAM可以用于估计摄像机本身的自我运动,并重建通常未知环境的3D地图。自我运动和3D地图对于无标记增强现实[3],机器人自主导航[4]都至关重要。与使用LiDAR等其他传感器的SLAM技术相比,视觉SLAM系统使用的摄像机通常重量轻,价格便宜,包含丰富的视觉信息,更适合于低成本和有效载荷有限的平台。在过去的十年中,视觉SLAM发展迅速,并且正在成长为一种成熟的技术,已成功应用于几种商业产品,如微软的Hololens耳机1,Google Project Tango平板电脑2。手机的两大操作系统Android3和iOS4也试图将视觉SLAM技术作为中间件,为用户提供增强现实体验1Microsoft Hololens。2Google Project Tango。3Google ARCore。4Apple ARKit。www.vr-ih.com虚拟现实智能硬件2019年第5消费级手机Visual SLAM也已成功应用于消费级无人机。例如,DJI的几款四旋翼机型,如MavicAir、Phantom 4,都配备了视觉SLAM系统,可在GPS拒绝的环境中实现可靠的导航。视觉SLAM在地面机器人和自动驾驶汽车上也越来越受欢迎,因为它具有低成本的传感器和巨大的感知潜力,尽管传统上基于激光雷达的SLAM在这些领域占主导地位。虽然有很多方法或系统开发的视觉SLAM,只有少数人专注于涉及多个代理的目的。这些智能体可能是一组移动的地面车辆、飞行的无人机,或者是一群在同一环境中使用不同AR设备的人。在这种情况下,智能体不应该只独立工作,而不知道其他智能体的运动,或由其他智能体产生的3D地图。例如,一组无人机中的一架无人机不仅需要知道自己的姿态以进行轨迹控制,还需要知道其他无人机的姿态以避免碰撞或进行路径规划。需要将不同无人机生成的三维地图进行融合,以加快探索任务。对于多用户增强/虚拟现实(AR/VR),用户还应该知道其他用户的状态,并且应该将不同的用户置于统一的坐标系中,使得虚拟对象可以在不同的个体设备处无缝地显示。因此,上述所有这些问题都需要不同设备中的视觉SLAM系统相互协作,以便各个系统可以共享公共信息,以同时解决多个代理的定位和映射问题,通常在全局坐标系内。在这篇文章中,我们研究了多个代理的协作视觉SLAM。我们简要回顾了有关视觉SLAM的历史,然后提供了一个粗略的分类现有的方法来协作视觉SLAM。在此基础上,我们讨论了两种主要的方法:基于滤波器的方法和基于关键帧的方法,以及关键组成部分,如姿态估计和映射参与开发一个协同视觉SLAM系统。最后,我们讨论了分散式架构的新兴话题。据我们所知,这是第一个关于多智能体SLAM的调查,主要集中在使用摄像机。2视觉SLAM自上世纪80年代以来,SLAM一直是机器人领域的一个重要研究课题[5,6]。这是机器人在未知环境中自主运动时需要解决的问题。由于环境是未知的,地图需要在飞行中构建。基于地图,机器人的位置(也是方向)也被计算并馈送到该移动机器人的运动规划的控制回路中。由于定位问题和映射问题通常是同时解决的,因此这种技术通常被称为同时定位和映射,或简称为SLAM。在SLAM研究的早期阶段,大多数工作集中在使用LiDAR作为SLAM系统的主要传感器。自本世纪初以来,随着个人计算机计算能力的显著增长以及计算机视觉领域的运动恢复结构(SfM)[7]技术的成熟,相机因其成本低、重量轻、感知信息丰富而逐渐成为SLAM问题的有利传感器。视觉SLAM,即使用摄像机作为主要传感器的SLAM系统,自2003年第一个实时系统[8]问世以来变得越来越流行。在该MonoSLAM 系统[8]中,视觉测量或在图像上提取的特征点被集成到扩展卡尔曼滤波器(EKF)[9]中,以估计相机的自我运动和3D运动。462Danping Zandong et al:多智能体协同视觉SLAM: A brief survey这些特征点的坐标。此后,人们提出了大量的视觉SLAM算法。Klein等人提出了一种PTAM系统[10],其中他们采用了类似于SfM[11]的流水线,同时将耗时的束调整放入单独的线程中以确保实时性能。与基于EKF的视觉SLAM系统相比,如果使用相同数量的特征点,这种将优化(光束法平差[12])作为骨干的方法通常更快,更准确。因此,这种基于优化的方法被广泛用于后来的视觉SLAM系统中,例如ORB-SLAM[13]-最完整的单目/立体视觉SLAM系统之一,CoSLAM[14]-一组独立移动相机的视觉SLAM系统,RKSLAM[15]一个强大的视觉SLAM,可以处理快速的相机运动。一个典型的视觉SLAM系统可以大致分为两个部分。第一部分(通常称为前端)主要涉及图像处理,例如从图像中提取特征,在不同的视频帧中匹配或跟踪这些特征。第二部分(后端)负责几何计算-基于多视图几何理论将这些特征轨迹转换为相机姿势和3D坐标。如前所述,几何计算可以通过两种方式实现-通过滤波器[8,16,17]或非线性最小二乘优化器[18,19]。此外,还存在关于检测重新访问的位置以消除累积错误(环路闭合)[20]或恢复故障(重新定位)[21,22]的问题。一些最近的方法直接对像素进行操作而不进行特征提取[23,24]。这种方法被称为直接方法。实验结果表明,如果相机的光度校准处理得很好,直接方法可能会导致更高的精度[25]。也有半直接的方法[26,27],利用双方的优势,同时实现良好的效率和准确性。经典的视觉SLAM方法仅依赖于视觉传感器-摄像机-在实际情况下可能很容易失败,当摄像机经历纯旋转或小视差运动时,或者有时摄像机在纹理较少或黑暗的场景中移动时。直到MEMS惯性测量单元(IMU)被集成,视觉SLAM才成为一种可靠的实用方法。惯性信息(加速度和角速率)使得刻度可观察,并且使得系统对于丢失或视觉差的感觉输入是鲁棒的。借助IMU传感器的视觉SLAM系统通常被称为视觉惯性导航系统[28- 31]。目前,大多数商业产品集成了IMU传感器作为视觉SLAM系统的额外辅助源,以实现更好的鲁棒性和准确性。虽然近年来提出了许多可视化SLAM方法,但大多数都集中在单一平台上的应用。虽然为单个平台实现视觉SLAM已经足够具有挑战性,但将视觉SLAM部署到多个平台涉及更多挑战。近年来,诸如无人机、机器人和多用户设备等智能体团队的应用受到了极大的关注,特别是当第五代(5G)[32]移动网络出现时。因此,如何为智能体团队部署一个高效、可靠的可视化SLAM系统成为一个越来越重要的研究课题。在下面的部分中,我们将回顾协作视觉SLAM的最新发展,并提供现有方法的粗略分类。3现有的协作视觉SLAM方法在不同的场景中,对多个代理(如机器人、AR/VR和可穿戴设备)一起工作的请求越来越流行。自过去十年以来,多代理的SLAM系统一直受到极大的关注大多数工作集中在使用范围传感器,如463虚拟现实智能硬件2019年第5激光和声纳的多智能体SLAM在早期阶段,并尝试使用不同的代理之间的相对测量(范围和轴承)[33,34],以估计所有代理的整体状态随着单目视觉SLAM的快速发展和变得越来越强大,自然会考虑视觉SLAM是否可以部署到多个摄像机,特别是一组独立移动的摄像机。大多数协同视觉SLAM系统采用集中式架构,这意味着系统由代理端前端和一个服务器端后端组成。前端通常负责计算对在线应用程序至关重要的代理的实时状态。服务器中的后端通常负责地图融合、简化和优化。集中式架构易于实现和部署相比,分散式架构,在几个作品[35,36]中进行了调查。表1列出了采用集中式架构的现有方法。表1现有多智能体视觉SLAM系统2008年201220152013201320162016系统*PTAM [37]CoSLAM[14]*多机器人CoSLAM[39]*CSfM [40]C2TAM[42]*飞行智能手机[44]*MOARSLAM[46]个前端相机姿态估计图像采集如上视觉装饰视觉惯性测距,UKF状态融合视觉惯性SLAM,环闭合视觉装饰视觉-惯性测距法后端三角测量,再定位、光束法平差相机间/相机内姿态估计、相机映射、分组、光束法平差如上所述地点识别、地图合并、姿态图优化、光束法平差三角测量、再定位、光束法平差地图合并、细化地点识别,关键帧存储/检索地点识别、环路闭合、地图融合、删除冗余关键帧闭环、地图融合、细化地图一张全球地图一张全球地图如上多个本地地图多个地方地图具有相对姿态连接的地图多个局部地图多重局部映射初始化一台摄像机平移两个关键帧[10]由运动恢复结构[38]通过面向同一地点的如上通过每个摄像头的两个关键帧初始化[41]由EKF为每个摄像机初始化[43]每个摄像头的滤波器初始化[45]关键帧优化[47]双帧初始化[13]松耦合视觉-惯性初始化[2]#代理23/4/122223334代理类型手持摄像头和可穿戴摄像头手持摄像机地面机器人上的摄像机两架四轴飞行器上的摄像机安装在笔记本电脑上的RGBD摄像头安装在无人机上的谷歌相机关于As-cTec无人机EuRoC数据集上的不同序列[48]注:*这是一个在线系统。就在第一个基于关键帧的单目视觉SLAM系统[10]出现之后,第一次尝试将单目视觉SLAM扩展到两个独立移动的摄像机[49],一个在肩膀上,一个在手上,如图1所示。作为PTAM的扩展,PTIMM系统采用两个摄像机跟踪器,它们同时运行并将关键帧馈送到同一个地图制作器,该地图制作器优化特征点的3D坐标和摄像机轨迹的六个自由度(6DoF)姿态。该系统还存储本地地图,并在重新访问相同的地方时重新使用它们。我们可以看到,在基于关键帧的框架中,扩展到多相机系统是简单的,只需添加额外的相机跟踪器。所有的主要组件,如相机姿态估计,特征匹配,三角测量,重新定位,和光束法平差保持与单目系统的那些相同。已经表明,通过在系统中结合两个独立移动的相机,可以实现更强大的可穿戴AR应用。4642018*CCM-SLAM[35]2018[36]第三十六话Danping Zandong et al:多智能体协同视觉SLAM: A brief survey图1左:[50]中提出的两个独立移动的摄像机的设置。手持摄像机,相机在肩膀上;右:PTAM的框架。在基于关键帧的框架之后,[14]提出了一种名为CoSLAM的协作视觉SLAM,它支持12个独立移动的摄像机。这种情况比[49]中仅使用两台摄像机的情况复杂得多。为了充分探索相机之间的协作,CoSLAM[14]将相机分为不同的组。同一组中的相机需要具有共同的视场,使得可以在那些相机之间检测共同的特征点。通过采用相机间特征匹配、姿态估计和映射,在相机组内完成协作。这项工作表明,该系统工作良好,即使有很大一部分的运动物体的图像中,如果这些相机是同步的。该系统还可以估计移动特征点的3D轨迹,如图2所示,而不是像典型的视觉SLAM系统那样将其视为离群值。这是通过相机间映射来实现的,该相机间映射通过从不同视图中的对应特征点对3D移动点进行三角测量来实现。图2左:CoSLAM[14]可以估计除了定位和映射之外的移动点的3D轨迹。右图:12台摄像机根据它们的共同视野分为不同的组。然后,该系统被部署到两个清洁机器人[39]上,以实时自动跟踪移动目标。每个机器人都配备了一个摄像机,将图像发送到地面站。地面站接收来自两个摄像机的图像并运行CoSLAM系统(图3)。研究表明,利用摄像机的实时位姿和运动目标的三维特征轨迹,可以可靠地控制机器人围绕运动目标运动,即使目标有时会移出视场。虽然取得了令人印象深刻的结果,这些系统严重依赖于通信能力。当摄像机数量增加时,通信负载变得非常高,因为所有视频序列都需要实时发送到地面站。另一个缺点是,每个代理的计算能力完全被浪费了,因为所有的计算都是在服务器-地面站中完成的。减少对通信的依赖的一种直接方法是将一些计算组件放回单个代理。每个代理只需要向服务器发送中间结果,而不是视频流。这些数据通常比原始视频小得多,465虚拟现实智能硬件2019年第5图3 CoSLAM被部署到一个在线系统[39],该系统由两个地面机器人和两个无线摄像头组成,用于跟踪移动目标。负载将大大降低。在C2TAM[42]中提出的系统中,每个代理运行摄像头跟踪器并将所有关键帧图像发送到云服务器。服务器使用这些关键帧图像来计算每个代理的3D本地地图,并且如果已经识别出相同的地方,则融合这些地图。它还运行捆绑调整来细化这些地图。然而,代理需要不时地从服务器下载更新的地图信息以用于相机姿态估计和重新定位。在CSfM[40]中,以类似的方式开发了多智能体视觉SLAM系统,其中每个智能体独立地运行单目视觉里程计(没有闭环的SLAM),并将关键帧数据发送到地面站的集中式服务器。服务器使用关键帧数据来计算每个代理的3D本地地图。然而,关键帧数据仅包含关键帧图像上的特征点以及这些关键帧之间的相对姿态。因此,与C2TAM[42]相比,可以进一步降低通信负载。为了获得本地服务器地图中新到达的关键帧的绝对姿态,CSfM还通过比较在机载和服务器中计算的关键帧的相对姿态之间的差异来在CCM-SLAM[35]中,每个代理仅运行具有有限数量的关键帧的视觉里程计。来自代理的新创建的关键帧的数据,包括检测到的特征、它们的描述符和3D位置,不断地发送到服务器。服务器根据这些关键帧构建本地地图,试图闭合循环并通过地点识别合并本地地图。在服务器中还应用了位姿优化和光束法平差,以进一步细化这些地图。代理不断地从服务器下载更新的关键帧(甚至是从不同的代理创建的),以增强本地地图,从而更好地进行姿态估计。上述系统仅依赖于视觉传感器。虽然在实验测试中获得了有希望的结果,但当环境不包含足够的纹理或具有良好的照明条件时,当相机快速移动时,它们可能容易因为图像质量的劣化而失败。为了提高鲁棒性,我们可以考虑将惯性传感器结合在视觉SLAM系统中,就像单智能体的情况一样。MOARSLAM[46]采用了一种框架,其中代理运行单目视觉惯性SLAM,从而提高准确性和鲁棒性。在代理上运行的循环闭包尝试匹配存储在代理和服务器中的重新访问的关键帧。如果查询到的关键帧在服务器地图中匹配成功,系统将下载周围的关键帧并将其集成到代理上的本地地图中。与MOARSLAM[46]类似,CVI-SLAM[36]也将惯性测量纳入视觉SLAM系统。但每个智能体只运行视觉惯性测距,并将关键帧数据发送到服务器进行映射相关任务。在[44]中,已经展示了用于几个飞行微型飞行器的协作SLAM系统,如图4所示。在这个系统中,大部分计算都是在安装在无人机上的智能手机上进行的,包括状态估计、控制和规划。状态估计是通过运行466Danping Zandong et al:多智能体协同视觉SLAM: A brief survey视觉惯性里程计然后,来自各个手机的关键帧数据被发送到集中式服务器,以将这些单独的地图融合到全球地图中。图4三架无人机的状态是通过智能手机协同估计的[48]。从不同的手机融合的地图显示在右边。4基于过滤器的方法与基于关键帧的方法众所周知,存在用于开发视觉SLAM系统的两种不同框架。一种是基于扩展卡尔曼滤波(EKF),另一种是基于关键帧优化。这两种方法都已应用于多智能体视觉SLAM系统中,如(表1)中所总结的。我们将讨论这两种方法,以便于下一节中对关键组件的讨论。4.1基于滤波器的方法在基于滤波器的视觉SLAM系统中,未知变量由扩展卡尔曼滤波器估计。状态向量通常包含摄像机的自我运动和地标的三维坐标[51]。通过扩展卡尔曼滤波器的一次迭代(包括预测和更新步骤)来解决相机位姿估计问题。然而,迭代还涉及更新这些地标的3D坐标。当地标的数量很大时,它变得低效。因此,在实际应用中,为了保证实时性,地标特征的数量被限制在一个较小的值。然而,这通常会导致比关键帧优化方法更不准确的结果[52]。在基于滤波器的视觉SLAM系统中避免高计算成本的一种策略是从状态中移除地标并保持当前相机姿态和历史姿态两者。通过消除对地标的依赖,并转换成一个新的观察模型,只依赖于姿态变量的观察模型进行了修改。更具体地说,而不是使用的透视投影模型,该策略采用的特征轨迹,以获得在不同的时间实例的相机姿势的时间约束。这种方法被称为多状态约束卡尔曼滤波器(MSCKF)[16],已成为设计视觉惯性里程计系统的主要框架。在状态向量中没有地标的情况下,尽管涉及大量的特征轨迹,但可以有效地计算更新。经典EKF方法和MSCKF方法之间的比较可以更好地理解(图5)。4.2关键帧方法基于关键帧的方法是最流行的视觉SLAM框架。如早期工作[10]所示,它将需要实时计算的相机姿态跟踪与基于关键帧的框架中耗时的映射任务分离,以使视觉SLAM系统高效。在该方法中,相机姿态估计和映射交替解决。这意味着基于映射的结果来求解相机姿态估计,反之亦然。关键帧是一种数据结构,467虚拟现实智能硬件2019年第5图5 EKF方法[8]与MSCKF方法[16]。黑色方块是地标,白色圆圈是相机姿势,而实线表示不同变量之间的相关性。通常存储在图像上检测到的特征点及其对应的3D点。利用来自最近关键帧的那些3D点及其在当前图像中检测到的相应特征点,我们可以使用透视n点(PSPOT)算法[53,54]通过3D-2D对齐来解决当前相机姿势,或者通过非线性最小二乘优化直接解决这个问题。通过对相应的特征点进行三角测量,在不同的关键帧之间分别进行映射。束调整通常在并行线程中运行,以不时地优化关键帧姿势和3D地图。基于滤波器的方法和基于关键帧的方法之间的差异如图6所示。图6基于滤波器和关键帧方法的姿态估计。左侧:基于滤波器的方法通过EKF更新来调整相机姿态和地标的3D坐标;右:基于关键帧的方法将3D坐标保持为常数,并且仅估计当前相机姿态。之后,基于关键帧的方法保持相机姿态不变,并不时地对新的3D点进行三角测量。采用基于滤波器的方法还是基于关键帧的方法在很大程度上取决于具体的应用。一般来说,基于滤波器的方法通常是更容易实现和更快时,状态维得到很好的控制或MSCKF范式已被应用。基于关键帧的方法通常会导致更好的准确性,因为它的递归优化,但招致显着更多的计算比基于滤波器的方法。对于计算资源有限的应用,例如轻型飞行器和AR/VR头戴设备,基于滤波器的方法可能更合适。但随着硬件的快速发展,基于关键帧的方法可能会变得越来越流行。基于关键帧的方法更容易扩展到多智能体环境。大多数现有468Danping Zandong et al:多智能体协同视觉SLAM: A brief survey采用基于关键帧的方法的方法简单地将关键帧从各个代理发送到后端服务器以协作地进行映射任务。相比之下,基于过滤器的方法然而对于应用于多代理SLAM系统以实现不同代理之间的“协作”而言并非微不足道,因为在不同代理上部署单个过滤器并不简单。因此,采用基于滤波器的方法的系统还提取关键帧以促进地图融合或协作姿态估计[42,44]。5协作式可视SLAM的关键组件与单目视觉SLAM类似,协作视觉SLAM的主要组件也可以大致分为与相机姿态跟踪相关的任务和与映射相关的任务。与单目情况相比,多智能体视觉SLAM中的这些任务通常涉及处理来自不同智能体的数据。例如,从不同相机提取的共同特征一起用于估计相机姿态并生成3D点。这种协作通常会带来更好的准确性和鲁棒性。我们将这种涉及来自不同代理/摄像机的信息的操作命名为代理/摄像机间操作。那些只涉及来自单个智能体/摄像机的信息的操作被称为智能体内/摄像机操作。在下文中,我们将讨论在现有的协同视觉SLAM系统中实现关键组件的一些想法。5.1协同位姿估计摄像机位姿估计是视觉SLAM系统中的一项基本任务。它需要实时估计6DoF相机位姿。如前所述,可以通过合并来自各个相机或不同相机的信息来实现相机姿态估计。我们称之为相机内的姿态估计或相机间的姿态估计。姿态估计在两个框架中的处理非常不同。然而,我们将在以下部分中讨论基于滤波器和基于关键帧的方法中的姿态估计方法。关键帧数据结构灵活,便于不同Agent之间的信息共享。与[35,36]系统中一样,关键帧被发送到服务器,可以由其他代理下载。这意味着每个代理都能够使用其他代理产生的关键帧进行姿态估计,从而提高准确性和鲁棒性。如果摄像机安装在当不同的代理被同步时,可以应用使用来自不同相机的当前视频帧的相机间姿态估计[14]。该姿态估计方法考虑了静态点和移动点,并且即使在场景中存在大部分移动对象时也允许鲁棒的姿态估计。运动物体上的特征点的三维运动也可以用多视图几何来获得。这一点可以在(图7)中更好地理解。虽然 的 相机 构成 估计是地址-在基于过滤器的方法和基于关键帧的方法中表现得非常不同。这两种方法在单目视觉SLAM系统中的应用已经被证明是有效的和高效的。图7摄像机间姿态估计的图示[14]。从摄像机A的视角来看,运动物体遮挡了静态背景。摄像头B能够看到移动的物体和背景。469虚拟现实智能硬件2019年第5但是在多智能体环境中,基于过滤器的方法在不同智能体之间交换地图信息并不简单,因为存储在过滤器状态中的地图通常是稀疏的,并且大量的地图点被丢弃以限制状态的维度。因此,它需要与基于关键帧的方法相同地工作的附加映射组件来生成基于关键帧的映射。5.2协同制图如前所述,在多智能体视觉SLAM系统中表示地图的最佳方式可能是使用一组关键帧,其中每个关键帧存储2D特征点及其描述符和3D坐标,有时还存储原始图像。关键帧的相机姿态及其拓扑连接也被存储,通常被称为姿态图[55]。虽然还有其他方法,例如使用随机地图和3D点云,但使用基于关键帧的地图的优点是它可以完整地存储地图相关任务(例如地图融合和细化)所需的信息。映射任务主要涉及从不同帧的对应特征点三角测量新的3D点。然而,在多智能体视觉SLAM系统中,映射任务可以进一步分为相机内映射和相机间映射。前者类似于单目视觉SLAM系统中的映射任务,其仅使用来自仅一个相机的视频帧。后者试图使用来自不同相机捕获的图像的对应点来生成地图点。如[14]所示,相机间将导致不同相机之间的相对姿态估计的更好精度。要执行相机间映射,首先应该找出这些相机是否在看同一个地方,然后使用特征匹配来建立不同相机之间的点对应关系。另一个重要的映射相关任务是循环闭合。实际上,在多智能体视觉SLAM系统中存在两种环路闭合:摄像机内环路闭合和摄像机间环路闭合。摄像机内环路闭合的目的是为单个摄像机找到重访位置,以减小漂移误差。相机间环路闭合试图检测多个单独地图之间的某些特定区域中的重叠以用于地图融合。这两种类型的循环闭包遵循相同的管道。第一步是认识到重新访问的地方。这个过程通常被称为地点识别,这是通过评估两个关键帧的相似性来完成的。在两个关键帧被成功匹配为从同一地点捕获的图像之后,第二步是计算两个关键帧之间的相对变换,并使用相对变换作为额外的约束来调整这些关键帧的姿态。这通常被称为姿势图优化。在姿态图优化之后,应用光束法平差来进一步细化关键帧姿态和特征点的3D坐标。在下一节中,我们将讨论多智能体视觉SLAM系统中的循环闭合。5.3环闭合5.3.1位置识别相关变换计算地点识别[56]是通过检查两幅图像是否相似来检测环路闭合的重访区域或地图融合的重叠区域的基本任务。为了匹配不同的图像,需要一个全局描述符来描述图像。例如,我们可以使用下采样图像或微小图像作为全局描述符进行比较。对于给定的关键帧,我们可以将其与存储在地图中的所有关键帧的微小图像进行比较[57]。对于摄像机在小场景中运动的情况,该方法被证明是高效的。然而,当场景变大时,470Danping Zandong et al:多智能体协同视觉SLAM: A brief survey需要采用多种索引方法来保证实时性。词袋技术[58]通常用于此类任务。在视觉SLAM系统中使用的地点识别方法是DBoW2[20]。该方法使用二进制描述符(BRIEF或ORB)和FAST角点作为特征点。因此,它是高效的。与采用SIFT或SURF特征的Bag of words相比,DBoW2匹配方法的速度约快一个数量级。DBoW2已经成为单智能体视觉SLAM系统中位置识别的主要方法,因为计算资源通常是有限的。然而,由于多智能体系统中通常有一个强大的集中式服务器,我们可以考虑采用基于深度神经网络的更先进的方法[59]。在两幅图像成功匹配后,我们需要获得两帧之间的相对姿态,以便进行下一步优化。相对姿态计算可以分为三类。第一个是2D-2D匹配。在这种方法中,我们考虑仅使用图像上的那些2D特征点的信息。五点算法[60]用于估计本质矩阵,RANSAC也用于处理离群值。然后通过矩阵分解从本质矩阵中提取两帧之间的相对姿态。然而,相对姿态的平移仅在一定尺度上确定。因此,需要将平移向量的尺度视为未知变量,以便在下一优化步骤中进一步估计。第二种方法是通过2D-3D匹配[61],其利用关键帧也包含对应的3D点的事实。与摄像机姿态估计类似,我们可以应用Pestrian算法来获得一帧相对于另一帧的3D点的摄像机姿态。与2D-2D方法相比,来自2D-3D方法的相对姿态被完全确定为用于下一姿态图优化的约束。第三种方法是通过3D-3D匹配,其中3D点云直接用于相对变换估计。这种方法通常在RGBD SLAM[62]和半密集视觉SLAM系统[24]中采用。3D-3D匹配的过程非常类似于2D-2D匹配的过程,而相对变换是在已经找到对应的特征点之后直接从两个3D点云计算的。另一个区别是相对变换由相似性变换而不是刚性变换表示,以考虑尺度漂移[61]。在[13]中已经证明,通过使用相似性变换作为相对变换约束,将导致更好地解决尺度漂移问题.5.3.2优化它需要使用优化来细化相机姿势和3D结构后,重新访问的地方已经被识别为相机内或相机间的环路闭合。光束法平差被誉为SfM优化问题的“黄金标准”算法。它是一个应用高斯-牛顿或Levenberg-Marquardt迭代的非线性最小二乘求解器,如果问题的规模很大或初始猜测不接近真实值,则可能很容易陷入局部最小值。因此,我们通常在应用光束平差之前运行姿态图优化[63],以便获得更好的初始猜测。姿态图的节点表示那些关键帧的相机姿态。边缘是不同姿态之间的相对变换约束,通常用刚体变换表示。由位置识别引入的新边被插入到姿态图中。由于漂移误差或坐标系不一致,新插入的边可能与旧边冲突,导致新边处的大的不一致误差。通过将来自旧边和新边的所有约束放在一起,姿态图优化运行非线性最小二乘求解器以最小化平方约束误差的总和。使用刚性变换作为姿态约束对于校正旋转和平移漂移效果很好,但是对于校正尺度漂移效果不好。因此,一个更好的方法是使用相似性变换作为姿态471虚拟现实智能硬件2019年第5限制[61]。在[13]中已经证明,使用相似性变换可以导致更好的循环闭合性能。姿态图优化中的一个重要问题是可能存在一些离群循环检测。错误的环路检测可能是由不完美的描述符或感知混叠引起的。感知混叠是指场景中不同的地方看起来可能非常相似或完全相同。在日常生活中经常发生。在这种情况下,即使描述符被完美地设计,也可能存在错误的环路检测。异常值循环检测导致不正确的相对姿态约束,因此如果没有很好地处理,将破坏地图。为了提高姿态图优化的鲁棒性,我们可以通过设置高匹配阈值来增加相似性匹配的置信度水平。但这将显著减少可接受的环路检测的数量。找出循环检测异常值的一种方法是利用关于匹配帧之间的相对变换的先验知识,这可以从单个代理的前端获得。新检测到的与预测不一致的循环被视为离群值。然而,由于预测的大不确定性,这种方法对于大回路将不起作用。识别相机间环路闭合内的异常值变得困难得多,因为不存在关于匹配帧之间的相对姿态的可用先验信息。未检测到的离群点会破坏优化后的三维结构,很难恢复。一个可能的解决方案是收集一套循环检测,并对它们进行成对一致性检查[64]以识别离群值。成对一致性检查可以在(图8)中演示。如果两个回路测量值为图 8一致性 检查 的 成对 回路 闭合两个机器人之间的距离红线表示环路闭合测量;黑色实线表示连续帧之间的相对变换。一致,其中一个可以通过使用来自前端的相机内相对变换由另一个预测。使用这种检查,可以通过来自图论的最大裁剪算法[65]最后采用束平差法进一步细化关键帧的摄像机位姿和位姿图优化后的点云三维坐标。该过程与单智能体视觉SLAM系统中的过程相同。光束平差[12,38]已研究多年。有许多开源实现[66- 68]用于有效地解决光束法平差问题。一些系统[36,44]使用视觉惯性SLAM作为前端。在这种情况下,光束法平差还需要在成本函数中包含惯性测量。惯性测量可以通过预积分[69]获得,以避免重复积分,这需要大量的计算。5.4特征检测匹配在不同图像中检测和匹配特征点对于相机跟踪和映射任务都是必不可少的。特征点有多种选择。在早期系统中使用的最流行的特征点之一[37,42]是FAST角[70]。与其他角点特征(如SIFT[71]或SURF[72])相比,FAST角点提取效率很高,因为它只涉及与相邻像素的一组二进制比较。通常,这些FAST角由角位置周围的小图像块来描述。使用这些图像块,可以在C2TAM[42]和MOARSLAM[46]中描述的帧上跟踪FAST角点。描述FAST角的另一种方法是使用ORB特征[73],而不是直接472Danping Zandong et al:多智能体协同视觉SLAM: A brief survey使用图像补丁。ORB描述符是BRIEF描述符的扩展[74],具有旋转不变性和对大视图变化的鲁棒性。在[13]中已经证明,ORB特征是用于姿态估计、映射和环路检测的可靠特征。如果我们想要获得更稳定的特征提取和跟踪结果,我们可以考虑使用Kanade-Lucas-Tomasi(KLT)特征[75]并使用光流[76]来跟踪这些特征。虽然它涉及更多的计算工作,但它可以通过GPU加速有效地运行,如[14,39]所示。使用光流进行特征跟踪仅在两个图像接近时才能正常工作。换句话说,它只适用于由同一相机捕获的连续视频帧中的特征跟踪。为了在不同视点之间匹配对应的特征点,通常需要使用对大的视点变化鲁棒的描述符。虽然SIFT描述符[71]可能是最强大的特征描述符,但为了提高效率,使用了更有效的描述符,如SURF[72]和ORB[73]提高特征匹配效率的另一种方法是通过引导搜索。这样的想法已经被采用,因为早期的视觉SLAM系统。在基于过滤器的视觉SLAM系统[8,16,77]中,通过首先计算从当前状态变量预测的地标的可能位置的范围来执行引导搜索。该算法的搜索范围通常由预测不确定性或投影协方差矩阵决定,因此将搜索范围从整幅图像缩小到预测位置周围的一小块区域。以类似的方式执行基于关键帧的系统中的引导搜索,但是具有使用更新的相机姿态来生成新的地图点的附加引导搜索。由于未映射点的3D坐标是未知的,通过比较给定点和候选点之间的图像块,沿着极线进行额外的引导搜索。在PTAM[10]和ORB-SLAM[13]中,执行极线搜索以在不同的关键帧之间对新点进行三角测量。在CoSLAM[14]中,对极搜索应用于不同的相机以生成新的标测点。最近,直接方法[24,25]由于其在准确性和效率方面的优势而在视觉SLAM社区中受到了广泛关注。虽然在每个代理上运行直接方法可能是一个很好的选择,但很难直接匹配不同相机之间的像素以建立对应关系。因此,如果直接的方法被应用到多智能体视觉SLAM,更多的关注应该支付给不同的相机之间的特征匹配问题。5.5异常画面排除野值剔除是摄像机位姿估计的关键。有两种方法来解决离群拒绝问题。第一种是通过随机抽样一致性(RANSAC)算法[78,79]。通过随机采样一组最小的2D-3D对应点,我们应用Perspective-n-Point(PPERS)算法来计算相机姿态,并使用当前姿态估计来检查剩余对应点的一致性。从最小集合的姿态估计,导致所有这些随机样本之间的最佳一致性被用作最终结果。那些不一致的对应点作为离群值被移除。对于姿态估计,对应的2D-3D点的最小数量是三个。然而,在实践中,通常使用较大的数字来实现更好的估计。虽然RANSAC对大部分离群点或有时严重离群点具有鲁棒性,但它通常会导致不可忽略的计算成本,特别是采样集中的元素数量很大。 有时我们可以使用其他传感器,如惯性测量单元(IMU)[41]或状态预测[77,80]来减少采样集的大小。离群值拒绝的第二种方法是应用鲁棒估计器[81]进行相机姿态估计。与RANSAC相比,鲁棒估计通常消耗较少的计算量。鲁棒估计器可以通过对现有473虚拟现实智能硬件2019年第5非线性最小二乘优化器鲁棒估计器已广泛应用于基于关键帧的视觉系统。然而,当存在严重的离群值或大量离群值时,以及有时初始估计值不接近真实值时,它可能很容易失败。因此,有时我们可以结合RANSAC和鲁棒估计器,使系统更强大。例如,我们可以在第一遍中运行鲁棒估计器,并在姿态估计之后检查重新投影误差。通常,如果估计器失败,则重新投影误差变得明显大。在这种情况下,可以在第二遍中运行RANSAC以使姿态估计免于失败。考虑场景中移动物体产生的离群值将是有趣的。实际上有两种离群值。第一种离群值主要是由错误的特征匹配引起的,这反过来又产生了不正确的2D-3D对应的姿态估计。第二类离群点来自包含运动对象的动态环境中的运动点。在这种情况下,2D-3D对应关系可能是正确的,但由于3D点在移动,因此它们的3D坐标实际上随时间变化。如果我们仍然将它们视为静态点,则会导致不一致的姿态估计。然而,如果我们有多个摄像机,它们的视点不同,我们可以同时更新这些移动点的3D坐标,并估计与静态背景一致的摄像机姿态,如图7所示。但是我们如何从那些真正的异常值中识别出动态点呢?通过探索点在时间和空间域上如何满足几何约束,可以识别动态点和真实离群点。这是基于这样的观察,即静态点应该总是满足在时间和空间域中的几何约束,给定相机姿态被正确地估计。检查是否违反几何约束的一个规则是检查图像上的重投影误差。对于一个静态点,如果它的2D-3D对应是正确的,在所有的视频帧的重投影误差,无论是来自同一个相机或不同的相机,应该是小的值。由于移动点在同一时刻仅满足跨不同相机的几何约束,而在不同时刻之间违反几何约束,因此我们可以相应地检查重投影误差以识别移动点。用于识别静态点、移动点和真实离群值的流水线已在[14]中给
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功