eval_func package

Submodules

eval_func.EV_converter module

evaltools.eval_func.EV_converter.get_CA_score(CA)
evaltools.eval_func.EV_converter.get_CE_score(CE)
evaltools.eval_func.EV_converter.get_EAG_score(EAG)
evaltools.eval_func.EV_converter.get_OE_score(OE)
evaltools.eval_func.EV_converter.get_VE_score(VE)

negative check version

evaltools.eval_func.EV_converter.get_VE_score2(VE)

positive check version VE_MED

evaltools.eval_func.EV_converter.main(CE, CA, EAG, VE, OE)
evaltools.eval_func.EV_converter.main_cl(args)

eval_func.bitmap_tools module

evaltools.eval_func.bitmap_tools.load_bitmap_to_ndarray(filename)
evaltools.eval_func.bitmap_tools.save_bitmap_from_ndarray(ndarray, filename)

eval_func.do_ble_estimation module

evaltools.eval_func.do_ble_estimation.do_ble_estimation(df_est, blescans, gis_ble, thresh=-85, txpower=-70, loss_rate=2.1, method='MSE', r=1)

各BLEビーコンに対する再投影位置座標と推定に使用したデータ量をデータフレームにして返す。

evaltools.eval_func.do_ble_estimation.est_beacon_pos(bdaddress, df_est, blescans, df_merged=None, thresh=-85, txpower=-70, loss_rate=2.1, initial_guess=[0, 0], method='MSE', r=1)

BLE logと位置座標情報からBLEビーコン位置を再投影する。

evaltools.eval_func.do_ble_estimation.estimate_rssi(distance, txpower=-70, loss_rate=2.1)
evaltools.eval_func.do_ble_estimation.loss_function(predicted_rssi, actual_rssi, method, r=1)

eval_func.evaluate_BE module

evaltools.eval_func.evaluate_BE.eval_BE(df_est, blescans, gis_ble, thresh=-85, txpower=-70, loss_rate=2.1, method='MSE', R=1)
evaltools.eval_func.evaluate_BE.eval_be(df_est, step, method, R)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_BE.main_cl(args)

eval_func.evaluate_BEM module

evaltools.eval_func.evaluate_BEM.calc_beacon_error(row)
evaltools.eval_func.evaluate_BEM.calc_rssi_error(row, df_merged, txpower, loss_rate, method, r)
evaltools.eval_func.evaluate_BEM.estimate_rssi(distance, txpower=-70, loss_rate=2.1)
evaltools.eval_func.evaluate_BEM.eval_BEM(df_est, blescans, gis_ble, txpower=-70, loss_rate=2.1, nEstVar=3, method='MSE', r=1)
evaltools.eval_func.evaluate_BEM.eval_bem(df_est, step, nEstVar)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_BEM.loss_function(predicted_rssi, actual_rssi, method, r=1)
evaltools.eval_func.evaluate_BEM.rotation_mat(row, x0, y0, theta, O=(0, 0))

eval_func.evaluate_CA module

evaltools.eval_func.evaluate_CA.calc_2D_histgram_mod(x_error_list, y_error_list)
evaltools.eval_func.evaluate_CA.calc_2dhist_mod(x_error_list, y_error_list)

位置誤差のx成分・y成分毎に分布を生成しその平均値と原点(=GT)との距離を評価値として返す。

evaltools.eval_func.evaluate_CA.calc_kernel_density_mod(x, y, output_path, RSC_flg, bw_method=None)
evaltools.eval_func.evaluate_CA.calc_kernel_mod(x, y, bw_method=None)
evaltools.eval_func.evaluate_CA.calc_x_error(row)

vector_b : vector from estimated position to ground truth position vector_c : unit vector normal to yaw direction x_error = (vector_c ・ vector_b)

evaltools.eval_func.evaluate_CA.calc_xy_errors(df_est, df_gt_data, mode='RCS')
evaltools.eval_func.evaluate_CA.calc_y_error(row)

