Fix runtime GIS uploads for operator QA
This commit is contained in:
@@ -5937,3 +5937,33 @@ Open:
|
||||
## Next recommended pass
|
||||
|
||||
- Use `yolo-building-tile-uniquehardneg160` as the next safer hard-negative training dataset candidate. Benchmark after training before changing defaults.
|
||||
|
||||
# Sprint 151 - Runtime GIS upload and AOI1024 YOLO candidate
|
||||
|
||||
## What changed
|
||||
|
||||
- Fixed `scripts/train_operator_yolo_detector.sh` so the all-in-one image uses `/opt/geointel/venv/bin/python` by default when that AI venv exists. Explicit `PYTHON_BIN` still wins, and local shells still fall back to `python3`.
|
||||
- Raised the Nginx request body limit to `250m` in both `frontend/nginx.conf` and `deploy/unraid/nginx-all-in-one.conf` after the live 1024px GeoTIFF upload path returned `413 Request Entity Too Large`.
|
||||
- Kept the change runtime-only: no API contract, persistence model, migration, model-download behavior or default model selection changed.
|
||||
|
||||
## What was tested
|
||||
|
||||
- Red/green TDD guard for the training wrapper fallback:
|
||||
- `python -m pytest backend\tests\test_sprint129_operator_yolo_training_dataset.py -q`
|
||||
- Red/green TDD guard for real GIS upload payload support:
|
||||
- `python -m pytest backend\tests\test_docker_runtime_config.py::test_nginx_runtime_allows_real_gis_upload_payloads -q`
|
||||
- `bash -n scripts/train_operator_yolo_detector.sh`
|
||||
- Tower live model training on `/app/storage/operator-data/yolo-building-aoi1024-visible025`:
|
||||
- output model: `/app/models/geointel-building-yolov8s-aoi1024visible025e50.pt`
|
||||
- model asset id: `geointel-building-yolov8s-aoi1024visible025e50-pt`
|
||||
- final Ultralytics validation: precision approximately `0.275`, recall `0.331`, mAP50 `0.188`, mAP50-95 `0.0716`
|
||||
|
||||
## Known limitations
|
||||
|
||||
- The AOI1024 tile audit is still `needs_attention`: median normalized box area is below gate and small-box share remains high.
|
||||
- Several dense 1024 GRB reference exports reached the current 1000-feature source cap. Treat those samples as useful but potentially reference-capped until the provider query path supports paging or smaller dense AOIs are chosen.
|
||||
- The trained model is intentionally inactive. It needs persisted detection QA/QC matrix evidence and background/hard-negative evidence before default promotion.
|
||||
|
||||
## Next recommended pass
|
||||
|
||||
- Rebuild/deploy the runtime upload-limit fix, rerun the four-sample AOI1024 persisted QA matrix, then decide whether label/source paging or additional AOI quality work comes before another training run.
|
||||
|
||||
+5
-1
@@ -464,4 +464,8 @@ This file now starts with the current implementation status. Older preparation/b
|
||||
- [x] Prepare the new samples on Tower and build a fresh hard-negative tile dataset.
|
||||
- [x] Rebuild Tower all-in-one image so the newly copied operator scripts are available inside `/app/scripts` without `docker cp`.
|
||||
- [x] Fix YOLO preflight CLI so it respects Tower `.env` runtime configuration.
|
||||
- [ ] Train a new candidate from `yolo-building-tile-uniquehardneg160` and run the positive/background promotion gates before activating it.
|
||||
- [x] Train a new inactive AOI1024 YOLOv8s candidate with visible-label filtering.
|
||||
- [x] Fix the all-in-one/compose Nginx upload limit after live 1024px GeoTIFF uploads hit `413 Request Entity Too Large`.
|
||||
- [ ] Rerun persisted QA/QC matrix for `geointel-building-yolov8s-aoi1024visible025e50-pt` after redeploying the upload-limit fix.
|
||||
- [ ] Add GRB paging or smaller dense AOI sampling before trusting 1000-feature-capped dense reference exports as full ground truth.
|
||||
- [ ] Keep every local YOLO candidate inactive until positive-AOI and hard-negative promotion reports recommend default activation.
|
||||
|
||||
Reference in New Issue
Block a user