在AR和VR系统的语境中,预测跟踪是指预测物体或身体部位未来的方向和/或位置的过程。例如,人们可以预测头部的方向或手的位置。
Yuval Boger的来宾文章
Yuval是Sensics的首席执行官和OSVR的联合创始人。Yuval和他的团队设计了OSVR软件平台,并构建了OSVR产品的关键部分。他经常在自己的博客上分享自己的观点和知识。
为什么预测跟踪很有用
预测跟踪的一种常见用途是减少视觉延迟,即从运动到其在显示屏上反映出来所需的时间。由于运动本身和关于该运动的信息出现在屏幕上之间存在一定的延迟(稍后会详细说明延迟的来源),使用估计的未来方向和位置来更新显示屏上的数据可以缩短感知到的延迟。
虽然在对虚拟现实应用中非常关注预测跟踪,但在增强现实中也非常重要,尤其是因为观察者可以将现实世界的即时运动与增强现实叠加层进行比较。例如,如果您希望在增强现实头戴设备上显示一个图形叠加层,将其放在您所看到的物理物体的上方,当您旋转头部时,它不会离开物体,使之看起来是现实世界的一部分。可能要使用相机识别该物体,但相机捕捉画面需要时间,处理器需要确定物体在画面中的位置,图形芯片需要渲染叠加层的新位置。通过使用预测跟踪,您可以将叠加层的移动与现实世界进行比较。
预测跟踪的工作原理
如果你看到一辆以固定速度行驶的车,并且想要预测这辆车在一秒钟后在哪里,你可能能够做出相当准确的预测。您知道车辆的当前位置,你可能知道(或可以估计)当前速度,因此您可以推断未来的位置。
当然,如果你将你的预测与车辆在一秒钟后的实际位置进行比较,你的预测不太可能每次都100%准确:车辆可能在此期间改变方向或加速。您试图预测的时间越长,预测的准确性就会越低:预测车辆在一秒钟后的位置可能比预测车辆在一分钟后的位置更准确。
您对车辆及其行为了解越多,您就越有机会做出准确的预测。例如,如果您能够不仅测量速度而且测量加速度,您可以做出更准确的预测。
如果您对被跟踪物体的行为有额外的信息,这也可以提高预测的准确性。例如,在进行头部跟踪时,了解人头的最大旋转速度和常见旋转速度可以改善跟踪模型。同样,如果您进行眼球跟踪,可以使用眼球跟踪信息来预测头部的未来移动(在本文后面讨论)。
延迟来源
VR头盔中的延迟测试器测量了运动到光子的延迟 | Road to VR的照片
进行预测跟踪的需求来自于实际运动和显示屏上反映该运动的图像之间存在延迟。延迟可能来自多个来源,例如:
传感器延迟。传感器(例如陀螺仪)可能带宽受限,无法立即报告方向或位置的变化。类似地,基于相机的传感器可能存在从跟踪物体的光线射到相机传感器上到该帧准备发送给主机处理器之间的延迟。
处理延迟。通常使用某种传感器融合技术结合传感器数据,这也会引入一定的延迟。算法,执行这个算法可能会增加数据接收和算法输出答案之间的延迟。
数据平滑。传感器数据有时会有噪音,为了避免错误抖动,会执行基于软件或硬件的低通滤波算法。
传输延迟。例如,如果使用USB连接设备进行方向感知,那么在主机处理器收集数据和数据传输到USB之间会有一些时间。
渲染延迟。当渲染复杂场景时,处理器需要一些时间来决定在帧上放置每个像素的位置,并在该帧准备好发送到显示器之前。
帧率延迟。例如,如果显示器的工作频率为100Hz,则从一帧到下一帧需要10毫秒的时间。不准确与特定像素绘制时刻的信息可能需要等待,直到下一次绘制该像素到显示器上。
其中一些延迟非常小,但不幸的是所有这些延迟会累加;预测跟踪以及其他技术(如时间扭曲)有助于减少明显的延迟。
预测多久时间之后?
简而言之:取决于情况。您首先需要估计您系统的端到端延迟,然后根据您的喜好优化时机。
可能需要在任何给定时间预测几个时间点之后。以下是一些可能需要的情况的示例:
具有不同端到端延迟的对象。例如,由相机跟踪的手可能比头部跟踪器具有不同的延迟,但都需要在同一场景中同步绘制,因此将使用具有不同“预读”时间的预测跟踪。
在使用单个屏幕(例如智能手机屏幕)同时为两只眼睛提供图像的配置中,通常情况下,一个眼睛的图像相对于另一个眼睛会有半帧的延迟(例如1/60秒的一半,约8毫秒)。在这种情况下,最好使用比延迟的屏幕半帧更长8毫秒的预测跟踪。
常见的预测算法
以下是一些预测跟踪算法的示例:
死 reckoning (Dead reckoning)。这是一个非常简单的算法:如果已知给定时间的位置和速度(或角位置和角速度),则预测位置假定上一个已知位置和速度是正确的,并且速度保持不变。例如,如果上一个已知位置是100单位,上一个已知速度是10单位/秒,则10毫秒之后的预测位置是100 + 10 x 0.01 = 100.1。虽然这个计算非常简单,但它假设上一个位置和速度是准确的(例如不会受到任何测量噪音的影响),并且速度是恒定的。这两个假设通常是不正确的。
卡尔曼预测器。这是基于一种常用的卡尔曼滤波器的算法,该滤波器用于降低系统中的传感器噪音,前提是存在系统操作的数学模型。请参阅此处以获取更详细的卡尔曼滤波器说明。
Alpha-beta-gamma(ABG)。ABG预测器与卡尔曼预测器密切相关,但不太通用且数学较简单。ABG试图连续估计速度和加速度,并在预测中使用它们。因为估计值考虑了实际数据,所以它们提供了一定的测量噪音减少。配置参数(alpha、beta和gamma)可以提供突显响应性而不是噪音减少的能力。
预测跟踪是一种用于减少明显延迟的有用且常用的技术。它提供简单或复杂的实现,需要一些思考和分析,但对于实现低延迟跟踪在当今的虚拟现实和增强现实系统中至关重要。
来自Yuval Boger的更多文章:
了解像素密度和视网膜分辨率
了解双目重叠
虚拟现实中定位跟踪技术概览
0