- 论文 - 《IMUGPT 2.0: Language-Based Cross Modality Transfer for Sensor-Based Human Activity Recognition》
- 代码 - Github
- 关键词 - Ubicomp2024、多模态LLM、虚拟IMU数据生成、人类活动识别HAR、大模型
1 引言
-
研究问题
- 在人类活动识别(HAR)领域,主要挑战是缺乏大规模标注数据集。
- 近年来,跨模态迁移方法被提出以缓解数据稀缺问题,它们将现有数据集从源模态转换为目标模态(例如:视频->IMU)。
- 随着生成式LLM的发展,语言也成为一个潜在的源模态。
-
IMUGPT 1.0 [39]
- 该系统结合了 LLMs、动作合成方法和信号处理技术,能够无需人工干预地生成虚拟 IMU 数据。
- 核心思想:利用 LLMs 生成关于人类完成特定活动的各种方式的多样化文本描述。然后,通过动作合成方法将这些生成的文本描述转化为 3D 人体运动序列。最终的动作特定姿态序列再被转换为虚拟 IMU 训练数据。
- 局限:IMUGPT 系统只是一个初步的概念验证,在小规模实验中得到验证,但该概念验证在两个主要方面存在不足:
- (1)不清楚何时应该停止数据生成,影响计算效率和成本。
- (2)生成的虚拟 IMU 数据相关性不确定,需要等到下游 HAR 系统训练并评估后才能判断。
-
基于上述不足,本文的目标是:不仅探索如何从基于语言的输入中生成虚拟 IMU 数据,还要明确应生成多少数据、生成何种类型的数据,以实现高效且有效的跨模态迁移。
-
假设:生成的虚拟 IMU 数据越多样、越相关,下游应用的性能提升就越显著。
-
IMUGPT 2.0
- 引入了一个运动过滤模块,用于过滤掉那些由于动作合成模型的局限性而产生的不相关动作序列,从而防止这些无效数据被用于模型训练。
- 提出了两个衡量虚拟 IMU 数据多样性的指标,分别从文本描述和动作序列两个维度来评估多样性。随后,将这些指标与下游分类任务的性能进行关联,并利用它们来确定生成虚拟 IMU 数据的最佳停止点。
- 优点:在节省时间和计算资源的同时,构建出更鲁棒、更准确的 HAR 应用系统。
-
实验
- 对 IMUGPT 系统进行了全面评估,探讨了这种基于语言的跨模态迁移方法在多个实际相关的 HAR 应用场景中、在更广泛的活动类别上的有效性。该评估涵盖了不同 LLMs 和动作合成模型的比较,特别关注它们对下游活动识别系统性能的影响。
2 相关工作
基于可穿戴设备的HAR问题,主要面临以下几个困难:
- 标注数据稀缺
- 数据标注困难
- 数据中的矛盾性差异(同一活动可能以不同方式执行,而不同活动可能导致相似的传感器读数)
- 传感器噪声
为了解决数据稀疏性问题,研究社区提出了多种方法,包括:自监督学习、小样本学习、半监督学习、原型学习、对抗学习和迁移学习,还有本文关注的跨模态迁移。
2.1 跨模态迁移
跨模态迁移方法:通过将传感器数据从一种模态自动转换为另一种模态,生成目标模态下的“虚拟传感器数据”,从而解决特定领域和模态中标注数据稀缺的问题。
相关工作(表1总结):
- [75] 和 [69] 分别从动作捕捉数据中生成“skinned multi-person linear”(SMPL)模型参数,以及三维人体表面和骨骼模型,并进一步用于模拟日常活动并合成惯性数据。
- IMUTube [32–34] 和 [74] 利用视频中的姿态估计技术追踪各个关节的运动,并将其转化为虚拟 IMU 数据。
- [59] 结合姿态估计与真实传感器数据,对实验室视频进行处理以生成模拟传感器数据。
- 在手语识别领域:
- ZeroNet [46] 使用 3D 手指姿态提取、动态时间规整(DTW)和卷积神经网络;
- SignRing [40] 采用基于三角测量的算法和手指运动追踪;
- Vi2IMU [61] 结合手腕运动与三维位移估计以及基于 LSTM 的架构,从视频中生成虚拟 IMU 数据。
- VisualAcc [76] 则使用基于光度效应的分析方法,结合光学到惯性变换器来重建惯性数据。

