基于图像的相机定位:概述

news2024/11/29 12:45:08

虚拟现实、增强现实、机器人和自动驾驶最近引起了学术界和工业界的广泛关注,其中基于图像的相机定位是一项关键任务。然而,还没有关于基于图像的相机定位的完整评论。迫切需要映射这个主题,使个人能够快速进入该领域。在本文中,概述了基于图像的摄像机定位。提供了一种新的、完整的基于图像的摄像机定位方法分类,并介绍了相关技术。还讨论了未来发展的趋势。这不仅对研究人员有用,而且对工程师和对该领域感兴趣的其他个人也有用。

背景

近年来,虚拟现实、增强现实、机器人、自动驾驶等,其中基于图像的相机定位是一项关键任务,引起了学术界和工业界的广泛关注。迫切需要提供基于图像的相机定位的概述。

用于基于图像的相机定位的传感器是相机。最近开发了多种类型的三维 (3D) 相机。本研究考虑二维 (2D) 相机。室外定位常用的工具是 GPS,它不能在室内使用。室内定位工具有很多,包括激光雷达、超宽带(UWB)、无线保真(WiFi)等;其中,使用摄像头进行定位是最灵活、成本最低的方法。自主定位和导航是移动机器人所必需的。为了增强图像的真实感,需要确定相机姿势或定位。要查看虚拟环境,需要计算相应的视角。此外,相机无处不在,人们每天都携带带有相机的手机。所以,

点、线、二次曲线、球体和角度的图像特征用于基于图像的相机定位;其中,点使用最广泛。本研究着重于点。

基于图像的相机定位是一个广泛的话题。我们试图涵盖相关工作并对基于图像的相机定位方法进行完整分类。然而,由于篇幅限制,不可能涵盖本文中的所有相关工作。此外,由于篇幅所限,我们无法针对如此广泛的主题对每篇被引用的论文进行深入批评。未来将对基于图像的相机定位的一些活跃的重要方面进行更深入的评论,或者感兴趣的人可以阅读现有的调查。关于基于图像的相机定位的某些方面已经有很好的评论。最新的包括以下内容。汗和阿德南 [ 1] 概述了自我运动估计,其中自我运动需要两个连续图像之间的时间间隔足够小。卡德纳等人。[ 2 ] 调查了同时定位和映射 (SLAM) 的当前状态并考虑了未来的方向,其中他们回顾了相关工作,包括长期映射中的鲁棒性和可扩展性、映射的度量和语义表示、理论性能保证、主动 SLAM,和探索。尤尼斯等。[ 3 ] 特别回顾了基于关键帧的单目 SLAM。皮亚斯科等。[ 4 ] 提供了一项关于来自异构数据的基于视觉的定位的调查,其中仅考虑已知环境。

与这些研究不同,这项研究的独特之处在于它首先映射了整个基于图像的相机定位,并为主题提供了完整的分类。“概述”部分概述了基于图像的摄像机定位,并映射为树结构。“ Reviews on image-based camera localization ”部分介绍了分类的各个方面。“讨论”部分对未来发展趋势进行讨论和分析。“结论”部分对论文进行总结。

概述

什么是基于图像的相机定位?基于图像的相机定位是根据相机捕获的图像或视频计算相机在世界坐标系下的位姿。根据环境是否事先已知,基于图像的摄像机定位可以分为两类:一类是环境已知的,另一类是环境未知的。

n为使用的点数。已知环境的方法包括 3 ≤  n  < 6 的方法和n  ≥ 6 的方法。这些是 PnP 问题。一般来说,3 ≤ n < 6的问题 是非线性的, n ≥ 6 的 是线性的。

具有未知环境的方法可以分为具有在线和实时环境映射的方法和没有在线和实时环境映射的方法。前者是众所周知的同步定位和映射(SLAM),后者是众所周知的运动结构(SFM)的中间过程。根据地图生成的不同,SLAM分为几何度量SLAM、学习SLAM、拓扑SLAM和标记SLAM四个部分。学习SLAM是最近一个新的研究方向。我们认为它与几何度量 SLAM 和拓扑 SLAM 的区别在于单一类别。学习 SLAM 可以获得相机位姿和 3D 地图,但需要先验数据集来训练网络。学习 SLAM 的性能在很大程度上取决于所使用的数据集,泛化能力低。因此,学习 SLAM 不如几何度量 SLAM 灵活,并且其在使用的数据集之外获得的 3D 地图在大多数情况下不如几何度量 SLAM 准确。然而,同时,学习 SLAM 除了拓扑表示之外还有 3D 地图。标记 SLAM 在不知道完整环境的情况下根据已知的结构化标记计算相机姿势。几何度量 SLAM 由单目 SLAM、多目 SLAM 和多传感器 SLAM 组成。此外,几何度量SLAM可以分为基于滤波器的SLAM和基于关键帧的SLAM。基于关键帧的SLAM可以进一步分为基于特征的SLAM和直接SLAM。多传感器SLAM可分为松耦合SLAM和紧耦合SLAM。基于图像的摄像机定位方法的这些分类被可视化为逻辑树结构, 1,其中当前活跃的主题用粗体边框表示。我们认为这些主题是来自大数据的相机定位、学习 SLAM、基于关键帧的 SLAM 和多种传感器 SLAM。

图。1

基于图像的相机定位概述

全尺寸图片

基于图像的相机定位评论

已知环境

