46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# calibration — Calibration Corpus
|
|
|
|
## Purpose
|
|
|
|
Corpus persistent, auto-suficient pentru clasificarea culorilor și regresia FSM.
|
|
Sursa de adevăr pentru ce „vede" detectorul.
|
|
|
|
## Ownership
|
|
|
|
`frames/`, `calibration_labels.json`, `scenarios.json`.
|
|
|
|
## Local Contracts
|
|
|
|
- **`frames/`** — PNG raw `{ts}_{color}.png` scrise **automat** de live loop la
|
|
fiecare schimbare de culoare. Filename = culoarea detectată, **poate fi greșită**.
|
|
Nu trata filename-ul ca ground truth.
|
|
- **`calibration_labels.json`** — ground truth **manual**. Gate offline pentru
|
|
`atm validate-calibration`. Pui culoarea pe care ai văzut-o TU pe chart, nu cea
|
|
din filename.
|
|
- **`scenarios.json`** — secvențe FSM pentru `tests/test_scenarios_regression.py`.
|
|
|
|
## Work Guidance
|
|
|
|
**Workflow după sesiune:** review frame-urile noi din `frames/` → adaugi entry-uri
|
|
în `calibration_labels.json` cu culoarea reală → rulezi validate-calibration.
|
|
|
|
### Palette gotcha (recalibrare 2026-04-21)
|
|
|
|
Indicatorii M2D pictează cele patru culori bright la saturație near-pure:
|
|
turquoise `(0,253,253)`, yellow `(253,253,0)`, light_green `(0,255,0)`,
|
|
light_red `(255,0,0)`. Dacă Tk-wizard eșantionează un pixel ușor desaturat,
|
|
clasificatorul întoarce `UNKNOWN` (distanță > tolerance=60) → FSM nu vede trigger
|
|
→ stuck în PRIMED → scheduler polls la infinit. **Mereu** rulează
|
|
validate-calibration după recalibrare. Config activ: vezi `configs/current.txt`.
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
atm validate-calibration calibration/calibration_labels.json # color gate offline
|
|
pytest tests/test_scenarios_regression.py -v
|
|
```
|
|
|
|
## Child DOX Index
|
|
|
|
(none — leaf)
|