Gesture Evaluation · Methods

手势评估算法

手势评估算法是手势库的量化分析层,通过多维度自动化评估为每个手势生成可比较的量化指标。 当前已实现手势能级评估,后续将陆续引入一致性、认知负荷等维度,逐步构建完整的手势质量评估体系。

评估维度 核心问题 状态
手势能级 执行该手势需要消耗多少生理负荷? 已上线
一致性评估 手势在不同用户、场景下的执行稳定性如何? 规划中
认知负荷评估 用户学习和记忆该手势需要多少认知成本? 规划中
歧义性评估 该手势与库内其他手势的混淆风险有多高? 规划中
场景适配性评估 手势在目标场景的约束条件下是否可执行? 规划中

手势能级评估

手势能级(Physical Load Index, PLI)量化执行手势所需的生理负荷。算法基于 FBX 动作捕捉数据, 从静态姿态负荷动态运动能级运动速度加速度冲击性 四个维度综合评估,最终输出批内归一化的综合评分。

处理流程

1
FBX 解析
直接读取 FBX 二进制格式,提取各关节 Euler 旋转角度时间序列(rx/ry/rz),无需 FBX SDK 依赖
2
T-pose 帧剔除
检测开头/结尾的绑定姿态过渡帧:帧间位移 > 100° 且 > 20× 后续帧中位数时判定为 T-pose 跳变帧并剔除
3
关键动作窗口提取
对全帧速度包络做平滑处理,以峰值速度的 10% 为阈值截取有效运动区间,过滤手势前后的静止段
4
四维度指标计算
在关键动作窗口内分别计算静态姿态负荷、动态能级、速度、加速度四项指标
5
批量归一化与合成
对四项指标做 min-max 归一化后加权合成,输出 0–1 区间的综合评分

四维度指标

① 静态姿态负荷
50%
取 active window 内各关节角度的 P75 分位数作为代表性姿态,与批量 P10 中立参考比较。 按关节合并三轴 RMS 偏差,按侧求和(双手 ≈ 单手 2×)。
② 动态运动能级
25%
统计 active window 内各关节累积角度位移,除以有效时长(°/s),按侧求和。 使用 np.unwrap 修正 Euler 角 ±180° 跳变伪影。
③ 运动速度
15%
基于真实时间轴(np.gradient)计算瞬时角速度,取加权 RMS 值, 反映动作的整体节奏强度。
④ 加速度冲击性
10%
对角速度再次求导,取加权峰值,反映动作的突发性与冲击强度。

静态姿态评分曲线

三条分段评分曲线对应不同关节的疲劳风险,参考 RULA 人因工程学方法论:

关节评分范围曲线特点
Shoulder(锁骨) 1 – 10 45° 以上急剧增高,反映肩部抬举的高疲劳风险
Arm / ForeArm(上臂/前臂) 1 – 8 中等斜率,上臂仰角是手臂负荷的主要编码通道
Hand 等其他关节 1 – 7 RULA 标准分段线性

关节权重

Shoulder
5.0
锁骨
Arm
4.0
上臂
ForeArm
2.5
前臂
Hand
1.5
腕关节
Thumb
0.8
拇指
Index / Middle
0.7
食指/中指
Ring
0.6
无名指
Pinky
0.5
小指

综合评分公式

combined_load_score
  = 0.50 × minmax(static_posture_load)
  + 0.25 × minmax(arm_energy + finger_energy)
  + 0.15 × minmax(rms_angular_velocity)
  + 0.10 × minmax(peak_angular_acceleration)

评分为批内相对排名(min-max 归一化),最终输出按评分降序排列。 静态姿态权重占 50%,以准确反映长时间维持高负荷姿态(如持续高举双臂)的疲劳风险。

当前算法已对手势库全部 1,000 个手势完成评估,combined_load_score 分布区间为 [0.035, 0.907],均值 0.255,标准差 0.121,分布均匀,无明显堆积在极端值的问题。

一致性评估 规划中

评估同一手势在不同用户、不同执行时机、不同佩戴位置下的动作稳定性,量化手势的跨用户可复现程度。 核心指标包括关节轨迹方差、执行时长分布、关键帧对齐误差等。

认知负荷评估 规划中

基于手势性质(操作性/模仿性/象征性/指向性/抽象性)、动作复杂度与语义透明度, 量化用户学习和记忆该手势所需的认知成本。将与用户研究数据结合,建立可预测的认知负荷模型。

歧义性评估 规划中

计算手势库内各手势之间的动作相似度,识别高混淆风险的手势对,为手势集设计提供去歧义依据。

场景适配性评估 规划中

结合场景约束(空间尺度、用户姿态、环境干扰、设备密度、交互距离), 自动判断手势在目标场景下的可执行性与适配程度。