Record YOLO max detection live calibration
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-07-09 10:20:54 +02:00
parent 25f098bde0
commit 638534f011
3 changed files with 19 additions and 4 deletions
+15 -3
View File
@@ -22,10 +22,22 @@ Tested:
- `python -m pytest backend\tests\test_sprint8b_yolo_foundation.py::test_yolo_adapter_converts_single_band_tiles_to_rgb_before_prediction backend\tests\test_sprint8b_yolo_foundation.py::test_yolo_adapter_uses_configured_max_detections -q` (`2 passed`)
- Red step: Docker runtime config tests failed before `.env.example` and Unraid runner exposed `YOLO_MAX_DETECTIONS`.
- `python -m pytest backend\tests\test_docker_runtime_config.py::test_env_example_uses_runtime_env_names_read_by_backend_and_frontend backend\tests\test_docker_runtime_config.py::test_unraid_deploy_passes_ai_build_arg_and_yolo_runtime_env backend\tests\test_sprint8b_yolo_foundation.py -q` (`16 passed`)
- `bash scripts/run_readiness_check.sh` (`425 passed`, frontend typecheck/build passed)
- Redeployed Tower all-in-one image with AI dependencies and verified `YOLO_MAX_DETECTIONS=1000` in the live container.
- Tower live migration smoke passed against embedded PostGIS.
- Live Westerlo calibration with `geointel-building-yolov8s-aoi512e80-pt`:
- `0.25`: 270 detections, F1 `0.23509933774834438`
- `0.15`: 523 detections, F1 `0.19603267211201864`
- `0.05`: 1000 detections, F1 `0.13193403298350823`
- Live Turnhout calibration with `geointel-building-yolov8s-aoi512e80-pt`:
- `0.25`: 822 detections, F1 `0.1304075235109718`
- `0.15`: 1000 detections, F1 `0.13085166384658772`
- `0.05`: 1000 detections, F1 `0.13085166384658772`
Open:
- Rebuild/redeploy the Tower all-in-one image before rerunning live calibration so the container uses `YOLO_MAX_DETECTIONS=1000`.
- After deploy, rerun at least one high-density AOI calibration to confirm detection counts are no longer capped at 300.
Conclusion:
- The former 300-detection runtime cap is removed; dense AOIs can now persist more candidates.
- The current AOI512 YOLOv8s candidate remains rejected for operational use because precision/recall quality is still too low and low thresholds saturate the configured `1000` cap.
- Next model work should focus on training data coverage, label strategy and post-processing/NMS behavior rather than only threshold lowering.
## Sprint 147 AOI512 YOLOv8s scale-match candidate gate (2026-07-09)