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(data_dir, poses_set, cams, ncams=4): """ Project 3d poses to obtain 2d ones Args: poses_set: dictionary with 3d poses cams: dictionary with cameras ncams: number of cameras per subject Return: t2d: dictionary with 2d poses """ t2d = {} for t3dk in sorted(poses_set.keys()): subj, a, seqname = t3dk t3d = poses_set[t3dk] # FIXME this only works for real cameras 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, 64]) sname = seqname[:-3] + "." + name + ".h5" #Waiting 1.58860488.h5 t2d[(subj, a, sname)] = pts2d return t2d
def project_to_cameras2(poses_set, cams, ncams=4, no_of_joints=len(H36M_NAMES)): """ 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, no_of_joints * 2]) if name not in seqname: sname = seqname[:-3] + "." + name + ".h5" # e.g.: Waiting 1.58860488.h5 else: sname = seqname #Sid, when this method is called for noisy data, the keys are already created and so not needed to change. t2d[(subj, a, sname)] = pts2d return t2d
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_set, cams, ncams=4): t2d = {} for t3d_key in sorted(poses_set.keys()): subject, action, seq_name = t3d_key t3d = poses_set[t3d_key] for cam in range(ncams): R, T, f, c, k, p, name = cams[(subject, cam + 1)] points_2d, _, _, _, _ = cameras.project_point_radial( np.reshape(t3d, [-1, 3]), R, T, f, c, k, p) points_2d = np.reshape(points_2d, [-1, 64]) sname = seq_name[:-3] + '.' + name + '.h5' t2d[(subject, action, sname)] = points_2d return t2d