orthographic vector y_error = {(vector_a ・ vector_b) / norm(ventor_a)**2}|vector_a|

vector_a : unit vector to yaw direction vector_b : vector from estimated position to ground truth position y_error = (vector_a ・ vector_b)

evaltools.eval_func.evaluate_CA.calc_yaw_from_xy(df_est)

+y = 0; -y = 2pi +y → +x → -y = (0 <= Θ < 2pi) +y → -x → -y = (-2pi < Θ <= 0)

evaltools.eval_func.evaluate_CA.eval_CA(df_est, step, mode_CS='RCS', mode_density='kde')

Calc CA (評価値まで算出する版。主に最適化用の入口)

evaltools.eval_func.evaluate_CA.eval_CA_tl(df_gt_data, df_est, mode_CS='RCS')

Calcurate Coordinate-Accuracy-Error timeline

Parameters:
  • df_gt_data (pandas.DataFrame) – Ground truth, columns: [timestamp, x, y, theta, floor]

  • df_est (pandas.DataFrame) – Estimated position, columns: [timestamp, x, y, floor, …]

  • mode_CS ({'RCS', 'ACS'}) – set x-y Coordinate System ‘yaw-Relative’ or ‘Absolute’

Returns:

df_ca_tl – Error at each timestamp, columns: [timestamp, type, value] type: ‘ca_x’, ‘ca_y’

Return type:

pandas.DataFrame

eval_func.evaluate_CE module

evaltools.eval_func.evaluate_CE.eval_CE(df_est, step, quantile=50)

Calc CE (評価値まで算出する版。主に最適化用の入口)

evaltools.eval_func.evaluate_CE.eval_CE_tl(df_gt_data, df_est, right_on=False)

Calculate Circular-Error timeline

Parameters:
  • df_gt_data (pandas.DataFrame) – Ground truth, columns: [timestamp, x, y, theta, floor]

  • df_est (pandas.DataFrame) – Estimated position, columns: [timestamp, x, y, floor, …]

  • right_on (boolean) – False:pd.merge_asof(df_gt, df_est) / True:pd.merge_asof(df_est, df_gt)

Returns:

result – Error at each timestamp, columns: [timestamp, type, value]

Return type:

pandas.DataFrame

evaltools.eval_func.evaluate_CE.eval_SE_tl(df_gt_data, df_est)

Calculate Sphere-Error timeline

Parameters:
  • df_gt_data (pandas.DataFrame) – Ground truth, columns: [timestamp, x, y, theta, floor]

  • df_est (pandas.DataFrame) – Estimated position, columns: [timestamp, x, y, floor, …]

Returns:

result – Error at each timestamp, columns: [timestamp, type, value]

Return type:

pandas.DataFrame

eval_func.evaluate_DSE module

evaltools.eval_func.evaluate_DSE.calc_similarity(res, r1, r2, cut_len=1, fillna=-110, q=50)
evaltools.eval_func.evaluate_DSE.calc_similarity_2(res, array, cut_len=1, fillna=-110, q=90)
evaltools.eval_func.evaluate_DSE.estimate_distance_from_rssi(rssi, txpower=-70, loss_rate=2.1)
evaltools.eval_func.evaluate_DSE.estimate_rssi_from_distace(distance, txpower=-70, loss_rate=2.1)
evaltools.eval_func.evaluate_DSE.eval_DSE(df_est, blescans, fillna=-110, q=50, mode='R', n_jobs=30)

位置距離差に対するRssi値の類似性を評価

evaltools.eval_func.evaluate_DSE.eval_dse(df_est, step, fillna, mode, n_jobs)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_DSE.make_df(df_est, blescans, fillna=-110, q=50, n_jobs=5)
evaltools.eval_func.evaluate_DSE.maximize_a(src)
evaltools.eval_func.evaluate_DSE.maximize_r2(src)
evaltools.eval_func.evaluate_DSE.minimize_residual(src)
evaltools.eval_func.evaluate_DSE.resample_blescans_closest(blescans: DataFrame, timestamps: ndarray, internal_interval=0.01, bdaddress_list=None, rssi_threshold=-200, tolerance=0.5, agg_method='mean', agg_window=1)

