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