Spaces:
Running
Running
import os | |
import numpy as np | |
import subprocess | |
# def ratio(losses, thresholds=[1,2,3,4,5,6,7,8,9,10]): | |
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" | |
) | |