从已知的 3D 空间点确定相机位姿称为透视 n 点问题,即 PnP 问题。当n  = 1,2 时,PnP 问题没有解决方案,因为它们受到约束。当n  ≥ 6 时,PnP 问题是线性的。当n  = 3、4、5 时,PnP 问题的原始方程通常是非线性的。PnP 问题的历史可以追溯到 1841 年到 1903 年。Grunert [ 5 ]、Finsterwalder 到 Scheufele [ 6 ] 得出结论,P3P 问题最多有四个解,而 P4P 问题通常有一个唯一解。PnP 问题也是 SLAM 的关键重定位问题。

n  = 3、4、5的 PnP 问题

解决n  = 3、4、5的 PnP 问题的方法主要集中在两个方面。一方面研究非线性问题的解数或多解几何配置。另一方面研究相机姿态的消除或其他求解方法。

针对第一方面的方法如下。Grunert [ 5 ]、Finsterwalder和Scheufele [ 6 ]指出P3P最多有四个解,P4P有唯一解。Fischler 和 Bolles [ 7 ] 针对 PnP 的 RANSAC 研究了 P3P,发现 P3P 的四种解决方案是可以实现的。沃尔夫等。[ 8 ]表明P3P主要有两种解决方案;他们确定了两个解决方案,并提供了 P3P 可以有两个、三个或四个解决方案的几何解释。胡和吴[ 9] 定义了基于距离和基于转换的 P4P 问题。他们发现定义的两个 P4P 问题并不等价;他们发现基于转换的问题最多有四个解,而基于距离的问题最多有五个解。Zhang 和Hu [ 10 ] 提供了P3P 有四种解决方案的充分必要条件。吴、胡[ 11] 证明基于距离的问题等同于 P3P 的基于旋转变换的问题,基于距离的问题等同于 P4P/P5P 的基于正交变换的问题。此外,他们还表明,对于任意三个非共线点,总能找到光心,使得这三个控制点与光心形成的P3P问题将有四个解,即其上界。此外,还提供了一种几何方法来构建这四种解决方案。Vynnycky 和 ​​Kanev [ 12 ] 研究了等边 P3P 问题的多解概率。

关注n = 3, 4, 5的 PnP 问题的第二个方面的方法如下 。Horaud 等人。[ 13 ] 描述了 P4P 问题的消除方法以获得酉四次方程。哈拉利克等人。[ 14 ]回顾了P3P 问题的六种方法,它们是[ 5、6、7、15、16、17 ]。Dementhon 和 Davis [ 18 ] 通过准透视成像的查询表提出了 P3P 问题的解决方案。Quan 和 Lan [ 19 ] 线性解决了 P4P 和 P5P 问题。高等。[ 20] 使用吴氏消元法得到P3P问题的完备解。Wu 和 Hu [ 10 ] 引入了一种基于深度比的方法来表示完整 PnP 问题的解决方案。Josephson 和 Byrod [ 21 ] 使用 Grobner 基方法解决了未知焦距相机径向畸变的 P4P 问题。赫施等。[ 22 ] 研究了n >= 3的 PnP 的非线性平方解 。Kneip 等人。[ 23 ]直接解决了P3P问题的旋转和平移解。奈普等人。[ 24 ]提出了一个统一的 PnP 解决方案,可以处理广义相机和具有全局优化和线性复杂性的多重解决方案。匡和阿斯特罗姆 [ 25] 研究了使用点和线的未知焦距的 PnP 问题。Z. Kukelova 等人。[ 26 ]研究了具有径向畸变图像的焦距未知的 PnP 问题。文图拉等。[ 27 ] 提出了广义姿态和尺度问题的最小解决方案。郑等。[ 28 ] 引入了一个角度约束并为每个 P3P 导出了一个紧凑的二元多项式方程,然后提出了一种使用迭代来解决焦距未知的 PnP 问题的通用方法。后来,Zheng 和 Kneip [ 29 ] 在不需要点序和迭代的情况下改进了他们的工作。Wu [ 30 ] 研究了焦距未知且n  = 3.5 的 PnP 解决方案。阿尔布尔等。[ 31] 研究了滚动快门相机的姿势解决方案,并在 2016 年晚些时候改进了结果。

n  ≥ 6的 PnP 问题

n > = 6 时,PnP 问题是线性的,对它们的研究主要集中在两个方面。一方面研究从较少数量的点对相机姿势的有效优化。另一方面从大数据研究快速相机定位。

第一方面的研究如下。卢等人。[ 32 ] 给出了一个使用共线点的全局收敛算法。Schweighofer 和 Pinz [ 33 ] 研究了平面目标的多解。吴等。[ 34 ] 提出了场景和图像之间的不变关系,然后是使用不变量的稳健 RANSAC PNP。Lepetit 等人。[ 35 ] 为 PnP 问题提供了精确的 O(n) 解决方案,称为 EPnP,如今已广泛使用。在 [ 36 ] 中通过束调整研究了卷帘快门相机的位姿问题。在 [ 37 ] 中也使用 B 样条协方差矩阵研究了类似的问题。郑等。[ 38] 使用四元数和 Grobner 基来提供 PnP 问题的全局优化解决方案。[ 39 ]中给出了具有代数异常值拒绝的 PnP 问题的非常快速的解决方案。Svarm 等人。[ 40 ]研究了考虑重力方向的大型 3D 模型的精确定位和姿态估计。Ozyesil 等人。[ 41 ]通过凸规划提供了稳健的相机位置估计。布拉赫曼等人。[ 42 ] 显示了来自单个 RGB 图像的对象和场景的不确定性驱动的 6D 姿态估计。冯等。[ 43 ] 提出了一种无手眼校准策略,通过顺序校正相对 3D 旋转和平移,以相同的 6D 姿态主动重新定位相机。中野 [ 44] 用Grobner方法解决了三种PnP问题:标定相机的PnP问题,未知焦距相机的PnPf问题,未知焦距和未知径向畸变相机的PnPfr问题。