2.2 IMUGPT
上述跨模态迁移方法中一个普遍存在的挑战是获取相关的视频和动作捕捉数据集。
为了解决这一问题,[39] 提出了 IMUGPT,这是一种基于语言的跨模态迁移方法,用于基于传感器的 HAR。该方法从对活动的文本描述中生成虚拟 IMU 数据,从而无需依赖视频资源。
IMUGPT 主要由以下三个核心组件构成:
- LLM:生成多样化的文本描述,描述不同个体执行某一特定活动的方式。
- 动作合成:接收活动的文本描述,并将其转换为三维人体运动序列。
- Motion to IMU:将生成的动作序列转换为虚拟 IMU 数据的方法。
3 IMUGPT 2.0
在本研究中,在 IMUGPT 1.0 基础上新增了两个模块。这些扩展明确旨在解决前述局限:
- 自动判断应生成多少虚拟 IMU 数据;
- 自动评估生成的虚拟 IMU 数据对下游 HAR 任务的适用性和相关性。
图1中以蓝色部分展示了这些新增模块。具体如下:
- 多样性度量:提出了一种“饱和点识别算法”,识别新的文本描述已无法为现有文本池带来有意义的信息增量。
- 动作过滤器:用于识别并过滤掉那些未能准确表现指定活动的动作序列。

3.1 多样性度量
-
动机:IMUGPT1.0 缺乏明确的判断依据来决定何时停止数据生成,导致资源浪费、效率低。
-
解决思路:利用生成数据的多样性来确定最佳的停止点。多样性高 → 数据丰富 → 提升 HAR 模型性能 + 防止过拟合。
-
多样性衡量来源:
- 文本描述(更实用,因为发生在动作序列生成前)
- 动作序列
-
首先,生成嵌入表示
- 文本描述:将文本提升输入到SentenceTransformers 提供的 'all-mpnet-base-v2' 模型 中,为每条提示生成嵌入向量。
- 动作序列:每段动作序列通过一个在 HumanML3D 数据集 上训练的模型来生成对应的嵌入向量。
-
接着,利用嵌入计算两种类型的多样性
- 绝对多样性:衡量一个数据集合内部所包含的多样化信息量。
- 对比多样性:衡量两个数据集合在多样性方面的差异程度。
3.1.1 绝对多样性度量
作者使用两种方法来计算一组嵌入的绝对多样性——标准差法和质心法[36、16]。对于这两种方法,值越大表示集合越多样化。
标准差法
将嵌入视为高维嵌入空间中的向量,目标是表征这些向量簇的分散程度(即“扩散”)。如果假设簇服从多元高斯分布,则每个等值线将呈轴对齐的椭球形状。椭球沿每个轴的半径可以通过计算簇中向量在该轴上的标准差来计算。因此,计算半径的几何平均值可以捕捉簇的广义半径,从而提供一种多样性度量。
假设嵌入集合 S 包含 n 个维度为 k 的嵌入向量,形式化为 S = \{x_i\}_{i=1}^n \subset \mathbb{R}^k 。那么,沿轴 j \in [1, k] 的标准差计算如下:
最终的多样性得分 M_{std} 计算如下:
质心法
假设嵌入集合 S = \{x_i\}_{i=1}^n \subset \mathbb{R}^k ,包含 n 个维度为 k 的嵌入向量。首先,计算所有嵌入向量的质心向量 x_{\text{cent}} :
多样性得分 M_{\text{cent}} 计算为所有嵌入向量与质心向量之间的平方欧氏距离的均值:
这种方法的直观理解在于:对于一组嵌入,其多样性越高,它们的向量在嵌入空间中的分布就越分散。由于目标是量化嵌入空间中所有向量的分散程度,本文仅使用整个嵌入集合的一个质心。
3.1.2 对比多样性
基本思想:逐批次生成文本描述,判断新生成的文本批次是否带来了新的多样性 ,若没有提升,则停止生成。
方法:最大均值差异MMD
- 一种基于核的统计检验方法,用于判断两组样本是否来自相同的分布。
- 值越高 → 分布差异越大 → 多样性差异越大。
- 定义:给定一个空间 \mathbb{R}^d 和独立同分布的样本 X_i \in \mathbb{R}^d, i = 1, \dots, N_x 从分布 P_X 中采样,以及 Y_i \in \mathbb{R}^d, i = 1, \dots, N_y 从分布 P_Y 中采样,MMD 衡量了 P_X 和 P_Y 之间的差异, K 是高斯核。其计算公式如下:
3.1.3 饱和点识别
目标:基于上述对比多样性度量,找到数据多样性的“饱和点”。
算法流程:
- 维护一个已有文本集合 S
- 每次生成新批次 B ,并计算其与 S 的对比多样性(用 MMD)
- 若 MMD 变化不显著 → 达到饱和 → 停止生成
- 否则将 B 加入 S ,继续迭代
实现细节:
- 新批次大小为现有集合的百分比(可调超参数)
- 控制终止的容忍度也是一个超参数
- MMD 要求两组数据大小一致(而算法一中计算的是 S_{\text{emb}} 和 S_{\text{emb}} \cup B_{\text{emb}} )
- 不一致时:对较小集合进行随机重采样,直到其大小相同
- 多次重采样取 MMD 的平均值和标准差

