For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

  1. Works with 1 and 3 side facial images.

  2. 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 as null.

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_skin is false), 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:

Score
Meaning

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 after has_face or has_enough_skin is false).

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.

A low-quality image does not stop the analysis. Other parameters still return results, so use score and the flags to decide whether to trust them or to ask the user to retake the photo. When a flag is false, show a specific hint — for example, ask for more even lighting when has_no_shadows or has_uniform_illumination is false.

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):

Version
Precision
Recall
F1

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:

Problem
Face Skin Metrics 2.0 (P / R / F1)
Face Skin Analysis 3.0 (P / R / F1)

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:

Problem
Bad images caught
Bad images missed
Good images flagged

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


Book a demo external-linkFace Skin Analysis 3.0 on haut.ai

Last updated