User Tools

Site Tools


customanalysis

Custom Analysis

SLAM-Hive system provides meta analysis function named “Custom Analysis”.

You can use the historical results in database to do more comprehensive analysis.


View-only Version

In the system, we first provide some pre-created analysis results, and you can browse them.

Note: You can also create the custom analysis task in our “view-only” version, but the result will be not shown at the “Group List”. Instead, when the task finished, the system will return you the task ID, and you should remember it. And when you want to see your result, you can input the link: https://slam-hive.net/analysis/show/YOUR_ID. And if you build you own SLAM Hive website and you want to show some your analysis results on it, you should change their YAML file's “is_visualized” from 0 to 1 locally. Then they can be shown in group list.

1. Create Custom Analysis Task

Here we provide you with a basic YAML file to show you how to create a task, and in Example we provide more detailed examples to show you how to create and use different types of analysis task.

group_name: Simple_example  # custom analysis task name.

group_description: xxxxxx # some simple description of the task.

evaluation_form:
  # you should choose 0-3 based on your configurations.
  algorithm_dataset_type: 0 # 0: same_algorithm_same_dataset.          can choose: 1 2 3 4 6 7 8
                          # 1: different_algorithm_same dataset        can choose: 1 2 3 4 6 7
                          # 2: same_algorithm_different_dataset        can choose: 3 6 7
                          # 3: different_algorithm_different_dataset.  can choose: 3 6 7
  1_trajectory_comparison: # compare the trajectories.
    choose: 0 # choose this analysis (0) or not (1)
  
  2_accuracy_metrics_comparison: # compare the ATE and RPE metrics of trajectories
    choose: 0  
  
  3_accuracy_metrics_comparison: # generate a histogram of different (algorithm + dataset) group.
    choose: 0
    calculate_method: 1 # 0: average (because one algo + one dataset may include different configs)
                      # 1: choose the best one   
                      # then for each (algorithm, dataset), get one configuration, then calculate the average value
    metric: ate_rmse # eg: ATE-RMSE
    algorithm_id: [12] # choose the algorithms by ID
    dataset_id: [2] # choose the dataset sequences by ID
  
  4_usage_metrics_comparison: # compare the CPU and Memory usage.
    choose: 0  

  6_scatter_diagram: # generate a scatter to show the metrics of different configurations' task.
    choose: 1
    x-axis: general+image_frequency # X axis's metric
    y-axis: ate_mean # Y axis's metric
    # You can choose: 1) Evo metrics; 2) Resource Usage metrics; 3) Configuration parameters (provide the parameter template's name; and you should choose one that all configurations use this template).
    
  7_3d_scatter_diagram: # 3D version of the scatter
    choose: 1
    x-axis: general+image_width
    y-axis: general+imu_frequency
    z-axis: ate_mean
  # For the scatter and 3D scatter, when you create a analysis, you can also use this task to create more scatters with other axis's metrics; And you can also see the online dynamic scatter on the webpage.  
    
  8_repeatability_test: # Test one configuration's stability.
    choose: 0 # If you use this analysis, you should only choose one configuration.
    metric: ate_mean
 
# 
configuration_choose: # implicit limitation:chosen configs has running task and evaluation
  # three ways to choose confg
  configuration_id: [] # provide configurations id
  comb_configuration_id: [72] # provide combination configurations id (Equal to choose all configurations ID contained by these comb configs).
  limitation_rules:   # by a rule;
    algorithm_id: [12, 13]
    dataset_id: [2,3]
    parameters_value: ["nFeatures < 4000"]
    evaluation_value:
      ate_rmse_nolimitation: 1              # 0 or 1
      ate_rmse_minimum:                   # if just minimum and no maximum, can just fill the minimum
      ate_rmse_maximun:
      ate_mean_nolimitation:    1           # 0 or 1
      ate_mean_minimum:                  
      ate_mean_maximun:
      ate_median_nolimitation:   1           # 0 or 1
      ate_median_minimum:                  
      ate_median_maximun:
      ate_std_nolimitation:   1           # 0 or 1
      ate_std_minimum:                  
      ate_std_maximun:
      ate_min_nolimitation:    1          # 0 or 1
      ate_min_minimum:                  
      ate_min_maximun:
      ate_max_nolimitation:  1            # 0 or 1
      ate_max_minimum:                  
      ate_max_maximun:
      ate_sse_nolimitation:    1          # 0 or 1
      ate_sse_minimum:                  
      ate_sse_maximun:
      rpe_rmse_nolimitation:     1         # 0 or 1
      rpe_rmse_minimum:                   # if just minimum and no maximum, can just fill the minimum
      rpe_rmse_maximun:
      rpe_mean_nolimitation:    1          # 0 or 1
      rpe_mean_minimum:                  
      rpe_mean_maximun:
      rpe_median_nolimitation:    1          # 0 or 1
      rpe_median_minimum:                  
      rpe_median_maximun:
      rpe_std_nolimitation:    1          # 0 or 1
      rpe_std_minimum:                  
      rpe_std_maximun:
      rpe_min_nolimitation:    1          # 0 or 1
      rpe_min_minimum:                  
      rpe_min_maximun:
      rpe_max_nolimitation:   1           # 0 or 1
      rpe_max_minimum:                  
      rpe_max_maximun:
      rpe_sse_nolimitation:     1         # 0 or 1
      rpe_sse_minimum:                  
      rpe_sse_maximun:
      cpu_max_nolimitation:    1          # 0 or 1
      cpu_max_minimum:                  
      cpu_max_maximun:
      cpu_mean_nolimitation:    1          # 0 or 1
      cpu_mean_minimum:                  
      cpu_mean_maximun:
      ram_max_nolimitation:     1         # 0 or 1
      ram_max_minimum:                  
      ram_max_maximun:
  combination_rule:   # how to combine three ways:U - union set; I - intersection set; complement set;
    first_one: [1]
    first_rule: ["U"]
    second_one: [0,2]
    second_rule: ["I"] # (1) - (0 I 2)

2. Show the Custom Analysis Results

The “SHOW” webpage shows all the results created by this analysis task. You can also download the diagrams (.png .pdf .pgf) and the raw data (.csv).

Online Dynamic Diagram Results

For the “6_scatter_diagram” and “7_3d_scatter_diagram”, we also provide online dynamic scatters for users. It's more convenient for users to see the detail information of each configurations(points) in the scatter. You can also create more scatters reusing this task's rules and choose other metrics or parameters.

customanalysis.txt · Last modified: 2024/07/30 08:56 by liuxzh12023