Quality
What the Quality parameter checks in an image - pose, lighting, resolution, blur, occlusions - and how to read its score and flags.
About Parameter
This parameter evaluates whether an image is good enough for reliable skin analysis. It checks face and skin visibility, head pose, resolution, blur, lighting, and occlusions, and returns an overall score together with a pass/fail flag for every check.
In Face Skin Analysis 3.0, blur, lighting, shadow, and occlusion checks are performed by neural networks trained on images labelled by panels of human annotators. They replace the hand-tuned heuristics used by Face Skin Metrics 2.0.
Features
Works with 1 and 3 side facial images.
The front image receives the full set of checks. Side images (
left,right) are checked for face and skin presence, resolution, and blur; the other checks are not evaluated on side images and are returned asnull.
Output
Overall score
score — overall image quality from 1 to 100, calculated for each uploaded side. It is the only score the parameter returns: individual problems have no scores of their own and are reported only through the boolean flags below.
If any quality problem is detected (any flag is
false), the image is treated as a bad quality image and its score cannot be higher than 50. One problem is enough.If no problem is detected, the score is above 50 and the image is treated as a good quality image.
If less than 15% of the face crop is skin (
has_enough_skinisfalse), the score is 1 and the remaining checks are skipped.On side images, only face and skin presence, resolution, and blur are checked, so only these problems can lower the score.
The score is a binary verdict:
51–100
Good quality
1–50
Bad quality — at least one quality problem was detected. Check the flags to see which one
The threshold at 50 is the only point validated against human judgement. Differences between scores above 50 are not calibrated, so use the score as a pass/fail verdict and do not rank or compare images by it.
Quality flags
Each flag answers "is this aspect of the image OK?":
true— no problem detected;false— problem detected;null— not evaluated (for example, front-only checks on side images, or every check afterhas_faceorhas_enough_skinisfalse).
Group
Flag
false when
Sides
Face and skin
has_face
The face crop is empty. This is a safeguard: an image where no face is detected gets no quality result at all (see below)
All
has_enough_skin
Less than 15% of the face crop contains visible skin
All
Head position and focus
has_valid_pose
The head is turned or tilted too far (around 15° to the side or 11° up or down)
Front
has_good_resolution
Neither dimension of the face exceeds 1024 pixels. For best results, use images with at least 2K×2K face resolution to detect the majority of visible pores
All
has_no_blur
The image is blurred (motion blur or out of focus). The check is deliberately strict: it flags an image when even a minority of human annotators would call it blurry
All
Occlusions
has_no_occlusions
Part of the face is covered by an object, such as a hand, mask, or phone
Front
has_no_eyeglasses
The person is wearing eyeglasses
Front
has_no_hair_bangs
Hair or headwear covers the forehead
Front
Lighting
has_good_exposure
The image is too dark or overexposed
Front
has_uniform_illumination
The face is lit from a strong side or top/bottom angle, or by harsh directional light
Front
has_no_shadows
Visible shadows or uneven illumination fall across the face
Front
Images without a detected face
Quality is calculated only for sides where a face was detected. If no face is detected on an uploaded image, that side has no quality result (null) and a detection error is reported for it instead. See the result scheme for the response format.
Validation
Face Skin Analysis 3.0 Quality was evaluated against Face Skin Metrics 2.0 on the same test set, in September 2026.
Test set. 3,429 face images labelled by panels of human annotators: 2,394 bad and 1,035 good. An image counts as bad if it has at least one quality issue — blur, poor lighting, or occlusions.
Metrics. "Bad" is the class being detected.
Recall (main metric) — share of bad images that are caught.
Precision — share of rejected images that really are bad.
F1 — balance of precision and recall.
Overall verdict (image rejected when its score is at or below each version's threshold: 50 for Face Skin Analysis 3.0, 60 for Face Skin Metrics 2.0):
Face Skin Metrics 2.0
0.97
0.64
0.77
Face Skin Analysis 3.0
0.91
0.96
0.93
Per problem, measured on the flags: blur = has_no_blur is false; lighting = has_no_shadows or has_uniform_illumination is false (exposure not included). Uses the 2,577-image subset where blur and lighting were labelled separately:
Blur
1.00 / 0.25 / 0.40
0.94 / 0.92 / 0.93
Lighting
0.95 / 0.37 / 0.54
0.89 / 0.92 / 0.91
What changes in practice. Face Skin Analysis 3.0 catches far more bad images, and in exchange flags more good ones:
Overall
64% → 96%, 1.5× more
36% → 4%, 8× fewer
5% → 22%
Blur
25% → 92%, 3.6× more
75% → 8%, 9× fewer
0% → 14%
Lighting
37% → 92%, 2.5× more
63% → 8%, 8× fewer
6% → 29%
Values are Face Skin Metrics 2.0 → Face Skin Analysis 3.0. Face Skin Metrics 2.0 flagged only the most obvious cases, so it rarely rejected a good image but let more than a third of bad images through. Face Skin Analysis 3.0 misses about 1 in 25 bad images and flags about 1 in 5 good images in this test set. Part of the test set is deliberately hard: on images taken in typical production conditions, Face Skin Analysis 3.0 flagged 11% of good images, compared with 32% on the research images labelled by the annotator panels.
Algorithm API
API access is available only for Professional plan clients
Not a Haut.AI client yet?
Last updated