第二个方面的研究侧重于从大数据中快速定位相机,如下所示。亚瑟等人。[ 45 , 46 ] 展示了手机的实时摄像头定位。萨特勒等人。[ 47 ]基于视觉词汇量化和优先对应搜索与已知的城市场景大型 3D 模型推导了直接匹配框架。后来,他们在 [ 48 ]中通过主动对应搜索改进了该方法。李等。[ 49 ] 设计了一种自适应的优先算法,用于将覆盖大场景的一组代表性 SIFT 特征与查询图像进行匹配,以实现高效定位。后来李等人。[ 50] 针对大型地理配准 3D 点云提供了完整的 6-DOF-plus-intrinsic 相机姿势。雷等。[ 51 ] 使用基于 PCA 的点分组从街景中研究了有效的摄像机定位。Bansal 和 Daniilidis [ 52 ] 使用从城市环境的数字高程地图中提取的 3D 点射线特征提出了一种纯几何无对应的城市地理定位方法。肯德尔等人。[ 53 ] 通过训练卷积神经网络 (CNN) 以端到端的方式从单个 RGB 图像中回归 6-DOF 相机姿态,提出了一个强大的实时单目 6-DOF 重定位系统。王等。[ 54] 提出了一种在非常大的室内空间中定位的新方法,该方法将单个图像和环境平面图作为输入。蔡斯等人。[ 55 ] 提出了一种基于投票的姿态估计策略,该策略在匹配次数方面表现出 O(n) 的复杂性,从而有助于考虑更多的匹配次数。卢等人。[ 56 ]使用由短视频重建的 3D 模型作为查询,在多任务点检索框架下实现 3D 到 3D 定位。瓦伦丁等。[ 57 ] 训练了一个回归森林来预测各向异性 3D 高斯的混合,并展示了如何将预测的不确定性考虑在内以进行连续姿态优化。斯特劳布等人。[ 58] 提出了一种重新定位系统,通过使用二进制特征描述符和局部敏感哈希的最近邻搜索,可以实现宽基线的实时 6D 姿势恢复。冯等。[ 59 ] 通过使用二进制特征的监督索引实现了大规模环境中的快速定位,其中通过利用从对应于公共 3D 点的多个特征派生的标签信息,在监督训练过程中构建随机树。Ventura 和 Höllerer [ 60 ] 提出了一个任意广域环境的系统,用于使用手持设备进行实时跟踪。[ 61]中提出了基于关键帧的单目 SLAM 系统和全局定位方法的结合。]. [ 62 ]中出版了一本关于大规模视觉地理定位的书。刘等人。[ 63 ] 展示了在大规模 3D 地图中相机定位的高效全局 2D-3D 匹配。Campbell [ 64 ] 提出了一种用于同步相机姿势和特征对应的全局最优内点集最大化的方法。[ 65 ]提出了具有二元特征索引在线学习的实时 SLAM 重定位。吴等。[ 66 ] 提出了用于相机重定位的 CNN。Kendall 和 Cipolla [ 67 ] 探索了许多用于学习相机姿势的新型损失函数,这些损失函数基于几何和场景重投影误差。秦等。[ 68] 开发了一种用于单目视觉惯性 SLAM 的重定位方法。皮亚斯科等。[ 4 ] 提出了一项关于来自异构数据的基于视觉的定位的调查。[ 69 ]中提出了一种用于移动增强现实系统的基于几何的点云缩减方法。

从以上已知环境的研究中,我们可以看到基于大数据的快速相机定位越来越受到关注。这是因为针对大数据的摄像头定位有很多应用,例如基于位置的服务、各类机器人的SLAM重定位、AR导航等。

未知环境

未知环境可以通过视频实时在线重建。同时,实时在线计算相机位姿。这些就是众所周知的SLAM技术。如果未知环境是在不需要速度和在线计算的情况下从多视图图像重建的,那就是已知的 SFM,其中求解相机位姿是一个中间步骤,而不是最终目标;因此,我们仅提及少量关于 SFM 的研究,而不会在下文中提供深入的概述。将详细介绍SLAM的研究。

大满贯

