Ejemplo n.º 1
0
def get_trajectory():
    '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
    parsed_json = request.get_json()
    if parsed_json is None:
        return abort(400)

    cameraPose_n_list = parsed_json['cameraPoseN']
    cameraPose_e_list = parsed_json['cameraPoseE']
    cameraPose_d_list = parsed_json['cameraPoseD']
    cameraPose_t_list = parsed_json['cameraPoseT']

    print "get_trajectory: Calling trajectoryAPI now..."

    P_cameraPose = c_[cameraPose_n_list, cameraPose_e_list, cameraPose_d_list]
    T_cameraPose = c_[cameraPose_t_list, cameraPose_t_list, cameraPose_t_list]

    print "P: ", P_cameraPose

    P_interpolatedSpline = trajectoryAPI.compute_easing_spline_trajectory(
        P_cameraPose, T_cameraPose)

    #print "get_trajectory: Response from trajectoryAPI", P_interpolatedSpline

    data = {
        'interpolatedSpline': P_interpolatedSpline.tolist(),
    }
    return jsonify(data)
Ejemplo n.º 2
0
def get_trajectory():
  '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
  parsed_json = request.get_json()
  if parsed_json is None:
    return abort(400)

  cameraPose_n_list = parsed_json['cameraPoseN']
  cameraPose_e_list = parsed_json['cameraPoseE']
  cameraPose_d_list = parsed_json['cameraPoseD']
  cameraPose_t_list = parsed_json['cameraPoseT']

  print "get_trajectory: Calling trajectoryAPI now..."
  
  P_cameraPose = c_[cameraPose_n_list, cameraPose_e_list, cameraPose_d_list]
  T_cameraPose = c_[cameraPose_t_list, cameraPose_t_list, cameraPose_t_list]

  print "P: ", P_cameraPose

  P_interpolatedSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose, T_cameraPose)
  
  print "get_trajectory: Response from trajectoryAPI", P_interpolatedSpline

  data = {
    'interpolatedSpline': P_interpolatedSpline.tolist(),
  }
  return jsonify(data)
Ejemplo n.º 3
0
def get_toric_trajectory():
  '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z, ...]
    personB: [x, y, z, ...]
    screenSpaceA : [x, y, ...]
    screenSpaceB : [x, y, ...]
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
  parsed_json = request.get_json()
  if parsed_json is None:
    return abort(400)

  cameraPose_n_list = parsed_json['cameraPoseN'] #y
  cameraPose_e_list = parsed_json['cameraPoseE'] #x
  cameraPose_d_list = parsed_json['cameraPoseD'] #z
  cameraPose_t_list = parsed_json['cameraPoseT']
  personA_list = parsed_json['personA']
  personB_list = parsed_json['personB']
  screenSpaceA_list = parsed_json['screenSpaceA']
  screenSpaceB_list = parsed_json['screenSpaceB']

  print "get_toric_trajectory: Calling trajectoryAPI now..."

  # toric interpolation

  # people positons
  PA_1 = toric.Vector3(personA_list[0],personA_list[1],personA_list[2])
  PB_1 = toric.Vector3(personB_list[0],personB_list[1],personB_list[2])
  PA_2 = toric.Vector3(personA_list[0],personA_list[1],personA_list[2]) # ending people positions: for the moment the positions are the same
  PB_2 = toric.Vector3(personB_list[0],personB_list[1],personB_list[2])

  # camera positions
  C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0], cameraPose_d_list[0])
  C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1], cameraPose_d_list[1])

  # screen space positions
  SA_1 = toric.Vector2(screenSpaceA_list[0], screenSpaceA_list[1])
  SB_1 = toric.Vector2(screenSpaceB_list[0], screenSpaceB_list[1])
  SA_2 = toric.Vector2(screenSpaceA_list[2], screenSpaceA_list[3])
  SB_2 = toric.Vector2(screenSpaceB_list[2], screenSpaceB_list[3])

  interpolated = toricinterpolation.toric_position_interpolation(C_1, PA_1, PB_1, C_2, PA_2, PB_2)

  print C_1
  print C_2

  P_cameraPose = interpolated['F']
  #orientInterpolated = toricinterpolation.toric_orientation_interpolation(P_cameraPose, SA_1, SB_1, SA_2, SB_2, PA_1, PB_1, PA_2, PB_2)

  print "P: ", P_cameraPose
  T_cameraPose = c_[interpolated['t'], interpolated['t'], interpolated['t']]
  P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose, T_cameraPose)
  
  print "get_toric_trajectory (position): Response from trajectoryAPI", P_positionSpline
  #print "get_toric_trajectory (orientation): Response from trajectoryAPI", P_orientationSpline

  data = {
    'positionSpline': P_positionSpline.tolist(),
    #'orientationSpline': P_orientationSpline.tolist(),
  }
  return jsonify(data)
