Unblock objective Belgian training loop
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-29 15:31:55 +02:00
parent a5980127b9
commit e8530ae476
5 changed files with 92 additions and 7 deletions
+5 -2
View File
@@ -92,8 +92,11 @@ recall are repeated, while true negative train tiles are repeated when a
regional precision gate or the pure-background gate fails. Calibration, test,
background-test and validation AOIs are excluded by their frozen corpus split;
the generated evidence records that no protected sample entered training.
The orchestrator refuses to start unless the frozen dataset audit is `ok` and
contains zero blank/low-variance positive tiles.
The orchestrator refuses to start unless every automated frozen-dataset gate
passes and the corpus contains zero blank/low-variance positive tiles. The
audit status may remain `needs_human_review` while training and objective
evaluation continue: final human sign-off is deliberately the last gate and
can never be interpreted as model promotion approval in advance.
For dated imagery, GRB `BEGINDATUM` and PICC `DATE_CREAT` are compared with the
end of the imagery period. A feature created afterward is retained in the
audit but excluded from training as `created_after_imagery_period`. UrbIS does
+38
View File
@@ -11747,3 +11747,41 @@ Deployment evidence:
- Repeated the live landing, guest bootstrap, map navigation and quality
navigation against `http://192.168.10.150:1202`; the inspected live flow
produced no browser-console errors.
## 2026-07-29 - V36 assessment and objective-loop repair
- Audited the current Tower evidence rather than relying on the earlier v6
checkpoint. The governed v30 rotated-holdout corpus contains 124 samples,
21,830 accepted labels, zero temporal-unknown samples, an immutable manifest
and no spatial leakage. Its split composition exceeds the frozen regional
minima and protected samples remain outside training.
- Assessed the completed YOLO11x v36 checkpoint calibration-first on the RTX
4080. At the selected threshold `0.10`, aggregate F1 is `0.552`, Brussels F1
is `0.662`, Wallonia F1 is `0.532`, and Flanders F1 is `0.265`. The candidate
failed Flanders F1/precision/recall and Wallonia precision, so test and
background evidence were not opened and the production model was unchanged.
- Built checksummed v37 failure-driven sampling from that rejection: 3,900
train entries across 94 train AOIs, with extra Flanders recall and
Flanders/Wallonia precision evidence. The sampling audit records zero
protected samples in training.
- Started the inactive v37 YOLO11x fine-tune on Tower CUDA device 0 with
deterministic seed `20260806`, `max_det=1000`, AdamW and aerial rotation
augmentation. NVIDIA process evidence confirmed GPU execution.
- Corrected a loop deadlock: an automatically clean corpus awaiting the final
human review has status `needs_human_review`, while the orchestrator formerly
required `ok`. Training now accepts that status only when the manifest is
immutable, automated failures are empty, spatial leakage is `ok`, and blank
positive-tile count is zero. Human sign-off remains a separate mandatory
final promotion gate.
Verified in this pass:
- `py -3 -m pytest -q backend/tests/test_belgium_training_loop.py backend/tests/test_belgium_training_iteration_assessment.py backend/tests/test_belgium_training_portfolio.py`
(`12 passed`).
Open:
- Let v37 finish, run calibration-only assessment, and expose protected test
and pure-background results only if every regional calibration gate passes.
- Continue failure-driven, train-only corpus iterations until all objective
gates pass; only then request the queued representative human review.
+3
View File
@@ -971,6 +971,9 @@ This file now starts with the current implementation status. Older preparation/b
- [x] Replace rolling-mosaic training inputs with governed dated 2025 Flanders/Brussels and complete 2023 SPW imagery; retain exact flight-day limitations.
- [x] Reject positive labels over blank/no-data imagery and replace partial SPW 2024 coverage with the complete dated SPW 2023 campaign.
- [x] Exclude GRB/PICC features created after the corresponding dated imagery period while retaining auditable rejection evidence.
- [x] Allow the objective CUDA loop to consume an automatically clean `needs_human_review` corpus while keeping final human sign-off as a separate, mandatory promotion gate.
- [x] Evaluate the completed v36 YOLO11x checkpoint calibration-first on the rotated v30 holdouts; reject it before opening test/background because the regional calibration gate failed.
- [ ] Finish and assess the leak-free v37 YOLO11x failure-driven CUDA iteration; open test/background evidence only if every calibration gate passes.
# Sprint 229 - Visual release correction and Tower redeploy