Gate YOLO tile labels by visible ratio
This commit is contained in:
@@ -1,3 +1,27 @@
|
||||
## Sprint 150 YOLO label visible-ratio gate (2026-07-09)
|
||||
|
||||
Changed:
|
||||
- Added `--min-label-visible-ratio` / `OPERATOR_YOLO_MIN_LABEL_VISIBLE_RATIO` to `scripts/export_operator_yolo_tile_dataset.py`.
|
||||
- The tile exporter now computes the visible share of each original building bbox inside a tile and can drop labels below the configured ratio.
|
||||
- Default remains `0` for legacy behavior; use `0.25` for the next overlap-heavy operator dataset experiment.
|
||||
- Tile dataset summaries include `min_label_visible_ratio`.
|
||||
- `scripts/audit_operator_yolo_dataset_quality.py` now reports `min_label_visible_ratio` in JSON and Markdown.
|
||||
- Updated operator script documentation.
|
||||
|
||||
Why:
|
||||
- The current rejected AOI512 candidate still shows low precision/recall after max-det and duplicate suppression hardening.
|
||||
- A likely label-quality issue is that overlapping tile export can create many small clipped edge labels for buildings mostly outside a tile.
|
||||
- This pass improves the next training dataset gate without activating a model, faking detections, fetching providers or changing persistence.
|
||||
|
||||
Tested:
|
||||
- Red step: `python -m pytest backend\tests\test_sprint130_operator_yolo_tile_dataset.py -q` failed because the exporter lacked `min_label_visible_ratio`, CLI help and visible-fragment filtering.
|
||||
- `python -m pytest backend\tests\test_sprint130_operator_yolo_tile_dataset.py -q` (`6 passed`)
|
||||
- Red step: `python -m pytest backend\tests\test_sprint146_operator_yolo_dataset_quality_audit.py -q` failed because the audit report did not expose `min_label_visible_ratio`.
|
||||
- `python -m pytest backend\tests\test_sprint130_operator_yolo_tile_dataset.py backend\tests\test_sprint146_operator_yolo_dataset_quality_audit.py -q` (`7 passed`)
|
||||
|
||||
Next:
|
||||
- Run full readiness, deploy Tower, export a new visible-ratio-gated operator tile dataset, audit it, then decide whether it is good enough for another CPU training candidate.
|
||||
|
||||
## Sprint 149 YOLO duplicate suppression evidence (2026-07-09)
|
||||
|
||||
Changed:
|
||||
|
||||
+2
-1
@@ -114,9 +114,10 @@ This file now starts with the current implementation status. Older preparation/b
|
||||
- [x] Rerun live dense-AOI calibration after redeploy with `YOLO_MAX_DETECTIONS=1000`; Westerlo reached 523/1000 detections at lower thresholds and Turnhout reached 822/1000, confirming the old 300 cap is removed.
|
||||
- [x] Add configured-YOLO cross-tile duplicate suppression and raw/suppressed calibration evidence fields.
|
||||
- [x] Rerun live dense-AOI calibration after redeploy with `YOLO_DUPLICATE_IOU_THRESHOLD=0.5`; Westerlo 0.25 improved to F1 `0.2537313432835821` and Turnhout 0.25 improved to F1 `0.14114114114114112`, but the candidate remains rejected.
|
||||
- [x] Add `OPERATOR_YOLO_MIN_LABEL_VISIBLE_RATIO` so the next overlapping-tile dataset can drop tiny clipped edge-fragment labels.
|
||||
- [ ] Find or train a materially stronger aerial/Kempen building model candidate; `geointel-building-yolov8n-expanded160e50-pt` is the best current dense-AOI candidate but still too weak and too noisy for a V1 default.
|
||||
- [ ] Train a higher-capacity local aerial-building detector with stronger positive recall while preserving the hard-negative false-positive gate.
|
||||
- [ ] Add more diverse positive AOIs and revisit geometry-to-box label strategy before the next default-model training attempt.
|
||||
- [ ] Export and audit a visible-ratio-gated tile dataset on Tower before the next default-model training attempt.
|
||||
- [ ] Build the next candidate gate around better positive AOI coverage, label strategy and hard-negative retention.
|
||||
|
||||
## Sprint 8 status
|
||||
|
||||
Reference in New Issue
Block a user