Ejemplo n.º 4
0
Archivo: main.py Proyecto: SayCV/spooky
def get_toric_trajectory():
    '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
    {
      cameraPoseN: [0, ...],
      cameraPoseE: [0, ...],
      cameraPoseD: [0, ...],
      cameraPoseT: [0, ...],
    }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
    parsed_json = request.get_json()
    if parsed_json is None:
        return abort(400)

    cameraPose_n_list = parsed_json['cameraPoseN']  #y
    cameraPose_e_list = parsed_json['cameraPoseE']  #x
    cameraPose_d_list = parsed_json['cameraPoseD']  #z
    cameraPose_t_list = parsed_json['cameraPoseT']
    personA_list = parsed_json['personA']
    personB_list = parsed_json['personB']

    print "get_trajectory: Calling trajectoryAPI now..."

    # toric interpolation

    # starting people positons
    PA_1 = toric.Vector3(personA_list[0], personA_list[1], personA_list[2])
    PB_1 = toric.Vector3(personB_list[0], personB_list[1], personB_list[2])

    # ending people positions: for the moment the positions are the same
    PA_2 = toric.Vector3(personA_list[0], personA_list[1], personA_list[2])
    PB_2 = toric.Vector3(personB_list[0], personB_list[1], personB_list[2])

    # Starting camera position is *outside* of PA_1:
    C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0],
                        cameraPose_d_list[0])
    C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1],
                        cameraPose_d_list[1])
    interpolated = toricinterpolation.toric_interpolation(
        C_1, PA_1, PB_1, C_2, PA_2, PB_2)

    print C_1
    print C_2

    P_cameraPose_new = interpolated['F']

    print "P: ", P_cameraPose_new

    P_cameraPose_new[:, 0] *= 1000.0
    P_cameraPose_new[:, 1] *= 1000.0
    P_cameraPose_new[:, 2] *= -1000.0
    T_cameraPose_new = c_[interpolated['t'], interpolated['t'],
                          interpolated['t']]

    # scale
    P_interpolatedSpline = trajectoryAPI.compute_easing_spline_trajectory(
        P_cameraPose_new, T_cameraPose_new)

    print "get_trajectory: Response from trajectoryAPI", P_interpolatedSpline

    data = {
        'interpolatedSpline': P_interpolatedSpline.tolist(),
    }
    return jsonify(data)
Ejemplo n.º 5
0
Archivo: main.py Proyecto: SayCV/spooky
def get_toric_trajectory():
  '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
    {
      cameraPoseN: [0, ...],
      cameraPoseE: [0, ...],
      cameraPoseD: [0, ...],
      cameraPoseT: [0, ...],
    }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
  parsed_json = request.get_json()
  if parsed_json is None:
    return abort(400)

  cameraPose_n_list = parsed_json['cameraPoseN'] #y
  cameraPose_e_list = parsed_json['cameraPoseE'] #x
  cameraPose_d_list = parsed_json['cameraPoseD'] #z
  cameraPose_t_list = parsed_json['cameraPoseT']
  personA_list = parsed_json['personA']
  personB_list = parsed_json['personB']

  print "get_trajectory: Calling trajectoryAPI now..."

  # toric interpolation

  # starting people positons
  PA_1 = toric.Vector3(personA_list[0],personA_list[1],personA_list[2])
  PB_1 = toric.Vector3(personB_list[0],personB_list[1],personB_list[2])

  # ending people positions: for the moment the positions are the same
  PA_2 = toric.Vector3(personA_list[0],personA_list[1],personA_list[2])
  PB_2 = toric.Vector3(personB_list[0],personB_list[1],personB_list[2])

  # Starting camera position is *outside* of PA_1:
  C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0], cameraPose_d_list[0])
  C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1], cameraPose_d_list[1])
  interpolated = toricinterpolation.toric_interpolation(C_1, PA_1, PB_1, C_2, PA_2, PB_2)

  print C_1
  print C_2

  P_cameraPose_new = interpolated['F']

  print "P: ", P_cameraPose_new
  
  P_cameraPose_new[:,0] *= 1000.0;
  P_cameraPose_new[:,1] *= 1000.0;
  P_cameraPose_new[:,2] *= -1000.0; 
  T_cameraPose_new = c_[interpolated['t'], interpolated['t'], interpolated['t']]


  # scale
  P_interpolatedSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose_new, T_cameraPose_new)
  
  print "get_trajectory: Response from trajectoryAPI", P_interpolatedSpline

  data = {
    'interpolatedSpline': P_interpolatedSpline.tolist(),
  }
  return jsonify(data)
