Facebook如何用AI打造Oculus Insight内向外追踪系统
最先进的计算机视觉(CV)系统和视觉惯性即时定位与地图构建(SLAM)
(映维网 2019年08月24日)为了充分发挥虚拟现实和增强现实的潜力,这项内向外追踪技术需要支持在任何地点适应用户所在的空间及其在真实环境中的移动方式。当Facebook开发首款无线VR一体机Oculus Quest的时候,这家公司就明白设备需要实现精确的实时位置追踪功能,亦即意味着它必须紧凑和高能效。
Facebook在2018年的Oculus Connect大会及后续的博文中已经分享了不少关于Oculus Insight的细节。随着搭载这项尖端技术的Quest和Rift S已经正式发售,Facebook希望向我们介绍研驱动Oculus Insight的人工智能系统。下面是映维网的具体整理:
Oculus Insight标志着消费者AR/VR设备首次实现了无线缆约束的六自由度头显和控制器追踪。Facebook团队是从零开始构建Oculus Insight堆栈,并且利用了最先进的计算机视觉(CV)系统和视觉惯性即时定位与地图构建(SLAM)。
Oculus Quest头显中的摄像头和追踪传感器
Oculus Insight能够以每毫秒的速度为头显和控制器计算精确的实时位置,从而可以将用户的动作转化至VR,并带来逼真的临场感。它利用SLAM来追踪头显位置,并通过Constellation追踪系统来确定控制器位置。为了提高系统的位置追踪精度和响应时间,Oculus Insight的CV系统同时融合了头显和控制器的多个传感器输入。
1. 用SLAM生成实时地图和追踪数据
学术领域在过去数十年间已经对SLAM技术进行了大量的研究,但这项技术是直到最近才开始成熟并足以满足消费者应用,如无人驾驶汽车和移动增强现实。Facebook曾为移动设备发布了针对AR的SLAM技术,其可通过单个摄像头和惯性测量单元(IMU)来确定智能手机位置并启用“世界锁定”内容(数字内容视觉锚定真实对象)。Oculus Insight属于第二代产品,它集成了多个IMU数据,超广角摄像头和红外LED组合的更多信息,可共同追踪VR头显和控制器的六自由度位置。
为了确定对象相对于给定空间内其他对象的位置,Oculus Insight系统利用了定制的硬件架构和先进的计算机视觉算法,包括视觉惯性映射,位置识别和几何重建。这种新颖的算法堆栈能够支持VR设备精确定位其位置,识别房间几何形状的各个方面(如楼层位置),并确定头显和控制器相对于由Oculus Insight生成并不断更新的3D映射的位置。这一过程所涉及的数据主要来自Quest和Rift S内置的三种传感器:
- IMU的线性加速度和旋转速度数据,可以支持系统以低延迟确定设备的方向和位置。
- 头显摄像头的图像数据有助于生成房间的3D映射和精确定位相关标记,如家具角落或地板图案。通过重复监测所述标记,Oculus Insight能够补偿漂移(IMU的常见挑战,小幅度的测量差异能够随时间推移而不断累积,从而造成位置定位不准确)。
- 头显摄像头监测控制器的红外LED,可帮助系统限制由多个IMU引起的控制器位置漂移。
当用户移动时,Oculus Insight将检测高对比度图像中的像素,比方说窗角。随着时间的推移,系统将逐图像地追踪和关联高对比度图像区域。给定足够长的监测基线,Oculus Insight可以对周遭环境中每个点的3D位置进行三角测量。这构成了系统3D环境映射的基础。
SLAM的首个主要应用是机器人技术,特别是早期的自动驾驶车辆。所述的用例依赖于大量的计算资源(多个车载PC),以及昂贵(导航级IMU)和高耗能(如3D激光雷达系统)的传感器。近来,工程师们推出了允许SLAM支持较低性能硬件的技术,包括用于游戏和AR滤镜效果的智能手机。尽管基于智能手机的增强现实可以接受丝许的延迟或定位误差,但对于消费者SLAM用例,无线VR需要前所未有的速度和精度。这是因为对于手持式AR,3D效果只占据用户整体视场的一小部分,并且为了减少延迟内容可以进行时间同步。相比之下,VR内容占据了用户的整个视场,系统需要以匹配用户的移动速度进行响应。所以对VR而言,任何潜在的定位错误都会更加明显,并且显著增加了Insight支持Oculus Quest和Rift S的难度。
通过自动识别环境中的特征,SLAM能够解决所述挑战,并允许Oculus Insight将玩家的当前位置整合到VR世界之中。Insight同时利用了具有动态阻尼的外推功能来帮助预测用户头部和手部在未来几毫秒的移动位置。这存在大量的优势,包括减少抖动等视觉卡顿问题(衡量追踪系统的关键指标之一)。为了实现舒适的VR体验,追踪应该要维持在亚毫米范围内。在大多数环境中,Insight已经超出了这个目标。
要实现沉浸式体验,另一个需要避开的主要问题是延迟。物理运动和对应虚拟运动之间的任何延迟都会降低现实感。通过利用低延迟的IMU数据,以及预测用户未来运动的运动模型,Oculus Insight能够有效消除明显的延迟。我们将在下一节中介绍包含SLAM数据的传感器融合过程,但减少抖动和延迟是Insight实现高水平真实感能力的核心。
SLAM同时存在其他更微妙的优势,如帮助减少所谓的“Swimminess”,即因物理运动没有正确转化至相应VR运动而导致的失向感,如用户挥剑时剑刃挥舞的速度过快或穿行距离过远。这个问题与由延迟造成的迟滞运动不同,而Insight能够依靠高追踪精度来避免因真实运动和虚拟运动之间的差异所引起的Swimminess。
2. 通过动捕和设备模拟提高精度
要构建一个能够解决如此广泛的潜在问题的系统,并且将其纳入至能够满足消费者市场需求的产品,这意味着需要解决同样广泛的技术挑战。大多数挑战与两个目标相关:精度和效率。
精度的某些方面很容易量化,例如为帮助减少抖动所达到的亚毫米级追踪精度。但对于其他方面(如Swimminess),至少有一部分原因是基于用户的主观感受。例如,网球拍的挥舞可能看起来太快或太远,但基于传感器的测量不一定会将其记录作为一个错误。量化,以及最终弥合物理运动和虚拟运动之间的差距需要一种全新的衡量方法。
Facebook的解决方案是,对由OptiTrack摄像头阵列采集的动捕数据与传感器数测量据进行深入的分析。Facebook在工作室及员工家里设置了这种用于好莱坞视觉特效制作的摄像头阵列。 OptiTrack系统将追踪被试的头显和控制器的照明器。这使得Facebook能够计算Quest和Rift S用户的精确Ground-Truth三维位置,然后团队将所述测量值与Oculus Insight的位置追踪算法进行比较。根据OptiTrack动捕数据和Insight位置数据的潜在偏差,工程人员对算法进行微调。通过在数百个具有不同照明,装饰和房间大小的环境中(所有这一切都会影响Oculus Insight的精度)进行测试,Facebook大大优化了系统。
除了利用物理测试环境外,Facebook同时开发了可以重放数千小时的录制视频数据,并在查看给定视频序列时标记系统性能变化的自动化系统。由于Quest基于移动芯片组,所以团队构建了一个模拟移动设备性能的模型,并用服务器计算机运行(如Facebook数据中心的计算机)。这使得Facebook能够进行大规模的重放,并产生代表Quest实际性能的结果,然后他们能够在头显条件的约束下优化Insight的算法。
3. 设计极高效的CV
精度对Insight的位置追踪很重要,但前所未有的CV效率同样如此。Oculus Quest需要以相当于PC和主机的分辨率和帧速率渲染实时高端图形,而在某些情况下的分辨率和帧速率甚至高于PC和主机,而Quest需要以低于PC或主机两个量级的功耗实现这一点。另外,设备同时需要运行实时SLAM和控制器追踪系统。要凭比现代PC低了计算量级,总功耗低两个量级,以及内存和带宽显著更少的系统中支持所有这一切,这毫无疑问是一项重大的系统挑战。
没有一种能够简化这种计算管道的方法,而团队为此进行了多线程调整,其中一系列的操作都是异步发生。
Oculus Insight实时处理多个数据线程:映射器线程修改映射;将更新副本发送到追踪器线程,后者利用camera帧来估计映射器提供的帧的姿态;IMU线程利用IMU的测量来更新SLAM状态。
例如,Facebook采用了包含异步映射更新的Quest专用数字信号处理优化,这允许系统根据用户环境的变化来而在后台进行优化和更新映射。同时,IMU数据在更高优先级的线程运行,而输出则存储在共享内存缓冲区中,从而能够最大限度地减少系统延迟。
4. 空间AI的未来
Oculus Insight是无线AR/VR技术的基础,同时为Quest用户提供了高能效,高定位精度的无线体验,使得他们能够自由在游玩空间中畅玩VR的乐趣,同时能够避开现实世界的障碍。对于探索SLAM的研究人员,以及任何能够受益于低功耗,高精度房间映射的系统而言(如数字助理和物理机器人),Facebook的这项研究可能会产生广泛的影响。
Facebook的长期愿景是将空间AI技术融入至他们正在构建的所有联网设备和平台,而这个系统正是其中的一部分。到目前为止,Facebook的空间AI应用程序包括Oculus Insight(它证明了这种方法可以支持消费者应用),以及Facebook Reality Labs为Replica数据集创建的逼真三维重建。但这项技术的未来是具有空间意识的全天候可穿戴AR眼镜。这个目标意味着Facebook需要解决运行SLAM的更多挑战,包括进一步减少延迟并将功耗降低至头显SLAM所需的2%。清除所述障碍将需要硬件方面创新,以及AI的进步,从而进一步优化合成多个传感器输入的过程。这个项目的最终目标是实现不仅更具沉浸感,同时能够融入至物理世界的AR和VR体验。