SLAM 始于 1986 年的研究[ 70 ]:“关于空间不确定性的表示和估计”,发表在国际机器人研究杂志上。1995 年,在第 7 届国际机器人研究研讨会上的研究 [ 71 ]:“自动引导车辆的定位”中创造了首字母缩略词 SLAM 。根据地图生成的不同,对SLAM的研究可以分为四类:几何度量SLAM、学习SLAM、拓扑SLAM和标记SLAM。由于其精确的计算,几何度量 SLAM 引起了越来越多的关注。学习SLAM是随着深度学习的发展而受到关注的一个新课题。对纯拓扑 SLAM 的研究正在减少。标记 SLAM 更准确和稳定。有一项研究 [2 ] 回顾了 SLAM 的最新进展,涵盖了广泛的主题,包括长期映射的稳健性和可扩展性、映射的度量和语义表示、理论性能保证、主动 SLAM 和探索。下面分别介绍几何度量SLAM、学习SLAM、拓扑SLAM和标记SLAM。

  1. A。

    几何度量SLAM

    几何度量 SLAM 使用精确的数学方程计算 3D 地图。根据使用的传感器不同,几何度量SLAM分为单目SLAM、多目SLAM和多类传感器SLAM。根据使用的技术不同,几何度量SLAM分为基于滤波器的SLAM和基于关键帧的SLAM,还有另一类SLAM:基于网格的SLAM,其中少数处理图像,大部分处理激光数据。最近,有一篇关于基于关键帧的单目 SLAM 的综述,提供了深入的分析 [ 3 ]。

    1. A.1)

      单目SLAM

      1. A.1.1)

        基于过滤器的 SLAM

        单目 SLAM 的一部分是基于滤波器的方法。第一个是戴维森[ 72 ]提出的基于扩展卡尔曼滤波器(EKF)的Mono-SLAM 。后来,他们在 [ 73 , 74 ] 中进一步发展了这项工作。Montemerlo 和 Thrun [ 75 ] 提出了基于粒子滤波器的单目 SLAM。斯特拉斯达等人。[ 76、77 ]通过比较基于过滤器和基于关键帧的方法讨论了为什么使用基于过滤器的SLAM 。[ 76 ]在 ICRA 2010 的会议论文获得了最佳论文奖,他们指出基于关键帧的 SLAM 可以提供更准确的结果。Nuchter 等人。[ 78] 使用 SLAM 的粒子过滤器来映射大型 3D 室外环境。黄等。[ 79 ] 解决了无迹卡尔曼滤波器 (UKF) 在应用于 SLAM 问题时的两个关键限制:状态数量的三次计算复杂性和状态估计的不一致性。他们为具有恒定计算复杂度的 UKF 引入了一种新的采样策略,并提出了一种新算法来确保 UKF 基于线性回归的系统模型的不可观察子空间与非线性 SLAM 系统的不可观察子空间具有相同的维度。尤尼斯等。[ 3 ] 还指出,基于过滤器的 SLAM 在 2010 年之前很常见,此后大多数解决方案都围绕非过滤器、基于关键帧的架构设计了他们的系统。

      2. A.1.2)

        基于关键帧的SLAM

        1. 单目 SLAM 的第二部分是基于关键帧的方法。基于关键帧的SLAM可以进一步分为:基于特征的方法和直接方法。a) 基于特征的 SLAM:第一个基于关键帧的特征 SLAM 是在 [ 80 ] 中提出的 PTAM。后来,该方法在 [ 81 ]中被扩展到结合边缘,并在 [ 82 ]中被扩展到手机平台。关键帧选择在 [ 83、84 ]中进行了研究。在 [ 85 ]中提出了具有循环检测和目标识别的 SLAM++ 。[ 86 ]研究了动态场景检测和自适应 RANSAC 。关于动态对象,Feng 等人。[ 87] 提出了一种 3D 辅助光流 SLAM。ORB SLAM [ 88 ]可以处理循环检测、动态场景检测、单目、双目和深度图像。[ 89 ]的方法可以在使用子图和线性程序去除异常值的大规模环境中运行。b) Direct SLAM:单目SLAM的第二部分是直接法。纽科姆等人。[ 90 ] 提出了 DTAM,这是第一个直接 SLAM,其中在选定的关键帧处生成详细的纹理密集深度图,同时通过针对密集纹理模型的整个图像对齐以帧速率跟踪相机姿态。在[ 91 ]中提出了一种半密集视觉里程计(VO)。LSD SLAM [ 92] 提供了适用于大规模环境的密集 SLAM。帕斯科等人。[ 93 ]提出了一种用于激光雷达和相机的道路环境的直接密集 SLAM。手机上的半 VO 由 [ 94 ] 执行。

        2. A2)

          多目SLAM

          多目 SLAM 使用多个相机来计算相机姿势和 3D 地图。大多数研究都集中在双眼视觉上。它们也是多眼视觉的基础。

          Konolige 和 Agrawal [ 95 ] 使用经典的 bundle adjustment 技术将视觉帧与大量点特征进行匹配,但只保留相对帧姿态信息。梅等。[ 96 ]使用立体声对提供的运动和结构的局部估计来根据一系列相对位置来表示环境。Zou 和 Tan [ 97 ] 研究了构建全球地图的多个移动摄像机的 SLAM。恩格尔等。[ 98 ]提出了一种新颖的用于立体相机的大规模直接 SLAM 算法。皮尔等。[ 99 ] 提出了一种称为 S-PTAM 的立体 SLAM 系统,它可以计算地图的真实比例并克服 PTAM 对机器人导航的限制。莫雷诺等人。[ 100] 为立体 SLAM 系统提出了一种称为稀疏相对束调整 (SRBA) 的新方法。Artal 和 Tardos [ 101 ] 展示了 ORB-SLAM2,它是一个完整的 SLAM 系统,适用于单目、立体和 RGB-D 相机,具有地图重用、闭环和重定位功能。张等。[ 102 ] 提出了一种使用直线作为特征的基于图形的立体 SLAM 系统。戈麦斯-奥赫达等人。[ 103 ] 提出了 PL-SLAM,这是一种立体视觉 SLAM 系统,它结合了点和线段,可以在更广泛的场景中稳健地工作,特别是在图像中点特征稀缺或分布不均的场景中。在 [ 104 ]中提出了一种用于立体相机的新型直接视觉惯性里程计方法。王等。[[105 ] 提出了立体直接稀疏里程计(Stereo DSO),用于从立体相机对大规模环境进行高精度实时视觉里程计估计。在[ 106 ]中提出了用于单目和多相机系统的半直接视觉里程计(SVO)。孙等。[ 107 ]提出了立体多状态约束卡尔曼滤波器(S-MSCKF)。与多状态约束卡尔曼滤波器(MSCKF)相比,S-MSCKF 表现出明显更强的鲁棒性。

          多目 SLAM 比单目 SLAM 具有更高的可靠性。一般来说,如果允许硬件平台,多目SLAM是首选。

        3. A.3)

          多种传感器SLAM

          在这里,多种传感器仅限于视觉和惯性测量单元(IMU);其他传感器这里不再介绍。这是因为,最近,视觉和 IMU 融合比其他领域更受关注。

          在机器人技术中,有很多关于结合相机和 IMU 的 SLAM 的研究。移动设备通常配备摄像头和惯性单元。摄像机可以提供丰富的场景信息。IMU 可以提供自运动信息,也可以提供准确的高频短期运动估计。相机和 IMU 一直被认为是相辅相成的。由于视觉惯性传感器的普适性和互补性,视觉惯性融合成为近年来非常活跃的研究课题。视觉惯性融合的主要研究方法可以分为两类,即松耦合和紧耦合方法。

          1. A.3.1)

            松耦合 SLAM 在松耦合系统中,所有传感器状态都是独立估计和优化的。在 [ 108 ]中,集成的 IMU 数据作为独立测量纳入立体视觉优化。仅视觉姿态估计用于更新 EKF,以便可以执行 IMU 传播 [ 109 ]。给出了对由 RGB-D 相机和惯性测量单元组成的移动传感器装置计算帧到帧运动估计的不同直接方法的评估,并将视觉里程计的姿势直接添加到 IMU 优化框架中 [ 110 ]。

          2. A.3.2)

            紧耦合 SLAM 在紧耦合系统中,所有传感器状态都是联合估计和优化的。为此有两种方法,即基于过滤器的方法和基于关键帧非线性优化的方法。

            1. A.3.2.a)

              基于滤波器的方法 基于滤波器的方法使用 EKF 来传播和更新视觉惯性传感器的运动状态。[ 111 ]中的 MSCKF使用 IMU 传播车辆的运动估计,并通过观察单目相机的显着特征来更新此运动估计。Li 和 Mourikis [ 112 ] 通过提出基于实时 EKF 的 VIO 算法 MSCKF2.0 改进了 MSCKF。该算法通过确保其线性化系统模型的正确可观测性以及对相机到惯性测量单元校准参数进行在线估计来实现一致估计。李等。[ 113 ], Li 和 Mourikis [ 114] 使用惯性感应和滚动快门相机在手机上实现实时运动跟踪。MSCKF 算法是 Google 的 Project Tango https://get.google.com/tango/的核心算法。克莱门特等人。[ 115 ] 比较了两种现代方法:MSCKF 和滑动窗口滤波器 (SWF)。SWF 比 MSCKF 更准确,对调整参数的敏感度更低。然而,MSCKF 的计算成本更低,具有良好的一致性,并且由于跟踪了更多的特征而提高了准确性。Bloesch 等人。[ 116]提出了一种直接利用图像块像素强度误差的单目视觉惯性里程计算法。在该算法中,通过直接使用强度误差作为创新项,多级补丁特征的跟踪在更新步骤中与底层 EKF 紧密耦合。

            2. A.3.2.b)

              基于关键帧非线性优化的方法 基于非线性优化的方法使用基于关键帧的非线性优化,由于能够通过对固有非线性问题的重复线性化来限制线性化误差,因此可能会实现更高的精度。福斯特等人。[ 117 ] 提出了一种预积分理论,该理论适当地解决了旋转群的流形结构。此外,结果表明,预积分 IMU 模型可以在因子图的统一框架下无缝集成到视觉惯性管道中。该方法是 GTSAM 的缩写。Leutenegger 等人。[ 118] 提出了一种新颖的方法 OKVIS,将视觉测量与 IMU 测量紧密集成,其中优化了以完全概率方式将 IMU 误差项与地标重投影误差集成的联合非线性成本函数。此外,为了确保实时操作,旧状态被边缘化以保持有界大小的优化窗口。李等。[ 119 ]提出了复杂环境中相机定位的紧耦合、基于优化的单目视觉惯性状态估计。该方法可以在具有轻量级闭环的移动设备上运行。在 ORB 单目 SLAM [ 88 ] 之后,在 [ 120 ]中提出了一种紧耦合的视觉惯性 SLAM 系统。

              在松散耦合的系统中,很容易处理帧和 IMU 数据。然而,在紧耦合系统中,要联合优化所有传感器状态,很难处理帧和 IMU 数据。在估计精度方面,紧耦合方法比松耦合方法更准确和鲁棒。紧耦合方法越来越受欢迎,并引起了研究人员的极大关注。

        4. B.

          学习SLAM

          学习SLAM是最近由于深度学习的发展而引起关注的一个新课题。我们认为它与几何度量 SLAM 和拓扑 SLAM 的区别在于单一类别。学习 SLAM 可以获得相机位姿和 3D 地图,但需要先验数据集来训练网络。学习 SLAM 的性能很大程度上取决于所使用的数据集,泛化能力低。因此,学习 SLAM 不如几何度量 SLAM 灵活,并且在使用的数据集之外获得的几何地图在大多数情况下不如几何度量 SLAM 准确。然而,同时,学习 SLAM 具有 3D 地图而不是 2D 图形表示。

          馆野等。[ 121 ] 使用 CNN 来预测密集的深度图,然后使用基于关键帧的 3D 度量直接 SLAM 来计算相机姿态。Ummenhofer 等人。[ 122 ] 训练了多个堆叠的编码器-解码器网络来计算连续的、不受约束的图像对的深度和相机运动。Vijayanarasimhan 等人。[ 123 ] 提出了一种用于视频运动估计的几何感知神经网络。周等。[ 124 ] 提出了一种无监督学习框架,用于从视频序列中估计单眼深度和相机运动。李等。[ 125 ]提出了一种使用无监督深度学习的单目视觉里程计系统;他们使用立体图像对来恢复尺度。克拉克等人。[ 126] 提出了一种流形上的序列到序列学习方法,用于使用视觉和惯性传感器进行运动估计。德通等人。[ 127 ] 提出了一个由两个深度 CNN、MagicPoint 和 MagicWarp 驱动的点跟踪系统。Gao 和 Zhang [ 128 ] 提出了一种基于堆叠式去噪自动编码器的闭环检测方法。Araujo 等人。[ 129 ] 提出了一种用于内窥镜胶囊机器人的基于循环 CNN 的视觉里程计方法。

          这些年学习SLAM逐渐增多。然而,由于学习方法的速度和泛化能力较低,使用几何方法仍然以实际应用为中心。

        5. C。

          拓扑SLAM

          拓扑 SLAM 不需要精确计算 3D 地图,通过连通性或拓扑来表示环境。Kuipers 和 Byun [ 130 ] 使用空间环境的分层描述,其中拓扑网络描述介于控制和度量级别之间;此外,独特的地方和路径由它们在控制级别的属性定义,并用作拓扑模型的节点和弧线。Ulrich 和 Nourbakhsh [ 131 ] 提出了一种用于拓扑定位的基于外观的位置识别系统。Choset 和 Nagatani [ 132] 利用机器人自由空间的拓扑结构将机器人定位在部分构建的地图上,并将环境的拓扑结构编码为广义 Voronoi 图。Kuipers 等人。[ 133 ]描述了如何分析局部感知图以识别局部拓扑描述并抽象到拓扑位置。张等。[ 134 ] 提出了一种基于预测的 SLAM 算法来预测未探索区域内的结构。布兰科等人。[ 135 ] 使用贝叶斯滤波提供基于混合离散-连续状态空间中机器人路径重建的概率估计。布兰科等人。[ 136] 提出了用于自动生成子图的谱图分区技术。Kawewong 等人。[ 137 ]提出了字典管理,以消除基于 PIRF 提取的室内环路闭合检测的冗余搜索。Sünderhauf 和 Protzel [ 138 ] 提出了 SLAM 的后端公式,使用可切换约束通过制作基础因子图表示的拓扑来识别和拒绝闭环检测期间的异常值。拉蒂夫等人。[ 139 ] 描述了一种基于共识的方法,用于稳健的位置识别,以检测和删除过去不正确的闭环,以处理损坏的地图估计问题。拉蒂夫等人。[ 140] 提出了图 SLAM 的比较分析,其中图节点是通过里程计或位置识别连接的相机姿势。Vallvé 等人。[ 141 ]提出了两种简单的SLAM稀疏化算法,因子下降和非循环因子下降。

          如上述一些工作所示,拓扑SLAM近年来已被修改为度量SLAM作为环路检测。对纯拓扑 SLAM 的研究正在减少。

        6. D.

          标记SLAM

          我们在上面介绍了针对已知和未知环境的基于图像的相机定位研究。此外,还有一些研究使用一些先验环境知识来定位相机,而不是使用标记等 3D 地图。这些作品被认为是半已知环境。

          1991 年,Gatrell 等人。[ 142 ]设计了一个同心圆形标记,在[ 143 ]中用额外的颜色和比例信息对其进行了修改。[ 144 ]在标记中考虑了环信息。Kato 和 Billinghurst [ 145 ] 提出了第一个基于基准标记的增强现实系统,称为 ARToolkit,其中使用的标记是带有简单图形或文本的黑色封闭矩形。Naimark 和 Foxlin [ 146 ] 开发了一种更通用的标记生成方法,将条形码编码成黑色圆形区域以产生更多标记。[ 147 ]提出了一个方形标记。正方形角上的四个圆圈是由 [ 148]. [ 149 , 150 ]提出了一个被黑色和白色块包围的黑色矩形,称为 ARTag 。从四个标记点,Maidi 等人。[ 151 ] 开发了一种混合方法,该方法结合了基于 EKF 的迭代方法和具有姿态参数计算直接分辨率的分析方法。最近,Bergamasco 等人。[ 152 ]提供了一组排列在同心层中的圆形高对比度点。DeGol 等人。[ 153 ] 介绍了一个基准标记、ChromaTag 和一种检测算法,以使用对立颜色来限制和拒绝初始错误检测和灰度。Munoz-Salinas 等人。[ 154] 提出从大量方形平面标记中检测映射和定位问题的关键点。Eade 和 Drummond [ 155 ] 为具有数百个地标的序列提出了实时全局图 SLAM。Wu [ 156 ] 研究了一种不需要匹配的新相机定位标记。

        可持续森林管理

        在 SFM 中,相机姿态计算只是一个中间步骤。因此,在下文中,我们将简要介绍相机定位 SFM。

        在SFM发展的早期阶段,对相对位姿求解的研究较多。其中一项有用的研究是 [ 157 ]中用于五点相对位姿问题的算法,它比其他相对位姿求解器具有更少的退化。李等。[ 158 ]研究了已知垂直方向的多相机系统的相对位姿估计。Kneip 和 Li [ 159 ] 提出了一种新颖的解决方案来计算广义相机的相对位姿。Chatterjee 和 Govindu [ 160 ] 提出了相对 3D 旋转的有效且稳健的大规模平均。文图拉等。[ 161] 提出了一种有效的方法,用于从最小的特征对应集估计多相机装备的相对运动。弗雷德里克森等人。[ 162 ]估计两个相机之间的相对平移,同时最大化内部对应的数量。

        全局姿态研究如下。公园等。[ 163 ]使用参考图像估计地理标记图像的相机方向。卡隆等人。[ 164 ] 调查了 3D 旋转估计的技术。姜等。[ 165 ]提出了一种用于相机姿态配准的全局线性方法。后来,该方法被[ 166 ]和[ 167 ]改进。

        最近,已经开发了混合增量和全局 SFM。崔等。[ 168 , 169 ],通过全局方法估计旋转,通过增量方法估计平移,并提出基于社区的 SFM。朱等。[ 170 ] 提出了从局部增量到全局平均的并行 SFM。

        [ 171 ]中介绍了最近对 SFM 的调查。此外,还有一些关于从单个图像学习深度的研究。从双筒望远镜中,通常可以学习视差图。请参考KITTI数据集网站上排名的相关作品。

        讨论

        从以上技术可以看出,目前对于小规模环境下的PnP问题的研究越来越少。同样,使用传统几何方法对 SFM 进行的研究也很少。然而,对于 SLAM,传统的几何和学习方法仍然很受欢迎。

        使用深度学习进行基于图像的相机定位的研究正在逐渐增加。但在实际应用中,仍采用几何方法居中。深度学习方法可以提供有效的图像特征并补偿几何方法。

        PnP 问题或 SLAM 在大规模环境中的重定位问题尚未得到很好解决,值得进一步研究。对于可靠性和低成本的实际应用,用于定位但以视觉传感器为中心的多个低成本传感器融合是一种有效的方法。

        此外,一些作品研究了其他相机传感器的位姿问题,例如 [ 172、173 ] 中滚动快门相机的对极几何和 [ 174 ] 中的径向扭曲滚动快门直接SLAM 。加列戈等。[ 175 ],维达尔等人。[ 176 ],Rebecq 等人。[ 177 ] 研究了事件相机 SLAM。

        随着 SLAM 的不断发展,也许它开始了嵌入式 SLAM 算法的时代,如 [ 178 ] 所示。我们认为集成各种技术的优点是实用 SLAM 系统的趋势,例如几何和学习融合、多传感器融合、多特征融合、基于特征和直接方法融合。这些技术的集成可以解决当前具有挑战性的困难,例如纹理差的场景、大的照明变化、重复的纹理和高度动态的运动。

        结论

        基于图像的相机定位在虚拟现实、增强现实、机器人等领域有着重要的应用。随着人工智能的快速发展,这些领域已成为高增长市场,备受学术界和工业界的关注。

        我们概述了基于图像的摄像机定位,其中提供了完整的分类。每个分类都进一步划分为类别,相关工作与一些分析一起呈现。同时,以树形结构描述概况,如图 1所示。在树形结构中,当前的热门话题用粗体蓝色边框表示。这些主题包括大数据相机定位、学习 SLAM、多种传感器 SLAM 和基于关键帧的 SLAM。讨论部分还讨论了未来的发展。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Airplay_BCT】Bonjour conformance tests苹果IOT