eval_func.evaluate_EAG module

evaltools.eval_func.evaluate_EAG.calc_A_EAG(df_gt_data, df_est, ALIP_timerange=[], draw_flg=False, output_path='./output/')

Calculate EAG based on Angle

evaltools.eval_func.evaluate_EAG.calc_D_EAG(df_gt_data, df_est, ALIP_timerange=[], draw_flg=False, output_path='./output/')

Calculate EAG based on Distance

evaltools.eval_func.evaluate_EAG.calc_T_EAG(df_gt_data, df_est, ALIP_timerange=[], draw_flg=False, output_path='./output/')

Calculate EAG based on Time

evaltools.eval_func.evaluate_EAG.draw_eag(error_from_gt, Srad_from_ALIP, mode, output_path='./')
evaltools.eval_func.evaluate_EAG.eval_EAG(df_est, step)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_EAG.eval_EAG_tl(df_gt_data, df_est, ALIP_timerange=[], mode='T')

Calculate Error Accumulation Gradient

Parameters:
  • df_gt_data (pandas.DataFrame) – Ground truth, columns: [timestamp, x, y, theta, floor]

  • df_est (pandas.DataFrame) – Estimated position, columns: [timestamp, x, y, floor, …]

  • ALIP_timerange (list of float) – Time range, [float, float]

  • mode ({'T', 'D', 'A'}) – Mode of EAG calculation: Time, Distance, or Angle.

  • verbose (boolean) – Added intermediate data used for graph plotting to the return value.

Returns:

result – Error at each timestamp, columns: [timestamp, type, value]

Return type:

pandas.DataFrame

eval_func.evaluate_FE module

evaltools.eval_func.evaluate_FE.eval_FE(df_est, step)

Calc CE (評価値まで算出する版。主に最適化用の入口)

evaltools.eval_func.evaluate_FE.eval_FE_tl(df_gt_data, df_est)

Floor Error timeline

Parameters:
  • df_gt_data (pandas.DataFrame [timestamp, x, y, theta, floor]) – ground truth

  • df_est (pandas.DataFrame [timestamp, x, y, floor, ...]) – estimated position

  • Retruns

  • ----------

  • df_floor_error_tl (pandas.DataFrame [timestamp, type, ce])

eval_func.evaluate_OE module

evaltools.eval_func.evaluate_OE.calc_mapsize(geom)
evaltools.eval_func.evaluate_OE.check_error(df_est, obstacle, obstacle_cordinate_count, output_path='./output/')
evaltools.eval_func.evaluate_OE.eval_OE(df_est, step, floor, bitmap_path)
evaltools.eval_func.evaluate_OE.eval_OE_tl(df_est, obstacle, bitmap_scale=0.01, O=(0, 0))

Calculate Obstacle Error

Parameters:
  • df_est (pandas.DataFrame) – Estimated position, columns: [timestamp, x, y, floor, …]

  • obstacle (bitmap) – 0 : movable, 1 : obstacle

  • bitmap_scale (float) – scale of bitmap ex) 1/100(m), 1/25(m), 1/10(m)

Returns:

result – Error at each timestamp, columns: [timestamp, type, value] value: True (in obstacle) or False (out obstacle)

Return type:

pandas.DataFrame

evaltools.eval_func.evaluate_OE.eval_OE_tl_multifloor(df_est, obstacle_dict, bitmap_scale=0.01, O=(0, 0))

Supports multiple floors. Currently under development.

evaltools.eval_func.evaluate_OE.gen_runtime_OE(step, floor, bitmap_path=None)

obstacle 評価関数を実行するのに必要なデータの生成

eval_func.evaluate_PE module

