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

Function convert_smpl_from_opencv_calibration

detrsmpl/utils/camera_utils.py:20–159  ·  view source on GitHub ↗

Convert opencv calibration smpl poses&transl parameters to model based poses&transl or verts. Args: R (Union[np.ndarray, torch.Tensor]): (frame, 3, 3) T (Union[np.ndarray, torch.Tensor]): [(frame, 3) K (Optional[Union[np.ndarray, torch.Tensor]], optional):

(
        R: Union[np.ndarray, torch.Tensor],
        T: Union[np.ndarray, torch.Tensor],
        K: Optional[Union[np.ndarray, torch.Tensor]] = None,
        resolution: Optional[Union[Iterable[int], int]] = None,
        verts: Optional[Union[np.ndarray, torch.Tensor]] = None,
        poses: Optional[Union[np.ndarray, torch.Tensor]] = None,
        transl: Optional[Union[np.ndarray, torch.Tensor]] = None,
        model_path: Optional[str] = None,
        betas: Optional[Union[np.ndarray, torch.Tensor]] = None,
        model_type: Optional[str] = 'smpl',
        gender: Optional[str] = 'neutral')

Source from the content-addressed store, hash-verified

18
19
20def convert_smpl_from_opencv_calibration(
21 R: Union[np.ndarray, torch.Tensor],
22 T: Union[np.ndarray, torch.Tensor],
23 K: Optional[Union[np.ndarray, torch.Tensor]] = None,
24 resolution: Optional[Union[Iterable[int], int]] = None,
25 verts: Optional[Union[np.ndarray, torch.Tensor]] = None,
26 poses: Optional[Union[np.ndarray, torch.Tensor]] = None,
27 transl: Optional[Union[np.ndarray, torch.Tensor]] = None,
28 model_path: Optional[str] = None,
29 betas: Optional[Union[np.ndarray, torch.Tensor]] = None,
30 model_type: Optional[str] = 'smpl',
31 gender: Optional[str] = 'neutral'):
32 """Convert opencv calibration smpl poses&transl parameters to model based
33 poses&transl or verts.
34
35 Args:
36 R (Union[np.ndarray, torch.Tensor]): (frame, 3, 3)
37 T (Union[np.ndarray, torch.Tensor]): [(frame, 3)
38 K (Optional[Union[np.ndarray, torch.Tensor]], optional):
39 (frame, 3, 3) or (frame, 4, 4). Defaults to None.
40 resolution (Optional[Union[Iterable[int], int]], optional):
41 (height, width). Defaults to None.
42 verts (Optional[Union[np.ndarray, torch.Tensor]], optional):
43 (frame, num_verts, 3). Defaults to None.
44 poses (Optional[Union[np.ndarray, torch.Tensor]], optional):
45 (frame, 72/165). Defaults to None.
46 transl (Optional[Union[np.ndarray, torch.Tensor]], optional):
47 (frame, 3). Defaults to None.
48 model_path (Optional[str], optional): model path.
49 Defaults to None.
50 betas (Optional[Union[np.ndarray, torch.Tensor]], optional):
51 (frame, 10). Defaults to None.
52 model_type (Optional[str], optional): choose in 'smpl' or 'smplx'.
53 Defaults to 'smpl'.
54 gender (Optional[str], optional): choose in 'male', 'female',
55 'neutral'.
56 Defaults to 'neutral'.
57
58 Raises:
59 ValueError: wrong input poses or transl.
60
61 Returns:
62 Tuple[torch.Tensor]: Return converted poses, transl, pred_cam
63 or verts, pred_cam.
64 """
65 R_, T_ = convert_world_view(R, T)
66
67 RT = torch.eye(4, 4)[None]
68 RT[:, :3, :3] = R_
69 RT[:, :3, 3] = T_
70
71 if verts is not None:
72 poses = None
73 betas = None
74 transl = None
75 else:
76 assert poses is not None
77 assert transl is not None

Callers

nothing calls this directly

Calls 11

convert_world_viewFunction · 0.90
build_body_modelFunction · 0.90
rotmat_to_aaFunction · 0.90
aa_to_rotmatFunction · 0.90
convert_camera_matrixFunction · 0.90
deepcopyMethod · 0.80
cloneMethod · 0.80
updateMethod · 0.45
tensor2dictMethod · 0.45
dict2tensorMethod · 0.45

Tested by

no test coverage detected