in empose/bodymodels/smpl.py [0:0]
def fk(self, poses_body, betas, poses_root=None, trans=None, normalize_root=False, window_size=None):
"""Wrapper for self._fk to support windowed evaluation if required."""
if window_size is not None:
if normalize_root:
raise ValueError("Are you sure you want to use root normalization with windowed evaluation?")
n = poses_body.shape[0]
n_windows = n // window_size + int(n % window_size > 0)
vs, js = [], []
for i in range(n_windows):
sf = i * window_size
ef = min((i + 1) * window_size, n)
r = poses_root[sf:ef] if poses_root is not None else None
t = trans[sf:ef] if trans is not None else None
vertices, joints = self._fk(poses_body=poses_body[sf:ef], betas=betas[sf:ef], poses_root=r, trans=t,
normalize_root=normalize_root)
vs.append(vertices)
js.append(joints)
return torch.cat(vs, dim=0), torch.cat(js, dim=0)
else:
return self._fk(poses_body, betas, poses_root, trans, normalize_root)