60 lines
1.9 KiB
Python
Executable File
60 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import os
|
|
import numpy as np
|
|
|
|
# CLASSES = ['car', 'pedestrian', 'cyclist', 'van', 'truck', 'person_sitting', 'tram']
|
|
CLASSES = ['pedestrian']
|
|
|
|
# PARAMS = ['detection', 'orientation', 'iour', 'mppe']
|
|
PARAMS = ['detection', 'detection_1%', 'detection_5%', 'detection_10%', 'detection_3d', 'detection_ground', 'orientation']
|
|
|
|
DIFFICULTIES = ['easy', 'moderate', 'hard', 'all']
|
|
|
|
eval_type = ''
|
|
|
|
if len(sys.argv)<2:
|
|
print('Usage: parser.py results_folder [evaluation_type]')
|
|
|
|
if len(sys.argv)==3:
|
|
eval_type = sys.argv[2]
|
|
|
|
result_sha = sys.argv[1]
|
|
txt_dir = os.path.join('build','results', result_sha)
|
|
|
|
for class_name in CLASSES:
|
|
for param in PARAMS:
|
|
print("--{:s} {:s}--".format(class_name, param))
|
|
if eval_type is '':
|
|
txt_name = os.path.join(txt_dir, 'stats_' + class_name + '_' + param + '.txt')
|
|
else:
|
|
txt_name = os.path.join(txt_dir, 'stats_' + class_name + '_' + param + '_' + eval_type + '.txt')
|
|
|
|
if not os.path.isfile(txt_name):
|
|
print(txt_name, ' not found')
|
|
continue
|
|
|
|
cont = np.loadtxt(txt_name)
|
|
|
|
averages = []
|
|
for idx, difficulty in enumerate(DIFFICULTIES):
|
|
sum = 0
|
|
if param in PARAMS:
|
|
for i in range(1, 41):
|
|
sum += cont[idx][i]
|
|
|
|
average = sum/40.0
|
|
|
|
#print class_name, difficulty, param, average
|
|
averages.append(average)
|
|
|
|
#print "\n"+class_name+" "+param
|
|
print("Easy\tMod.\tHard\tAll")
|
|
print("{:.2f}\t{:.2f}\t{:.2f}\t{:.2f}".format(100*averages[0], 100*averages[1],100*averages[2],100*averages[3]))
|
|
print("---------------------------------------------------------------------------------")
|
|
if eval_type is not '' and param=='detection':
|
|
break # No orientation for 3D or bird eye
|
|
|
|
#print '================='
|