从Airplay开始&#xff0c;接触到BCT&#xff0c;这是什么&#xff1f;被迫从安卓变成ios用户和开发。。。开始我的学习之旅&#xff0c;记录成长过程&#xff0c;不定时更新 Bonjour 下面是苹果官网关于bonjour的解释 Bonjour, also known as zero-configuration networking, …

pinia实战 购物车(自定义插件实现pinia持久化)

目录 一、实例 二、需求 三. 代码解析 shop.vue shop.ts 四、持久化插件 插件介绍 持久化实现思路 一、实例 二、需求 单选全选功能&#xff0c;并且可以互相联动 小计功能 总计功能 商品加减&#xff0c;数量为零时不能在减 三. 代码解析 shop.vue 1.获取shop模块实…

AttributeError: module ‘lib‘ has no attribute ‘OpenSSL_add_all_algorithms

pip安装crackmapexec后,运行crackmapexec 遇到报错 AttributeError: module lib has no attribute OpenSSL_add_all_algorithms 直接安装 pip3 install crackmapexec 解决 通过 python3 -m pip install --upgrade openssl 或者 python3 -m pip install openssl>22.1.…

YOLOv5/v7 Flask Web 车牌识别 | YOLOv7 + EasyOCR 实现车牌识别

YOLOv7 Flask Web 车牌识别图片效果展示 本篇博文只包含源码以及使用方式,目前不同提供详细开发教程。 YOLOv7 Flask Web 车牌识别视频效果展示 YOLOv7 + EasyOCR 实现车牌识别 什么是Flask? 简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更…

