FINGERQUALITYAPI / README.md
sol9x-sagar's picture
initial setup
e735bf3
---
title: Flask Finger Quality API
sdk: docker
app_port: 7860
---
Here is how to read each score and why some “good-looking” images still fail overall.
***
## 1. What each score means
These ranges are based on the thresholds used in the code you ran (blur_min=80, illum_min=60, illum_max=200, coverage_min=0.10, orientation_max_deviation=30, vertical_expected=True).
### Blur score (variance of Laplacian)
- Metric: “How sharp is the finger texture?” Higher is better.
- Rough scale (with current threshold 80):
- 0–30 → Very blurry (fail).
- 30–60 → Soft / borderline sharpness (often fail, might be visually OK).
- 80–200 → Good sharpness for most mobile cases (pass).
- 200+ → Very sharp (pass).
### Illumination score (mean grayscale in ROI)
- Metric: “Average brightness of the finger region.”
- Thresholds now: 60 ≤ illumination ≤ 200.
- Rough interpretation:
- < 50 → Too dark / underexposed (fail).
- 50–200 → Acceptable brightness (pass).
- > 200 → Too bright / overexposed (fail).
### Coverage ratio
- Metric: “Fraction of the full frame covered by segmented finger pixels.”
- Threshold now: coverage ≥ 0.10 (10% of frame).
- Rough interpretation:
- < 0.10 → Finger too small, far away, or segmentation bad (fail).
- 0.10–0.20 → Minimum acceptable; finger is present but not very large.
- ≥ 0.20–0.40 → Good coverage for biometric capture (pass).
### Orientation angle
- Metric: PCA angle of the main axis of the finger ROI, in degrees relative to x‑axis, normalized to about −90° to 90°.
- With `vertical_expected=True`, the code expects the finger to be **vertical** (angle near ±90°).
- Threshold now: within 30° of the expected orientation.
- If vertical expected:
- Angles near +90° or −90° → good.
- Big deviation from vertical → fail. Deviation allowed - 45°
- If horizontal finger is desired, you would set `vertical_expected=False` to expect angles near 0°.
***