| import copy |
| import functools |
| import numpy as np |
| import os |
|
|
| from Evaluator.Evaluator import Evaluator |
| from options import MCSSOptions |
| from DataRW.S3DRW import S3DRW |
| from DataRW.wrong_annotatios import wrong_s3d_annotations_list |
| from planar_graph_utils import get_regions_from_pg |
|
|
|
|
| room_polys_def = [np.array([[191, 150], |
| [191, 70], |
| [222, 70], |
| [222, 150], |
| [191, 150]]), np.array([[232, 65], |
| [232, 11], |
| [202, 11], |
| [202, 65], |
| [232, 65]]), np.array([[ 47, 50], |
| [ 47, 150], |
| [ 24, 150], |
| [ 24, 50], |
| [ 47, 50]]), np.array([[199, 156], |
| [199, 234], |
| [146, 234], |
| [146, 156], |
| [199, 156]]), np.array([[109, 184], |
| [120, 184], |
| [120, 156], |
| [ 50, 156], |
| [ 50, 234], |
| [109, 234], |
| [109, 184]]), np.array([[110, 234], |
| [144, 234], |
| [144, 187], |
| [110, 187], |
| [110, 234]]), np.array([[ 50, 50], |
| [ 50, 150], |
| [123, 150], |
| [123, 184], |
| [144, 184], |
| [144, 150], |
| [190, 150], |
| [190, 70], |
| [108, 70], |
| [108, 50], |
| [ 50, 50]])] |
|
|
| pg_base = '../results/npy_heat_s3d_256/' |
|
|
| options = MCSSOptions() |
| opts = options.parse() |
|
|
| if __name__ == '__main__': |
|
|
| |
|
|
| if opts.scene_id == "val": |
|
|
| opts.scene_id = "scene_03250" |
| data_rw = S3DRW(opts) |
| scene_list = data_rw.loader.scenes_list |
|
|
| quant_result_dict = None |
| quant_result_maskrcnn_dict = None |
| scene_counter = 0 |
| for scene_ind, scene in enumerate(scene_list): |
| if int(scene[6:]) in wrong_s3d_annotations_list: |
| continue |
|
|
| print("------------") |
| curr_opts = copy.deepcopy(opts) |
| curr_opts.scene_id = scene |
| curr_data_rw = S3DRW(curr_opts) |
| print("Running Evaluation for scene %s" % scene) |
|
|
| evaluator = Evaluator(curr_data_rw, curr_opts) |
|
|
| |
| |
|
|
| pg_path = os.path.join(pg_base, scene[6:] + '.npy') |
| example_pg = np.load(pg_path, allow_pickle=True).tolist() |
| regions = get_regions_from_pg(example_pg, corner_sorted=True) |
|
|
| room_polys = regions |
| |
|
|
|
|
| quant_result_dict_scene =\ |
| evaluator.evaluate_scene(room_polys=room_polys) |
|
|
| if quant_result_dict is None: |
| quant_result_dict = quant_result_dict_scene |
| else: |
| for k in quant_result_dict.keys(): |
| quant_result_dict[k] += quant_result_dict_scene[k] |
|
|
| scene_counter += 1 |
|
|
| |
|
|
| for k in quant_result_dict.keys(): |
| quant_result_dict[k] /= float(scene_counter) |
|
|
| print("Our: ", quant_result_dict) |
|
|
| print("Ours") |
| evaluator.print_res_str_for_latex(quant_result_dict) |
|
|