【Opencv实战】几十年前的Vlog火了:黑白老照片如何上色?这黑科技操作一定要知道,复原度超高,竟美的出奇~(图像修复神级代码)

导语 哈喽大家好呀&#xff01;我是每天疯狂赶代码的木木子吖&#xff5e;情人节快乐呀&#xff01; 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 我们都知道&#xff0c;有很多经典的老照片…

云原生时代顶流消息中间件Apache Pulsar部署实操-上

文章目录安装运行时Java版本推荐Locally Standalone集群启动验证部署分布式集群部署说明初始化集群元数据部署BookKeeper部署BrokerAdmin客户端和验证Tiered Storage(层级存储)概述支持分级存储何时使用工作原理安装 运行时Java版本推荐 Locally Standalone集群 启动 # 下载…

Eureka集群搭建教程

前言&#xff1a; 为了提升注册中心稳定性&#xff0c;防止注册中心宕机后&#xff0c;服务不可用的情况&#xff0c;我们可以通过将Eureka注册中心搭建成集群模式&#xff0c;当一台注册中心微服务宕机后&#xff0c;另一台依然可以支持服务的注册与发现。本文将讲解下如何搭…

在Spring-boot中操作MongoDB

MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。在使用spring-boot操作MongoDB数据…

项目介绍 + 定长内存池设计及实现

