政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页:政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏: 零基础玩转各类开源AI项目

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

本文解析的原始论文为:https://arxiv.org/abs/2404.19619

论文的开源项目如下: 

GitHub - Xinyu-Yi/PNP: A real-time human motion capture system based on 6 IMUs, upgrading PIP through the incorporation of non-inertial forcesA real-time human motion capture system based on 6 IMUs, upgrading PIP through the incorporation of non-inertial forces - Xinyu-Yi/PNPicon-default.png?t=N7T8https://github.com/Xinyu-Yi/PNP项目地址为:Physical Non-inertial Poser


感谢论文原作者对开源世界作出的贡献。

解析如下:

论文题目

物理非惯性 Poser (PNP):稀疏惯性人体运动捕捉中的非惯性效应建模 。

现有的惯性运动捕捉技术使用人体根坐标框架来估计局部姿势,并默认将其视为惯性框架。我们认为,当根坐标系具有线性加速度或旋转时,根坐标系在理论上应被视为非惯性系。在本文中,我们通过根据物理学原理精心设计的自动回归估计器,对非惯性框架中不可忽略的虚构力进行建模。有了虚力,与力相关的 IMU 测量(加速度)就能在非惯性框架中得到正确补偿,从而满足牛顿运动定律。在这种情况下,加速度与身体运动之间的关系是确定的、可学习的,我们训练一个神经网络对其进行建模,以获得更好的运动捕捉效果。此外,为了用合成数据训练神经网络,我们开发了一种 IMU 仿真合成策略,以更好地模拟 IMU 硬件的噪声模型,并允许调整参数以适应不同的硬件。这种策略不仅能利用合成数据建立网络训练,还能建立校准误差模型,以处理不良的运动捕捉校准,从而提高系统的鲁棒性。

1.介绍

人类动作捕捉是一个长期以来的研究兴趣。动作捕捉技术的演变不断为电影、动画、游戏、体育和康复等各个领域带来新的可能性。

几十年来,使用密集光学标记的MoCap(动作捕捉)[Vicon [n. d.]]一直是准确性的黄金标准,但它在系统设置方面成本昂贵,由于对周围环境的脆弱性,需要专用的工作室。随着惯性感测技术的进步,基于惯性测量单元(IMU)的MoCap开始出现。与光学解决方案相比,基于IMU的系统具有经济适用性,并且不受遮挡、可见性或光照的影响。这些优点使它们在无约束的录制环境中适用。虽然基于密集IMU的MoCap已经工业化[Noitom [n. d.]; Xsens [n. d.]],但使用稀疏IMU的开创性工作也取得了有希望的MoCap质量[Huang等,2018; Jiang等,2022b; von Marcard等,2017; Yi等,2022年,2021年]。通过将IMU数量从17个减少到仅6个,该系统变得适用于终端用户,并且在捕捉过程中显著提高了用户的舒适度。由于IMU已经集成到智能手机、手表和耳机等常见智能设备中,使用稀疏IMU的MoCap是朝着日常动作理解的稳步进展[李和朱2024年;Mollyn等2023年]。

然而,我们发现之前基于IMU的方法(如Huang等,2018; Jiang等,2022b; Yi等,2022年,2021年)中存在一个物理缺陷,导致无法重建一些具有挑战性的动作。我们将这个缺陷描述如下。为了便于建模和计算,MoCap的任务通常被分解为两个组成部分:根相对姿势估计和全局运动集成。为了估计局部姿势,之前的方法首先根据从根IMU读取的旋转矩阵将IMU测量值从世界坐标系变换到人的根坐标系。由于世界坐标系是一个惯性坐标系,只有在根坐标系也是惯性的情况下,这种变换才是物理上正确的。

然而,在人体运动过程中,根坐标系通常是非惯性的,因为根关节不断经历加速度和旋转。在这种情况下,将IMU测量值从惯性世界坐标系投影到非惯性根坐标系需要引入虚拟力,如离心力和科里奥利力[陆地和利夫希茨,1976年],以补偿IMU传感器的原始加速度测量值。在以前的工作中,忽略这些力在变换过程中导致了"错误"的加速度测量值,这些测量值在非惯性根坐标系的角度来看与实际的局部运动不匹配。因此,以前的模型无法很好地学习加速度与人体运动之间的关联,并且实际上丢弃了大部分加速度信息,正如以前的研究所报道的那样[Huang等,2018年; Yi等,2021年]。虽然这些工作仍然可以只使用IMU的方向测量来估计许多局部姿势,但是在处理特定动作时会遇到困难,其中方向读数几乎不变,动力学只能从加速度中观测到,例如抬手或抬腿而不旋转它们。

在本文中,我们明确地对由世界到本地转换引发的虚拟力进行建模,以修正局部姿态估计中的IMU加速度读数。需要注意的是,虚拟力并不是真实的力,而是用于数学上描述非惯性参考系中物体运动的力[Landau and Lifshitz 1976]。我们的方法严谨地涉及到在人体的非惯性根坐标系中计算虚拟力。在此基础上,我们设计了一种新颖的自回归神经估计器,该估计器还将与数学公式中虚拟力相关的变量作为输入,以有效地建模补偿力。通过在非惯性根坐标系中进行正确加速度的监督学习,神经估计器成功地整合了物理和数据驱动方面,使其能够捕捉虚拟力的动态特性。随后,将该力用于调制IMU的原始加速度测量。这种创新方法使我们的模型能够学习和利用加速度进行运动估计,从而实现超越以往研究范围的跟踪能力。

