HumanML3D
HumanML3D copied to clipboard
The meaning of the vector of a pose in HumanML3D and KIT-ML.
Hi! I'm confused about what each dimension of the 263-dimension vector of a pose in HumanML3D and the 251-dimension vector of a pose in KIT-ML represent(e.g., which dimensions represent the head and foot, etc.). Could you provide detailed information or relevant links?
Thanks.
SMPL_JOINTS = {'hips' : 0, 'leftUpLeg' : 1, 'rightUpLeg' : 2, 'spine' : 3, 'leftLeg' : 4, 'rightLeg' : 5,
'spine1' : 6, 'leftFoot' : 7, 'rightFoot' : 8, 'spine2' : 9, 'leftToeBase' : 10, 'rightToeBase' : 11,
'neck' : 12, 'leftShoulder' : 13, 'rightShoulder' : 14, 'head' : 15, 'leftArm' : 16, 'rightArm' : 17,
'leftForeArm' : 18, 'rightForeArm' : 19, 'leftHand' : 20, 'rightHand' : 21}
like above
it also confused me, so i made a table for HumanML3D dataset.
for other dataset, you can also use following table for ref:
| Feature | Dimension | Shape | Meaning | Units |
|---|---|---|---|---|
| Root Rotation Velocity (Y-axis) | data[..., 0] |
(seq_len-1, 1) |
Root rotational velocity around the Y-axis (rotation speed of root joint, usually pelvis) | rad/s |
| Root Linear Velocity (X, Z) | data[..., 1:3] |
(seq_len-1, 2) |
Root velocity along the X and Z axes (horizontal movement of pelvis) | m/s |
| Root Y Position | data[..., 3] |
(seq_len-1, 1) |
Vertical position (height) of the root joint (usually pelvis) | meters (m) |
| Joint Positions (RIC) | data[..., 4:4+((joints_num-1)*3)] |
(seq_len, (joints_num-1)*3) |
3D positions for each joint (excluding the root), (X, Y, Z) coordinates for each joint | meters (m) |
| Joint Rotations (Continuous 6D) | data[..., 4+((joints_num-1)*3):4+((joints_num-1)*3)+(joints_num-1)*6] |
(seq_len, (joints_num-1)*6) |
6D continuous rotation representation for each joint (excluding root joint) | unit-less (normalized) |
| Joint Velocities | data[..., 4+((joints_num-1)*3)+(joints_num-1)*6:4+((joints_num-1)*3)+(joints_num-1)*6+(joints_num*3)] |
(seq_len-1, joints_num*3) |
The velocity of each joint in 3D space, relative to the global positions | m/s |
| Foot Contact | data[..., 4+((joints_num-1)*3)+(joints_num-1)*6+(joints_num*3):] |
(seq_len, 4) |
Contact states for left foot, right foot, left toe, and right toe (binary values) | binary (0 or 1) |