docs: add autotune and feedback internals
This commit is contained in:
parent
f0a31d92dd
commit
af4c306921
1 changed files with 132 additions and 0 deletions
132
docs/autotune.md
Normal file
132
docs/autotune.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
# Auto-Tune and Feedback
|
||||
|
||||
## Purpose
|
||||
|
||||
Auto-tune searches parameter combinations for the current image and applies the best-performing set automatically.
|
||||
|
||||
It is designed to:
|
||||
|
||||
- Find usable boxes quickly on difficult scans.
|
||||
- Improve ranking using prior saved user outcomes (feedback learning).
|
||||
|
||||
## Profiles
|
||||
|
||||
Supported profiles:
|
||||
|
||||
- `Fast`
|
||||
- `Balanced` (default)
|
||||
- `Thorough`
|
||||
- `Exhaustive`
|
||||
|
||||
Each profile controls:
|
||||
|
||||
- candidate breadth (`thresholds`, adaptive settings, morphology combinations)
|
||||
- runtime limits (`max_candidates_*`, `seed_limit`)
|
||||
- convergence limits (`early_stop_*`)
|
||||
- refinement depth (`finalists_*`)
|
||||
|
||||
Higher profiles evaluate more candidates and typically take longer.
|
||||
|
||||
## Candidate Generation
|
||||
|
||||
Candidate sets are built from:
|
||||
|
||||
- Baseline current parameter values
|
||||
- Threshold-based combinations
|
||||
- Adaptive threshold combinations
|
||||
- Otsu combinations
|
||||
- Bounded permutations of bbox/aspect windows
|
||||
|
||||
Then candidates are:
|
||||
|
||||
1. Deduplicated
|
||||
2. Capped by profile runtime limits
|
||||
3. Evenly sampled when over limit
|
||||
4. Ranked before evaluation
|
||||
|
||||
## Candidate Ranking (Pre-Evaluation)
|
||||
|
||||
Ranking prefers:
|
||||
|
||||
- candidates closer to current parameter values
|
||||
- candidates similar to successful feedback entries from visually similar images
|
||||
|
||||
Similarity components:
|
||||
|
||||
- image feature similarity (`mean`, `std`, `p50`, edge density)
|
||||
- normalized parameter distance over each parameter range
|
||||
- optional alignment to `expected_count`
|
||||
|
||||
## Two-Phase Search
|
||||
|
||||
### Coarse pass
|
||||
|
||||
- Runs many candidates quickly using:
|
||||
- downscaled image (max dimension 1400)
|
||||
- `fast_mode=True`
|
||||
- Uses early-stop when score stagnates and convergence conditions are met.
|
||||
|
||||
### Fine pass
|
||||
|
||||
- Re-runs only top finalists at full resolution and full detection path.
|
||||
- Best final candidate is applied to live parameters.
|
||||
|
||||
## Box Scoring Heuristics
|
||||
|
||||
Detected box sets are scored by:
|
||||
|
||||
- plausible count range
|
||||
- multi-photo preference
|
||||
- total area coverage
|
||||
- uniformity of box area proportions
|
||||
- penalty for too many tiny boxes
|
||||
- optional `expected_count` alignment bonuses/penalties
|
||||
- feedback similarity bonus
|
||||
|
||||
If no boxes are found, score is strongly negative.
|
||||
|
||||
## Feedback Learning
|
||||
|
||||
Feedback is recorded when slices are saved:
|
||||
|
||||
- source image path
|
||||
- parameter values used
|
||||
- image features
|
||||
- detected boxes
|
||||
- final locked/saved boxes
|
||||
- final box signature and count
|
||||
- timestamp
|
||||
|
||||
Duplicate feedback entries (same image path + final signature) are replaced with latest.
|
||||
|
||||
## Feedback File
|
||||
|
||||
Default path:
|
||||
|
||||
- `~/.config/scanslicer/autotune-feedback.json`
|
||||
|
||||
Container path (`/.dockerenv` and `/work` exists):
|
||||
|
||||
- `/work/.scanslicer/autotune-feedback.json`
|
||||
|
||||
Override:
|
||||
|
||||
- `SCANSLICER_FEEDBACK_PATH`
|
||||
|
||||
Legacy override names are still accepted for backward compatibility.
|
||||
|
||||
Maximum retained entries:
|
||||
|
||||
- `500` (latest entries kept)
|
||||
|
||||
## Clearing Feedback
|
||||
|
||||
UI action `Clear auto-tune history`:
|
||||
|
||||
- empties in-memory feedback list
|
||||
- removes persisted feedback file if present
|
||||
|
||||
## Related Settings
|
||||
|
||||
- `expected_count` strongly influences scoring and early-stop decisions.
|
||||
- area/aspect parameters can dominate candidate success when scene geometry is constrained.
|
||||
Loading…
Add table
Add a link
Reference in a new issue