Ejemplo n.º 6
0
add_import_search_dir('../trajectories')
import optimized_spherical_paths as osp
import numpy as np


PA = np.array([0, 0, 0])
PB = np.array([2, 0, 0])

C0 = np.array([0, 2, 0])
C1 = np.array([2, 2, 0])

params = {
  'minDist': 1
}

sigma, wA, sigmaAvg, sigmaA, sigmaB, t = osp.calculate_position_trajectory_as_optimized_blend_of_spherical_trajectories(
  PA, PB, C0, C1, osp.real_optimizer_unconstrained_at_endpoints, params)

print "Parameterizing returned sigma trajectory over time..."

P_cameraPose = sigma

print "P: "
print P_cameraPose
T_cameraPose = c_[t, t, t]
P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose, T_cameraPose)

print P_positionSpline

Ejemplo n.º 7
0
def get_optimized_blended_spherical_trajectory():
  '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z, ...],
    personB: [x, y, z, ...],
    screenSpaceA : [x, y, ...],
    screenSpaceB : [x, y, ...],
    params: {
      minDist: 1
    }
  }

  Returns: a JSON object as follows:
  {
    positionSpline: [...],
  }
  '''

  parsed_json = request.get_json()
  if parsed_json is None:
    return abort(400)

  cameraPose_n_list = parsed_json['cameraPoseN'] #y
  cameraPose_e_list = parsed_json['cameraPoseE'] #x
  cameraPose_d_list = parsed_json['cameraPoseD'] #z
  cameraPose_t_list = parsed_json['cameraPoseT']
  screenSpaceA_list = parsed_json['screenSpaceA']
  screenSpaceB_list = parsed_json['screenSpaceB']

  PA = np.array(parsed_json['personA'])
  PB = np.array(parsed_json['personB'])

  C0 = np.array([cameraPose_n_list[0], cameraPose_e_list[0], cameraPose_d_list[0]])
  C1 = np.array([cameraPose_n_list[1], cameraPose_e_list[1], cameraPose_d_list[1]])

  params = parsed_json['params']

  print "get_optimized_blended_spherical_trajectory: Calling optimizer now..."
  print "  PA is", PA
  print "  PB is", PB
  print "  C0 is", C0
  print "  C1 is", C1
  print "  params is:", params

  
  sigma, wA, sigmaAvg, sigmaA, sigmaB, t = osp.calculate_position_trajectory_as_optimized_blend_of_spherical_trajectories(
    PA, PB, C0, C1, osp.real_optimizer_unconstrained_at_endpoints, params)

  print "Parameterizing returned sigma trajectory over time..."

  P_cameraPose = sigma

  print "P: ", P_cameraPose
  T_cameraPose = c_[t, t, t]
  P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(P_cameraPose, T_cameraPose)

  data = {
    'positionSpline': P_positionSpline.tolist(),
  }
  return jsonify(data)
Ejemplo n.º 8
0
def get_optimized_blended_spherical_trajectory():
    '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z, ...],
    personB: [x, y, z, ...],
    screenSpaceA : [x, y, ...],
    screenSpaceB : [x, y, ...],
    params: {
      minDist: 1
    }
  }

  Returns: a JSON object as follows:
  {
    positionSpline: [...],
  }
  '''

    parsed_json = request.get_json()
    if parsed_json is None:
        return abort(400)

    cameraPose_n_list = parsed_json['cameraPoseN']  #y
    cameraPose_e_list = parsed_json['cameraPoseE']  #x
    cameraPose_d_list = parsed_json['cameraPoseD']  #z
    cameraPose_t_list = parsed_json['cameraPoseT']
    screenSpaceA_list = parsed_json['screenSpaceA']
    screenSpaceB_list = parsed_json['screenSpaceB']

    PA = np.array(parsed_json['personA'])
    PB = np.array(parsed_json['personB'])

    C0 = np.array(
        [cameraPose_n_list[0], cameraPose_e_list[0], cameraPose_d_list[0]])
    C1 = np.array(
        [cameraPose_n_list[1], cameraPose_e_list[1], cameraPose_d_list[1]])

    params = parsed_json['params']

    print "get_optimized_blended_spherical_trajectory: Calling optimizer now..."
    print "  PA is", PA
    print "  PB is", PB
    print "  C0 is", C0
    print "  C1 is", C1
    print "  params is:", params

    sigma, wA, sigmaAvg, sigmaA, sigmaB, t = osp.calculate_position_trajectory_as_optimized_blend_of_spherical_trajectories(
        PA, PB, C0, C1, osp.real_optimizer_unconstrained_at_endpoints, params)

    print "Parameterizing returned sigma trajectory over time..."

    P_cameraPose = sigma

    print "P: ", P_cameraPose
    T_cameraPose = c_[t, t, t]
    P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(
        P_cameraPose, T_cameraPose)

    data = {
        'positionSpline': P_positionSpline.tolist(),
    }
    return jsonify(data)
