def run()

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]))