Ejemplo n.º 1
0
def write_overall_odometry_errors_table(overall_err_tables, output_dir):
    print("Writing to overall error to text files...")
    res_writer.write_tex_table(
        overall_err_tables['trans_err']['values'],
        overall_err_tables['trans_err']['rows'],
        overall_err_tables['trans_err']['cols'],
        os.path.join(output_dir, 'overall_rel_trans_err.txt'))
    res_writer.write_tex_table(
        overall_err_tables['trans_err_perc']['values'],
        overall_err_tables['trans_err_perc']['rows'],
        overall_err_tables['trans_err_perc']['cols'],
        os.path.join(output_dir, 'overall_rel_trans_err_perc.txt'))
    res_writer.write_tex_table(
        overall_err_tables['yaw_err']['values'],
        overall_err_tables['yaw_err']['rows'],
        overall_err_tables['yaw_err']['cols'],
        os.path.join(output_dir, 'overall_rel_yaw_err.txt'))
Ejemplo n.º 2
0
                        mt_error_d.abs_errors['rmse_trans_stats']['median']))
                else:
                    cur_trans_rmse.append(
                        "{:3.3f}, {:3.3f} ({:3.3f} - {:3.3f})".format(
                            mt_error_d.abs_errors['rmse_trans_stats']['mean'],
                            mt_error_d.abs_errors['rmse_trans_stats']
                            ['median'],
                            mt_error_d.abs_errors['rmse_trans_stats']['min'],
                            mt_error_d.abs_errors['rmse_trans_stats']['max']))
            rmse_table['values'].append(cur_trans_rmse)
        rmse_table['rows'] = algorithms
        rmse_table['cols'] = datasets
        print('\n--- Generating RMSE tables... ---')
        res_writer.write_tex_table(
            rmse_table['values'], rmse_table['rows'], rmse_table['cols'],
            os.path.join(
                output_dir,
                args.platform + '_translation_rmse_' + eval_uid + '.txt'))

    if args.rmse_boxplot and n_trials > 1:
        rmse_plot_alg = [v for v in algorithms]
        algorithm_rmse = collect_rmse_per_dataset(config_multierror_list,
                                                  rmse_plot_alg)
        print("--- Generate boxplot for RMSE ---")
        plot_rmse_per_dataset(algorithm_rmse, datasets, algorithms, output_dir,
                              plot_settings)
    print(Fore.GREEN + "<<< ...processing absolute trajectory errors done.")

    print(Fore.RED + ">>> Collecting odometry errors per dataset...")
    if args.odometry_error_per_dataset:
        dataset_rel_err = {}
Ejemplo n.º 3
0
        for traj in config_trajs:
            print('> Saving {0}'.format(traj.uid))
            traj.cache_current_error()
            traj.write_errors_to_yaml()

    print("#####################################")
    print(">>> Start plotting and writing results....")
    print("#####################################")
    if args.plot_trajectories:
        print('\n--- Plotting trajectory top and side view ... ---')
        plot_trajectories(dataset_trajectories_list, datasets, output_dir)
    if args.odometry_error_per_dataset:
        print('\n--- Generating relative (KITTI style) error plots... ---')
        plot_odometry_error_per_dataset(dataset_rel_err, datasets, output_dir)
    if args.overall_odometry_error:
        print('\n--- Plotting overall error ... ---')
        plot_overall_odometry_errors(overall_err, output_dir)
        write_overall_odometry_errors_table(overall_err_tables, output_dir)
    if args.rmse_table:
        print('\n--- Generating RMSE tables... ---')
        res_writer.write_tex_table(
            rmse_table['values'], rmse_table['rows'], rmse_table['cols'],
            os.path.join(output_dir, args.platform + '_translation_rmse.txt'))
        res_writer.write_tex_table(
            data_table['values'], data_table['rows'], data_table['cols'],
            os.path.join(output_dir, args.platform + '_data_vel.txt'))

    print("#####################################")
    print("<<< Finished.")
    print("#####################################")