Add auditable SAM roof label refinement
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib.util
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
SCRIPT = Path(__file__).parents[2] / "scripts" / "refine_yolo_labels_with_sam.py"
|
||||
SPEC = importlib.util.spec_from_file_location("sam_roof_refinement", SCRIPT)
|
||||
assert SPEC and SPEC.loader
|
||||
MODULE = importlib.util.module_from_spec(SPEC)
|
||||
SPEC.loader.exec_module(MODULE)
|
||||
|
||||
|
||||
def test_plausible_refinement_is_fail_closed() -> None:
|
||||
source = (10.0, 10.0, 30.0, 30.0)
|
||||
assert MODULE.plausible_refinement(source, (8.0, 9.0, 31.0, 32.0), min_iou=0.15, min_area_ratio=0.25, max_area_ratio=4.0)
|
||||
assert not MODULE.plausible_refinement(source, (100.0, 100.0, 120.0, 120.0), min_iou=0.15, min_area_ratio=0.25, max_area_ratio=4.0)
|
||||
assert not MODULE.plausible_refinement(source, (0.0, 0.0, 100.0, 100.0), min_iou=0.15, min_area_ratio=0.25, max_area_ratio=4.0)
|
||||
|
||||
|
||||
def test_yolo_round_trip_shape() -> None:
|
||||
line = MODULE.yolo_line((10.0, 20.0, 30.0, 40.0), 100, 100)
|
||||
assert line == "0 0.20000000 0.30000000 0.20000000 0.20000000"
|
||||
Reference in New Issue
Block a user