evaltools.eval_func.evaluate_PE.calc_velocity_from_xy2(df_est, x_column='x', y_column='y', window_time=0.5)

Calc velocity from sum of move distance from -0.5sec to +0.5sec

evaltools.eval_func.evaluate_PE.eval_PE(pfloc, pdr, target_rate=1.3, valid_vel=1.2)

pdrの移動距離に対してpfloc移動距離が一定倍率を超えないかチェック

evaltools.eval_func.evaluate_PE.eval_pe(df_est, step, target_rate)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_PE.main_cl(args)

eval_func.evaluate_RDA module

evaltools.eval_func.evaluate_RDA.evaluate_RDA_tl(est1, est2, gt1, gt2, setname='')

Calculate Relative-Distance-Accuracy Error

Computes the per-timestamp Euclidean distances between two estimated trajectories, and the error with respect to the corresponding ground-truth distances.

Parameters:
  • est1 (pandas.DataFrame) – Estimated trajectory1, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • est2 (pandas.DataFrame) – Estimated trajectory2, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • gt1 (pandas.DataFrame) – Ground-truth trajectory corresponding to est1, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • gt2 (pandas.DataFrame) – Ground-truth trajectory corresponding to est2, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • setname (String) – Tag used to separate results by type. Deprecated: use an additional column to distinguish result types instead.

Returns:

result – Error at each timestamp, columns: [timestamp, type, value]

Return type:

pandas.DataFrame

evaltools.eval_func.evaluate_RDA.main_cl(args)
evaltools.eval_func.evaluate_RDA.plot_graph(RDA, est1, dataname)

eval_func.evaluate_RE module

evaltools.eval_func.evaluate_RE.calc_RE(df_est, blescans, gis_ble, thresh=-85, txpower=-70, loss_rate=2.1, method='MSE', R=1, output='avg')
evaltools.eval_func.evaluate_RE.eval_RE(df_est, blescans, gis_ble, thresh=-65, txpower=-70, loss_rate=2.1, method='MSE', R=1, deltaT=10)
evaltools.eval_func.evaluate_RE.eval_re(df_est, step, method, R, thresh, deltaT)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_RE.main_cl(args)

eval_func.evaluate_RHA module

evaltools.eval_func.evaluate_RHA.evaluate_RHA_tl(est1, est2, gt1, gt2, setname='')

Calculate Relative-Heading-Accuracy Error

Computes the per-timestamp heading angle differences between two trajectories, and the error relative to the corresponding ground-truth heading angle differences.

Parameters:
  • est1 (pandas.DataFrame) – Estimated trajectory1, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • est2 (pandas.DataFrame) – Estimated trajectory2, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • gt1 (pandas.DataFrame) – Ground-truth trajectory corresponding to est1, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • gt2 (pandas.DataFrame) – Ground-truth trajectory corresponding to est2, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • setname (String) – Tag used to separate results by type. Deprecated: use an additional column to distinguish result types instead.

Returns:

result – Error at each timestamp, columns: [timestamp, type, value]

Return type:

pandas.DataFrame

evaltools.eval_func.evaluate_RHA.main_cl(args)
evaltools.eval_func.evaluate_RHA.plot_graph(RHA, est1, dataname)
evaltools.eval_func.evaluate_RHA.scale_rad(rad)

-pi < θ <= pi へスケーリング

eval_func.evaluate_RPA module

evaltools.eval_func.evaluate_RPA.evaluate_RPA_tl(est1, est2, gt1, gt2, id1=1, id2=2)

Calculate Relative-Pose-Accuracy Error

Computes the relative polar coordinate error between two estimated trajectories, compared to the corresponding ground-truth relative polar coordinates.