你好&#xff0c;我是安然无虞。 文章目录项目介绍当前项目做的是什么?技术栈内存池是什么?池化技术内存池内存池主要解决的问题malloc定长内存池学习目的定长内存池设计项目介绍 当前项目做的是什么? 这个项目是实现一个高并发的内存池, 它的原型是 Google 的一个开源项…

C++——哈希3|位图

目录 常见哈希函数 位图 位图扩展题 位图的应用 常见哈希函数 1. 直接定址法--(常用) 这种方法不存在哈希冲突 取关键字的某个线性函数为散列地址&#xff1a;Hash&#xff08;Key&#xff09; A*Key B 优点&#xff1a;简单、均匀 缺点&#xff1a;需要事先知道关键字的…

C语言学习笔记(八): 自定义数据类型

结构体变量 什么是结构体 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构&#xff0c;它称为结构体 结构体的成员可以是任何类型的变量&#xff0c;如整数&#xff0c;字符串&#xff0c;浮点数&#xff0c;其他结构体&#xff0c;指针等 struct Student //s…

streamlit自定义组件教程和组件开发环境配置

About create your own component&#xff1a; you can follow this tutorial streamlit tutorial 重要&#xff01;以下步骤都是在教程的基础上更改的。这个教程做的很棒。 Component development environment configuration&#xff1a; 根据文章 https://streamlit-com…

