Ejemplo n.º 1
0
def render(scene,
           device,
           cache,
           cam,
           time=0,
           ni=1624,
           nj=1224,
           render_label=False):
    if cache.type == "bstm_cache_sptr":
        print "bstm_batch CPU render grey and vis not yet implemented"
        return
    elif cache.type == "bstm_opencl_cache_sptr" and device:
        bstm_batch.init_process("bstmOclRenderExpectedImageProcess")
        bstm_batch.set_input_from_db(0, device)
        bstm_batch.set_input_from_db(1, scene)
        bstm_batch.set_input_from_db(2, cache)
        bstm_batch.set_input_from_db(3, cam)
        bstm_batch.set_input_unsigned(4, ni)
        bstm_batch.set_input_unsigned(5, nj)
        bstm_batch.set_input_float(6, time)
        bstm_batch.set_input_bool(7, render_label)
        bstm_batch.run_process()
        (id, type) = bstm_batch.commit_output(0)
        exp_image = dbvalue(id, type)
        (id, type) = bstm_batch.commit_output(1)
        vis_image = dbvalue(id, type)
        return exp_image, vis_image
    else:
        print "ERROR: Cache type not recognized: ", cache.type
Ejemplo n.º 2
0
def merge(scene, cpu_cache, p_threshold, time):
    bstm_batch.init_process("bstmCppMergeTTProcess")
    bstm_batch.set_input_from_db(0, scene)
    bstm_batch.set_input_from_db(1, cpu_cache)
    bstm_batch.set_input_float(2, p_threshold)
    bstm_batch.set_input_float(3, time)
    bstm_batch.run_process()
Ejemplo n.º 3
0
def trajectory_next(trajectory):
    bstm_batch.init_process("bstmViewTrajectoryNextProcess")
    bstm_batch.set_input_from_db(0, trajectory)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    cam = dbvalue(id, type)
    return cam
