在AR/VR系统里,预测追踪指的是预测物体未来(很短的一个时间,比如几毫秒)的姿态方向或身体的位置。例如,人们可能想要预测头部的方向或手的位置。
为什么预测追踪是有用的?
预测追踪的使用通常是为了减少”运动到图像”之间的延迟。由于运动和显示更新之间有一些延迟,使用估计物体未来的方向和位置来更新显示,可以缩短这个延迟感。
虽然在虚拟现实应用中的预测追踪已被人们所关注,在增强现实中也是非常重要的。例如,如果你正在显示一个图像出现在一个物体的顶部,一种非常糟的情况就是当你已经旋转了你的头部时(AR眼镜戴在头上),这个物体仍然停留在那里。这个物体可能会被摄像头识别,但是它需要时间来扑捉到这个图像,处理器需要判断出物体在图像中的位置,图形芯片来渲染新的图像。通过使用预测追踪,你可以让图像和物体之间的对应关系处理的更好。
如果你看到一辆汽车以恒定的速度行驶,你想预测这辆车下一秒钟的位置,你的预测会相当的准确。你知道车的当前的位置和当前的速度,因此你可以推断出将来的位置(s=vt)。
当然,如果你比较你预测下一秒钟的位置和汽车实际上移动的位置,你的预测不可能每次都是100%准确的,因为汽车可能在这段时间内改变方向或速度。你想要预测未来越远,你的预测就会越不准确。预测一秒钟后的位置比预测1分钟后的位置更加准确。
你越了解这辆车和它的行为,那么你预测的准确度就会越高,例如,如果你能够测量汽车的速度和加速度,那么你的预测就会更加准确。
如果你有更多关于追踪物体的行为信息,就能够提高预测的准确度。例如,当做头部追踪时,理解头部可能旋转的速度以及常见的旋转速度,有利于提高追踪模型。类似的,如果在做眼球追踪,你可以使用眼镜追踪信息来预测头部运动,在这里有所讨论。
延迟源通过预测追踪来减少运动和图像之间的延迟,延迟可能来自多个源头,比如:
○ 检测延迟:传感器(例如陀螺仪)也许会受来自带宽原因,或无法立即上报方向或位置的变化。类似的,基于摄像头的传感器也会有一些延迟,这个是指当相机检测到被追踪物体运动到准备好将这些信息发送到主机之间的延迟。
○ 处理延迟:传感器往往会使用一些融合算法,这些融合算法的执行会增加一些延迟。
○ 数据平滑:传感器数据有时混杂了很多的噪声和抖动,软件或硬件需要添加滤波处理。
○ 传输延迟:例如,如果姿态信息存在于一个USB连接的设备(例如大多数的追踪信息都是在这些头显设备上),这些数据需要通过USB传输到电脑或其他计算单元,这个时间虽然非常的短,但是确实是一个非0的时间。
○ 渲染延迟:当渲染一个场景时,需要花费一些时间来准备图像信息发送给显示设备。
○ 帧率延迟:如果显示设备的刷新率是100HZ,那么每一桢图像之间就有10ms的延迟时间。
如上的这些延迟可能是非常小的,但是他们叠加起来后会带来不小的影响,我们可以使用预测追踪技术,例如,TIme warping,对于减少延迟非常有帮助。
如何追踪未来?这完全依赖于你!你将要预测系统上端到端的延迟,然后将他们优化到你满足的状态。你可能会需要预测一些在将来任一时刻的时间点。
以下是一些你可能需要的情形:
○ 系统中的所有物体,他们之间端到端的延迟时间可能完全不同,例如,摄像头追踪手与头部追踪的延迟时间是不相同的,但是它们都需要在同一个场景中绘制,预测追踪将使用不同的预测时间。
○ 一个简单的屏,例如手机屏,它用来为双眼提供图像信息,它通常情况下是这样的:一只眼镜的图像出现比另一只眼镜出现图像的时间延迟了一半帧的时间(例如 60HZ刷新率的情况下,大概是1/60/2约为8毫秒),在这种情况下,最好使用”向前看”8毫秒以上的预测追踪。
常用预测追踪算法如下是一些常用的预测算法:
• 航位推测法(Dead reckoning):这是一个非常简单的算法。如果在给定的时间内,已知位置和速度(或角度位置和角速度),速度保持不变的情况下,那么预测的位置就是准确的。例如,如果最后一个已知的位置是100个单位,最后一个已知的速度是10单位/s,那么预测未来10毫秒(0.01秒)的位置是:100+10x0.01 = 100.1。这个计算过程非常简单,它假设最后的位置是准确的(例如,没有噪声或干扰),以及速度是恒定的。但是现实情况下这个假设往往是不准确的。
• 卡尔曼预测器:这是基于卡尔曼滤波,用来减少系统存在的噪声的 *** 作。这里可以看到更多关于卡尔曼滤波的信息。
• Alpha-beta-gamma:ABG预测器与卡尔曼预测器相关,但它不完全相同,并且它的数学计算更加简单,我们这里从一个较高层次来介绍。ABG在预测中连续的估算速度和加速度。由于预测值提取自实际数据,所以他们能够减少噪声。配置参数(alpha,beta和gamma)来调整噪声减少的程序。
下面是一些数据组成的图:
总结
预测追踪是一个对减少延迟有效果、常用的技术。它提供简单或复杂的实现方式,需要一些思考和分析,但这些都是值得的!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)