在谈论AR和VR系统时,预测性追踪是指预测对象或身体部位的未来方向和/或位置的过程。 例如,人们可能想要预测头部的方向或手的位置。
尤瓦尔·博格(Yuval Boger)是Sensics的执行总监兼OSVR的联合创始人。尤瓦尔与他的团队设计了OSVR的软件平台。他经常都会在自己的博客上分享他的观点和经验。下面是 来自尤瓦尔的分享。
1. 为什么预测性追踪很有用
预测性追踪的一个常见用途是减少“运动到光子”延迟,这意味着运动到运动之间的时间,以及运动呈现在显示器上的时间。由于运动到运动之间存在部分延迟,当关于运动的信息最终投影在屏幕上时,将预测的未来方向和位置作为更新屏幕的数据可以有效缩短感知延迟。
虽然人们十分关注针对虚拟现实应用程序的预测性追踪,但这项功能对增强现实也是非常重要,尤其是因为存在用户在现实世界的瞬时移动,以及需要与增强现实的数字覆盖进行比较。比方说,你需要将数字影像叠加在物理对象中,这一数字叠加“锁定”于物理对象将会变得尤为重要。摄像头或许能识别对象,但摄像头捕捉一帧需要时间,处理器确定对象位于一帧的位置需要时间,显卡渲染数字叠加的新位置也需要时间。借助预测性追踪,你可以减少数字叠加相对于真实世界的运动。
2. 预测性追踪是如何工作的
如果你看到一辆汽车以恒定的速度行驶,并且想要预测一秒钟后汽车的位置,那么你可能会做出相当准确的预测。你知道汽车的当前位置,你可能还知道(或估计)当前的速度,因此你可以推断一定时间后的汽车位置。
当然,如果将你的预测与在一秒后的实际情况进行对比,你的预测不太可能每次是100%准确:在这段时间里,汽车可能改变方向或速度。预测时间的越短,预测就越准确:预测汽车在一秒钟后的位置可能比预测在一分钟后的位置更 。
你对汽车及其行为的了解越多,预测准确的机会就越大。例如,如果你不仅知道汽车速度,而且还知道加速度,你将可以进行更准确的预测。
如果你有关于追踪对象行为的其他信息,这也可以提高预测精度。比如在进行头部追踪时,用户头部可能的旋转速度和常用的旋转速度可以改善追踪模型。同样,如果你正在进行眼动追踪,你可以使用眼睛追踪信息来预测头部追踪(在本文后面讨论)。
3. 延迟的原因
之所以需要执行预测性追踪的原因在于,实际运动到运动之间存在一些延迟,以及将该运动的图像呈现在显示器上需要时间。延迟的来源包括很多,如:
· 感应延迟:传感器(例如陀螺仪)可能会因为带宽限制而不会立即报告方向或位置变化。类似地,在摄像头传感器上的像素接收到来自追踪对象的光和当该帧准备好发送到主处理器之间,基于摄像头的传感器可能会出现延迟。
· 处理延误:传感器数据通常会根据某种传感器融合的算法组合在一起,而执行该算法会在接收数据和算法输出答案之间增加延迟。
· 数据平滑处理:传感器数据有时存在噪声点,为避免错误的抖动,需要执行基于软件或基于硬件的低通算法。
· 传输延迟:例如,如果使用USB连接的设备进行方向感知,主机处理器的数据收集和通过USB传输数据之间需要一段时间才能完成。
· 渲染延迟:对于渲染复杂的嘲,处理器需要一定时间才能决定将每个像素放置在一帧上的位置,以及该帧何时准备好发送到显示器。
· 帧速率延迟:例如,如果显示器的帧率为100Hz,那从一帧到下一帧的时间为10毫秒。
其中一些延迟非常小,但所有一切都会加起来,从而出现较大的延迟。预测性追踪以及诸如时间扭曲的其他技术有助于减少延迟。
4. 预测时间的长短
答案是:视情况而定。你需要把预测系统端到端的延迟作为起点,然后根据喜好优化时间。
你可能需要在任何给定的时间内预测未来的几个时间点。以下是部分原因:
部分对象具有不同的端到端延迟。例如,与头部追踪器相比,通过摄像头追踪手部可能会出现不同的延迟,但两者都需要在同一嘲中同步绘制。
在使用单屏幕(例如智能手机屏幕)来为双眼提供图像的配置中,通常情况下一只眼睛的图像相对于另一只眼睛会出现半帧延迟(例如1/60秒的一半) ,或约8毫秒)。
5. 预测性算法的共性
以下是部分预测性追踪算法:
航位推测法:这是一个非常简单的算法。如果在给定时间已知位置和速度(或角位置和角速度),预测位置会假设最后已知位置和速度正确,同时速度保持不变。例如,如果最后一个已知位置为100单位,最后一个已知速度为10单位/秒,则未来10毫秒的预测位置是100 + 10 x 0.01 = 100.1。虽然这是非常简单的计算,但它假定最后的位置和速度是准确的(例如不受任何测量噪声),速度是恒定的。然而,这两个假设往往并不正确。
〃尔曼预测:这是基于流行的卡尔曼滤波器。卡尔曼滤波器是一种用于时变线性系统的递归滤波器。这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差。
Alpha-beta-gamma预测:ABG预测与卡尔曼预测密切相关,但不常见,而所需数学更简单。ABG会不断地估计速度和加速度,并将其用于预测。由于估算值会参考实际数据,因此它们可以测量部分噪声点。配置参数(alpha,beta和gamma)提供了强调响应的能力,而非降噪。
预测性追踪是一种有效的常用技术,通常用于减少延迟。它提供了简单或复杂的实施方法,同时需要一些思考和分析。但对今天VR和AR系统实现低延迟追踪来说,预测性追踪至关重要。
投稿邮箱:chuanbeiol@163.com 详情请访问川北在线:http://www.guangyuanol.cn/