Keypoint MoSeq 0.4.5
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.