3.2 过滤不正确生成的动作序列
动机:IMUGPT1.0 中动作合成模型有时会 生成不能准确描述目标活动的动作序列。
解决办法:动作过滤器,用于识别并过滤掉这些错误生成的动作序列。
图2展示了动作过滤器的流程:
- 输入 :生成的动作序列
- 使用 动作描述生成模型 生成对应文本描述
- 将文本输入LLM判断是否准确描述目标活动
- 输出 :二分类结果:“是”或“否”
- 过滤 :仅保留被判断为“是”的动作序列

3.2.1 动作描述生成
动作描述生成:指为给定的人体动作序列生成一段文本描述。
基本思路:通过 MotionGPT [26] 生成动作序列的文本描述,再结合 LLM 的语义理解能力,评估动作序列的相关性,并实现对错误动作的有效过滤。
动作序列标记
输入动作序列: m^{1:M} = \{x_i\}_{i=1}^M (长度为 M 帧)
动作编码器 \varepsilon 处理:
- 将该动作序列编码为 L 个离散的动作标记 z^{1:L} = \varepsilon(m^{1:M}) = \{z_i\}_{i=1}^L, L=M/l ,其中 l 是时间下采样率。
- 动作编码器是 VQ-VAE 架构 [70] 的动作标记器的一部分,由两部分组成:一维卷积层和离散量化。
-
在第一部分中,对动作序列 m^{1:M} 沿时间维度应用一维卷积层,以获得潜在向量 \hat{z}_{1:L} 。
-
通过离散量化,这些潜在向量使用一个可学习的codebook Z = \{z_i\}_{i=1}^K \subset \mathbb{R}^d 转换为代码索引,其中包含 K 个维度为 d 的潜在嵌入向量。
-
在量化过程中,每个潜在向量被替换为codebook Z 中与其欧几里得距离最小的向量:
z_i = \arg\min_{z_k \in Z} \| \hat{z}_i - z_k \|_2 \tag{6}
-
- 得到动作标记(motion tokens)序列 → 可视作“动作词汇”
任务描述标记
继续使用 MotionGPT 描述特定任务的文本提示。
输入的文本提示使用 SentencePiece 分词器转换为文本标记,其词汇表包含 K_t 个文本标记。
输出动作描述
文本词汇表 V_t = \{v_t^j\}_{j=1}^{K_t} 与动作词汇表 V_m = \{v_m^j\}_{j=1}^{K_m} (包括动作标记和额外的特殊标记)结合,形成语言模型的统一词汇表 V = \{V_t, V_m\} 。
文本和动作标记的序列 X_s = \{x_s^i\}_{i=1}^N, x_s \in V ,被传递到基于 Transformer 的语言模型(使用T5 [55])作为输入。语言模型以自回归的方式生成输出标记序列 X_t = \{x_t^i\}_{i=1}^L ,并使用以下损失函数进行训练:
最后,使用文本解码器和动作解码器对输出标记序列进行解码,以得到动作描述。
3.2.2 使用 LLM 进行活动过滤
活动过滤问题被建模成一个二分类任务,输入是一个文本描述 m (即3.2.1的最终输出),以及一个特定的感兴趣活动 a 。输出二元标签 y \in \{0, 1\} ,表示输入的文本描述是否准确地描述了某人执行指定的活动。
由于专门学习一个模型需要大量包含特定活动动作描述的训练数据,作者选择借助 LLMs (GPT-4)强大的零样本能力,来实现活动过滤(注意该LLM没有进行特定的训练)。
方法介绍:通过系统消息为其分配任务,这是一种用于定义 LLM 角色的消息类型。设置好系统消息后,我们将指定的活动名称和一组动作描述(每个提示包含 10 个描述)提供给 LLM。LLM 随后为每个描述输出“是”或“否”。“是”表示该描述准确描述了某人执行的指定活动,而“否”则表示不准确。

