91 lines
4 KiB
Markdown
91 lines
4 KiB
Markdown
# Parameter Reference
|
|
|
|
This page documents the detection parameters defined in `scanslicer/params.py` (`AutoslicerParams.SPECS`).
|
|
|
|
## Notes
|
|
|
|
- All values are integer-backed.
|
|
- Some parameters are context-sensitive and only apply to specific detection modes.
|
|
- Internal safeguards:
|
|
- `aspect_ratio_max` is clamped to be `>= aspect_ratio_min`
|
|
- `canny_high` is clamped to be `>= canny_low`
|
|
|
|
## Choice Parameters
|
|
|
|
- `detect_pipeline`
|
|
- `0`: Threshold pipeline
|
|
- `1`: Canny pipeline
|
|
- `bw_method` (threshold pipeline only)
|
|
- `0`: Simple threshold
|
|
- `1`: Adaptive Gaussian threshold
|
|
- `2`: Otsu threshold
|
|
- `invert_mode`
|
|
- `0`: Auto (try normal polarity, then inverted fallback)
|
|
- `1`: Off (normal polarity only)
|
|
- `2`: On (force inverted polarity)
|
|
- `morph_op`
|
|
- `0`: None
|
|
- `1`: Dilate
|
|
- `2`: Erode
|
|
- `3`: Open
|
|
- `4`: Close
|
|
|
|
## Full Table
|
|
|
|
| Parameter | Default | Range | Step | Used In | Effect |
|
|
|---|---:|---|---:|---|---|
|
|
| `detect_pipeline` | `0` | `0..1` | `1` | global | Select threshold or Canny detection pipeline. |
|
|
| `clahe_clip` | `0` | `0..40` | `1` | preprocessing | CLAHE contrast boost (`0` disables). Effective clip limit is `value/10`. |
|
|
| `gaussian` | `0` | `0..100` | `1` | preprocessing | Gaussian blur kernel size (`0` disables). Even values are bumped to odd. |
|
|
| `bw_method` | `0` | `0..2` | `1` | threshold pipeline | Selects Simple, Adaptive Gaussian, or Otsu thresholding. |
|
|
| `bw_thresh` | `210` | `0..255` | `5` | threshold+simple | Binary threshold cutoff. |
|
|
| `bw_gauss` | `64` | `0..1000` | `2` | threshold+adaptive | Adaptive block size basis. Converted to odd and at least `3`. |
|
|
| `bw_adaptive_c` | `2` | `-20..20` | `1` | threshold+adaptive | Adaptive threshold subtraction constant. |
|
|
| `canny_low` | `50` | `0..255` | `5` | Canny pipeline | Lower Canny hysteresis threshold. |
|
|
| `canny_high` | `150` | `0..255` | `5` | Canny pipeline | Upper Canny hysteresis threshold. |
|
|
| `invert_mode` | `0` | `0..2` | `1` | global | Controls polarity inversion behavior before contour extraction. |
|
|
| `morph_op` | `1` | `0..4` | `1` | global | Morphological operation on mask/edges. |
|
|
| `contour_approx_pct` | `0` | `0..50` | `1` | contour extraction | Polygon approximation epsilon percentage (`value/1000`). |
|
|
| `bbox_min_size` | `2` | `0..100` | `1` | contour filtering | Minimum candidate area as % of full image area. |
|
|
| `bbox_max_size` | `90` | `1..100` | `1` | contour filtering | Maximum candidate area as % of full image area. |
|
|
| `bbox_fill_thresh` | `10` | `0..100` | `1` | contour filtering | Minimum contour fill ratio within min-area box (%). |
|
|
| `expected_count` | `0` | `0..20` | `1` | scoring/autotune | Expected number of photos (`0` means auto/unbounded heuristics). |
|
|
| `aspect_ratio_min` | `100` | `100..1000` | `5` | contour filtering | Minimum long/short aspect ratio, scaled by `x100`. |
|
|
| `aspect_ratio_max` | `400` | `100..1000` | `5` | contour filtering | Maximum long/short aspect ratio, scaled by `x100`. |
|
|
| `border_ignore` | `0` | `0..20` | `1` | contour filtering | Ignore candidates touching image edges within this margin (%). |
|
|
| `iou_merge_thresh` | `30` | `0..100` | `1` | contour dedup | Merge overlap threshold as IoU percentage. |
|
|
| `dilate_kernel` | `30` | `0..500` | `1` | morphology | Morph kernel size for selected morph operation (`0` disables morphology). |
|
|
|
|
## Advanced Parameters in UI
|
|
|
|
The UI can hide/show advanced controls. Advanced set:
|
|
|
|
- `detect_pipeline`
|
|
- `clahe_clip`
|
|
- `gaussian`
|
|
- `bw_adaptive_c`
|
|
- `invert_mode`
|
|
- `contour_approx_pct`
|
|
- `bbox_max_size`
|
|
- `aspect_ratio_min`
|
|
- `aspect_ratio_max`
|
|
- `border_ignore`
|
|
- `iou_merge_thresh`
|
|
|
|
## Practical Tuning Guidance
|
|
|
|
- Too many tiny false positives:
|
|
- Increase `bbox_min_size`
|
|
- Increase `bbox_fill_thresh`
|
|
- Increase `iou_merge_thresh`
|
|
- Missed photos:
|
|
- Lower `bbox_min_size`
|
|
- Broaden `aspect_ratio_min/max`
|
|
- Try `detect_pipeline=1` (Canny)
|
|
- Try `invert_mode=2`
|
|
- Border/frame artifacts:
|
|
- Increase `border_ignore`
|
|
- Switch morphology operation/kernel
|
|
- Uneven illumination:
|
|
- Use adaptive mode (`bw_method=1`)
|
|
- Enable modest `clahe_clip`
|