BodyModel#

class smplfitter.np.BodyModel(model_name='smpl', gender='neutral', model_root=None, num_betas=None, vertex_subset_size=None, vertex_subset=None, faces=None, joint_regressor_post_lbs=None)[source]#

Represents a statistical body model of the SMPL family.

The SMPL (Skinned Multi-Person Linear) model provides a way to represent articulated 3D human meshes through a compact shape vector (beta) and pose (body part rotation) parameters.

Parameters:
  • model_name – Name of the model type.

  • gender – Gender of the model, which can be ‘neutral’, ‘female’ or ‘male’.

  • model_root – Path to the directory containing model files. By default, {DATA_ROOT}/body_models/{model_name} is used, with the DATA_ROOT environment variable, or if a DATA_ROOT envvar doesn’t exist, ./body_models/{model_name}.

  • num_betas – Number of shape parameters (betas) to use. By default, all available betas are used.

  • vertex_subset_size – If specified, loads a pre-computed vertex subset of this size from {model_root}/vertex_subset_{size}.npz.

  • vertex_subset – Array of vertex indices to use. If specified, only these vertices will be computed.

  • faces – Custom faces array to use instead of the default.

  • joint_regressor_post_lbs – Custom joint regressor for post-LBS joint computation.

Instance Methods#

__call__([pose_rotvecs, shape_betas, trans, ...])

Calculates the body model vertices, joint positions, and orientations for a batch of

single(*args[, return_vertices])

Calculates the body model vertices, joint positions, and orientations for a single

rototranslate(R[, t, pose_rotvecs, shape_betas, ...])

Rotates and translates the body in parametric form.