Skip to content

Commit d8b8cad

Browse files
authored
Merge pull request #1020 from scap3yvt/panoptica_fix
Panoptica updated with better logic
2 parents 0efdc93 + 1ee2415 commit d8b8cad

1 file changed

Lines changed: 10 additions & 15 deletions

File tree

GANDLF/metrics/segmentation_panoptica.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from pathlib import Path
2-
import tempfile
32

3+
from typing import Optional
44
import numpy as np
55

66
from panoptica import Panoptica_Evaluator
@@ -9,8 +9,8 @@
99
def generate_instance_segmentation(
1010
prediction: np.ndarray,
1111
target: np.ndarray,
12-
parameters: dict = None,
13-
panoptica_config_path: str = None,
12+
parameters: dict,
13+
panoptica_config_path: Optional[str] = None,
1414
) -> dict:
1515
"""
1616
Evaluate a single exam using Panoptica.
@@ -25,23 +25,18 @@ def generate_instance_segmentation(
2525
dict: The evaluation results.
2626
"""
2727

28-
cwd = Path(__file__).parent.absolute()
2928
# the parameters dict takes precedence over the panoptica_config_path
30-
panoptica_config = parameters.get("panoptica_config", None)
31-
if panoptica_config is None:
29+
evaluator = parameters.get("panoptica_config", None)
30+
if evaluator is None:
31+
cwd = Path(__file__).parent.absolute()
3232
panoptica_config_path = (
33-
cwd / "panoptica_config_brats.yaml"
33+
str(cwd / "panoptica_config_brats.yaml")
3434
if panoptica_config_path is None
3535
else panoptica_config_path
3636
)
37-
else:
38-
# write the panoptica config to a file
39-
panoptica_config_path = tempfile.NamedTemporaryFile(
40-
mode="w", delete=False, suffix=".yaml"
41-
).name
42-
with open(panoptica_config_path, "w") as f:
43-
f.write(panoptica_config)
44-
evaluator = Panoptica_Evaluator.load_from_config(panoptica_config_path)
37+
evaluator = Panoptica_Evaluator.load_from_config(panoptica_config_path)
38+
39+
assert evaluator is not None, "Panoptica evaluator could not be initialized."
4540

4641
# call evaluate
4742
group2result = evaluator.evaluate(prediction_arr=prediction, reference_arr=target)

0 commit comments

Comments
 (0)