def project_to_cameras(poses_set, cams, ncams=4): """ Project 3d poses using camera parameters Args poses_set: dictionary with 3d poses cams: dictionary with camera parameters ncams: number of cameras per subject Returns t2d: dictionary with 2d poses """ t2d = {} for t3dk in sorted(poses_set.keys()): subj, a, seqname = t3dk t3d = poses_set[t3dk] for cam in range(ncams): R, T, f, c, k, p, name = cams[(subj, cam + 1)] pts2d, _, _, _, _ = cameras.project_point_radial( np.reshape(t3d, [-1, 3]), R, T, f, c, k, p) pts2d = np.reshape(pts2d, [-1, len(H36M_NAMES) * 2]) sname = seqname[:-3] + "." + name + ".h5" # e.g.: Waiting 1.58860488.h5 t2d[(subj, a, sname)] = pts2d return t2d
def project_to_cameras(poses, cams): """ Project 3d poses using camera parameters input: 3D poses: [n_pose, pose length] cams: list of camera parameters return: list of 2D projections for each camera cams: """ p_2d = [] for cam in cams: R, T, f, c, k, p, name = cam pts2d, _, _, _, _ = cameras.project_point_radial( np.reshape(poses, [-1, 3]), R, T, f, c, k, p) p_2d.append(np.reshape(pts2d, [-1, len(H36M_NAMES) * 2])) return p_2d