Harden operator tile background metadata
This commit is contained in:
@@ -147,3 +147,27 @@ def test_background_negative_repeat_only_applies_to_training_background_tiles()
|
||||
split="train",
|
||||
background_negative_repeat=4,
|
||||
) == 1
|
||||
|
||||
|
||||
def test_background_category_is_derived_for_legacy_operator_manifests() -> None:
|
||||
module = load_tile_exporter()
|
||||
|
||||
pure_empty_sample = {
|
||||
"sample_slug": "postel_bos",
|
||||
"sample_role": "background_candidate",
|
||||
"reference_feature_count": 0,
|
||||
}
|
||||
sparse_context_sample = {
|
||||
"sample_slug": "kasterlee_bos",
|
||||
"sample_role": "background_candidate",
|
||||
"reference_feature_count": 104,
|
||||
}
|
||||
reference_sample = {
|
||||
"sample_slug": "geel",
|
||||
"sample_role": "reference",
|
||||
"reference_feature_count": 2500,
|
||||
}
|
||||
|
||||
assert module.background_category_for_sample(pure_empty_sample) == "pure_empty_negative"
|
||||
assert module.background_category_for_sample(sparse_context_sample) == "sparse_building_context"
|
||||
assert module.background_category_for_sample(reference_sample) == "reference_aoi"
|
||||
|
||||
@@ -20,6 +20,17 @@ def load_sample_preparer():
|
||||
return module
|
||||
|
||||
|
||||
def load_tile_exporter():
|
||||
script_path = ROOT / "scripts" / "export_operator_yolo_tile_dataset.py"
|
||||
spec = importlib.util.spec_from_file_location("operator_tile_exporter_s156", script_path)
|
||||
assert spec is not None
|
||||
assert spec.loader is not None
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
sys.modules[spec.name] = module
|
||||
spec.loader.exec_module(module)
|
||||
return module
|
||||
|
||||
|
||||
def test_background_samples_are_classified_by_actual_reference_density() -> None:
|
||||
module = load_sample_preparer()
|
||||
|
||||
@@ -93,7 +104,21 @@ def test_hard_negative_matrix_can_filter_background_categories() -> None:
|
||||
|
||||
|
||||
def test_yolo_tile_export_preserves_background_category_provenance() -> None:
|
||||
module = load_tile_exporter()
|
||||
script = (ROOT / "scripts" / "export_operator_yolo_tile_dataset.py").read_text(encoding="utf-8")
|
||||
|
||||
assert "background_category = str(sample.get(\"background_category\") or \"reference_aoi\")" in script
|
||||
assert module.background_category_for_sample(
|
||||
{
|
||||
"sample_slug": "postel_bos",
|
||||
"sample_role": "background_candidate",
|
||||
"reference_feature_count": 0,
|
||||
}
|
||||
) == "pure_empty_negative"
|
||||
assert module.background_category_for_sample(
|
||||
{
|
||||
"sample_slug": "kasterlee_bos",
|
||||
"sample_role": "background_candidate",
|
||||
"reference_feature_count": 104,
|
||||
}
|
||||
) == "sparse_building_context"
|
||||
assert "\"background_category\": background_category" in script
|
||||
|
||||
Reference in New Issue
Block a user