虽然在模拟力模型中理论上可以提高捕捉性能,但它隐含地需要大量的配对真实加速度信号和地面真值姿势进行训练,这对整个研究社区来说很难获得。目前,大多数先前的方法首先在大型动作捕捉数据集上使用合成传感器测量值训练模型,然后在较小的真实数据集上对模型进行微调[Huang et al. 2018; Yi et al. 2022, 2021]。这些方法通过直接使用已知人体姿势的旋转矩阵等地面真值运动测量值来合成传感器输入。这种方法是次优的,因为建模旋转的真实世界噪声非常困难,并且这些噪声模式将因不同的IMU制造商的不同固件算法而异。因此,领域差距仍然深深地影响着它们在真实世界中的运动捕捉质量。为此,我们提出了一种新方法,直接合成原始IMU信号(即线性加速度、角速度和磁场测量值),并使用我们的传感器融合算法获得最终的运动测量值。通过利用硬件层面的噪声模型[Mur-Artal and Tardós 2017; Qin et al. 2018],我们可以使用经过检验的一组噪声参数生成更接近实际使用情况的信号。当用户已经知道其传感器的噪声参数时,这尤其有用。最后,我们对惯性动作捕捉中的T-Pose标定引入的校准误差进行建模。与假设IMU校准完美的先前方法不同,我们将这些误差纳入到我们的合成IMU测量中,从而显著减小了在真实世界使用中的误差。

总之,我们的主要贡献包括: • 物理非惯性姿势估计器(PNP),通过增强对稀疏惯性测量单元(IMUs)的实时人体运动估计,特别是对于像抬手或抬腿这样以加速度为主的动作。 • 虚拟力建模通过神经自回归估计器来实现,该估计器学习了从建模非惯性人体根坐标系产生的物理上正确的虚拟力。 • 通过模拟进行IMU测量合成,从动作捕捉数据中生成更加真实的IMU信号,同时考虑传感器噪声和校准误差。

2.相关工作

通过身体穿戴传感器进行动作捕捉

在本节中,我们介绍了使用身体装备传感器进行的先前动作捕捉工作。根据传感器类型,这些工作可以分为两组:使用外部站点提供全局位置的6DoF跟踪器,和没有任何位置信息的IMUs。

6DoF跟踪器广泛应用于虚拟现实系统,如头戴式显示器和手持控制器。通过在捕捉的空间中放置基站或红外摄像头,这些跟踪器可以提供位置信息和方向信息。许多研究使用稀疏的6DoF跟踪器探索人体全身跟踪,配置范围从在末端和根部放置6个跟踪器[Ponton等人,2023年],到在上半身放置4个跟踪器[Yang等人,2021年],甚至只使用3个跟踪器用于手部和头部(通常是头戴式设备(HMD)加两个手持控制器)[Ahuja等人,2021年;Aliakbarian等人,2022年,2023年;Castillo等人,2023年;Dittadi等人,2021年;Du等人,2023年;Jiang等人,2023年,2022a;Shin等人,2023年;Ye等人,2022年;Zheng等人,2023年]。一些研究将基于物理的模拟技术纳入其中,以确保捕捉到的动作的物理正确性[Lee等人,2023年;Winkler等人,2022年;Ye等人,2022年]。尽管这些技术取得了有希望的结果,但它们在定位方面受到外部设备的限制。外部设备的校准不便,捕捉环境受限。因此,这些方法不适用于在开放世界中进行长距离捕捉,如户外移动。

虽然使用6DoF跟踪器依赖于外部站点或摄像机,但使用IMU允许无限制的运动。IMU可以测量方向和加速度,而不需要外部设备,但它们不能提供定位信息。由于缺乏位置信息,对于基于IMU的MoCap方法来说,充分利用方向和加速度至关重要。当前的商业解决方案[Noitom [n.d.]; Xsens [n.d.]]将密集的IMU集成到紧身套装中,这种套装不舒服,具有侵入性,并且阻碍用户的运动。最近的研究主要关注使用较少的IMU进行MoCap。为了解决由于减少IMU而导致的姿势歧义,一些研究[Liang等人2023; Pan等人2023; Pons-Moll等人2010; Yi等人2023]使用额外的外部或自我中心硬件辅助捕捉。在下文中,我们只讨论纯IMU方法。SIP [von Marcard等人2017]首次提出了通过离线优化仅从6个IMU重建人体姿势的方法。DIP [Huang等人2018]通过使用深度递归神经网络将该技术进一步扩展到实时性能。虽然该方法只提供局部姿势,但TransPose [Yi等人2021]通过限制脚地接触来估计全局平移。最先进的作品PIP [Yi等人2022]和TIP [Jiang等人2022b]从两个方面改进了TransPose:PIP采用基于物理的优化来确保捕捉到的运动在物理上是合理的,而TIP采用transformer架构[Vaswani等人2017]来提高跟踪精度。虽然这些作品展示了有希望的结果,但它们的姿势估计组件主要依赖于方向信号,不能正确利用加速度读数,正如DIP和TransPose所报道的。因此,它们无法跟踪加速度相关的动作,如举手,这些动作仅通过稀疏IMU的方向无法识别。在这项工作中,我们引入了一种新的物理模型,以正确的方式利用加速度信息。

虚拟IMU测量生成

