Vincentqyw
fix: roma
c74a070
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"
)