4 实验
4.1 实验设定
- 数据集:RealWorld、PAMAP2、USC-HAD、HAD-AW、MyoGum
- 使用的分类模型(注意本文方法只是生成虚拟数据)
- Random Forest
- DeepConvLSTM
4.2和4.3是针对IMUGPT 1.0的全面评估,4.4和4.5是对2.0中多样性度量和动作过滤器的评估。
4.2 LLM 对文本描述生成及 HAR 的影响
- 评估不同大语言模型(LLM)在生成多样化活动描述方面的表现,以及这些描述对下游 HAR 任务的影响。
- GPT-3.5 表现最佳
- 所有 LLM 生成的虚拟 IMU 数据在大多数数据集上显著提升了 HAR 性能,HAD-AW 是唯一例外 。

4.3 动作合成模型对 HAR 的影响
- 使用 GPT-3.5 生成的 1000 条文本描述,输入以下四个动作合成模型生成动作序列,然后训练 HAR 模型,评估不同动作合成模型对识别性能的影响。
- T2M-GPT
- MotionGPT
- MotionDiffuse
- ReMoDiffuse
- T2M-GPT 表现最优 ,在大多数数据集和分类器上效果最好。
- HAD-AW 数据集结果较差,可能因活动更复杂、与虚拟数据差异大。

4.4 多样性作为 HAR 模型性能的预测指标
4.4.1 相关性
- 假设
- 文本描述多样性 ↔ 动作序列多样性
- 动作序列多样性 ↔ 下游 HAR 模型性能
- 实验设计
- 通过计算皮尔逊相关系数 ,验证这两个假设之间的关联。
- 实验结果
- 文本 ↔ 动作,呈现高度正相关。
- 多样性 ↔ 性能(F1),多数数据集为负相关(表示多样性越高,性能越好)
- 结论:多样性可以作为下游性能的有效预测指标 ;

4.4.2 饱和点识别算法评估
- 实验目的:验证提出的“饱和点识别算法”是否能在保证性能的前提下,减少生成文本描述的数量。
- 实验设计
- 一组使用饱和点识别算法,另一组直接生成 1000 条描述。
- 实验结果
- 多数活动在 400~600 条描述 时就达到了饱和;
- 使用饱和点生成的文本,在下游 HAR 性能上 与生成 1000 条描述相当甚至更好;

4.5 动作过滤器评估
- 实验目的:评估动作过滤器是否能有效识别并过滤错误生成的动作序列,以及它对下游 HAR 性能的影响。
- 过滤精度
- 实验设计
- 用 GPT-3.5、GPT-4 和人工标注来判断动作是否正确。
- 通过 Precision、Recall、F1、准确率等指标评估过滤效果。
- 实验结果
- GPT-4和人工的过滤精度相似(错误率9.92%和8.37%)
- 实验设计
- 对下游HAR的影响
- 分别使用和不适用动作过滤器,再到下游HAR任务中测试准确率。

