|
import os |
|
import numpy as np |
|
import subprocess |
|
|
|
|
|
def ratio(losses, thresholds=[5,10]): |
|
return [ |
|
'{:.3f}'.format(np.mean(losses < threshold)) |
|
for threshold in thresholds |
|
] |
|
|
|
if __name__ == '__main__': |
|
scene = 'Indoor' |
|
dir_base = 'result_errors/Indoor/' |
|
save_pt = 'resultfinal_errors/Indoor/' |
|
|
|
subprocess.check_output(['mkdir', '-p', save_pt]) |
|
|
|
with open(save_pt +'ratio_methods_'+scene+'.txt','w') as f: |
|
f.write('5deg 10deg'+'\n') |
|
pair_list = os.listdir(dir_base) |
|
enhancer = os.listdir(dir_base+'/pair9/') |
|
for method in enhancer: |
|
pose_error_list = sorted(os.listdir(dir_base+'/pair9/'+method)) |
|
for pose_error in pose_error_list: |
|
error_array = np.expand_dims(np.zeros((6, 8)),axis=2) |
|
for pair in pair_list: |
|
try: |
|
error = np.expand_dims(np.load(dir_base+'/'+pair+'/'+method+'/'+pose_error),axis=2) |
|
except: |
|
print('error in', dir_base+'/'+pair+'/'+method+'/'+pose_error) |
|
continue |
|
error_array = np.concatenate((error_array,error),axis=2) |
|
ratio_result = ratio(error_array[:,:,1::].flatten()) |
|
f.write(method + '_' + pose_error[11:-4] +' '+' '.join([str(i) for i in ratio_result])+"\n") |
|
|
|
|
|
scene = 'Outdoor' |
|
dir_base = 'result_errors/Outdoor/' |
|
save_pt = 'resultfinal_errors/Outdoor/' |
|
|
|
subprocess.check_output(['mkdir', '-p', save_pt]) |
|
|
|
with open(save_pt +'ratio_methods_'+scene+'.txt','w') as f: |
|
f.write('5deg 10deg'+'\n') |
|
pair_list = os.listdir(dir_base) |
|
enhancer = os.listdir(dir_base+'/pair9/') |
|
for method in enhancer: |
|
pose_error_list = sorted(os.listdir(dir_base+'/pair9/'+method)) |
|
for pose_error in pose_error_list: |
|
error_array = np.expand_dims(np.zeros((6, 8)),axis=2) |
|
for pair in pair_list: |
|
error = np.expand_dims(np.load(dir_base+'/'+pair+'/'+method+'/'+pose_error),axis=2) |
|
error_array = np.concatenate((error_array,error),axis=2) |
|
ratio_result = ratio(error_array[:,:,1::].flatten()) |
|
f.write(method + '_' + pose_error[11:-4] +' '+' '.join([str(i) for i in ratio_result])+"\n") |
|
|