当前位置: 首页 > news >正文

政安晨【零基础玩转各类开源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硬件噪声和校准误差,以生成更加真实的数据。通过缩小合成数据和真实数据之间的差距,我们的模型具有更好的泛化能力。


相关文章:

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

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本文解析的原始论文为:https://arxiv.org/…...

【机器学习】基于OpenCV和TensorFlow的MobileNetV2模型的物种识别与个体相似度分析

在计算机视觉领域,物种识别和图像相似度比较是两个重要的研究方向。本文通过结合深度学习和图像处理技术,基于OpenCV和TensorFlow的MobileNetV2的预训练模型模,实现物种识别和个体相似度分析。本文详细介绍该实验过程并提供相关代码。 一、名…...

建模杂谈系列244 TimeTraveller

说明 所有的基于时间处理和运行的程序将以同样的节奏同步和执行 TT(TimeTraveller)是一个新的设计,它最初会服务与量化过程的大量任务管理:分散开发、协同运行。但是很显然,TT的功能将远不止于此,它将服务大量的,基于时…...

基于MingGW64 GCC编译Windows平台上的 libuvc

安装cmake 打开cmake官网 https://cmake.org/download/,下载安装包: 安装时选择将cmake加到系统环境变量里。安装完成后在新的CMD命令窗口执行cmake --version可看到输出: D:\>cmake --version cmake version 3.29.3 CMake suite mainta…...

【Linux】网络高级IO

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Linux 目录 👉🏻五种IO模型👉🏻消息通信的同步异步与进程线程的同步异步有什么不同?&#x1f449…...

【C++ ——— 继承】

文章目录 继承的概念即定义继承概念继承定义定义格式继承关系和访问限定符继承基类成员访问方式的变化 基类对象和派生类对象的赋值转换继承中的作用域派生类中的默认成员函数继承与友元继承与静态成员菱形继承虚继承解决数据冗余和二义性的原理继承的总结继承常见笔试面试题 继…...

kafka-守护启动

文章目录 1、kafka守护启动1.1、先启动zookeeper1.1.1、查看 zookeeper-server-start.sh 的地址1.1.2、查看 zookeeper.properties 的地址 1.2、查看 jps -l1.3、再启动kafka1.3.1、查看 kafka-server-start.sh 地址1.3.2、查看 server.properties 地址 1.4、再次查看 jps -l 1…...

TypeScript 中的命名空间和模块化

1. 命名空间(Namespace) 命名空间提供了一种逻辑上的代码分组机制,用于避免命名冲突和将相关代码组织在一起。它使用 namespace 关键字来定义命名空间,并通过点运算符来访问其中的成员。例如: // 定义命名空间 names…...

9 html综合案例-注册界面

9 综合案例-注册界面 一个只有html骨架的注册页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…...

Xilinx RFSOC 47DR 8收8发 信号处理板卡

系统资源如图所示&#xff1a;  FPGA采用XCZU47DR 1156芯片&#xff0c;PS端搭载一组64Bit DDR4,容量为4GB,最高支持速率&#xff1a;2400MT/s;  PS端挂载两片QSPI X4 FLASH&#xff1b;  PS支持一路NVME存储&#xff1b;  PS端挂载SD接口&#xff0c;用于存储程序&…...

ros2 launch 用法以及一些基础功能函数的示例

文章目录 launch启动一个节点的launch示例launch文件中添加节点的namespacelaunch文件中的话题名称映射launch文件中向节点内传入命令行参数launch文件中向节点内传入rosparam使用方法多节点启动命令行参数配置资源重映射ROS参数设置加载参数文件在launch文件中使用条件变量act…...

如何使用Python获取图片中的文字信息

如下有三中方法&#xff1a; 方法1. 使用Tesseract OCR&#xff08;pytesseract&#xff09; 安装依赖 首先&#xff0c;确保你已经安装了Tesseract OCR引擎&#xff08;例如&#xff0c;通过你的操作系统的包管理器&#xff09;。然后&#xff0c;你可以通过pip安装pytesse…...

C++知识点

1. 构造函数&#xff1a;当没有写任何构造函数(含拷贝构造)&#xff0c;系统会生成默认的无参构造&#xff0c;并且访问属性是共有。 默认拷贝构造&#xff1a;当没有写任何的拷贝构造&#xff0c;系统会生成默认的拷贝构造->是一个浅拷贝 写了拷贝构造函数&#xff0c;这…...

反转字符串中的单词-力扣

此题将问题分为三步进行解决&#xff1a; 第一步&#xff0c;删除字符串中多余的空格&#xff0c;removeSpaces函数中删除所有的空格&#xff0c;并手动在每个单词后添加一个空格&#xff0c;最后重构字符串s第二步&#xff0c;将整个字符串反转第三步&#xff0c;对反转后的字…...

Kotlin 重写与重载

文章目录 重写&#xff08;Override&#xff09;重载&#xff08;Overload&#xff09; 重写&#xff08;Override&#xff09; 重写通常是指子类覆盖父类的属性或方法&#xff0c;通常会标记为override&#xff1a; open class Base {open val name "Base"open f…...

