Fix runtime GIS uploads for operator QA
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 14:03:38 +02:00
parent a1b33555b9
commit 7bf0757470
9 changed files with 75 additions and 5 deletions
+9 -2
View File
@@ -318,7 +318,6 @@ docker exec \
-e TRAIN_BATCH=2 \
-e TRAIN_WORKERS=0 \
-e TRAIN_DEVICE=cpu \
-e PYTHON_BIN=python3 \
geointel bash /app/scripts/train_operator_yolo_detector.sh
```
@@ -328,6 +327,9 @@ Ultralytics from the existing runtime, copies the best trained artifact to
the resulting `.pt` file like any other local model asset: verify preflight,
run the real-data matrix and compare persisted QA/QC metrics before activating
it as a useful default.
Inside the all-in-one image the wrapper prefers
`/opt/geointel/venv/bin/python` when that AI runtime exists. Set `PYTHON_BIN`
only when intentionally overriding the interpreter.
When whole-image training does not improve QA/QC, export a tile-level dataset
with overlapping raster windows:
@@ -383,6 +385,12 @@ 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
`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.
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
@@ -424,7 +432,6 @@ docker exec \
-e TRAIN_BATCH=8 \
-e TRAIN_WORKERS=0 \
-e TRAIN_DEVICE=cpu \
-e PYTHON_BIN=python3 \
geointel bash /app/scripts/train_operator_yolo_detector.sh
```
+9 -2
View File
@@ -21,7 +21,8 @@ Environment variables:
TRAIN_BATCH Batch size. Default: 2
TRAIN_WORKERS Data-loader workers. Default: 0
TRAIN_DEVICE Device passed to Ultralytics. Default: cpu
PYTHON_BIN Python executable. Default: python3
PYTHON_BIN Python executable. Default: /opt/geointel/venv/bin/python
when present, otherwise python3.
This helper is an operator/runtime smoke wrapper. It requires an existing local
base model and an existing local dataset.yaml. It does not create app features.
@@ -43,7 +44,13 @@ TRAIN_IMGSZ="${TRAIN_IMGSZ:-512}"
TRAIN_BATCH="${TRAIN_BATCH:-2}"
TRAIN_WORKERS="${TRAIN_WORKERS:-0}"
TRAIN_DEVICE="${TRAIN_DEVICE:-cpu}"
PYTHON_BIN="${PYTHON_BIN:-python3}"
if [[ -z "${PYTHON_BIN:-}" ]]; then
if [[ -x "/opt/geointel/venv/bin/python" ]]; then
PYTHON_BIN="/opt/geointel/venv/bin/python"
else
PYTHON_BIN="python3"
fi
fi
DATASET_YAML="${OPERATOR_YOLO_DATASET_DIR%/}/dataset.yaml"
SUMMARY_PATH="${TRAIN_OUTPUT_DIR%/}/${TRAIN_RUN_NAME}/training_summary.json"