Safemotion Lib
Loading...
Searching...
No Matches
pose_transforms_mm.py
Go to the documentation of this file.
1import numpy as np
2
3def make_np_keypoints(pose_list):
4 num_frame = len(pose_list)
5 num_person = max([len(x['keypoints']) for x in pose_list])
6 num_keypoint = 17
7 keypoint = np.zeros((num_frame, num_person, num_keypoint, 2), dtype=np.float16)
8 keypoint_score = np.zeros((num_frame, num_person, num_keypoint), dtype=np.float16)
9
10 for i, poses in enumerate(pose_list):
11 keypoint[i] = poses['keypoints'][:, :, :2]
12 keypoint_score[i] = poses['keypoints'][:, :, 2]
13
14 keypoint = keypoint.transpose((1, 0, 2, 3))
15 keypoint_score = keypoint_score.transpose((1, 0, 2))
16
17 return {'keypoint' : keypoint, 'keypoint_score' : keypoint_score, 'clip_len' : num_frame}
18
19
20def make_action_input_posec3d(pose_list, img_shape):
21 num_frame = len(pose_list)
22 fake_anno = dict(
23 frame_dir='',
24 label=-1,
25 img_shape=img_shape,
26 original_shape=img_shape,
27 start_index=0,
28 modality='Pose',
29 total_frames=num_frame)
30
31 fake_anno.update(make_np_keypoints(pose_list))
32
33 return fake_anno
34
35
36__make_data_func__ = {
37 "PoseC3D" : make_action_input_posec3d,
38}
39
40def make_action_input(type, **args):
41 return __make_data_func__[type](**args)
42
44 return __make_data_func__[type]
make_action_input_posec3d(pose_list, img_shape)