"include/vscode:/vscode.git/clone" did not exist on "cfcbc298cd91806e0e3417e03fce42bc4f1fa150"
Commit 0f5e6c09 authored by mibaumgartner's avatar mibaumgartner
Browse files

improved input robustness

parent 2a80e77d
......@@ -84,8 +84,13 @@ def load_case_from_list(data_files, seg_file=None) -> Tuple[np.ndarray, np.ndarr
seg_props_file = f"{str(seg_file).split('.')[0]}.json"
if os.path.isfile(seg_props_file):
with open(seg_props_file, "r") as f:
properties.update(json.load(f))
properties_json = load_json(seg_props_file)
# cast instances to correct type
properties_json["instances"] = {
str(key): int(item) for key, item in properties_json["instances"].items()}
properties.update(properties_json)
else:
seg_npy = None
return data_npy.astype(np.float32), seg_npy, properties
......
......@@ -279,11 +279,12 @@ def case_ious(boxes: np.ndarray, props: dict) -> Tuple[np.ndarray, Dict[int, np.
class_ious = OrderedDict()
case_classes = list(set(map(int, props["instances"].values())))
# boxes are sorted by instance id
case_instances = sorted(list(map(int, props["instances"].keys())))
for cls in case_classes:
cls_box_indices = [props["instances"][str(ci)] == cls for ci in case_instances]
class_ious[cls] = compute_each_iou(boxes[cls_box_indices])
for _c in case_classes:
cls_box_indices = [int(props["instances"][str(ci)]) == _c for ci in case_instances]
class_ious[_c] = compute_each_iou(boxes[cls_box_indices])
else:
all_ious = np.array([])
class_ious = {}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment