basalt/scripts/eval_full/gen_results_tumvi.py

54 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python
import os
import sys
import json
datasets = ['Seq.', 'dataset-corridor1_512_16', 'dataset-magistrale1_512_16', 'dataset-room1_512_16', 'dataset-slides1_512_16']
# Other results.
vio = {
'ate' : ['VIO RMS ATE [m]'],
'time' : ['VIO Time [s]'],
'num_frames' : ['VIO Num. Frames']
}
out_dir = sys.argv[1]
def load_data(x, prefix, key):
fname = out_dir + '/' + prefix + '_' + key
if os.path.isfile(fname):
with open(fname, 'r') as f:
j = json.load(f)
res = round(j['rms_ate'], 3)
x['ate'].append(float(res))
x['time'].append(round(j['exec_time_ns']*1e-9, 3))
x['num_frames'].append(j['num_frames'])
else:
x['ate'].append(float('Inf'))
x['time'].append(float('Inf'))
x['num_frames'].append(float('Inf'))
for key in datasets[1:]:
load_data(vio, 'vio', key)
row_format ="{:>17}" + "{:>13}" * (len(datasets)-1)
datasets_short = [x[:5] for x in datasets]
print '\nVisual-Inertial Odometry'
print row_format.format(*datasets_short)
print row_format.format(*vio['ate'])
#print row_format.format(*vio['time'])
print row_format.format(*vio['num_frames'])