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
Example #2
0
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
Example #3
0
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
Example #4
0
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