gene-hoi-denoising / data_loaders /humanml_utils.py
meow
init
d6d3a5b
raw
history blame
1.91 kB
import numpy as np
HML_JOINT_NAMES = [
'pelvis',
'left_hip',
'right_hip',
'spine1',
'left_knee',
'right_knee',
'spine2',
'left_ankle',
'right_ankle',
'spine3',
'left_foot',
'right_foot',
'neck',
'left_collar',
'right_collar',
'head',
'left_shoulder',
'right_shoulder',
'left_elbow',
'right_elbow',
'left_wrist',
'right_wrist',
]
NUM_HML_JOINTS = len(HML_JOINT_NAMES) # 22 SMPLH body joints
HML_LOWER_BODY_JOINTS = [HML_JOINT_NAMES.index(name) for name in ['pelvis', 'left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', 'right_ankle', 'left_foot', 'right_foot',]]
SMPL_UPPER_BODY_JOINTS = [i for i in range(len(HML_JOINT_NAMES)) if i not in HML_LOWER_BODY_JOINTS]
# Recover global angle and positions for rotation data
# root_rot_velocity (B, seq_len, 1)
# root_linear_velocity (B, seq_len, 2)
# root_y (B, seq_len, 1)
# ric_data (B, seq_len, (joint_num - 1)*3)
# rot_data (B, seq_len, (joint_num - 1)*6)
# local_velocity (B, seq_len, joint_num*3)
# foot contact (B, seq_len, 4)
HML_ROOT_BINARY = np.array([True] + [False] * (NUM_HML_JOINTS-1))
HML_ROOT_MASK = np.concatenate(([True]*(1+2+1),
HML_ROOT_BINARY[1:].repeat(3),
HML_ROOT_BINARY[1:].repeat(6),
HML_ROOT_BINARY.repeat(3),
[False] * 4))
HML_LOWER_BODY_JOINTS_BINARY = np.array([i in HML_LOWER_BODY_JOINTS for i in range(NUM_HML_JOINTS)])
HML_LOWER_BODY_MASK = np.concatenate(([True]*(1+2+1),
HML_LOWER_BODY_JOINTS_BINARY[1:].repeat(3),
HML_LOWER_BODY_JOINTS_BINARY[1:].repeat(6),
HML_LOWER_BODY_JOINTS_BINARY.repeat(3),
[True]*4))
HML_UPPER_BODY_MASK = ~HML_LOWER_BODY_MASK