ScanSlicer/docs/autotune.md

3 KiB

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

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
  • expected_count strongly influences scoring and early-stop decisions.
  • area/aspect parameters can dominate candidate success when scene geometry is constrained.