虽然MoCap数据集很丰富,但大多数只包含干净流畅的人类动作,没有原始的IMU信号。在以前的工作中[Huang et al. 2018; Yi et al. 2022, 2021],通过在MoCap序列上放置虚拟IMU,计算出合成的IMU测量值。然而,即使在小型真实数据集上进行了微调,这些模型仍然存在合成理想IMU与真实世界嘈杂IMU之间的域差距。合成虚拟IMU测量是这个任务的关键。在[Huang et al. 2018]的开创性工作中,方向测量是从骨骼方向合成的,而加速度测量是通过对IMU位置应用有限差分得出的。然而,后续的工作[Jiang et al. 2022b; Yi et al. 2022, 2021]发现,由有限差分产生的加速度测量在合成和真实信号之间存在显著差异。为了解决这个问题,[Yi et al. 2021]和[Yi et al. 2022]增加了有限差分算法中的步长,以平滑数值,而[Jiang et al. 2022b]建议使用滑动窗口的均值滤波器来减小合成和真实数据之间的差距。然而,它们都无意中丢弃了加速度中的高频细节,这直接关系到快速和突然的运动。另一方面,合成和真实IMU测量之间的差异仍然存在,因为没有考虑传感器噪声和校准误差。虚拟IMU测量的生成也在其他任务中进行了探索,例如从视频中进行人体动作识别[Kwon et al. 2020; Rey et al. 2019]或运动序列[Takeda et al. 2018; Xiao et al. 2021]。在本文中,受[Kwon et al. 2020; Young et al. 2011]的工作启发,我们直接合成原始的IMU信号来模拟真实世界中的传感器噪声,并引入校准误差模型来进一步改进结果。

3.方法

我们的目标是从6个惯性测量单元(IMUs)上的叶节(前臂、小腿、头部)和根节(骨盆)估计实时人体动作。我们系统的输入包括IMU测量,包括加速度、角速度和方向。我们系统的输出是局部姿势和全局运动。接下来,我们首先介绍我们的新系统(第3.1节),该系统在非惯性坐标框架中引入了虚拟力,然后解释我们如何合成逼真的IMU数据(第3.2节)来提供我们的模型。查看图2和图4以获取概述信息。

图2. 我们动作捕捉方法的概述。首先,我们在非惯性根帧中估计虚构力(灰色,左侧)。然后,我们将IMU测量值从世界坐标系转换到根帧,以估计局部姿势,同时考虑虚构力(绿色)。接下来,我们根据姿势和IMU来估计人体的全局运动(紫色)。最后,我们使用基于物理的优化器来优化人体运动(灰色,右侧)。

3.1 框架设计

从IMU测量中估计人体运动是具有挑战性的,因为传感器信号中存在局部运动和全局运动之间的固有耦合。为此,我们的方法将人体局部姿势和全局平移估计分解为单独的任务,与以前的工作相似[Yi等,2022年,2021年]。为了估计局部姿势,我们根据根关节上的传感器的方向读数将IMU测量从全局坐标系转换为根关节相对坐标系。尽管全局坐标系是惯性的,但由于身体运动,根坐标系通常是非惯性的。当从惯性坐标系将IMU测量,特别是加速度信号,投影到非惯性坐标系时,需要引入虚构的力进行补偿。尽管以前的工作忽略了它们,但在第3.1.1节中,我们解释了在我们的方法中如何对这些虚构力进行建模。然后,在第3.1.2节中,我们介绍了我们的方法如何使用校正后的加速度估计局部姿势和全局运动。

3.1.1 虚拟力建模。

在非惯性的人类根坐标系中,虚构力将影响惯性测量,并在估计根相对人体姿势时必须加以考虑(图3)。形式上,我们将根关节的加速度和角速度分别表示为𝒂𝑅𝑅 1和𝝎 𝑅𝑅。人体根帧中的任何叶子关节𝐿,其位置为𝒑 𝑅𝐿,速度为𝒑¤ 𝑅𝐿,受到一个虚构力𝒇fic的作用:

𝒇 fic = −𝑚(𝒂𝑅𝑅 + [𝝎 𝑅𝑅 ] 2× 𝒑 𝑅𝐿 + 2[𝝎 𝑅𝑅 ] × 𝒑¤ 𝑅𝐿 + [ 𝝎¤ 𝑅𝑅 ] × 𝒑 𝑅𝐿 ), (1)

其中,𝑚是质量,[·] × 是向量叉乘的斜对称矩阵。虚拟力由四个项组成,即线性惯性力、离心力、科里奥利力和欧拉力[Landau和Lifshitz 1976],对应于方程式1中的项。读者可以参考补充论文来推导这一结果。这个方程表明,从根坐标系观察时,叶节点的加速度并不等于在惯性世界坐标系中评估的原始IMU测量值。相反,它经历了由虚拟力𝒇 fic 引起的额外加速度。我们将这个额外加速度称为虚拟加速度。

图3. 说明了在人体局部姿势估计中建模非惯性效应的必要性。没有虚假加速度的情况下,两种不同的运动(左图)在根框架中具有相同的加速度观测值(中图),而考虑虚假加速度后可以正确观测到加速度(右图)。

在接下来的内容中,我们解释了如何计算任意叶节点的虚拟加速度。如公式1所示,虚拟加速度取决于根节点的加速度𝒂𝑅𝑅和角速度𝝎 𝑅𝑅,以及叶节点的位置𝒑 𝑅𝐿和速度𝒑¤ 𝑅𝐿。虽然根节点的项可以从相应的IMU中读取,但叶节点的项不直接由传感器测量并且必须使用估计的身体姿态来计算。我们使用自回归神经网络来估计加速度,而不是手动从公式1计算虚拟加速度。网络的输入包括根节点动力学和叶节点动力学。根节点动力学包括加速度𝒂𝑅𝑅、角速度𝝎 𝑅𝑅和角加速度𝝎¤ 𝑅𝑅。叶节点动力学包括位置𝒑 𝑅𝐿、速度𝒑¤ 𝑅𝐿、加速度𝒂𝑅𝐿和方向𝑹 𝑅𝐿。请注意,叶节点的位置和速度是从前一帧估计得到的,网络隐式学习将这些值转移到当前帧。所有这些值都被连接成一个向量作为网络的输入,输出为相应叶节点的虚拟加速度𝒂 fic = 𝒇 fic /𝑚。在实践中,我们为所有5个叶节点使用一个融合网络,即输入是根节点和所有叶节点的动力学,而输出是它们的虚拟加速度。我们将估计器实现为一个使用L2损失训练的全连接神经网络。为了监督训练,我们从动作捕捉数据中合成虚拟加速度的真实值。