Parameters:
  • est1 (pandas.DataFrame) – Estimated trajectory1, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • est2 (pandas.DataFrame) – Estimated trajectory2, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • gt1 (pandas.DataFrame) – Ground-truth trajectory corresponding to est1, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • gt2 (pandas.DataFrame) – Ground-truth trajectory corresponding to est2, columns, [timestamp, x, y, (z,) yaw] or [timestamp, x, y, (z,) qx, qy, qz, qw]

  • id1 (String) – A label used to distinguish RPA values computed from the relative coordinates of est1 and est2.

  • id2 (String) – A label used to distinguish RPA values computed from the relative coordinates of est1 and est2.

Returns:

result – Error at each timestamp, columns: [timestamp, type, value] type : [rpa_{id1}{id2}, rpa_{id2}{id1}]

Return type:

pandas.DataFrame

evaltools.eval_func.evaluate_RPA.main_cl(args)
evaltools.eval_func.evaluate_RPA.scale_rad(rad)

-pi < θ <= pi へスケーリング

eval_func.evaluate_VE module

evaltools.eval_func.evaluate_VE.calc_velocity_error_negative_xy(df_est, window_time=0.5)

check abnormal walking velocity (= valid_vel) and calculate rating of abnormal velocity.

calculate velocity from x-y version

evaltools.eval_func.evaluate_VE.calc_velocity_error_with_gt(df_est, df_gt, window_time=0.5)

Calculate error of (gt_vel - est_vel)

evaltools.eval_func.evaluate_VE.calc_velocity_from_xy(df_est, x_column='x', y_column='y', diff_rate=1)

Calc velocity from x-y

evaltools.eval_func.evaluate_VE.calc_velocity_from_xy2(df_est, x_column='x', y_column='y', window_time=0.5)

Calc velocity from sum of move distance from -0.5sec to +0.5sec

evaltools.eval_func.evaluate_VE.eval_VE(df_est, step=None, valid_vel=1.5)

統合測位用の(step形式の)呼び出し口

evaltools.eval_func.evaluate_VE.eval_VE_tl(df_est, df_gt=None, window_time=0.5)

Calc Velocity Error

df_estpandas.DataFrame [timestamp, x, y, floor, …]

estimated position

df_gtpandas.DataFrame [timestamp, x, y, theta, floor]

ground truth

window_timefloat

interval time of calcurating velocity vel(t) = {f(t+window_time) - f(t-window_time)}/window_time

evaltools.eval_func.evaluate_VE.main_negative_vxvy(df_est, valid_vel=1.5, est_timerange=[])

check abnormal walking velocity (= valid_vel) and calculate rate of abnormal velocity.

calculate velocity from vx-vy version

eval_func.evaluate_VR module

evaltools.eval_func.evaluate_VR.eval_vr(pfloc, method='Median')

速度ベクトル角変化量

evaltools.eval_func.evaluate_VR.main_cl(args)
evaltools.eval_func.evaluate_VR.multi_dot(A, B)
evaltools.eval_func.evaluate_VR.rmse(ndarray, ndarray0=0)

eval_func.evaluate_pdr_Rad module

evaltools.eval_func.evaluate_pdr_Rad.eval_RadError(gt_data, xdr)

総角度変化量

evaltools.eval_func.evaluate_pdr_Rad.eval_RadError2(gt_data, xdr)

各時刻方位角の二乗誤差

evaltools.eval_func.evaluate_pdr_Rad.eval_pdr_rad(gt_data, xdr, squareError=True)

eval_func.evaluate_pdr_Vel module

evaltools.eval_func.evaluate_pdr_Vel.calc_SumDist(data)
evaltools.eval_func.evaluate_pdr_Vel.eval_SumDist(gt_data, xdr)

xdrとgtの総移動距離の誤差を評価

evaltools.eval_func.evaluate_pdr_Vel.eval_VelError(steps, xdr)

速度誤差

evaltools.eval_func.evaluate_pdr_Vel.eval_VelError2(gt_data, xdr, column_x='vx', column_y='vy')

平滑化後速度誤差評価

evaltools.eval_func.evaluate_pdr_Vel.eval_pdr_vel(gt_data, xdr)

Module contents