Demo of evaluation of one database with different sets of parameters
1. Combination test of different parameters
2. Execute tasks on different cluster nodes using temporary scripts
3. Generate one .csv file for each combination of parameters
4. Generate one .csv file for any specified metric over all tested parameters
5. Generate one .png file for any .csv files ( require R )
6. Generate corresponding webpage using sphinx
All input and output and random generated for demostration only. Users are required to fill in real testing binaries.
Each permuted test will be written as a file of script. And each script will be dispatched to a specific node.
Important variables / functions in this perl script:
antsBenchmarkTest.pl $ANTSBINDIR $input_root $output_root $test_case_prefix
$ANTSBINDIR : executable of ANTS
$input_root : input path root. For example, "/INPUT/ROOT"
$output_root : output path root. For example, "/OUTPUT/ROOT"
$test_case_prefix : define the prefix name for all tests. For example, "XXX" and each test will be named as "XXX_0", "XXX_1", etc.
$temp_execute_root = "$input_root/Script/tmp" : place to save temporary script generated. each node will execute a script as a task.
$global_para{test_case_prefix} :
$global_para : define all path info.
$test_para_combination : parameters for a permutation test, each array contains all possible options for one parameter.
$test_para_common : parameters NOT for a permutation test, fixed for all test. These will be copied to each test.
$test_para_misc : other fixed parameters for different test cases, for example you can define fixed parameters for some subgroup,
like fixed parameters for greedy SyN, or fixed parameters for exponential mapping. You can then define how to
copy these parameters for different cases.
define_image_list() : define the image file names in a database to loop over.
define_task_list() : define how to execute tasks by image names. The first element is the node, the second is an aray
of images for this node. For example:
my @task_list = ( [ 'compute-0-3.local', [ 'Apple', 'Banana', 'Pear' ] ] );
push( @task_list, ( [ 'compute-0-6.local', [ 'Orange', 'Pineapple', 'Watermelon' ] ] ) );
%metric_function_list : hash defining all the evaluation metrics. For example:
PairwiseDistance => [ \&read_metric_PairwiseDistance, 'PAIRWISE_DISTANCE_RESULT_FILE_APPENDIX' ],
First is the function handle about how to read the metric from a file. Second is the output file name appendix
for this metric.
&generate_list_of_test_para : function defining how to permutate and assigning all parameters.
&generate_name_of_test_case : function defining how to generate names for each test.
&execute_task_list_by_image : function defining how to assign each task, one image as one task, to computing nodes.
&collect_data_by_test_para: function defining how to collect all metrics by different tests. Each output .csv file is a 2D sheet: images X metrics
&collect_data_by_metric : function defining how to collect all metrics by different metrics. Each output .csv file is a 2D sheet: images X tests
&generate_report_for_sphinx : function defining how to generate sphinx/RST script for html pages.
Database: @image_list
Apple
Orange
Banana
Pear
Pineapple
Watermelon
Test parameters combination: $test_para_combination
| transformation_type_list | [GreedySyN] |
| total_field_sigma_list | [0] |
| DMMFD_points_list | [4x4x4] |
| deformable_metric_type_list | [CC] |
| regularization_type_list | [Gauss] |
| gradient_sigma_list | [0.0, 1.0, 2.0, 4.0, 8.0] |
Test paramters common: $test_para_common
| test_case_name | UNDEFINED_TEST_CASE |
| deformable_iterations | 200x200x200x200x50 |
| use_recursive_gaussian | false |
Test paramters misc: $test_para_misc
| gradient_step | 0.25 |
| exp_time_steps | 8 |
| radius | 2 |
| integration_delta | 0.1 |
| number_of_samples | 50000 |
| time_step | 4 |
Global parameters: $global_para
| original_lung_directory | /INPUT/ROOT/image |
| temp_script_path_prefix | /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/tmp_EvalDemoTest |
| test_case_prefix | EvalDemoTest |
| registration_directory | /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration |
| registration_script | /INPUT/ROOT/Script/e10_register.sh |
| original_mask_directory | /INPUT/ROOT/lungMasks |
| evaluate_result_root | /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Evaluate |
compute-0-6.local => tmp_EvalDemoTestcompute-0-6.local.sh
#$ -S /bin/bash
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Orange_Fixed.nii.gz,/INPUT/ROOT/image/Orange_Moving.nii.gz,1,2] SyN[0.25] Gauss[0.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_0/Orange/EvalDemoTest_0_Orange
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Orange_Fixed.nii.gz,/INPUT/ROOT/image/Orange_Moving.nii.gz,1,2] SyN[0.25] Gauss[1.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_1/Orange/EvalDemoTest_1_Orange
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Orange_Fixed.nii.gz,/INPUT/ROOT/image/Orange_Moving.nii.gz,1,2] SyN[0.25] Gauss[2.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_2/Orange/EvalDemoTest_2_Orange
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Orange_Fixed.nii.gz,/INPUT/ROOT/image/Orange_Moving.nii.gz,1,2] SyN[0.25] Gauss[4.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_3/Orange/EvalDemoTest_3_Orange
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Orange_Fixed.nii.gz,/INPUT/ROOT/image/Orange_Moving.nii.gz,1,2] SyN[0.25] Gauss[8.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_4/Orange/EvalDemoTest_4_Orange
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pineapple_Fixed.nii.gz,/INPUT/ROOT/image/Pineapple_Moving.nii.gz,1,2] SyN[0.25] Gauss[0.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_0/Pineapple/EvalDemoTest_0_Pineapple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pineapple_Fixed.nii.gz,/INPUT/ROOT/image/Pineapple_Moving.nii.gz,1,2] SyN[0.25] Gauss[1.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_1/Pineapple/EvalDemoTest_1_Pineapple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pineapple_Fixed.nii.gz,/INPUT/ROOT/image/Pineapple_Moving.nii.gz,1,2] SyN[0.25] Gauss[2.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_2/Pineapple/EvalDemoTest_2_Pineapple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pineapple_Fixed.nii.gz,/INPUT/ROOT/image/Pineapple_Moving.nii.gz,1,2] SyN[0.25] Gauss[4.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_3/Pineapple/EvalDemoTest_3_Pineapple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pineapple_Fixed.nii.gz,/INPUT/ROOT/image/Pineapple_Moving.nii.gz,1,2] SyN[0.25] Gauss[8.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_4/Pineapple/EvalDemoTest_4_Pineapple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Watermelon_Fixed.nii.gz,/INPUT/ROOT/image/Watermelon_Moving.nii.gz,1,2] SyN[0.25] Gauss[0.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_0/Watermelon/EvalDemoTest_0_Watermelon
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Watermelon_Fixed.nii.gz,/INPUT/ROOT/image/Watermelon_Moving.nii.gz,1,2] SyN[0.25] Gauss[1.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_1/Watermelon/EvalDemoTest_1_Watermelon
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Watermelon_Fixed.nii.gz,/INPUT/ROOT/image/Watermelon_Moving.nii.gz,1,2] SyN[0.25] Gauss[2.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_2/Watermelon/EvalDemoTest_2_Watermelon
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Watermelon_Fixed.nii.gz,/INPUT/ROOT/image/Watermelon_Moving.nii.gz,1,2] SyN[0.25] Gauss[4.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_3/Watermelon/EvalDemoTest_3_Watermelon
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Watermelon_Fixed.nii.gz,/INPUT/ROOT/image/Watermelon_Moving.nii.gz,1,2] SyN[0.25] Gauss[8.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_4/Watermelon/EvalDemoTest_4_Watermelon
compute-0-3.local => tmp_EvalDemoTestcompute-0-3.local.sh
#$ -S /bin/bash
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Apple_Fixed.nii.gz,/INPUT/ROOT/image/Apple_Moving.nii.gz,1,2] SyN[0.25] Gauss[0.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_0/Apple/EvalDemoTest_0_Apple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Apple_Fixed.nii.gz,/INPUT/ROOT/image/Apple_Moving.nii.gz,1,2] SyN[0.25] Gauss[1.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_1/Apple/EvalDemoTest_1_Apple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Apple_Fixed.nii.gz,/INPUT/ROOT/image/Apple_Moving.nii.gz,1,2] SyN[0.25] Gauss[2.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_2/Apple/EvalDemoTest_2_Apple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Apple_Fixed.nii.gz,/INPUT/ROOT/image/Apple_Moving.nii.gz,1,2] SyN[0.25] Gauss[4.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_3/Apple/EvalDemoTest_3_Apple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Apple_Fixed.nii.gz,/INPUT/ROOT/image/Apple_Moving.nii.gz,1,2] SyN[0.25] Gauss[8.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_4/Apple/EvalDemoTest_4_Apple
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Banana_Fixed.nii.gz,/INPUT/ROOT/image/Banana_Moving.nii.gz,1,2] SyN[0.25] Gauss[0.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_0/Banana/EvalDemoTest_0_Banana
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Banana_Fixed.nii.gz,/INPUT/ROOT/image/Banana_Moving.nii.gz,1,2] SyN[0.25] Gauss[1.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_1/Banana/EvalDemoTest_1_Banana
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Banana_Fixed.nii.gz,/INPUT/ROOT/image/Banana_Moving.nii.gz,1,2] SyN[0.25] Gauss[2.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_2/Banana/EvalDemoTest_2_Banana
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Banana_Fixed.nii.gz,/INPUT/ROOT/image/Banana_Moving.nii.gz,1,2] SyN[0.25] Gauss[4.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_3/Banana/EvalDemoTest_3_Banana
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Banana_Fixed.nii.gz,/INPUT/ROOT/image/Banana_Moving.nii.gz,1,2] SyN[0.25] Gauss[8.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_4/Banana/EvalDemoTest_4_Banana
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pear_Fixed.nii.gz,/INPUT/ROOT/image/Pear_Moving.nii.gz,1,2] SyN[0.25] Gauss[0.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_0/Pear/EvalDemoTest_0_Pear
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pear_Fixed.nii.gz,/INPUT/ROOT/image/Pear_Moving.nii.gz,1,2] SyN[0.25] Gauss[1.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_1/Pear/EvalDemoTest_1_Pear
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pear_Fixed.nii.gz,/INPUT/ROOT/image/Pear_Moving.nii.gz,1,2] SyN[0.25] Gauss[2.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_2/Pear/EvalDemoTest_2_Pear
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pear_Fixed.nii.gz,/INPUT/ROOT/image/Pear_Moving.nii.gz,1,2] SyN[0.25] Gauss[4.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_3/Pear/EvalDemoTest_3_Pear
bash /INPUT/ROOT/Script/e10_register.sh CC[/INPUT/ROOT/image/Pear_Fixed.nii.gz,/INPUT/ROOT/image/Pear_Moving.nii.gz,1,2] SyN[0.25] Gauss[8.0,0] 200x200x200x200x50 /Users/stnava/code/temp/advants-code/bin/Testing/Benchmark/Registration/EvalDemoTest_4/Pear/EvalDemoTest_4_Pear
EvalDemoTest_0
EvalDemoTest_0
test_case_name => EvalDemoTest_0
regularization => Gauss[0.0,0]
deformable_iterations => 200x200x200x200x50
deformable_metric => CC[FIXIMAGE,MOVIMAGE,1,2]
use_recursive_gaussian => false
transformation => SyN[0.25]
image_name |
min |
max |
mean |
std |
minpd |
maxpd |
meanpd |
stdpd |
dice |
|---|---|---|---|---|---|---|---|---|---|
Apple |
4.45 |
8.3 |
2.54 |
9.7 |
0.33 |
0.8 |
0.41 |
0.42 |
0.47 |
Orange |
6.08 |
1.05 |
2.2 |
6.13 |
0.25 |
0.27 |
0.61 |
0.31 |
0.29 |
Banana |
8.89 |
7.81 |
9.93 |
2.3 |
0.1 |
0.75 |
0.09 |
0.72 |
0.83 |
Pear |
6.76 |
2.18 |
2.06 |
9.44 |
0.57 |
0.22 |
0.29 |
0.05 |
0.3 |
Pineapple |
5.91 |
6.77 |
1.13 |
7.74 |
0.3 |
0.58 |
0.24 |
0.64 |
0.18 |
Watermelon |
0.56 |
4.21 |
4.37 |
3.5 |
0.22 |
0.41 |
0.92 |
0.47 |
0.63 |
EvalDemoTest_1
EvalDemoTest_1
test_case_name => EvalDemoTest_1
regularization => Gauss[1.0,0]
deformable_iterations => 200x200x200x200x50
deformable_metric => CC[FIXIMAGE,MOVIMAGE,1,2]
use_recursive_gaussian => false
transformation => SyN[0.25]
image_name |
min |
max |
mean |
std |
minpd |
maxpd |
meanpd |
stdpd |
dice |
|---|---|---|---|---|---|---|---|---|---|
Apple |
7.17 |
2.41 |
4.87 |
2.15 |
0.27 |
0.58 |
0.57 |
0.31 |
0.26 |
Orange |
7.97 |
1.38 |
1.36 |
8.72 |
0.34 |
0.5 |
0.09 |
0.29 |
0.88 |
Banana |
3.41 |
2.06 |
0.94 |
0.83 |
0.7 |
0.35 |
0.95 |
0.39 |
0.48 |
Pear |
0.49 |
8.02 |
4.01 |
2.07 |
0.77 |
0.34 |
0.69 |
0.08 |
0.83 |
Pineapple |
9.31 |
7.15 |
2.79 |
2.04 |
0.25 |
0.04 |
0.9 |
0.2 |
0.13 |
Watermelon |
7.36 |
6.3 |
5.33 |
0.42 |
0.66 |
0.59 |
0.66 |
0.56 |
0.52 |
EvalDemoTest_2
EvalDemoTest_2
test_case_name => EvalDemoTest_2
regularization => Gauss[2.0,0]
deformable_iterations => 200x200x200x200x50
deformable_metric => CC[FIXIMAGE,MOVIMAGE,1,2]
use_recursive_gaussian => false
transformation => SyN[0.25]
image_name |
min |
max |
mean |
std |
minpd |
maxpd |
meanpd |
stdpd |
dice |
|---|---|---|---|---|---|---|---|---|---|
Apple |
3.6 |
2.27 |
5.68 |
1.04 |
0.81 |
0.34 |
0.82 |
0.22 |
0.71 |
Orange |
6.6 |
9.14 |
6.66 |
2.15 |
0.92 |
0.62 |
0.9 |
0.04 |
0.74 |
Banana |
5.61 |
4.24 |
4.01 |
4.65 |
0.3 |
0.11 |
0.62 |
0.99 |
0.85 |
Pear |
8.87 |
3 |
0.27 |
0.73 |
0.05 |
0.49 |
0.5 |
0.78 |
0.17 |
Pineapple |
6.61 |
6.85 |
0.91 |
2.93 |
0.31 |
0.15 |
0.58 |
0.86 |
0.8 |
Watermelon |
2.47 |
3.02 |
6.96 |
5.73 |
0.52 |
0.15 |
0.89 |
0.65 |
0.15 |
EvalDemoTest_3
EvalDemoTest_3
test_case_name => EvalDemoTest_3
regularization => Gauss[4.0,0]
deformable_iterations => 200x200x200x200x50
deformable_metric => CC[FIXIMAGE,MOVIMAGE,1,2]
use_recursive_gaussian => false
transformation => SyN[0.25]
image_name |
min |
max |
mean |
std |
minpd |
maxpd |
meanpd |
stdpd |
dice |
|---|---|---|---|---|---|---|---|---|---|
Apple |
4.32 |
1.59 |
3.01 |
3.09 |
0.16 |
0.01 |
0.44 |
0.42 |
0.85 |
Orange |
3.61 |
3.96 |
7.04 |
4.32 |
0.64 |
0.05 |
0.15 |
0.77 |
0.99 |
Banana |
4.11 |
1.87 |
3.18 |
3.58 |
0.26 |
0.06 |
0.72 |
0.54 |
0.39 |
Pear |
2.63 |
1.02 |
1.74 |
4.89 |
0.8 |
0.53 |
0.87 |
0.87 |
0.39 |
Pineapple |
5.22 |
7.49 |
6.65 |
2.91 |
0.64 |
0.7 |
0.78 |
0.94 |
0.32 |
Watermelon |
4.13 |
2.72 |
0.18 |
2.65 |
0.35 |
0.21 |
0.15 |
0.26 |
0.76 |
EvalDemoTest_4
EvalDemoTest_4
test_case_name => EvalDemoTest_4
regularization => Gauss[8.0,0]
deformable_iterations => 200x200x200x200x50
deformable_metric => CC[FIXIMAGE,MOVIMAGE,1,2]
use_recursive_gaussian => false
transformation => SyN[0.25]
image_name |
min |
max |
mean |
std |
minpd |
maxpd |
meanpd |
stdpd |
dice |
|---|---|---|---|---|---|---|---|---|---|
Apple |
0.82 |
5.57 |
8.65 |
6.27 |
0.59 |
0.44 |
0.79 |
0.78 |
0.53 |
Orange |
6.49 |
3.02 |
6.77 |
6.94 |
0.99 |
0.82 |
0.07 |
0.07 |
0.02 |
Banana |
3.54 |
8.02 |
4.69 |
5.1 |
0.71 |
0.08 |
0.86 |
0.97 |
0.48 |
Pear |
1.46 |
2.26 |
0.91 |
5.09 |
0.09 |
0.43 |
0.96 |
0.42 |
0.84 |
Pineapple |
0.76 |
8.13 |
2.26 |
9 |
0.93 |
0.9 |
0.54 |
0.79 |
0.12 |
Watermelon |
2.84 |
2.24 |
0.31 |
4.48 |
0.71 |
0.12 |
0.04 |
0.76 |
0.38 |
FirstOrderStatistics-mean
| image_name | EvalDemoTest_0 | EvalDemoTest_1 | EvalDemoTest_2 | EvalDemoTest_3 | EvalDemoTest_4 |
|---|---|---|---|---|---|
| Apple | 7.39 | 0.5 | 5.99 | 7.39 | 3.97 |
| Orange | 9.71 | 2.96 | 0.68 | 7.23 | 0.93 |
| Banana | 3.63 | 0.96 | 9.28 | 0.07 | 3.84 |
| Pear | 1.9 | 1.76 | 5.45 | 1.97 | 8.91 |
| Pineapple | 9.1 | 0.71 | 0.92 | 8.48 | 1.08 |
| Watermelon | 2.13 | 4.94 | 1.47 | 9.15 | 2.53 |
FirstOrderStatistics_mean_eval.csv