Add operator YOLO tile dataset exporter
This commit is contained in:
@@ -302,6 +302,44 @@ 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.
|
||||
|
||||
When whole-image training does not improve QA/QC, export a tile-level dataset
|
||||
with overlapping raster windows:
|
||||
|
||||
```bash
|
||||
docker exec -it geointel python3 /app/scripts/export_operator_yolo_tile_dataset.py \
|
||||
--manifest-path /app/storage/operator-data/operator_samples_manifest.json \
|
||||
--output-dir /app/storage/operator-data/yolo-building-tile-dataset \
|
||||
--tile-size 192 \
|
||||
--stride 96 \
|
||||
--negative-keep-ratio 0.5 \
|
||||
--val-samples turnhout \
|
||||
--force
|
||||
```
|
||||
|
||||
The tile exporter clips GRB building bounding boxes into each tile, writes
|
||||
YOLO labels beside each tile image, keeps a deterministic ratio of empty
|
||||
negative tiles, and records `yolo_tile_dataset_summary.json` with
|
||||
`positive_tile_count`, `negative_tile_count` and skipped negative tile counts.
|
||||
It remains operator tooling only: no provider fetch, no API mutation and no
|
||||
automatic model training.
|
||||
|
||||
Train against the tile dataset by pointing the existing wrapper at the tile
|
||||
output directory:
|
||||
|
||||
```bash
|
||||
docker exec \
|
||||
-e OPERATOR_YOLO_DATASET_DIR=/app/storage/operator-data/yolo-building-tile-dataset \
|
||||
-e YOLO_BASE_MODEL_PATH=/app/models/yolov8n.pt \
|
||||
-e TRAIN_MODEL_OUTPUT_PATH=/app/models/geointel-building-tile-detector.pt \
|
||||
-e TRAIN_EPOCHS=30 \
|
||||
-e TRAIN_IMGSZ=256 \
|
||||
-e TRAIN_BATCH=4 \
|
||||
-e TRAIN_WORKERS=0 \
|
||||
-e TRAIN_DEVICE=cpu \
|
||||
-e PYTHON_BIN=python3 \
|
||||
geointel bash /app/scripts/train_operator_yolo_detector.sh
|
||||
```
|
||||
|
||||
Export calibration QA evidence for visual review:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user