75 lines
2.1 KiB
Python
75 lines
2.1 KiB
Python
import json
|
|
import shutil
|
|
import os
|
|
|
|
import numpy as np
|
|
|
|
|
|
def append_cluster(dic_jo, phase, xx, ys, kps):
|
|
"""Append the annotation based on its distance"""
|
|
|
|
if ys[3] <= 10:
|
|
dic_jo[phase]['clst']['10']['kps'].append(kps)
|
|
dic_jo[phase]['clst']['10']['X'].append(xx)
|
|
dic_jo[phase]['clst']['10']['Y'].append(ys)
|
|
elif ys[3] <= 20:
|
|
dic_jo[phase]['clst']['20']['kps'].append(kps)
|
|
dic_jo[phase]['clst']['20']['X'].append(xx)
|
|
dic_jo[phase]['clst']['20']['Y'].append(ys)
|
|
elif ys[3] <= 30:
|
|
dic_jo[phase]['clst']['30']['kps'].append(kps)
|
|
dic_jo[phase]['clst']['30']['X'].append(xx)
|
|
dic_jo[phase]['clst']['30']['Y'].append(ys)
|
|
elif ys[3] < 50:
|
|
dic_jo[phase]['clst']['50']['kps'].append(kps)
|
|
dic_jo[phase]['clst']['50']['X'].append(xx)
|
|
dic_jo[phase]['clst']['50']['Y'].append(ys)
|
|
else:
|
|
dic_jo[phase]['clst']['>50']['kps'].append(kps)
|
|
dic_jo[phase]['clst']['>50']['X'].append(xx)
|
|
dic_jo[phase]['clst']['>50']['Y'].append(ys)
|
|
|
|
|
|
def get_task_error(dd):
|
|
"""Get target error not knowing the gender, modeled through a Gaussian Mixure model"""
|
|
mm = 0.046
|
|
return dd * mm
|
|
|
|
|
|
def get_pixel_error(zz_gt):
|
|
"""calculate error in stereo distance due to 1 pixel mismatch (function of depth)"""
|
|
|
|
disp = 0.54 * 721 / zz_gt
|
|
error = abs(zz_gt - 0.54 * 721 / (disp - 1))
|
|
return error
|
|
|
|
|
|
def open_annotations(path_ann):
|
|
try:
|
|
with open(path_ann, 'r') as f:
|
|
annotations = json.load(f)
|
|
except FileNotFoundError:
|
|
annotations = []
|
|
return annotations
|
|
|
|
|
|
def make_new_directory(dir_out):
|
|
"""Remove the output directory if already exists (avoid residual txt files)"""
|
|
if os.path.exists(dir_out):
|
|
shutil.rmtree(dir_out)
|
|
os.makedirs(dir_out)
|
|
print("Created empty output directory for {} txt files".format(dir_out))
|
|
|
|
|
|
def normalize_hwl(lab):
|
|
|
|
AV_H = 1.72
|
|
AV_W = 0.75
|
|
AV_L = 0.68
|
|
HLW_STD = 0.1
|
|
|
|
hwl = lab[4:7]
|
|
hwl_new = list((np.array(hwl) - np.array([AV_H, AV_W, AV_L])) / HLW_STD)
|
|
lab_new = lab[0:4] + hwl_new + lab[7:]
|
|
return lab_new
|