HumanML3D icon indicating copy to clipboard operation
HumanML3D copied to clipboard

The meaning of the vector of a pose in HumanML3D and KIT-ML.

Open HitBadTrap opened this issue 1 year ago • 1 comments

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.

HitBadTrap avatar Jun 25 '24 03:06 HitBadTrap

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

HitBadTrap avatar Jun 25 '24 04:06 HitBadTrap

it also confused me, so i made a table for HumanML3D dataset. Image 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)

GracefulMan avatar Jul 30 '25 08:07 GracefulMan