图4. 我们IMU综合方法的概述。我们首先从低帧率(60FPS)的动作捕捉数据中合成每个IMU的6DoF轨迹(位置和方向)。然后,我们从轨迹中计算原始高帧率(180FPS)的IMU信号,包括加速度、角速度和磁场测量。在给原始信号添加传感器噪声之后,我们进行IMU融合以获得方向测量。最后,我们模拟一个T-pose校准过程,将校准误差添加到传感器读数中。

我们使用网络计算虚拟加速度,而不是基于公式1的原因有三点考虑。首先,我们需要网络根据前一帧的数值预测未知的叶节点位置和速度。其次,根节点的角速度容易受到测量噪声的影响,可以通过利用网络来减轻这种影响。第三,公式1是分别计算每个叶节点的虚拟加速度,而网络可以同时估计所有叶节点的虚拟加速度,结合人体运动先验知识。

3.1.2 本地姿态和全局运动估计。

通过估计虚构的加速度𝒂 fic,我们现在可以正确地将输入IMU测量转换为人体的根帧,用于本地姿态估计。形式上,输入是由{𝑹 𝑅𝐿, 𝒂𝑅𝐿 + 𝒂 fic}组成的连接向量,其中包含了叶节点关节旋转矩阵和非惯性根框架中的加速度。按照[Yi et al. 2022, 2021]的方法,我们首先估计叶节点关节位置𝒑 𝑅𝐿,然后估计所有关节位置,最后估计所有关节旋转。这是通过使用3个长短期记忆(LSTM)递归网络[Hochreiter and Schmidhuber 1997]进行的,其中IMU输入上有跳跃连接[Yi et al. 2022, 2021]。叶节点关节位置𝒑 𝑅𝐿的中间估计,以及通过有限差分计算的其时导数𝒑¤ 𝑅𝐿,将被反馈给虚构力估计器,以供下一帧使用。

对于全局平移估计,我们遵循[Yi et al. 2022]的方法,通过回归关节速度和足地接触概率来实现。需要注意的是,与本地姿态估计不同,全局运动估计不需要虚构力,因为我们通过回归相对于静止世界框架的全局运动,而该框架是一个惯性参考框架。最后,我们执行基于物理的运动优化,以确保捕捉到的运动的物理正确性,就像[Yi et al. 2022]中所描述的那样。

3.2 数据综合

由于缺乏包含真实IMU测量的MoCap数据,我们使用MoCap序列合成原始IMU信号以便于网络训练。以前的研究(Huang等人,2018年;Yi等人,2022年,2021年)使用简单的方法生成合成数据,并且在微调后在真实数据上表现良好。然而,对于本研究来说情况并非如此,因为它更依赖加速度测量来建模虚构力,而加速度由于其对数据采样率和噪声模型的敏感性而更难合成。因此,在本研究中,我们重新审视硬件和噪声模型,以合成更真实的训练数据。具体而言,我们首先从世界坐标系中的低帧率动作捕捉数据合成IMU的6DoF(位置和方向)轨迹(第3.2.1节)。然后,根据6DoF轨迹在高帧率下求解低级IMU信号,对求解出的信号添加噪声,并将这些信号融合以合成IMU测量值(第3.2.2节)。最后,我们对T-pose校准期间引入的校准误差进行建模,以便在训练中使用合成测量值(第3.2.3节)。正如实验证明的那样,我们精心生成的训练数据大大提高了最终结果。

注释。以下我们单独考虑每个IMU,并且所有IMUs都遵循相同的过程。我们首先定义几个坐标框架。我们将运动捕捉数据的世界坐标框架表示为𝑊;换句话说,数据集中的所有姿势和平移都是在𝑊框架中表示的。我们将IMU传感器的坐标框架表示为𝑆,它是固定在IMU设备上的坐标框架。我们将IMU的世界坐标框架表示为𝐼,它是由传感器制造商指定的坐标框架,用于指示传感器的全局方向;换句话说,IMU的输出方向只是相对于𝐼框架的方向,表示为𝑹 𝐼𝑆,遵循第3.1.1节中概述的下标规则。最后,我们定义了人体骨骼框架𝐵,它是固定在人体的骨骼段上的框架。这个框架对于IMU始终附着在身体的骨骼上是有用的。

3.2.1 6DoF轨迹生成。

利用SMPL(Loper等人, 2015)人体模型,我们使用MoCap序列(Mahmood等人,2019)重建具有全局平移的人体网格。对于每个IMU,我们选择一个骨骼上的一个顶点作为其安装位置,并计算其位置和方向,如下:

𝒑𝑊 𝑆 = 𝒑𝑊 𝐵 + 𝑹𝑊 𝐵 𝒑 𝐵𝑆 ,(2)
𝑹𝑊 𝑆 = 𝑹𝑊 𝐵 𝑹 𝐵𝑆 .(3)

