Classify operator background corpus
This commit is contained in:
@@ -6197,3 +6197,41 @@ Open:
|
||||
|
||||
- The profiles are review/demo aids only. The background corpus still needs to be split into pure-empty negatives and sparse-building contextual AOIs before retraining or recalibrating for a default detector decision.
|
||||
- No backend API contract, migration, provider fetching, fake detection output, model download behavior or active runtime default changed.
|
||||
|
||||
# Sprint 156 - Background corpus classification
|
||||
|
||||
## What changed
|
||||
|
||||
- Added explicit background category classification to operator sample preparation:
|
||||
- `pure_empty_negative` when a background candidate has zero GRB reference buildings.
|
||||
- `sparse_building_context` when a background candidate has one or more GRB reference buildings.
|
||||
- `reference_aoi` for normal positive reference samples.
|
||||
- Persisted `background_category` into generated operator sample manifests and reference GeoJSON metadata.
|
||||
- Added `OPERATOR_BACKGROUND_CATEGORIES` to `scripts/run_operator_hard_negative_detection_matrix.sh` so the strict default-promotion hard-negative gate can run only on `pure_empty_negative` samples, while `sparse_building_context` samples can be reviewed separately.
|
||||
- Preserved `background_category` in YOLO tile export metadata so negative-tile provenance survives training dataset audits.
|
||||
- Updated operator pipeline docs, TODO and changelog.
|
||||
|
||||
## What was tested
|
||||
|
||||
- Added regression coverage in `backend/tests/test_sprint156_background_corpus_classification.py`.
|
||||
- Ran `python -m pytest tests/test_sprint156_background_corpus_classification.py -q`.
|
||||
- Ran `python -m pytest tests/test_sprint156_background_corpus_classification.py tests/test_sprint131_operator_sample_expansion.py tests/test_sprint132_operator_hard_negative_matrix.py tests/test_sprint130_operator_yolo_tile_dataset.py -q`: 17 passed.
|
||||
- Ran `python -m compileall backend/app`.
|
||||
- Ran `python -m pytest` in `backend`: 439 passed.
|
||||
- Ran `cd frontend && npm run typecheck`.
|
||||
- Ran `cd frontend && npm run build`.
|
||||
- Ran `bash scripts/run_readiness_check.sh`.
|
||||
- Ran `cd backend && python -m alembic heads` and `cd backend && python -m alembic upgrade head --sql`.
|
||||
- Ran `bash -n scripts/live_migration_smoke.sh` and `bash -n scripts/run_operator_hard_negative_detection_matrix.sh`.
|
||||
|
||||
## Known limitations
|
||||
|
||||
- This pass adds the cleaner corpus/gate contract only. It does not regenerate Tower manifests, retrain YOLO, rerun the live hard-negative matrices or change any model default.
|
||||
- No backend API contract, database migration, provider fetching, fake detection output or model download behavior changed.
|
||||
|
||||
## Next recommended pass
|
||||
|
||||
- Redeploy/rebuild the runtime scripts, regenerate the operator sample manifest, then run:
|
||||
- `OPERATOR_BACKGROUND_CATEGORIES="pure_empty_negative"` for the strict default-promotion false-positive gate.
|
||||
- `OPERATOR_BACKGROUND_CATEGORIES="sparse_building_context"` for contextual review evidence.
|
||||
- Retrain or recalibrate the inactive AOI1024 local model candidate only after those two matrices are available.
|
||||
|
||||
Reference in New Issue
Block a user