关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法

关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法 如下图 将model saving history 修改为None即可 关于AutoCAD 2022 丢失模板库的问题 从新从以下地址打开即可&#xff1a; D:\Program Files\Autodesk\AutoCAD 2022\UserDataCache\zh-cn\Template...

C语言之旅:探索单链表

目录 一、前言 二、实现链表的功能&#xff1a; 打印 创建节点 尾插 尾删 头插 头删 查找 在指定位置之前插入数据 指定位置删除 在指定位置之后插入数据 打印 销毁 三、全部源码&#xff1a; 四、结语 一、前言 链表是一个强大且基础的数据结构。对于很多初…...

【安卓基础】-- 消息机制 Handler

目录 消息机制 Handler面试问题 消息机制 Handler 对handler机制的基本作用、用法、时序流程进行介绍&#xff0c;针对handler机制中的内存泄漏问题讲解&#xff1a;一篇读懂Android Handler机制 Android-Handler机制详解 全面解析 | Android之Handler机制 需要掌握的&#x…...

Optional 类

概述 到目前为止&#xff0c;臭名昭著的空指针异常是导致 Java 应用程序失败的最常见原因。以前&#xff0c;为了解决空指针异常&#xff0c;Google 公司著名的 Guava 项目引入了 Optional 类&#xff0c; Guava 通过使用检查空值的方式来防止代码污染&#xff0c;它鼓励程序员…...

自动微分技术在 AI for science 中的应用

本文简记我在学习自动微分相关技术时遇到的知识点。 反向传播和自动微分 以 NN 为代表的深度学习技术展现出了强大的参数拟合能力&#xff0c;人们通过堆叠固定的 layer 就能轻松设计出满足要求的参数拟合器。 例如&#xff0c;大部分图神经网络均基于消息传递的架构。在推理…...

ASM OMF single-file creation form 重命名

OMF下不能自动命名&#xff0c;需要重新命名的话&#xff1a;1 1. spfile 可以 create pfile from spfile 后再create spfile from pfile 2 redo&#xff1f; 3 datafile&#xff1f; Here are some details of the copy problem: a) You are not allowed to set the numbe…...

VGGNet

VGGNet CNN卷积网络的发展史 1. LetNet5(1998) 2. AlexNet(2012) 3. ZFNet(2013) 4. VGGNet(2014) 5. GoogLeNet(2014) 6. ResNet(2015) 7. DenseNet(2017) 8. EfficientNet(2019) 9. Vision Transformers(2020) 10. 自适应卷积网络(2021) 上面列出了发展到现在CNN的一些经典…...

SpringMVC:转发和重定向

1. 请求转发和重定向简介 参考该链接第9点 2. forward 返回下一个资源路径&#xff0c;请求转发固定格式&#xff1a;return "forward:资源路径"如 return "forward:/b" 此时为一次请求返回逻辑视图名称 返回逻辑视图不指定方式时都会默认使用请求转发in…...

961操作系统知识总结

部分图片可能无法显示&#xff0c;参考这里&#xff1a;https://zhuanlan.zhihu.com/p/701247894 961操作系统知识总结 一 操作系统概述 1. 操作系统的基本概念 重要操作系统类型&#xff1a;批处理操作系统(批量处理作业&#xff0c;单道批处理/多道批处理系统&#xff0c;用…...

电脑死机问题排查

情况描述&#xff1a;2024年6月2日下午16&#xff1a;04分电脑突然花屏死机&#xff0c;此情况之前遇到过三次&#xff0c;认为是腾讯会议录屏和系统自带录屏软件冲突导致。 报错信息&#xff1a;应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址…...

百度地图1

地图的基本操作 百度地图3.0文档 百度地图3.0实例中心 设置地图 centerAndZoom(center: Point, zoom: Number)设初始化地图,center类型为Point时&#xff0c;zoom必须赋值&#xff0c;范围3-19级&#xff0c; // 百度地图API功能var map new BMap.Map("map"); //…...

Ubuntu 24.04 LTS 安装Docker

1 更新软件包索引&#xff1a; sudo apt-get update 2 安装必要的软件包&#xff0c;以允许apt通过HTTPS使用仓库&#xff1a; sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 3 添加Docker的官方GPG密钥&#xff1a; curl -fs…...

【架构设计】Java如何利用AOP实现幂等操作,防止客户端重复操作

1实现方案详解 在Java中,使用AOP(面向切面编程)来实现幂等操作是一个常见的做法,特别是当你想在不修改业务代码的情况下添加一些横切关注点(如日志、事务管理、安全性等)时。幂等操作指的是无论执行多少次,结果都是相同的操作。 为了利用AOP实现幂等操作以防止客户端重…...

笔记:美团的测试

0.先启动appium 1.编写代码 如下&#xff1a; from appium import webdriver from appium.webdriver.extensions.android.nativekey import AndroidKeydesired_caps {platformName: Android,platformVersion: 10,deviceName: :VOG_AL10,appPackage: com.sankuai.meituan,ap…...

【30天精通Prometheus:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…...