Skip to content

Commit 871976d

Browse files
committed
legacy filtering
1 parent ec2994e commit 871976d

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

src/valor_lite/semantic_segmentation/manager.py

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import tempfile
12
from dataclasses import dataclass
23
from pathlib import Path
34

@@ -12,6 +13,7 @@
1213
)
1314
from valor_lite.semantic_segmentation.evaluator import Filter
1415
from valor_lite.semantic_segmentation.loader import Loader as CachedLoader
16+
from valor_lite.semantic_segmentation.metric import Metric, MetricType
1517

1618
"""
1719
Usage
@@ -45,7 +47,7 @@ class Metadata:
4547

4648
class Evaluator(CachedEvaluator):
4749
"""
48-
Segmentation Evaluator
50+
Legacy Segmentation Evaluator
4951
"""
5052

5153
@property
@@ -95,10 +97,36 @@ def create_filter(
9597
predictions=None,
9698
)
9799

100+
def compute_precision_recall_iou(
101+
self, filter_: Filter | None = None
102+
) -> dict[MetricType, list[Metric]]:
103+
if filter_ is not None:
104+
with tempfile.TemporaryDirectory() as tmpdir:
105+
filtered_evaluator = super().filter(
106+
directory=tmpdir,
107+
name="filtered",
108+
filter_expr=filter_,
109+
)
110+
return filtered_evaluator.compute_precision_recall_iou()
111+
return super().compute_precision_recall_iou()
112+
113+
def evaluate(
114+
self, filter_: Filter | None = None
115+
) -> dict[MetricType, list[Metric]]:
116+
"""
117+
Computes all available metrics.
118+
119+
Returns
120+
-------
121+
dict[MetricType, list[Metric]]
122+
Lists of metrics organized by metric type.
123+
"""
124+
return self.compute_precision_recall_iou(filter_=filter_)
125+
98126

99127
class DataLoader(CachedLoader):
100128
"""
101-
Segmentation DataLoader.
129+
Legacy Segmentation DataLoader.
102130
"""
103131

104132
def finalize(self):

0 commit comments

Comments
 (0)