| | 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) |
| |
|
| | 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] |
| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | 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 |
| |
|
| |
|
| | ALL_JOINT_FALSE = np.full(*HML_ROOT_BINARY.shape, False) |
| | HML_UPPER_BODY_JOINTS_BINARY = np.array([i in SMPL_UPPER_BODY_JOINTS for i in range(NUM_HML_JOINTS)]) |
| |
|
| | UPPER_JOINT_Y_TRUE = np.array([ALL_JOINT_FALSE[1:], HML_UPPER_BODY_JOINTS_BINARY[1:], ALL_JOINT_FALSE[1:]]) |
| | UPPER_JOINT_Y_TRUE = UPPER_JOINT_Y_TRUE.T |
| | UPPER_JOINT_Y_TRUE = UPPER_JOINT_Y_TRUE.reshape(ALL_JOINT_FALSE[1:].shape[0]*3) |
| |
|
| | UPPER_JOINT_Y_MASK = np.concatenate(([False]*(1+2+1), |
| | UPPER_JOINT_Y_TRUE, |
| | ALL_JOINT_FALSE[1:].repeat(6), |
| | ALL_JOINT_FALSE.repeat(3), |
| | [False] * 4)) |