MCPcopy Create free account
hub / github.com/MotrixLab/AiOS / _norm_pose

Function _norm_pose

detrsmpl/core/visualization/visualize_keypoints3d.py:13–39  ·  view source on GitHub ↗

Normalize the poses and make the center close to axis center.

(pose_numpy: np.ndarray, min_value: Union[float, int],
               max_value: Union[float, int], mask: Union[np.ndarray, list])

Source from the content-addressed store, hash-verified

11
12
13def _norm_pose(pose_numpy: np.ndarray, min_value: Union[float, int],
14 max_value: Union[float, int], mask: Union[np.ndarray, list]):
15 """Normalize the poses and make the center close to axis center."""
16 assert max_value > min_value
17 pose_np_normed = pose_numpy.copy()
18 if not mask:
19 mask = list(range(pose_numpy.shape[-2]))
20 axis_num = 3
21 axis_stat = np.zeros(shape=[axis_num, 4])
22 for axis_index in range(axis_num):
23 axis_data = pose_np_normed[..., mask, axis_index]
24 axis_min = np.min(axis_data)
25 axis_max = np.max(axis_data)
26 axis_mid = (axis_min + axis_max) / 2.0
27 axis_span = axis_max - axis_min
28 axis_stat[axis_index] = np.asarray(
29 (axis_min, axis_max, axis_mid, axis_span))
30 target_mid = (max_value + min_value) / 2.0
31 max_span = np.max(axis_stat[:, 3])
32 target_span = max_value - min_value
33 for axis_index in range(axis_num):
34 pose_np_normed[..., axis_index] = \
35 pose_np_normed[..., axis_index] - \
36 axis_stat[axis_index, 2]
37 pose_np_normed = pose_np_normed / max_span * target_span
38 pose_np_normed = pose_np_normed + target_mid
39 return pose_np_normed
40
41
42def visualize_kp3d(

Callers 1

visualize_kp3dFunction · 0.85

Calls 2

copyMethod · 0.80
maxMethod · 0.80

Tested by

no test coverage detected