diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e542952..3eac9d8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ - Added `--reference-page-limit` / `OPERATOR_GRB_PAGE_LIMIT` and `--reference-max-features` / `OPERATOR_GRB_MAX_FEATURES` safeguards for dense reference AOIs. - Generated reference GeoJSON now records fetched page URLs, page count, truncation state and paging limits for auditability. - Added regression coverage for paged GRB responses and the new CLI help options. +- Redeployed Tower, regenerated AOI1024 operator samples with paged GRB references and re-exported `yolo-building-aoi1024-visible025`; dense reference counts now exceed the old cap where expected, including Geel 2,268, Mol 1,993, Turnhout 3,278, Herentals 2,478, Balen 1,343, Retie 1,734 and Westerlo 1,133 features. +- The refreshed AOI1024 tile dataset now has 29,170 labels with 0 missing label files and 0 invalid rows; audit status remains `needs_attention` because small-box share is still high. - No application provider endpoint, migration, API contract, live GRB product import, model download or active YOLO model changed. ## Sprint 151 runtime GIS upload and AOI1024 YOLO candidate (2026-07-09) diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index d40a57e5..6b698d80 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -5954,15 +5954,39 @@ Open: - RED: `python -m pytest backend\tests\test_sprint131_operator_sample_expansion.py::test_fetch_reference_follows_grb_next_links_until_complete -q` failed because only the first GRB page was persisted. - GREEN: `python -m pytest backend\tests\test_sprint131_operator_sample_expansion.py::test_fetch_reference_follows_grb_next_links_until_complete -q` - `python -m pytest backend\tests\test_sprint127_operator_sample_quality_matrix.py backend\tests\test_sprint131_operator_sample_expansion.py -q` +- `python -m py_compile scripts\prepare_operator_real_data_samples.py` +- `bash scripts/run_readiness_check.sh` +- Local live GRB paging smoke with `page_limit=2` and `max_features=5` fetched 3 source pages, returned 5 features and correctly marked `reference_truncated=true`. +- Tower deploy from commit `a63d4ea` passed live migration smoke and browser runtime verification on `http://192.168.10.150:1202`. +- Tower one-sample Geel AOI1024 paging smoke passed with `/opt/geointel/venv/bin/python` and produced 2,268 GRB reference features instead of the old 1,000-feature cap. +- Tower full AOI1024 operator sample regeneration passed: + - Geel: 2,268 features, 3 GRB pages, not truncated. + - Mol: 1,993 features, 2 GRB pages, not truncated. + - Turnhout: 3,278 features, 4 GRB pages, not truncated. + - Herentals: 2,478 features, 3 GRB pages, not truncated. + - Balen: 1,343 features, 2 GRB pages, not truncated. + - Retie: 1,734 features, 2 GRB pages, not truncated. + - Westerlo: 1,133 features, 2 GRB pages, not truncated. +- Re-exported `/app/storage/operator-data/yolo-building-aoi1024-visible025` from the regenerated paged references: + - 144 tiles, 117 positive tiles, 27 negative tiles, 29,170 labels. + - `min_label_visible_ratio=0.25`, `negative_keep_ratio=1.0`. +- Re-ran the Tower dataset audit: + - output: `/app/storage/operator-data/yolo-building-aoi1024-visible025-audit/operator_yolo_dataset_quality_audit.json` + - status remains `needs_attention` + - missing label files: 0 + - invalid labels: 0 + - median normalized box area: `0.000762939453125` + - small-box share: `0.34744600617072335` + - repeated background negative share: 0.0 ## Known limitations -- Existing Tower AOI1024 artifacts were generated before this fix. Regenerate the operator samples with `--force` before retraining or re-auditing dense AOI labels. +- The Tower AOI1024 operator samples and tile dataset have now been regenerated from paged GRB references, but the tile audit still reports `needs_attention` because small clipped boxes remain common. - This does not make the Sprint 7B GRB provider a live product importer; it only fixes explicit operator sample preparation. ## Next recommended pass -- Regenerate `/app/storage/operator-data/operator-samples-1024` on Tower with the paged script, re-export the AOI1024 YOLO tile dataset, rerun the dataset audit and only then consider another inactive training candidate. +- Before another training run, improve label quality: either raise `--min-label-visible-ratio`, increase tile size, reduce dense clipped-edge tiles or add cleaner AOIs. Do not activate or retrain from this dataset as-is without acknowledging the small-box warning. # Sprint 151 - Runtime GIS upload and AOI1024 YOLO candidate diff --git a/docs/TODO.md b/docs/TODO.md index c35e79a8..6e501ba9 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -473,5 +473,6 @@ This file now starts with the current implementation status. Older preparation/b - [x] Fix promotion-report parsing for `multi_sample_quality_summary.json` inputs. - [x] Generate AOI1024 promotion report and keep recommended candidate as `none`. - [x] Add GRB paging before trusting dense reference exports as full ground truth. -- [ ] Regenerate Tower AOI1024 operator samples with paged GRB references, then re-export and audit labels before any new training attempt. +- [x] Regenerate Tower AOI1024 operator samples with paged GRB references, then re-export and audit labels before any new training attempt. +- [ ] Improve AOI1024 label quality before retraining: current paged export has 29,170 labels and no invalid rows, but audit remains `needs_attention` because small-box share is `0.34744600617072335`. - [ ] Keep every local YOLO candidate inactive until positive-AOI and hard-negative promotion reports recommend default activation. diff --git a/scripts/README.md b/scripts/README.md index e13cc3fd..50b8973d 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -396,12 +396,15 @@ Current Tower audit status: - `yolo-building-tile-uniquehardneg160`: clean expanded-background baseline; 576 tiles, 346 positive, 230 negative, 11,757 labels, 0 invalid labels and 0 repeated background negatives in the first Tower audit. -- `yolo-building-aoi1024-visible025`: larger AOI candidate baseline; 144 - tiles, 117 positive tiles, 27 negative tiles, 15,079 labels and +- `yolo-building-aoi1024-visible025`: larger AOI candidate baseline regenerated + after paged GRB references; 144 tiles, 117 positive tiles, 27 negative tiles, + 29,170 labels, 0 missing label files, 0 invalid labels and `min_label_visible_ratio=0.25`. Its audit remains `needs_attention` because - the median normalized box area is still small. The trained - `geointel-building-yolov8s-aoi1024visible025e50-pt` asset is inactive until - persisted QA/QC and hard-negative promotion gates pass. + the median normalized box area is still small (`0.000762939453125`) and the + small-box share is high (`0.34744600617072335`). The previously trained + `geointel-building-yolov8s-aoi1024visible025e50-pt` asset is inactive; do not + retrain or activate from this dataset without addressing label quality or + explicitly accepting the small-box warning. After rebuilding the all-in-one image, the operator scripts are available inside the container at `/app/scripts/...`. Before rebuilding, use the host checkout or