Ejemplo n.º 4
0
def scale_and_offset_values(img, scale, offset):
    bstm_batch.init_process("vilScaleAndOffsetValuesProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_float(1, scale)
    bstm_batch.set_input_float(2, offset)
    bstm_batch.run_process()
    return
Ejemplo n.º 5
0
def load_perspective_camera(file_path) :
  bstm_batch.init_process("vpglLoadPerspectiveCameraProcess");
  bstm_batch.set_input_string(0, file_path);
  bstm_batch.run_process();
  (id,type) = bstm_batch.commit_output(0);
  cam = dbvalue(id,type);
  return cam;
Ejemplo n.º 6
0
def refine_time(scene, cpu_cache, change_prob_t, time):
    bstm_batch.init_process("bstmCppRefineTTProcess");
    bstm_batch.set_input_from_db(0,scene);
    bstm_batch.set_input_from_db(1,cpu_cache);
    bstm_batch.set_input_float(2,change_prob_t);
    bstm_batch.set_input_float(3,time);
    bstm_batch.run_process();
Ejemplo n.º 7
0
def change_btw_frames(scene, cpu_cache, time0, time1):
    bstm_batch.init_process("bstmCppChangeBtwFramesProcess");
    bstm_batch.set_input_from_db(0,scene);
    bstm_batch.set_input_from_db(1,cpu_cache);
    bstm_batch.set_input_float(2,time0);
    bstm_batch.set_input_float(3,time1);
    bstm_batch.run_process();
Ejemplo n.º 8
0
def refine(scene, cpu_cache, p_threshold, time):
    bstm_batch.init_process("bstmCppRefineSpacetimeProcess");
    bstm_batch.set_input_from_db(0,scene);
    bstm_batch.set_input_from_db(1,cpu_cache);
    bstm_batch.set_input_float(2,p_threshold);
    bstm_batch.set_input_float(3,time);
    bstm_batch.run_process();
Ejemplo n.º 9
0
def scale_and_offset_values(img, scale, offset):
    bstm_batch.init_process("vilScaleAndOffsetValuesProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_float(1, scale)
    bstm_batch.set_input_float(2, offset)
    bstm_batch.run_process()
    return
Ejemplo n.º 10
0
def trajectory_next(trajectory) :
  bstm_batch.init_process("bstmViewTrajectoryNextProcess");
  bstm_batch.set_input_from_db(0, trajectory);
  bstm_batch.run_process();
  (id,type) = bstm_batch.commit_output(0);
  cam = dbvalue(id,type);
  return cam;
Ejemplo n.º 11
0
def rgb2gray(img):
    bstm_batch.init_process("vilRGBToGreyProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    outimg = dbvalue(id, type)
    return outimg
Ejemplo n.º 12
0
def load_projective_camera(file_path):
    bstm_batch.init_process("vpglLoadProjCameraProcess")
    bstm_batch.set_input_string(0, file_path)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    cam = dbvalue(id, type)
    return cam
Ejemplo n.º 13
0
def change_btw_frames(scene, cpu_cache, time0, time1):
    bstm_batch.init_process("bstmCppChangeBtwFramesProcess")
    bstm_batch.set_input_from_db(0, scene)
    bstm_batch.set_input_from_db(1, cpu_cache)
    bstm_batch.set_input_float(2, time0)
    bstm_batch.set_input_float(3, time1)
    bstm_batch.run_process()
Ejemplo n.º 14
0
def refine_time(scene, cpu_cache, change_prob_t, time):
    bstm_batch.init_process("bstmCppRefineTTProcess")
    bstm_batch.set_input_from_db(0, scene)
    bstm_batch.set_input_from_db(1, cpu_cache)
    bstm_batch.set_input_float(2, change_prob_t)
    bstm_batch.set_input_float(3, time)
    bstm_batch.run_process()
Ejemplo n.º 15
0
def merge(scene, cpu_cache, p_threshold, time):
    bstm_batch.init_process("bstmCppMergeTTProcess");
    bstm_batch.set_input_from_db(0,scene);
    bstm_batch.set_input_from_db(1,cpu_cache);
    bstm_batch.set_input_float(2,p_threshold);
    bstm_batch.set_input_float(3,time);
    bstm_batch.run_process();
Ejemplo n.º 16
0
def bundle2scene(bundle_file,
                 img_dir,
                 app_model="bstm_mog3_grey",
                 isalign=True,
                 out_dir="",
                 timeSteps=32):
    if app_model == "bstm_mog3_grey":
        nobs_model = "bstm_num_obs"
    else:
        print "ERROR appearance model not recognized!!!", app_model
        return

    # run process
    bstm_batch.init_process("bstmBundleToSceneProcess")
    bstm_batch.set_input_string(0, bundle_file)
    bstm_batch.set_input_string(1, img_dir)
    bstm_batch.set_input_string(2, app_model)
    bstm_batch.set_input_string(3, nobs_model)
    bstm_batch.set_input_bool(4, isalign)
    bstm_batch.set_input_unsigned(5, timeSteps)
    bstm_batch.set_input_string(6, out_dir)
    bstm_batch.run_process()
    (scene_id, scene_type) = bstm_batch.commit_output(0)
    uscene = dbvalue(scene_id, scene_type)
    return uscene
Ejemplo n.º 17
0
def rgb2gray(img):
    bstm_batch.init_process("vilRGBToGreyProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    outimg = dbvalue(id, type)
    return outimg
Ejemplo n.º 18
0
def refine(scene, cpu_cache, p_threshold, time):
    bstm_batch.init_process("bstmCppRefineSpacetimeProcess")
    bstm_batch.set_input_from_db(0, scene)
    bstm_batch.set_input_from_db(1, cpu_cache)
    bstm_batch.set_input_float(2, p_threshold)
    bstm_batch.set_input_float(3, time)
    bstm_batch.run_process()
Ejemplo n.º 19
0
def image_mean(img):
    bstm_batch.init_process("vilImageMeanProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    mean_val = bstm_batch.get_output_float(id)
    bstm_batch.remove_data(id)
    return mean_val
Ejemplo n.º 20
0
def convert_image(img, type="byte"):
    bstm_batch.init_process("vilConvertPixelTypeProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_string(1, type)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    cimg = dbvalue(id, type)
    return cimg
Ejemplo n.º 21
0
def img_sum(img, plane_index=0):
    bstm_batch.init_process("vilImageSumProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_unsigned(1, plane_index)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    value = bstm_batch.get_output_double(id)
    return value
Ejemplo n.º 22
0
def convert_image(img, type="byte"):
    bstm_batch.init_process("vilConvertPixelTypeProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_string(1, type)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    cimg = dbvalue(id, type)
    return cimg
Ejemplo n.º 23
0
def close_image(img, disk_radius):
    bstm_batch.init_process("vilImageClosingDiskProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_float(1, disk_radius)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    cimg = dbvalue(id, type)
    return cimg
Ejemplo n.º 24
0
def img_sum(img, plane_index=0):
    bstm_batch.init_process("vilImageSumProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_unsigned(1, plane_index)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    value = bstm_batch.get_output_double(id)
    return value
Ejemplo n.º 25
0
def close_image(img, disk_radius):
    bstm_batch.init_process("vilImageClosingDiskProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_float(1, disk_radius)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    cimg = dbvalue(id, type)
    return cimg
Ejemplo n.º 26
0
def trajectory_size(trajectory):
    bstm_batch.init_process("bstmViewTrajectorySizeProcess")
    bstm_batch.set_input_from_db(0, trajectory)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    size = bstm_batch.get_output_unsigned(id)
    bstm_batch.remove_data(id)
    return size
Ejemplo n.º 27
0
def write_cache(cache, do_clear=0):
    if cache.type == "bstm_cache_sptr":
        bstm_batch.init_process("bstmWriteCacheProcess")
        bstm_batch.set_input_from_db(0, cache)
        bstm_batch.set_input_bool(1, do_clear)
        bstm_batch.run_process()
    else:
        print "ERROR: Cache type needs to be bstm_cache_sptr, not ", cache.type
Ejemplo n.º 28
0
def load_scene(scene_str):
  #print("Loading a Scene from file: ", scene_str);
  bstm_batch.init_process("bstmLoadSceneProcess");
  bstm_batch.set_input_string(0, scene_str);
  bstm_batch.run_process();
  (scene_id, scene_type) = bstm_batch.commit_output(0);
  scene = dbvalue(scene_id, scene_type);
  return scene;
Ejemplo n.º 29
0
def image_mean(img):
    bstm_batch.init_process("vilImageMeanProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    mean_val = bstm_batch.get_output_float(id)
    bstm_batch.remove_data(id)
    return mean_val
Ejemplo n.º 30
0
def load_scene(scene_str):
    #print("Loading a Scene from file: ", scene_str);
    bstm_batch.init_process("bstmLoadSceneProcess")
    bstm_batch.set_input_string(0, scene_str)
    bstm_batch.run_process()
    (scene_id, scene_type) = bstm_batch.commit_output(0)
    scene = dbvalue(scene_id, scene_type)
    return scene
Ejemplo n.º 31
0
def write_cache(cache, do_clear = 0) :
  if cache.type == "bstm_cache_sptr" :
    bstm_batch.init_process("bstmWriteCacheProcess");
    bstm_batch.set_input_from_db(0,cache);
    bstm_batch.set_input_bool(1,do_clear);
    bstm_batch.run_process();
  else :
    print "ERROR: Cache type needs to be bstm_cache_sptr, not ", cache.type;
Ejemplo n.º 32
0
def trajectory_size(trajectory):
  bstm_batch.init_process("bstmViewTrajectorySizeProcess")
  bstm_batch.set_input_from_db(0, trajectory)
  bstm_batch.run_process()
  (id,type) = bstm_batch.commit_output(0)
  size = bstm_batch.get_output_unsigned(id)
  bstm_batch.remove_data(id)
  return size
Ejemplo n.º 33
0
def binary_img_op(img1, img2, operation="sum"):
    bstm_batch.init_process("vilBinaryImageOpProcess")
    bstm_batch.set_input_from_db(0, img1)
    bstm_batch.set_input_from_db(1, img2)
    bstm_batch.set_input_string(2, operation)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    out = dbvalue(id, type)
    return out
Ejemplo n.º 34
0
def pixel(img, point):
    bstm_batch.init_process("vilPixelValueProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_int(1, int(point[0]))
    bstm_batch.set_input_int(2, int(point[1]))
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    val = bstm_batch.get_output_float(id)
    return val
Ejemplo n.º 35
0
def image_size(img):
    bstm_batch.init_process("vilImageSizeProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    ni = bstm_batch.get_output_unsigned(id)
    (id, type) = bstm_batch.commit_output(1)
    nj = bstm_batch.get_output_unsigned(id)
    return ni, nj
Ejemplo n.º 36
0
def image_range(img):
    bstm_batch.init_process("vilImageRangeProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    minVal = bstm_batch.get_output_float(id)
    (id, type) = bstm_batch.commit_output(1)
    maxVal = bstm_batch.get_output_float(id)
    return minVal, maxVal
Ejemplo n.º 37
0
def gradient_angle(Ix, Iy):
    bstm_batch.init_process("vilGradientAngleProcess")
    bstm_batch.set_input_from_db(0, Ix)
    bstm_batch.set_input_from_db(1, Iy)
    bstm_batch.run_process()
    # x image
    (id, type) = bstm_batch.commit_output(0)
    angleImg = dbvalue(id, type)
    return angleImg
Ejemplo n.º 38
0
def gradient_angle(Ix, Iy):
    bstm_batch.init_process('vilGradientAngleProcess')
    bstm_batch.set_input_from_db(0, Ix)
    bstm_batch.set_input_from_db(1, Iy)
    bstm_batch.run_process()
    # x image
    (id, type) = bstm_batch.commit_output(0)
    angleImg = dbvalue(id, type)
    return angleImg
Ejemplo n.º 39
0
def image_size(img):
    bstm_batch.init_process('vilImageSizeProcess')
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    ni = bstm_batch.get_output_unsigned(id)
    (id, type) = bstm_batch.commit_output(1)
    nj = bstm_batch.get_output_unsigned(id)
    return ni, nj
Ejemplo n.º 40
0
def binary_img_op(img1, img2, operation="sum"):
    bstm_batch.init_process("vilBinaryImageOpProcess")
    bstm_batch.set_input_from_db(0, img1)
    bstm_batch.set_input_from_db(1, img2)
    bstm_batch.set_input_string(2, operation)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    out = dbvalue(id, type)
    return out
Ejemplo n.º 41
0
def threshold_image(img, value, threshold_above=True):
    bstm_batch.init_process("vilThresholdImageProcess")
    bstm_batch.set_input_from_db(0,img)
    bstm_batch.set_input_float(1,value)
    bstm_batch.set_input_bool(2,threshold_above)
    bstm_batch.run_process()
    (id,type) = bstm_batch.commit_output(0)
    mask = dbvalue(id,type)
    return mask
Ejemplo n.º 42
0
def image_range(img):
    bstm_batch.init_process('vilImageRangeProcess')
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    minVal = bstm_batch.get_output_float(id)
    (id, type) = bstm_batch.commit_output(1)
    maxVal = bstm_batch.get_output_float(id)
    return minVal, maxVal
Ejemplo n.º 43
0
def pixel(img, point):
    bstm_batch.init_process("vilPixelValueProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_int(1, int(point[0]))
    bstm_batch.set_input_int(2, int(point[1]))
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    val = bstm_batch.get_output_float(id)
    return val
Ejemplo n.º 44
0
def resize(img, ni, nj, pixel="float"):
    bstm_batch.init_process("vilResampleProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_int(1, ni)
    bstm_batch.set_input_int(2, nj)
    bstm_batch.set_input_string(3, pixel)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    img = dbvalue(id, type)
    return img
Ejemplo n.º 45
0
def convert_to_generic_camera(cam_in, ni, nj, level=0):
    bstm_batch.init_process('vpglConvertToGenericCameraProcess')
    bstm_batch.set_input_from_db(0, cam_in)
    bstm_batch.set_input_unsigned(1, ni)
    bstm_batch.set_input_unsigned(2, nj)
    bstm_batch.set_input_unsigned(3, level)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    generic_cam = dbvalue(id, type)
    return generic_cam
Ejemplo n.º 46
0
def persp2gen(pcam, ni, nj, level=0):
    bstm_batch.init_process("vpglConvertToGenericCameraProcess")
    bstm_batch.set_input_from_db(0, pcam)
    bstm_batch.set_input_unsigned(1, ni)
    bstm_batch.set_input_unsigned(2, nj)
    bstm_batch.set_input_unsigned(3, level)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    gcam = dbvalue(id, type)
    return gcam
Ejemplo n.º 47
0
def resize(img, ni, nj, pixel="float"):
    bstm_batch.init_process("vilResampleProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_int(1, ni)
    bstm_batch.set_input_int(2, nj)
    bstm_batch.set_input_string(3, pixel)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    img = dbvalue(id, type)
    return img
Ejemplo n.º 48
0
def crop_image(img, i0, j0, ni, nj):
    bstm_batch.init_process("vilCropImageProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_unsigned(1, i0)
    bstm_batch.set_input_unsigned(2, j0)
    bstm_batch.set_input_unsigned(3, ni)
    bstm_batch.set_input_unsigned(4, nj)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    img_out = dbvalue(id, type)
    return img_out
Ejemplo n.º 49
0
def crop_image(img, i0, j0, ni, nj):
    bstm_batch.init_process("vilCropImageProcess")
    bstm_batch.set_input_from_db(0, img)
    bstm_batch.set_input_unsigned(1, i0)
    bstm_batch.set_input_unsigned(2, j0)
    bstm_batch.set_input_unsigned(3, ni)
    bstm_batch.set_input_unsigned(4, nj)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    img_out = dbvalue(id, type)
    return img_out
Ejemplo n.º 50
0
def clear_cache(cache) :
  if cache.type == "bstm_cache_sptr" :
    bstm_batch.init_process("bstmClearCacheProcess");
    bstm_batch.set_input_from_db(0,cache);
    bstm_batch.run_process();
  elif cache.type == "bstm_opencl_cache_sptr" :
    bstm_batch.init_process("bstmOclClearCacheProcess");
    bstm_batch.set_input_from_db(0,cache);
    bstm_batch.run_process();
  else :
    print "ERROR: Cache type needs to be bstm_cache_sptr, not ", cache.type;
Ejemplo n.º 51
0
def label_change(scene, device, cache, cam, change_img, change_t, label, time) :
    bstm_batch.init_process("bstmOclLabelRayProcess");
    bstm_batch.set_input_from_db(0,device);
    bstm_batch.set_input_from_db(1,scene);
    bstm_batch.set_input_from_db(2,cache);
    bstm_batch.set_input_from_db(3,cam);
    bstm_batch.set_input_from_db(4,change_img);
    bstm_batch.set_input_float(5, change_t);
    bstm_batch.set_input_float(6, time);
    bstm_batch.set_input_int(7, label);
    bstm_batch.run_process();
Ejemplo n.º 52
0
def label_change(scene, device, cache, cam, change_img, change_t, label, time):
    bstm_batch.init_process("bstmOclLabelRayProcess")
    bstm_batch.set_input_from_db(0, device)
    bstm_batch.set_input_from_db(1, scene)
    bstm_batch.set_input_from_db(2, cache)
    bstm_batch.set_input_from_db(3, cam)
    bstm_batch.set_input_from_db(4, change_img)
    bstm_batch.set_input_float(5, change_t)
    bstm_batch.set_input_float(6, time)
    bstm_batch.set_input_int(7, label)
    bstm_batch.run_process()
Ejemplo n.º 53
0
def ocl_info():
  #print("Init Manager");
  bstm_batch.init_process("boclInitManagerProcess");
  bstm_batch.run_process();
  (id, type) = bstm_batch.commit_output(0);
  mgr = dbvalue(id, type);

  print("Get OCL info");
  bstm_batch.init_process("bocl_info_process");
  bstm_batch.set_input_from_db(0,mgr)
  bstm_batch.run_process();
Ejemplo n.º 54
0
def ocl_info():
    #print("Init Manager");
    bstm_batch.init_process("boclInitManagerProcess")
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    mgr = dbvalue(id, type)

    print("Get OCL info")
    bstm_batch.init_process("bocl_info_process")
    bstm_batch.set_input_from_db(0, mgr)
    bstm_batch.run_process()
Ejemplo n.º 55
0
def clear_cache(cache):
    if cache.type == "bstm_cache_sptr":
        bstm_batch.init_process("bstmClearCacheProcess")
        bstm_batch.set_input_from_db(0, cache)
        bstm_batch.run_process()
    elif cache.type == "bstm_opencl_cache_sptr":
        bstm_batch.init_process("bstmOclClearCacheProcess")
        bstm_batch.set_input_from_db(0, cache)
        bstm_batch.run_process()
    else:
        print "ERROR: Cache type needs to be bstm_cache_sptr, not ", cache.type
Ejemplo n.º 56
0
def project_point(camera, x, y, z):
    bstm_batch.init_process('vpglProjectProcess')
    bstm_batch.set_input_from_db(0, camera)
    bstm_batch.set_input_float(1, x)
    bstm_batch.set_input_float(2, y)
    bstm_batch.set_input_float(3, z)
    bstm_batch.run_process()
    (id, type) = bstm_batch.commit_output(0)
    u = bstm_batch.get_output_float(id)
    (id, type) = bstm_batch.commit_output(1)
    v = bstm_batch.get_output_float(id)
    return (u, v)