def run_eval(exp_name: str) -> Mapping[str, Any]: """ """ pred_log_dir = f"{_ROOT}/test_data/eval_tracking_dummy_logs_pred" gt_log_dir = f"{_ROOT}/test_data/eval_tracking_dummy_logs_gt" out_fpath = f"{_ROOT}/test_data/{exp_name}.txt" out_file = open(out_fpath, "w") eval_tracks( path_tracker_output_root=pred_log_dir, path_dataset_root=gt_log_dir, d_min=0, d_max=100, out_file=out_file, centroid_method="average", diffatt=None, category="VEHICLE", ) out_file.close() with open(out_fpath, "r") as f: result_lines = f.readlines() result_vals = result_lines[0].strip().split(" ") fn, num_frames, mota, motp_c, motp_o, motp_i, idf1 = result_vals[:7] most_track, most_lost, num_fp, num_miss, num_sw, num_frag = result_vals[ 7:] result_dict = { "filename": fn, "num_frames": int(num_frames), "mota": float(mota), "motp_c": float(motp_c), "motp_o": float(motp_o), "motp_i": float(motp_i), "idf1": float(idf1), "most_track": float(most_track), "most_lost": float(most_lost), "num_fp": int(num_fp), "num_miss": int(num_miss), "num_sw": int(num_sw), "num_frag": int(num_frag), } shutil.rmtree(pred_log_dir) shutil.rmtree(gt_log_dir) return result_dict
def test_evaluation_track(): """ test eval_tracks function """ # for testing, consider all point eval_tracking.min_point_num = 0 centroid_methods = ["label_center", "average"] temp_output = TEST_DATA_LOC / "tmp" out_file = open(temp_output, "w+") log = "1" log_location = TEST_DATA_LOC / log # sanity check, gt and results exactly the same track_results_location = log_location / "per_sweep_annotations_amodal" cm = centroid_methods[1] eval_tracking.eval_tracks(track_results_location, os.fspath(log_location), D_MIN, D_MAX, out_file, cm) # _,n_frame,mota,motp, idf1, mostly_tracked,mostly_lost,num_false_positives, num_misses,num_switches,num_fragmentations = out_file.read().strip().split(' ') out_file.close()
def test_evaluation_track(): """ test eval_tracks function """ # for testing, consider all point eval_tracking.min_point_num = 0 centroid_methods = ["label_center", "average"] temp_output = TEST_DATA_LOC / "tmp" out_file = open(temp_output, "w+") log = "1" log_location = TEST_DATA_LOC / log # sanity check, gt and results exactly the same track_results_location = log_location / "per_sweep_annotations_amodal" cm = centroid_methods[1] eval_tracking.eval_tracks([track_results_location], [os.fspath(log_location)], D_MIN, D_MAX, out_file, cm) out_file.close()
thr_estimate=thr_estimate, thr_prune=thr_prune, ps=ps) print(f"Elapsed tracking vehicle {time.time() - time_start}") time_start = time.time() with open(filename_v, "a+") as out_file: out_file.write( f"{p_vel_mult} min_conf {min_conf} match_thr {match_threshold} {thr_prune} {thr_estimate} {ps} " ) eval_tracks(path_results, path_data, 0, 100, out_file, 'average', diffatt=None, category='VEHICLE') print(f"Elapsed evaluating vehicle {time.time() - time_start}") if os.path.exists(path_results): shutil.rmtree(path_results) match_threshold = 0.001 min_conf = 0.26 time_start = time.time() # Pedestrian
def dump_scenario_json(centers, yaw_angles, log_id, is_gt, run_eval=True): """ Egovehicle stationary (represented by `o`). Seqeuence of 4-nanosecond timestamps. """ t_objs = TrackedObjects(log_id=log_id, is_gt=is_gt) l = 2 w = 2 h = 1 track_id = 'obj_a' label_class = 'VEHICLE' cx, cy, cz = centers[0] qx, qy, qz, qw = yaw_to_quaternion3d(yaw=yaw_angles[0]) tor = TrackedObjRec(l, w, h, qx, qy, qz, qw, cx, cy, cz, track_id, label_class) t_objs.add_obj(tor, ts_ns=0) cx, cy, cz = centers[1] qx, qy, qz, qw = yaw_to_quaternion3d(yaw=yaw_angles[1]) tor = TrackedObjRec(l, w, h, qx, qy, qz, qw, cx, cy, cz, track_id, label_class) t_objs.add_obj(tor, ts_ns=1) cx, cy, cz = centers[2] qx, qy, qz, qw = yaw_to_quaternion3d(yaw=yaw_angles[2]) tor = TrackedObjRec(l, w, h, qx, qy, qz, qw, cx, cy, cz, track_id, label_class) t_objs.add_obj(tor, ts_ns=2) cx, cy, cz = centers[3] qx, qy, qz, qw = yaw_to_quaternion3d(yaw=yaw_angles[3]) tor = TrackedObjRec(l, w, h, qx, qy, qz, qw, cx, cy, cz, track_id, label_class) t_objs.add_obj(tor, ts_ns=3) t_objs.save_to_disk() if not run_eval: return None pred_log_dir = f'{_ROOT}/test_data/eval_tracking_dummy_logs_pred' gt_log_dir = f'{_ROOT}/test_data/eval_tracking_dummy_logs_gt' out_fpath = f'{_ROOT}/test_data/{log_id}.txt' out_file = open(out_fpath, 'w') eval_tracks(path_tracker_output_root=pred_log_dir, path_dataset_root=gt_log_dir, d_min=0, d_max=100, out_file=out_file, centroid_method="average", diffatt=None, category='VEHICLE') out_file.close() with open(out_fpath, 'r') as f: result_lines = f.readlines() result_vals = result_lines[0].strip().split(' ') fn, num_frames, mota, motp_c, motp_o, motp_i, idf1 = result_vals[:7] most_track, most_lost, num_fp, num_miss, num_sw, num_frag = result_vals[ 7:] # Todo: change `num_flag` to `num_frag` result_dict = { 'filename': fn, 'num_frames': int(num_frames), 'mota': float(mota), 'motp_c': float(motp_c), 'motp_o': float(motp_o), 'motp_i': float(motp_i), 'idf1': float(idf1), 'most_track': float(most_track), 'most_lost': float(most_lost), 'num_fp': int(num_fp), 'num_miss': int(num_miss), 'num_sw': int(num_sw), 'num_frag': int(num_frag), } shutil.rmtree(pred_log_dir) shutil.rmtree(gt_log_dir) return result_dict