研究员为HoloLens 2 AR引导操作提出鲁棒性更强的姿态追踪
用于AR引导和远程操作的鲁棒目标姿态追踪
(映维网Nweon 2024年05月28日)MR头显越来越多地用于手动任务的指导,包括器械装配、维护和检查、物理治疗和康复、手术指导、甚至运动指导。通过将虚拟内容与真实环境融合,MR可以在完成任务时实现无缝的指导。对于这一点,快速,准确,鲁棒的对象姿态追踪必不可少,尤其是远程操作。
所以,加拿大不列颠哥伦比亚大学着手开发了基于HoloLens 2的六自由度姿态追踪系统,而它对标记遮挡的鲁棒性更强,并且在22 Hz时实现1.77 mm和1.51°的精度。
为了实现这一点,团队使用HoloLens 2的红外摄像头,并详细描述了一种更鲁棒的点对应算法。这是基于点间欧氏距离比较,但使用了一种新颖的voting-based方法。其中,所提出的方法对噪点具有鲁棒性,并且与基于优化的方法不同,它可以只分配确信已知的点子集。
平方根UKF用于姿态估计,并可选择融合来自可能安装在追踪工具的惯性测量单元IMU的数据。这使得追踪系统具有鲁棒性。另外,所描述的SR-UKF模型对于这个应用而言是新颖的,因为它不是直接追踪姿态,而是追踪单个标记位置。通过这种方式,它更适合标记位置是输入而不是姿态本身的HoloLens 2等系统,
姿态追踪管道
下面列举了基于HoloLens 2的姿态追踪的整体处理流程:
-
使用HoloLens的2个传感器确定潜在的标记位置
-
移除异常值并找到清晰点对应关系
-
找出剩余的点对应关系
-
平方根无损卡尔曼滤波Square-Root Unscented Kalman Filters(SR-UKF)测量更新
-
从SR-UKF状态计算姿势
SR-UKF以更高的速率运行和执行状态更新。另外,IMU读数以更高的速率进入并执行自己的测量更新。整个过程如图1所示。
本系统所需的唯一硬件是微软HoloLens 2和一组红外反射标记。在实验中,四个红外标记在空间上排列在一个刚体中,使得每对标记之间的距离是唯一的。对于姿态计算,至少需要三个标记,但可以使用更多标记以获得更好的结果。
在SolidWorks CAD软件中设计刚体并进行3D打印,然后将CAD模型中已知的几何形状用于追踪算法。对于应用中需要精确追踪超声换能器,所以在不失去方法通用性的情况下,将标记物附着在3D打印的的假超声探头之上,如图2所示。
HoloLens 2有两对用于SLAM的立体灰度摄像头和一个前置深度摄像头。深度摄像头可以在两种模式下操作。由于其较好的速率和精度,采用了AHAT模式。深度摄像头返回ToF深度图像和红外反射率图像,这两个图像都可以通过HoloLens 2 Research Mode API访问。在发现API中的参数对设备不准确后,研究人员单独计算自定义外部参数。
为了测试IMU融合,将内置IMU的超声探头力传感器的定制印刷电路板放置在假探头上。陀螺仪读数通过UART到USB转换器传输到桌面PC,并以大约60 Hz的最小延迟(< 10 ms)通过WebSocket连接发送到HoloLens。标记识别和3D位置提取的主要步骤如图3所示。
利用二值化阈值和轮廓检测来寻找标记点。通过确定轮廓面积a和周长c,并计算k = 4πa/c2,对检测到的轮廓进行圆度滤波。k值接近1是一个完美的圆,并设置阈值以去除非圆形轮廓。标记点在图像平面上的位置确定为闭合轮廓的质心。然后通过查询深度图像中的坐标来获得深度值。利用摄像头的intrinsic参数和深度值,将图像平面坐标转换为三维点,最后通过extrinsic参数和HoloLens 2 SLAM功能将图像平面坐标转换为世界帧坐标。尽管由于环境中随机物品的反射,偶尔会测量到“幽灵”标记(“幽灵”标记随后在预处理中移除),但实验表明这个方法非常可靠。
为了在部分遮挡的情况下获得更好的数值稳定性和鲁棒性,团队使用了四个标记。然而,使用下面描述的UKF,如果可以确定对应关系,则可以使用少于三个测量标记提供测量更新。这将要求标记是可单独识别的。
由于采用蒙特卡罗采样,粒子滤波的计算量较大,所以采用卡尔曼滤波。由于动力学是非线性的,需要采用Extended Kalman Filter(EKF) 或UKF。EKF依赖于关于工作点的动力学线性化,其精度较低,并且需要显式计算雅可比矩阵。所以,团队提出了一种用于姿态追踪的SR-UKF。
为了追踪对象,遵循n个标记,而不是对象本身的姿态。这减轻了与传播方向相关的问题。欧拉角和类似的表示具有奇异性,旋转矩阵很快失去正交性。四元数是有效的,但追踪标记位置允许研究人员执行刚体约束,并给出部分测量更新。
为了开发和测试卡尔曼滤波器的功效,团队使用了两种方法。首先,使用Simulink在MATLAB中对系统进行了仿真。将一系列随机加速度和角加速度应用于已知的几何点,并进行积分以获得真实的运动。从信号中提取模拟IMU和标记位置测量值,并添加零均值高斯噪点以匹配真实系统。将幽灵点以概率Pp添加到每个测量中,并移除标记。
第二种测试方法是使用实际硬件。运行Unity应用程序的Microsoft HoloLens 2执行所有追踪和处理,获得图2中的齐次变换t,而外部NDI Polaris Spectra光学追踪器用于ground truth值(Tpt)。在HoloLens和Polaris的视场范围内放置了一个带有3D打印结构的超声波探针形假人,假人拥有四个红外反射标记。
另外,在HoloLens的前面放置一个带有四个红外标记的结构,在它面对Polaris设备的地方,计算到Polaris的配准。HoloLens的空间映射和定位实现了从HoloLens帧到世界帧的转换。
为了比较测量值Tht和ground trut值Tpt,有必要计算从HoloLens帧到放置在HoloLens的标记的变换。结果发现,两种系统的反应几乎相同。下面显示的所有结果都是物理系统记录的数据。所有数据都记录了时间戳,以便HoloLens和Polaris之间进行校准和直接比较。对齐数据开始后,重新采样,使HoloLens和NDI测量值在每个样本中对齐。
两者之间的误差是通过取两个信号之间逐元差的均方根RMS来计算。为了计算信号之间的延迟,Polaris数据以编程方式读取,同一程序通过与HoloLens的WebSocket连接定期交换时间戳。
这使得HoloLens和连接到Polaris的PC之间的时钟同步成为可能。HoloLens测量的滞后可以通过找到使同步HoloLens和Polaris信号之间的归一化互相关最大化的时间延迟来计算。
结果
首先对姿态追踪系统进行单独测试,不使用卡尔曼滤波器。与NDI光学追踪器相比,平均位置RMS误差为3.01 mm,旋转误差的平均RMS欧拉角表示为1.75°。位置和旋转在所有轴上的平均误差为0.00 mm。位置和四元数追踪如下图所示。
在不接收IMU数据的情况下,对卡尔曼滤波器进行隔离测试。手工应用,追踪和记录一系列随机的平移和旋转。与NDI光学追踪器相比,HoloLens追踪器的位置均方根误差为1.77 mm。使用欧拉四元数表示的均方根角误差为1.51°。位置和旋转在所有轴上的平均误差为0.00 mm。位置和四元数追踪如下图所示。
这反映了误差分布的方差比没有滤波时更低,两者都以零为中心。从观察来看,没有卡尔曼滤波器的噪点明显更大,但滞后要小得多。卡尔曼滤波允许使用动态模型在连续测量之间进行插值,所以可以有更高的测量率,这对远程操作很重要,但平滑会引入滞后。
可以通过调整σ值来改变平滑,在噪点和滞后之间进行权衡。滤波器的噪点抑制特性如下图所示。
除了精度之外,追踪系统的一个关键方面是对象运动的鲁棒性。即便对象旋转或平移或标记部分或短暂遮挡,它都应该保持追踪。为了测试这一点,在所有轴上进行了一系列大幅运动和众多完整的360度旋转,其中标记周期性地短暂遮挡。测量的姿态绘制在下图中。
在测试过程中,视觉系统在10000帧测量中成功地找到了98.63%的正确姿态。在移除其中一个标记后,重复测试,在10000帧测量中,找到了96.04%的正确姿态。结果表明,在任何运动中,即使没有IMU融合,追踪对遮挡的鲁棒性都很好。
从目前的结果来看,正常运行时不需要陀螺仪。基于视觉的卡尔曼滤波追踪本身就能很好地工作。即使是严重到足以使基于视觉的系统失去追踪的遮挡都非常罕见,通常最多只导致几帧丢失。
然而,如果操作员必须将探头保持在导致长时间遮挡的位置,则陀螺仪可以增加鲁棒性,因为它将继续追踪。另外,IMU采样率可以高于计算机视觉系统,允许更频繁的测量更新。通过测试发现,典型的手部运动在追踪过程中足够慢,视觉系统的采样率是足够的。实际上,人手用于施加力的带宽约为7 Hz,而视觉系统运行在22 Hz。视觉系统因此超越了奈奎斯特的手部运动速率。
所以,以更高的速率添加IMU数据并不能显著提高追踪精度或速度。
另一方面,当标记物被人工遮挡较长时间时,IMU融合极大地改善了遮挡过程中的方向追踪。如下图所示。
简单来说,团队介绍了一种基于HoloLens 2的六自由度姿态追踪系统。系统包括新的、高效的点对应方法和新颖的SR-UKF与IMU融合,它们共同提供准确、快速、鲁棒的追踪。
上表将主要结果与之前的研究进行了比较。对于模拟系统和物理系统,团队使用了完全相同的算法和参数,一次用MATLAB编写,一次用c#编写。但在c#中实现时,他们发现特定方法可能在数值上不稳定。即使MATLAB实现在给定相同输入的情况下产生合理的输出,c#有时都会在Cholesky更新步骤中给出NaN或Inf值。
要处理这种情况,只需忽略失败的Cholesky更新,并使用更新之前的值。研究人员发现这并不影响滤波器的性能。在25000次up/downdate计算中,失败了16次(0.06%)。追踪点的方法同时允许在多个遮挡标记的情况下进行更智能的测量更新。如果标记是单独可识别的,例如通过比较它们在帧率较高的帧之间的位置,或者通过使用不同颜色或不同频率的活动标记等,则测量更新步骤依然可以在只有一个或两个标记可见的情况下执行,从而对探头位置和方向具有很强的约束。
遗憾的是,使用当前的标记和点对应方法,至少需要三个标记。IMU融合可以在两个或多个标记物长时间遮挡时保持大致的方向追踪。但如果不使用加速度计数据,则无法改善位置追踪。
未来的研究将包括提高系统的测量速率。目前,HoloLens应用程序是在Unity实现,其运行频率仅为60 Hz,所以对追踪速度施加了硬性限制,并增加了大量开销。用c++编写整个应用程序可以提高速度。HoloLens应用程序的另一个限制是,Research Mode API仅与ARM64处理器兼容,而对MR应用程序有用的库,如用于高效通信的WebRTC,则仅适用于32位ARM处理器。
相关论文:Robust Object Pose Tracking for Augmented Reality Guidance and Teleoperation
总的来说,加拿大不列颠哥伦比亚大学的团队提出了一种使用红外标记和传感器的六自由度对象姿态追踪算法和实现,其精度为1.77 mm和1.51°,实际测量率为21.75 Hz。在更快的摄像头硬件条件下,理论上可实现的频率为75.49 Hz。
相关算法具有抗追踪丢失的能力,在从大运动中测量的数据中计算姿态的成功率为98.63%。在视觉追踪长期丢失的情况下,IMU融合包括一个SR-UKF以继续追踪方向。所述方法的准确性、速度和鲁棒性使得基于混合现实的远程操作和高保真反馈能够用于远程制导或人机交互系统。