这是一个理想情况,而在实际捕捉过程中,传感器将在安装点周围略微移动,包括平移 𝛿𝒑 𝐵𝑆 和旋转 𝛿 𝑹 𝐵𝑆 ,这些被建模为个别的随机游走噪声。考虑到这些因素,我们传感器的6自由度轨迹位置和方向 {𝒑˜ 𝑊 𝑆 , 𝑹˜ 𝑊 𝑆 } 变为:

𝒑˜ 𝑊 𝑆 = 𝒑𝑊 𝐵 + 𝑹𝑊 𝐵 (𝒑 𝐵𝑆 + 𝛿𝒑 𝐵𝑆 ),
𝑹˜ 𝑊 𝑆 = 𝑹𝑊 𝐵 𝑹 𝐵𝑆 𝛿 𝑹 𝐵𝑆 .

3.2.2 IMU模拟。

从IMU中获得的方向读数并非直接由硬件测量,而是使用制造商的算法从其他低级信号计算得出。虽然之前的研究[Huang et al. 2018; Jiang et al. 2022b; Yi et al. 2022, 2021]直接合成方向测量,但我们提议模拟原始信号,包括加速度、角速度和磁场测量,并自行使用IMU融合算法。为了训练神经网络,这种模拟方法允许我们模拟并结合具有数学基础的真实世界噪声。接下来,我们详细介绍了从合成的6DoF轨迹{ 𝒑˜ 𝑊 𝑆 , 𝑹˜ 𝑊 𝑆 }中生成前述低级信号的方法。

虚拟加速度模拟。在这里,我们合成加速度 𝒂。由于IMU传感器中的加速度计操作速率高于我们的动作捕捉数据的帧率,我们需要在动作捕捉数据的三倍帧率(180fps)上合成加速度,以模拟真实传感器行为。在这种情况下,有限差分方法不适用,因为它无法保持全局平滑性。我们设计了一种基于能量优化的新型加速度合成算法,其表达为:

在这里,𝑖 ∈ {1, 2, · · · , 𝑚 − 1}表示𝑚帧序列中的原始帧标签,𝑗 ∈ {1, 2, 3}表示两个原始帧之间的上采样本地时间戳,𝒑˜ 𝑖, 𝒗𝑖 𝑗,和𝒂𝑖 𝑗是IMU在帧𝑖或帧𝑖 𝑗的全局位置、速度和加速度(这里我们省略了(𝒑˜ 𝑊 𝑆)𝑖,(𝒗𝑊 𝑆)𝑖 𝑗和(𝒂𝑊 𝑆)𝑖 𝑗中的参考帧下标以简洁起见),Δ𝑡是上采样后的时间间隔,𝜆𝑝,𝜆𝑣和𝜆𝑎是能量项的系数,·prev检索先前时间戳的值。这个能量优化旨在找到最佳复制原始低帧率IMU轨迹(公式6中的第一和第二项)的高帧率加速度序列,同时使变化率最小(公式6中的最后一项)。这受到了[Flash和Hogan 1985]的研究启发,该研究发现人体运动的特点是加速度的变化率最小。

虚拟陀螺仪模拟。在这里,我们合成角速度𝝎。与虚拟加速度计模拟类似,我们基于另一种能量优化定义合成陀螺仪的本地角速度。

其中𝑹˜ 𝑖和𝝎 𝑖 𝑗分别表示帧𝑖和帧𝑖 𝑗中IMU的方向和局部角速度,Log:SO(3)→ R3将Lie群中的旋转映射到向量空间,而Exp:R3→ SO(3)将向量空间中的旋转映射到Lie群,𝜆𝑅和𝜆𝜔是两个权重项。该能量优化旨在找到最好复制低帧率IMU方向(第一个方程中的第一项)并具有最小变化率(第一个方程中的最后一项)的高帧率局部角速度序列。

虚拟磁力计模拟。真实磁力计通常以与我们的动作捕捉数据相同的帧率工作,因此无需上采样。我们假设x轴是北方向,并将其转化为传感器坐标系,以获得每帧的磁场测量值𝒎𝑖。

IMU融合。在这个阶段,我们将合成的加速度计、陀螺仪和磁力计测量融合起来,以估计传感器的方向。与[Qin et al. 2018]类似,我们将测量噪声视为传感器偏差和加性噪声,分别由随机游走和高斯白噪声建模。这些噪声被采样并添加到原始传感器信号中,以得到带噪声的测量值。然后,我们实现了一种利用误差状态卡尔曼滤波器[Sola 2017]的先进传感器融合算法,加入零速度更新(ZUPT)[Skog et al. 2010]检测来更新状态。读者可以参考[Sola 2017]中的算法。传感器融合之后,我们得到了在我们的算法中定义的IMU世界坐标系中的IMU方向𝑹 𝐼𝑆,表示为:

3.2.3 标定误差建模。为了训练动作捕捉网络,我们需要将模拟的IMU方向𝑹 𝐼𝑆(IMU世界坐标系中的传感器方向)转换为实际的骨骼方向𝑹𝑊 𝐵(世界坐标系中的骨骼方向),其公式为:

对于合成数据,两个矩阵是未知的:𝑹 𝐵𝑆表示每个传感器相对于身体的位置,𝑹 𝐼𝑊表示IMU全局坐标系相对于运动捕捉世界坐标系的旋转(见图4)。实际上,对于真实数据,这两个矩阵通常是通过T型姿势校准确定的,在该校准中,被试以已知的T型姿势站立,然后估计出这两个矩阵[Huang et al. 2018; Yi et al. 2021]。然而,由于被试无法完美地执行T型姿势,校准步骤中会存在误差。因此,在这项工作中,在数据合成过程中,我们通过在应用公式9之前对两个矩阵𝑹 𝐼𝑊和𝑹 𝐵𝑆施加随机噪声来模拟这种校准误差。