【iOS】APP IM聊天框架的设计(基于第三方SDK)

【iOS】APP IM聊天框架的设计&#xff08;基于第三方SDK&#xff09; 前言 在开发社交聊天类型的APP的时候&#xff0c;IM是必不可少的功能&#xff0c;而且很多公司的IM服务都是接的第三方的&#xff0c;很少用自研的&#xff0c;国内的IM厂商也都很成熟&#xff0c;本文所有…

基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地

文心大模型,产业级知识增强大模型介绍 官网:https://wenxin.baidu.com/ 文心大模型开发套件ERNIEKit,面向NLP工程师,提供全流程大模型开发与部署工具集,端到端、全方位发挥大模型效能。 提供业界效果领先的ERNIE 3.0系列开源模型和基于ERNIE的前沿任务模型,满足企业和开…

暴力破解(new)

数据来源 本文仅用于信息安全的学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若观众因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与本人无关。 01 暴力破解介绍及应用场景 》暴力破解介绍 》暴力破解字典 GitHub - k8gege/Passwor…

QT(56)-动态链接库-windows-导出变量-导出类

1.导出变量 1.1不使用_declspec(dllimport) _declspec(dllexport) 使用_declspec(dllimport) _declspec(dllexport) 1.2win32 mydllwin32 myexe 1.3win32 mydllqt myexe 2.导出类 使用_declspec(dllimport) _declspec(dllexport) 2.1不用关键…

导出Excel表格(调用后端接口方式)

在开发中我们会遇到导出Excel表格的需求&#xff0c;但是导出分为前端生成和后端生成。前端生成的方式CSDN其他小伙伴已经做出了很多教程&#xff0c;是依赖xlsx插件。但是&#xff0c;今天我讲的是&#xff0c;调用后端接口的方式生成Excel表格。1.调用后端提供的导出接口&…

Doris--简单使用

一、数据表的创建与数据导入 1.1、创建表 1.1.1、单分区 CREATE TABLE table1 (siteid INT DEFAULT 10,citycode SMALLINT,username VARCHAR(32) DEFAULT ,pv BIGINT SUM DEFAULT 0 -- 聚合模型&#xff0c; value column 使用sum聚合 ) AGGREGATE KEY(siteid, citycode, …

【Java】二叉树

一、树形结构 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。它具有以下的特点&#xff1a; 有一个特殊…

IDEA安装ChatGPT插件

ChatGPT&#xff0c;美国OpenAI [1] 研发的聊天机器人程序 [12] &#xff0c;于2022年11月30日发布 [2-3] 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人…