Ejemplo n.º 9
0
def get_toric_trajectory():
    '''
  Send a POST request to this URL.

  Input: a JSON object as follows:
  {
    cameraPoseN: [0, ...],
    cameraPoseE: [0, ...],
    cameraPoseD: [0, ...],
    cameraPoseT: [0, ...],
    personA: [x, y, z, ...]
    personB: [x, y, z, ...]
    screenSpaceA : [x, y, ...]
    screenSpaceB : [x, y, ...]
  }

  Returns: a JSON object as follows:
  {
    interpolatedSpline: [...],
  }
  '''
    parsed_json = request.get_json()
    if parsed_json is None:
        return abort(400)

    cameraPose_n_list = parsed_json['cameraPoseN']  #y
    cameraPose_e_list = parsed_json['cameraPoseE']  #x
    cameraPose_d_list = parsed_json['cameraPoseD']  #z
    cameraPose_t_list = parsed_json['cameraPoseT']
    personA_list = parsed_json['personA']
    personB_list = parsed_json['personB']
    screenSpaceA_list = parsed_json['screenSpaceA']
    screenSpaceB_list = parsed_json['screenSpaceB']

    print "get_toric_trajectory: Calling trajectoryAPI now..."

    # toric interpolation

    # people positons
    PA_1 = toric.Vector3(personA_list[0], personA_list[1], personA_list[2])
    PB_1 = toric.Vector3(personB_list[0], personB_list[1], personB_list[2])
    PA_2 = toric.Vector3(
        personA_list[0], personA_list[1], personA_list[2]
    )  # ending people positions: for the moment the positions are the same
    PB_2 = toric.Vector3(personB_list[0], personB_list[1], personB_list[2])

    # camera positions
    C_1 = toric.Vector3(cameraPose_n_list[0], cameraPose_e_list[0],
                        cameraPose_d_list[0])
    C_2 = toric.Vector3(cameraPose_n_list[1], cameraPose_e_list[1],
                        cameraPose_d_list[1])

    # screen space positions
    SA_1 = toric.Vector2(screenSpaceA_list[0], screenSpaceA_list[1])
    SB_1 = toric.Vector2(screenSpaceB_list[0], screenSpaceB_list[1])
    SA_2 = toric.Vector2(screenSpaceA_list[2], screenSpaceA_list[3])
    SB_2 = toric.Vector2(screenSpaceB_list[2], screenSpaceB_list[3])

    interpolated = toricinterpolation.toric_position_interpolation(
        C_1, PA_1, PB_1, C_2, PA_2, PB_2)

    print C_1
    print C_2

    P_cameraPose = interpolated['F']
    #orientInterpolated = toricinterpolation.toric_orientation_interpolation(P_cameraPose, SA_1, SB_1, SA_2, SB_2, PA_1, PB_1, PA_2, PB_2)

    print "P: ", P_cameraPose
    T_cameraPose = c_[interpolated['t'], interpolated['t'], interpolated['t']]
    P_positionSpline = trajectoryAPI.compute_easing_spline_trajectory(
        P_cameraPose, T_cameraPose)

    #print "get_toric_trajectory (position): Response from trajectoryAPI", P_positionSpline
    #print "get_toric_trajectory (orientation): Response from trajectoryAPI", P_orientationSpline

    data = {
        'positionSpline': P_positionSpline.tolist(),
        #'orientationSpline': P_orientationSpline.tolist(),
    }
    return jsonify(data)