4.实验

在本节中,我们介绍实现细节(第4.1节)。然后,我们将我们的方法与最先进的稀疏IMU运动捕捉方法进行比较(第4.2节),并评估我们方法的关键贡献(第4.3节)。最后,我们讨论我们的局限性(第4.4节)。还请在补充视频中查看更多结果。

4.1 实施细节

网络。我们的方法包括6个神经网络,包括一个用于虚拟力估计的全连接网络,以及5个用于本地姿态和全局运动估计的循环网络,参考[Yi et al. 2022]。虚拟力估计器包含4个隐藏宽度为512的层,由ReLU激活,并通过Adam优化器进行优化[Kingma and Ba 2014]。

数据综合。在6DoF轨迹生成中,我们将传感器滑动误差𝛿𝒑 𝐵𝑆建模为从10 −2 m的误差期望开始,以10 −3 m/s的速度逐渐增加。旋转误差𝛿 𝑹 𝐵𝑆建模为从零误差开始,以10 −2 rad/s的速度逐渐增加。这些值是根据经验设置的。在IMU模拟中的能量优化中,我们设置𝜆𝑝 = 1,𝜆𝑣 = 0.5,𝜆𝑎 = 1.3,𝜆𝑅 = 1和𝜆𝜔 = 1。在校准误差建模中,我们将摄动设置为𝑹 𝐼 𝑀和𝑹 𝐵𝑆,分别为0.01和0.1弧度。根据[Campos et al. 2021]2设置IMU噪声参数。

硬件和性能。我们的方法在没有GPU的Intel(R) Core(TM) i7-12700H CPU的笔记本电脑上以60fps的实时速度运行。在实时演示中,我们使用来自Noitom的PN Lab传感器[Noitom [n. d.]]。我们的框架是使用Pytorch [Pytorch [n. d.]]实现的,基于物理的优化是使用刚体动力学库(RBDL) [Felis 2017]实现的。IMU融合算法是用C++实现的,优化问题则使用稀疏最小二乘解算器[Paige和Saunders 1982]来求解。

数据集。数据集包括DIP-IMU [Huang et al. 2018]、TotalCapture [Trumble et al. 2017]和AMASS [Mahmood et al. 2019]。我们按照之前的工作[Jiang et al. 2022b; Yi et al. 2022]来划分训练集和测试集。值得注意的是,TotalCapture有两种不同的校准方式。在[Trumble et al. 2017]中提供的官方校准(称为官方校准)有较大的校准误差,为12.1度,而在同一数据上进行的[Huang et al. 2018]的校准(称为DIP校准)具有较低的校准误差,为8.6度。由于这两个版本只有校准不同,我们使用它们来检验方法对校准的鲁棒性。

图5:与先前作品的定性比较。这些例子是从TotalCapture [Trumble et al. 2017]数据集中挑选的。

(a)对虚构加速度的定性评估。 

(b) 对提出的IMU合成方法进行定性评估。

图6. 对所提出的(a)虚构加速度和(b)IMU合成方法进行定性评估。 (a)我们在TotalCapture数据集的序列中绘制了关节位置误差,并比较了在两个选定时间间隔内重建的运动。 (b)我们在同一序列下可视化了在小型和大型校准误差(DIP校准 vs. 官方校准)下的预测运动。

表1:与之前工作的定量比较结果。我们采用了两个版本的TotalCapture:官方校准版本的IMU输入在校准误差上比DIP校准版本大。

图7. 与先前工作的翻译比较。我们绘制了全局位置误差累积曲线,与真实行驶距离相对应。更低的曲线表示漂移更小。

4.2 对比分析

我们将我们的方法与稀疏IMU的最新方法进行比较,包括DIP [Huang等,2018年],TransPose [Yi等,2021年],TIP [Jiang等,2022b年]和PIP [Yi等,2022年]。在评估局部姿势准确性时,我们将根关节的位置和方向与真实值对齐,并使用与[Yi等,2022年,2021年]相同的指标,包括:

• SIP错误(◦ ):髋部和肩部的全局旋转误差。
• 角度误差(◦ ):所有关节的全局旋转误差。

• 位置误差(cm):所有关节的位置误差。

• 网格误差(cm):姿势化的SMPL网格的顶点误差。

• 抖动(103 m/s3 ):所有关节相对于世界的平均加速度变化率。

姿势比较结果见表1。我们的方法在姿势准确性方面始终优于先前的工作,在TotalCapture数据集上的网格误差减少19%,在DIP-IMU数据集上减少4%。由于所有这些方法都是在DIP-IMU数据集上训练的,我们在TotalCapture数据集上的显着改进表明我们的方法具有更好的泛化能力,这要归功于我们精心合成的训练数据。虽然我们的方法的抖动略大于PIP,但这并不意味着我们的系统不稳定,而是更敏感于加速度并更精确地捕捉动作。如图5和补充视频所示,我们的方法忠实地重建了大的运动,而其他方法则过于平滑。这一改进来自我们在非惯性参考系中利用校正加速度。我们将估计的平移与以前的工作进行比较,如图7所示。与以前的工作相比,我们的方法显示出最低的全局位置漂移,因为平移估计算法严重依赖于估计的姿势。

表2. 对虚构加速度(FicAcc)和IMU合成(SynIMU)进行评估,使用2种不同的校准:官方校准(较高的校准误差)和DIP校准(较低的校准误差)。

