高级视图:当您第 一次使用 Google ARCore、Apple ARKit 或 Microsoft Mixed Reality 启动 AR 应用程序时,系统对环境了解不多。它开始处理来自各种来源的数据——主要是相机。为了提高准确性,该设备结合了来自其他有用传感器(例如加速度计和陀螺仪)的数据。
基于这些数据,SLAM算法有两个目标:
1. 构建环境地图
2. 在该环境中找到设备
SLAM – 同时定位和建图
为了使增强现实发挥作用,SLAM 算法必须解决以下挑战:
1. 未知空间
2. 不受控制的相机。对于目前基于手机的AR来说,这通常只是单目摄像头。
3. 即时的。
4. 无漂移。
SLAM 剖析
SLAM算法概述
该系统由4部分组成:
1. 传感器数据:在移动设备上,这通常包括相机、加速度计和陀螺仪。它可能会通过 GPS、光传感器、深度传感器等其他传感器进行增强。
2. 前端:第 一步是特征提取,如第 1 部分所述。这些特征还需要与地标相关联——具有 3D 位置的关键点,也称为地图点。此外,需要在视频流中跟踪地图点。
长期关联通过识别以前遇到过的地方(循环闭合)来减少漂移。
3. 后端:负责建立不同帧之间的关系,定位相机(姿势模型),以及处理整体几何重建。一些算法创建稀疏重建(基于关键点)。其他人则尝试捕获环境的密集 3D 点云。
4. SLAM 估计:结果包含跟踪的特征、它们的位置和关系,以及摄像机在世界中的位置。
ORB-SLAM 是一种视觉算法,因此不使用加速度计和陀螺仪的里程计。
ORB-SLAM算法依赖于ORB特征跟踪算法
一般来说,ORB-SLAM 会分析每一帧的关键点。然后将它们与检测到这些关键点的关键帧的引用一起存储在地图中。这种关联很重要;它用于匹配未来的帧并优化先前存储的数据。
将关键点转换为 3D 地标
SLAM 最有趣的部分之一是 2D 相机帧中找到的关键点实际上如何获得 3D 坐标(然后称为“地图点”或“地标”)。
每当算法从相机获取新帧时,它首先执行关键点检测。然后将这些关键点与前一个相机帧进行匹配。到目前为止,相机的运动提供了一个很好的想法,可以在新帧中再次找到相同的关键点;这有助于满足实时要求。匹配产生初始相机姿态估计。
接下来,ORB-SLAM 尝试改进估计的相机姿态。该算法将其地图投影到新的相机框架中,以搜索更多关键点对应关系。如果足够确定关键点匹配,它会使用附加数据来优化相机姿势。
通过对连接帧中的匹配关键点进行三角测量来创建新的地图点。三角测量基于帧中关键点的 2D 位置以及整个帧之间的平移和旋转。最初,匹配是在两个帧之间计算的,但后来可以扩展到其他帧。
环路检测和环路关闭
SLAM 算法中的另一个关键步骤是循环检测和循环闭合:ORB-SLAM 检查帧中的关键点是否与先前检测到的不同位置的关键点相匹配。如果相似度超过阈值,算法就知道用户回到了已知的地方;但途中的不准确可能会导致偏移。
通过将坐标校正从当前位置传播到之前的位置到整个图表,地图将根据新知识进行更新。
SLAM & 谷歌+微软+苹果?
l 谷歌:谷歌描述了 ARCore 使用一种称为并发里程计和地图绘制的过程- 这本质上只是更广泛的术语 SLAM 的另一个名称。该名称还表明他们正在集成用于里程计的惯性传感器。专利中描述了一般架构。关于 SLAM 的维基百科文章提到,Google 正在使用与之前描述的类似的捆绑调整/最 大后验 (MAP) 估计。
l 微软: HoloLens 和 Windows Mixed Reality 中发生的大部分事情都是基于之前针对 Kinect 所做的研究。因此,微软与 SLAM 相关的专利早在多年前就已公布。此外,HoloLens 的新研究模式允许访问 SLAM 算法执行的结果。Microsoft在 GitHub 上提供了一些入门示例,包括 OpenCV 集成。
l 苹果:苹果收购了开发SLAM算法的Metaio和FlyBy。苹果使用视觉惯性里程计/SLAM——因此他们还将摄像头与其他手机传感器结合起来以提高精度。
基于智能手机的增强现实
SIFT 算法对于许多研究课题都很有价值,包括自动汽车导航。因此,提高和扩展质量和性能是一个非常活跃的研究课题。
Paul 等人在“紧耦合单目、双目和立体 VINS 的比较分析” (2017) 中。比较将惯性测量单元 (IMU) 与光学传感器的数据相结合的算法,当今大型商业 AR 框架也是如此。除此之外,他们还将新算法与最 先进的ORB-SLAM2和OKVIS算法进行了比较,发现新算法进一步提高了可靠性和速度。
此外,将语义引入 SLAM 算法的尝试也显示出前景,Schönberger、Johannes L. 等人的“语义视觉定位” (2018 年)就证明了这一点。
当然,AR 系统通常会尝试越来越多地了解环境。虽然 ARKit 和 ARCore 是从跟踪简单平面开始的,但 HoloLens 已经尝试通过空间理解推断更多知识。Apple 通过ARKit 2引入了 3D 对象跟踪。因此,我们看到虚拟对象和真实环境之间的集成得到极大改善。
公众号 扫码咨询
![]() |
上海市闵行区中春路4999号莘庄商务楼1326室 |
![]() |
service@covond.com |
![]() |
www.covond.com |
![]() |
交换机:18017588179(孙经理) 无人机:13311882358(孙总) |