# Multi-HMR # Copyright (c) 2024-present NAVER Corp. # CC BY-NC-SA 4.0 license import numpy as np import torch.nn.functional as F import torch import roma from smplx.joint_names import JOINT_NAMES def rot6d_to_rotmat(x): """ 6D rotation representation to 3x3 rotation matrix. Args: x: (B,6) Batch of 6-D rotation representations. Returns: torch.Tensor: Batch of corresponding rotation matrices with shape (B,3,3). """ x = x.reshape(-1,2,3).permute(0, 2, 1).contiguous() y = roma.special_gramschmidt(x) return y def get_smplx_joint_names(*args, **kwargs): return JOINT_NAMES[:127]