4.3 评估

在本节中,我们评估了我们的主要贡献:用于修正加速度的虚拟力和新颖的IMU合成方法。在第一个消融研究(无SynIMU)中,我们使用[Yi et al. 2022]的合成数据训练我们的模型,该数据不考虑低级IMU信号和校准误差。在第二个评估(无FicAcc)中,我们排除了虚拟力估计,这意味着叶结点的加速度被天真地投影到根结点框架中,并与根结点的加速度相减,类似于[Yi et al. 2022]。

在第三个评估(无归一化)中,加速度被转换到根结点框架中,但没有减去根结点的加速度。在第四个评估(使用公式1计算FicAcc),我们使用公式1的解析计算替换了神经虚拟加速度估计器。这些变体在TotalCapture数据集上使用官方校准和DIP校准进行了测试。如表2所示,我们的完整方法通常更好。我们和无FicAcc之间的数值差距不太明显。这是因为建模虚拟力对于处理具有大加速度和最小方向改变的模糊运动特别有益,而这些运动只占数据集的一小部分,从而稀释了定量数据。我们通过图6(a)来证明这一点,在该图中选择了一个测试数据序列。

虽然大部分时间两种方法的误差相同,但在一些模糊运动中,加速度对于姿态估计是必要的,例如,抬手和抬腿,如图中所示,两种方法之间的差异变得很大。我们进一步注意到,在表2中,使用原始IMU合成方法(无SynIMU)的变体在不同的校准下存在巨大差距,而我们的方法表现始终良好。我们在图6(b)中展示了定性比较。我们的完整方法对校准误差具有鲁棒性,因为我们在生成训练数据时明确地对其进行建模。此外,我们在图8中直接比较了不同IMU合成方法产生的加速度。与以前的方法相比,我们合成的加速度与实际传感器测量值非常相似。

图8. 对使用不同方法进行的合成加速度测量结果进行比较,包括DIP方法[Huang等,2018年],PIP方法[Yi等,2022年]和本文提出的方法。底部图显示了从数据集中获取的真实传感器的IMU加速度。DIP中的加速度合成方法导致过多的抖动,而PIP的方法倾向于过度平滑加速度。相比之下,我们的合成加速度最准确地反映了真实传感器的行为。

4.4 限制

我们的IMU合成技术假设磁场是均匀且恒定的。然而,在现实世界中,磁场扰动很常见,我们的方法对磁场变化的适应能力较弱。本研究仅关注姿态估计,并假设所捕捉到的对象处于平均形态中,而在现实世界中,姿态和形状在IMU测量中是耦合的。最后,我们只考虑了平坦的地面,不支持上下楼梯行走。

5 结论

这项工作提出了一种新颖的方法,可以从稀疏的惯性测量单元(IMU)实时捕捉动作。据我们所知,这是第一项对非惯性效应进行建模的工作,这种效应对加速度测量的影响是不可忽视的。通过训练一个自回归网络来估计虚拟力并调节IMU加速度,我们的方法更好地利用加速度信息来捕捉具有挑战性的姿势。我们进一步提出了一种IMU合成方法,充分考虑了真实的IMU硬件噪声和校准误差,以生成更加真实的数据。通过缩小合成数据和真实数据之间的差距,我们的模型具有更好的泛化能力。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

有容微ASW3642 HDMI或者DP双向切换器,二进一出,一进二出支持4K60HZ分辨率

ASW3642描述: ASW3642 是一款 12 通道 1:2 或 2:1 双向多路复 用器/ 多路解复用器。 ASW3642 可由 2.6V 至 4.5V 的电源供电,适用于电池供电的应用。该器 件的导通电阻(R ON )较低并且 I/O 电容较小, 能…

Nginx配置详细解释:(1)全局配置

自启动安装nginx:前面博客有解释 systemctl stop firewalld setenforce 0 [rootNode1 ~]#:mkdir /data [rootNode1 ~]#:cd /data [rootNode1 data]#:yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel [rootNode1 data]#:wget http://nginx.o…

JMeter工具介绍

Jmeter功能概要 JDK常用文件目录介绍 Bin目录:存放可执行文件和配置文件 Docs目录:是Jmeter的API文档,用于开发扩展组件 printable_docs目录:用户帮助手册 lib目录:存放JMeter依赖的jar包和用户扩展所依赖的Jar包 修…

linux mtd分区应用操作sample之某分区擦除

什么是擦除? 把flash相关的区域数据bit置为1的过程 #include <mtd/mtd-user.h> #include <mtd/mtd-abi.h> struct erase_info_user {__u32 start; // 起点 __u32 length; //长度 块大小对齐 不然报参数失败 };struct erase_info_user64 {__u64 sta…

wandb安装与使用 —— 用于跟踪、可视化和协作机器学习实验的工具

文章目录 一、wandb简介二、wandb注册与登陆&#xff08;网页&#xff09; —— 若登录&#xff0c;则支持在线功能三、wandb安装与登陆&#xff08;命令行&#xff09; —— 若不登录&#xff0c;则只保留离线功能四、函数详解4.1、wandb.init() —— 初始化一个新的 wandb 实…

Vivado的两种下载安装方式:Webpack下载与安装、本地文件安装详细步骤讲解

目录 1.前言2. Vivado Webpack下载、安装3.本地文件下载安装 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 本人自本科大二开始接触FPGA相关知识&#xff0c;现已将近六年&#xff0c;由于一直在上学&#xff0c;也不是一直在搞FPGA&#xff0c;但是也完成过一些项目…

