Add Mol false-negative visual review evidence
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-13 20:22:53 +02:00
parent de4e15f166
commit 50952e18f9
11 changed files with 967 additions and 3 deletions
+30
View File
@@ -901,6 +901,36 @@ Only explicit `confirmed_model_false_positive` decisions are written to
`confirmed_model_false_positives.geojson`; the tool never promotes generic QA
false-positives into training labels.
Render persisted false negatives against the exact tile manifest recorded by
the selected analysis run:
```bash
docker exec geointel /opt/geointel/venv/bin/python \
/app/scripts/render_detection_false_negative_review_contact_sheets.py \
--portfolio /app/storage/operator-evidence/model-review/portfolio/calibration_evidence_portfolio.json \
--storage-root /app/storage \
--output-dir /app/storage/operator-evidence/model-review/false-negative-visual-review \
--sample-slugs mol_donk,mol_postel \
--max-features 48 \
--columns 4 \
--cards-per-sheet 12 \
--thumb-size 256
```
The read-only renderer resolves the one persisted `manifest_path` from each
fixed-threshold sample summary, confines manifests and source tiles to
`--storage-root`, and projects WGS84 missed-reference polygons onto the real
source tiles. Red is the missed reference, blue is persisted candidate
geometry and green is a matched reference. Selection is deterministic and
stratified by AOI and geodetic area bucket. Every CSV decision starts as
`unreviewed`; no positive-training example is inferred.
Reference features that do not intersect any persisted inference tile are not
silently counted as reviewable model misses. They are reported separately in
`false_negatives_outside_tile_coverage.geojson` with
`review_exclusion_reason=outside_tile_coverage`. Fix the QA evaluation
population before using those records in recall or training decisions.
Docker images install only the GIS runtime by default. To build a local/Tower
image with PyTorch/Ultralytics available for the configured-YOLO preflight and
runtime path, set: