def transform_world_to_camera(poses_set, cams, ncams=4): """ Project 3d poses from world coordinate to camera coordinate system Args poses_set: dictionary with 3d poses cams: dictionary with cameras ncams: number of cameras per subject Return: t3d_camera: dictionary with 3d poses in camera coordinate """ t3d_camera = {} for t3dk in sorted(poses_set.keys()): subj, action, seqname = t3dk # if t3dk not in poses_set: # logging.info('debug') t3d_world = poses_set[t3dk] for c in range(ncams): R, T, f, c, k, p, name = cams[(subj, c + 1)] camera_coord = cameras.world_to_camera_frame( np.reshape(t3d_world, [-1, 3]), R, T) camera_coord = np.reshape(camera_coord, [-1, len(H36M_NAMES) * 3]) sname = seqname[:-3] + "." + name + ".h5" # e.g.: Waiting 1.58860488.h5 t3d_camera[(subj, action, sname)] = camera_coord return t3d_camera
def transform_world_to_camera(poses, cams): """ Project 3d poses from world coordinate to camera coordinate system return: list of 3D poses in camera coordinate systems """ p_3d_cam = [] for cam in cams: R, T, f, c, k, p, name = cam camera_coord = cameras.world_to_camera_frame( np.reshape(poses, [-1, 3]), R, T) camera_coord = np.reshape(camera_coord, [-1, len(H36M_NAMES) * 3]) p_3d_cam.append(camera_coord) return p_3d_cam