docs: plan v1.2 trajectory recognition workflow
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
|
||||
The `v1.1 优化改造` batch upgrades the product from a fixed 8-zone layout to a configurable 1-10 zone workflow with numeric region labels and editable trash ROI calibration. All v1.1 items are part of one batch; backend, API, frontend, and documentation are implementation workstreams inside that same batch.
|
||||
|
||||
The `v1.2 轨迹识别` batch adds source-zone trajectory evidence for disposal confirmation. The first implementation uses lightweight motion tracking and keeps YOLO disabled, while preserving an evidence contract that a later trained YOLO product detector can enrich.
|
||||
|
||||
## Architecture
|
||||
|
||||
- Backend package: `src/cold_display_guard/`
|
||||
@@ -15,6 +17,7 @@ The `v1.1 优化改造` batch upgrades the product from a fixed 8-zone layout to
|
||||
- `manage_api.py`: standard-library HTTP management API.
|
||||
- `main.py`: RTSP runtime loop connecting frame capture, vision, state engine, and JSONL sinks.
|
||||
- `vision.py`: heuristic ROI occupancy and trash-motion detection.
|
||||
- v1.2 adds trajectory evidence between vision and engine: `MotionTrajectoryBackend` emits source-zone-to-trash evidence; `BatchEngine` consumes the backend-neutral `disposal_evidence` contract.
|
||||
- Frontend package: `web/`
|
||||
- Vite + vanilla JavaScript management console.
|
||||
- Default web port `23000`.
|
||||
@@ -45,6 +48,13 @@ The `v1.1 优化改造` batch upgrades the product from a fixed 8-zone layout to
|
||||
- Trash ROI:
|
||||
- Stored under `[trash] roi`.
|
||||
- Does not use a food zone number.
|
||||
- v1.2 trajectory settings:
|
||||
- `trajectory_enabled`: enables source-zone trajectory evidence.
|
||||
- `trajectory_window_seconds`: seconds after a zone clears where movement can confirm disposal.
|
||||
- `trajectory_sample_interval_seconds`: faster runtime delay while a candidate is active.
|
||||
- `trajectory_min_confidence`: minimum confidence before evidence can close pending disposal.
|
||||
- `trajectory_backend`: first valid value is `"motion"`.
|
||||
- `yolo_enabled`: defaults to `false`; reserved for a future trained model backend.
|
||||
|
||||
## Event Model
|
||||
|
||||
@@ -59,6 +69,8 @@ The `v1.1 优化改造` batch upgrades the product from a fixed 8-zone layout to
|
||||
|
||||
Events should include `zone_id`, `zone_index`, `zone_label`, `started_at`, `dwell_seconds`, and relevant alarm/removal/deadline timestamps when available.
|
||||
|
||||
In v1.2, `batch_discarded` can be triggered by zone-scoped `disposal_evidence` before falling back to generic `trash_deposit_count`. Evidence must match the pending batch's `source_zone_id`.
|
||||
|
||||
## Runbook
|
||||
|
||||
- Python tests:
|
||||
@@ -79,6 +91,7 @@ Events should include `zone_id`, `zone_index`, `zone_label`, `started_at`, `dwel
|
||||
## Known Risks
|
||||
|
||||
- The current vision detector is heuristic and reports binary occupancy, not item counts.
|
||||
- v1.2 motion tracking improves disposal matching but can still miss movement if the hand/object path is occluded or sampled too sparsely.
|
||||
- If food is already present during baseline collection, those regions may be treated as empty baseline until visual changes occur.
|
||||
- Changing calibration while the runtime process has active batches can create operational ambiguity; v1.1 should document or enforce a pause/restart expectation.
|
||||
- Historical events must keep the zone index at the time of emission so later region reordering does not reinterpret old logs.
|
||||
|
||||
Reference in New Issue
Block a user