in lib/evaluator.py [0:0]
def run(root, exp_name, tar_path):
src_path = os.path.join(root, exp_name, 'recon')
rp_path = os.path.join(tar_path, 'RP', 'GEO', 'OBJ')
bf_path = os.path.join(tar_path, 'BUFF', 'GEO', 'PLY')
buff_files = [f for f in os.listdir(bf_path) if '.ply' in f]
src_names = ['0_0_00.obj', '90_0_00.obj', '180_0_00.obj', '270_0_00.obj']
total_vals = []
items = []
for file in buff_files:
tar_name = os.path.join(bf_path, file)
name = tar_name.split('/')[-1][:-4]
for src in src_names:
src_name = os.path.join(src_path, 'result_%s_%s' % (name, src))
if not os.path.exists(src_name):
continue
evaluator.set_mesh(src_name, tar_name, 0.13, -40)
vals = []
vals.append(0.1 * evaluator.get_chamfer_dist())
vals.append(0.1 * evaluator.get_surface_dist())
vals.append(4.0 * evaluator.get_reproj_normal_error(save_demo_img=os.path.join(src_path, '%s_%s.png' % (name, src[:-4]))))
item = {
'name': '%s_%s' % (name, src),
'vals': vals
}
total_vals.append(vals)
items.append(item)
vals = np.array(total_vals).mean(0)
buf_val = vals
np.save(os.path.join(root, exp_name, 'buff-item.npy'), np.array(items))
np.save(os.path.join(root, exp_name, 'buff-vals.npy'), total_vals)
rp_files = [f for f in os.listdir(rp_path) if '.obj' in f]
total_vals = []
items = []
for file in rp_files:
tar_name = os.path.join(rp_path, file)
name = tar_name.split('/')[-1][:-9]
for src in src_names:
src_name = os.path.join(src_path, 'result_%s_%s' % (name, src))
if not os.path.exists(src_name):
continue
evaluator.set_mesh(src_name, tar_name, 1.3, -120)
vals = []
vals.append(evaluator.get_chamfer_dist())
vals.append(evaluator.get_surface_dist())
vals.append(4.0 * evaluator.get_reproj_normal_error(save_demo_img=os.path.join(src_path, '%s_%s.png' % (name, src[:-4]))))
item = {
'name': '%s_%s' % (name, src),
'vals': vals
}
total_vals.append(vals)
items.append(item)
np.save(os.path.join(root, exp_name, 'rp-item.npy'), np.array(items))
np.save(os.path.join(root, exp_name, 'rp-vals.npy'), total_vals)
vals = np.array(total_vals).mean(0)
print('BUFF - chamfer: %.4f p2s: %.4f nml: %.4f' % (buf_val[0], buf_val[1], buf_val[2]))
print('RP - chamfer: %.4f p2s: %.4f nml: %.4f' % (vals[0], vals[1], vals[2]))