Harden operator tile background metadata
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-07-11 15:52:45 +02:00
parent 5d24242fb4
commit b3bd34c384
4 changed files with 97 additions and 2 deletions
+31
View File
@@ -367,9 +367,40 @@ negative tiles, and records `yolo_tile_dataset_summary.json` with
`--min-label-visible-ratio` drops labels where only a small clipped fragment of
the original building bbox is visible inside the tile; this reduces noisy
tile-edge labels in overlapping-tile datasets. Use `0` for legacy behavior.
For legacy operator manifests that predate explicit `background_category`, the
exporter derives the same categories as the split-background evaluator:
background samples with `reference_feature_count == 0` become
`pure_empty_negative`, and background samples with one or more reference
features become `sparse_building_context`.
It remains operator tooling only: no provider fetch, no API mutation and no
automatic model training.
For the current AOI1024 baseline, prefer the stricter clean-label profile before
spending another training run:
```bash
docker exec -it geointel python3 /app/scripts/export_operator_yolo_tile_dataset.py \
--manifest-path /app/storage/operator-data/operator-samples-1024/operator_samples_manifest.json \
--output-dir /app/storage/operator-data/yolo-building-aoi1024-cleanpx12vis035 \
--tile-size 512 \
--stride 256 \
--negative-keep-ratio 1.0 \
--min-label-px 12 \
--min-label-visible-ratio 0.35 \
--val-samples turnhout,retie,westerlo,arendonk_heide \
--force
```
Then audit with stricter small-box gates:
```bash
docker exec -it geointel python3 /app/scripts/audit_operator_yolo_dataset_quality.py \
--summary-path /app/storage/operator-data/yolo-building-aoi1024-cleanpx12vis035/yolo_tile_dataset_summary.json \
--output-dir /app/artifacts/operator-yolo-dataset-audit/aoi1024-cleanpx12vis035 \
--max-small-box-share 0.25 \
--min-median-box-area 0.001
```
Audit the generated tile dataset before spending another long training run:
```bash