【线性表】顺序存储和链式存储的实现

文章目录 顺序存储链式存储单向链表循环链表 线性表的定义 (1)概念定义&#xff1a;用数据元素的有限序列表示叫做线性表&#xff1b;线性表中数据元素的类型可以为简单类型&#xff0c;也可以为复杂类型。许多实际应用问题所涉的基本操作有很大相似性&#xff0c;不应为每个具…

Day02 设计首页导航条

设计首页导航条 导航条的样式&#xff0c;主要是从Material DesignThemes UI 拷贝过来修改的,项目用了这个UI组件库。就看项目需要什么&#xff0c;就去源码拷过来使用。 直接下载源码&#xff0c;编译运行就可以看到Demo 了 下载后且正常编译成功了&#xff0c;是能正常跑起来…

如何使用Python绘制出好看的小提琴图、箱形图、散点图、山脊图和柱状图

如何使用Python绘制出好看的小提琴图、箱形图、散点图、山脊图和柱状图 废话不多说&#xff0c;今天给大家分享一个&#xff0c;使用python绘制小提琴图、箱形图、散点图、山脊图和柱状图等等 图中的数据是随机生成的&#xff0c;图例&#xff0c;图注以及坐标题目各种信息&a…

javascript之对象属性配置

属性标志&#xff1a; 介绍&#xff1a; 对象属性&#xff0c;除 value 外&#xff0c;还有三个特殊的特性&#xff0c;也就是所谓的“标志”&#xff1a; 属性truefalsewritable值可以被修改只可读的enumerable被在循环中列出不会被列出configurable此属性可以被删除/修改 不可…

从头开始构建GPT标记器

从头开始构建GPT标记器 对于GPT Tokenizer&#xff0c;论文《Language Models are Unsupervised Multitask Learners》中介绍了一种字节级编码作为LLM的标记化机制&#xff1a; The vocabulary is expanded to 50,257. We also increase the context size from 512 to 1024 to…

python3.8环境下安装pyqt5

1.实验目的 测试python可视化工具包pyqt5,为后期做系统前端页面做铺垫 2.实验环境 1.软件 anaconda2.5 pycharm2024.1.1 pyqt5 2.硬件 GPU 4070TI Intel I7 1400K 3. 安装步骤 (base) C:\Users\PC>conda -V conda 23.7.4(base) C:\Users\PC>conda create qttest p…

基于卷积-小波神经网络的SAR图像海冰变化检测方法(MATLAB R2018A)

海冰是冰冻圈的重要组成部分&#xff0c;海冰的变化信息对航行安全和自然资源开采等非常重要&#xff0c;许多船舶没有加固防冰设备&#xff0c;因此&#xff0c;必须避开所有的冰区。尤其当冰压很高时&#xff0c;即使破冰船也很难在冰层中前行。为了安全航行&#xff0c;获取…

ctfshow-web入门-爆破(web21-web24)

目录 1、web21 2、web22 3、web23 4、web24 1、web21 爆破什么的&#xff0c;都是基操 需要认证才能访问 随便输一个用户名和密码抓包看看&#xff1a; 多出来一个认证的头 Authorization: Basic YWRtaW46MTIzNDU2 base64 解码看看&#xff1a; 就是我们刚才输入的用于测…

JVM之【运行时数据区2——堆】

三、堆&#xff08;Heap&#xff09; 1、什么是堆 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;堆&#xff08;Heap&#xff09;是用于动态分配内存的区域。在Java程序运行时&#xff0c;所有对象和数组都是在堆中分配内存的。堆是Java内存模型的重要组成部分&…

云计算-云基础设施的配置 (Provisioning Cloud Infrastructure)

AWS CloudFormation (AWS CloudFormation) 它是一项服务&#xff0c;允许我们自动建模和配置所需的AWS资源。可以使用模板来实现这一目的。这个模板基本上是用JSON或YAML格式编写的。AWS CloudFormation会根据模板描述的内容来实施资源的配置和管理。我们可以成组配置和管理一组…

MySQL—函数—日期函数(基础)

一、引言 接下来讨论和学习关于函数的第三个方面——日期函数。 常见的MySQL当中的日期函数。 注意&#xff1a; 1、CURDATE()&#xff1a;cur&#xff1a;current 当前的&#xff0c;返回的是当前日期。 2、CURTIME()&#xff1a;当前时间。 3、NOW&#xff1a;当前的日期和…

一、实现一个简单的 Google Chrome 扩展程序

目录 &#x1f9ed; 效果展示 # 图示效果 a. 拓展程序列表图示效果&#xff1a; b. 当前选项卡页面右键效果&#xff1a; c. 拓展程序消息提示效果&#xff1a; &#x1f4c7; 项目目录结构 # 说明 # 结构 # 文件一览 ✍ 核心代码 # manifest.json # background.j…

Unity中帧动画素材的切割设置

有几个问题&#xff0c;美术在给我们帧动画的时候&#xff0c;一般都是给一个比较大的图&#xff0c;然后进行切割成多个sprite&#xff0c;导入到animation中 一般来说&#xff0c;进行那个autoSlide&#xff0c;自动切割就可以了 这个自动切割的图片会沿着有像素的最小包围…

内网-2(代理)

一、代理概述 1、代理服务器(proxy server)&#xff1a;代理网络用户去取得网络信息&#xff0c;介于浏览器与web服务器之间的一条服务器。 注&#xff1a;为了方便&#xff0c;以下用B来代表浏览器的主机&#xff0c;S来代表服务器的主机。 2、正向代理和反向代理 正向代…