Skip to content

Keypoint MoSeq 0.4.5

Compare
Choose a tag to compare
@calebweinreb calebweinreb released this 28 Feb 15:11
· 59 commits to main since this release
d4a0ea3

Added FreiPose loader and function for saving keypoints.

Loading keypoints from FreiPose

To load keypoints output by FreiPose, use:

coordinates, confidences, bodyparts = kpms.load_keypoints(filepath_pattern, "freipose")

Note that confidences is set uniformly to 1, since the FreiPose scores range from <0 to >1 and therefore can't be used for modeling. Also bodyparts is None because these are not stored in the FreiPose output.

Initializing a config from FreiPose

Its also possible to setup a kpms config using a FreiPose config:

kpms.setup_project('test', freipose_config="path/to/skeleton_config.cfg.json")

The FreiPose config will be used to populate "bodyparts", "use_bodyparts" and "skeleton" in the kpms config. In some cases, the FreiPose skeleton may use a pair of keypoints to define one end of a limb. In FreiPose, this is used to indicate a limb midpoint. Since the same option is not available in kpms, the first bodypart in the pair is selected as the end of the limb.

Export keypoints

A new convenience function has been added for exporting keypoints:

kpms.save_keypoints(save_dir, coordinates, confidences=confidences, bodyparts=bodyparts)

One csv file is saved for each recording in coordinates. Each row in the csv corresponds to one frame and the columns are named

"BODYPART1_x", "BODYPART1_y", "BODYPART1_conf", "BODYPART2_x", ...

Columns with confidence scores are ommitted if confidences is not provided. Besides confidences, there can be 2 or 3 columns for each bodypart, depending on whether the keypoints are 2D or 3D.