Estimated data#
This section lists the general parameters of faces, bodies and images estimated by LUNA PLATFORM 5 and how to get them.
You can get parameters using a some of tools and resources. Basically, getting parameters is done using the following methods:
-
Extract gender and age from the image. Gender and age belong to the concept of basic attributes.
The "/extractor", "/sdk" resources and "extract_policy" of "/handlers" and "/verifiers" resources are used to extract basic attributes from a face image.
To extract basic attributes from the face using the "/extractor" resource, you should first create a sample using the "/detector" resource. In response to the "/extractor" request, the gender and age of the person will be returned. The extracted data have a TTL (time to live) and will be removed from the database after the specified period.
See the detailed description of extracting basic attributes in the "Descriptor extraction and attribute creation" section.
When estimating parameters using the "/sdk" resource, you should send the source image to LUNA PLATFORM 5 and specify the "estimate_basic_attributes" parameter in the query parameters. In response to the request, the gender and age of the person will be received. These parameters will not be saved to the database.
To extract this parameters using the "/handlers" and "/verifiers" requests, you should use the "extract_basic_attributes" parameter of the "extract_policy".
Gender and age estimation is also available by body image. This method is not accurate and is performed by body parameters estimation (see "Perform estimation of body parameters" below).
-
Perform estimation of face and image parameters.
Various resources are used to estimate the parameters. The resources mainly used are "/detector", "/sdk", "/handlers" and "/verifiers".
When estimating parameters using the "/detector" resource, you need to send the source image to LUNA PLATFORM 5 and specify the estimation of the required face or image parameters in the query parameters. In response to request, a face sample will be created and the specified parameters will be given. The estimated parameters will not be saved in the database.
The method for getting parameters using the "/sdk" resource is similar to the method described above, however, the sample will not be created. The estimated parameters will also not be saved to the database.
To estimate parameters using "/handlers" and "/verifiers" resources, you should use the "detect_policy" with required parameters.
-
Perform estimation of body parameters.
The ability to perform estimation of body parameters is adjusted by a special parameter in the LUNA PLATFORM 5 license key.
The "/sdk" and "/handlers" resources are used to estimate body parameters. Using these resources is similar to performing face and image estimation (see above).
-
Perform check of face and image parameters according to ISO/IEC 19794-5:2011 or custom conditions.
The ability to perform such checks is adjusted by a special parameter in the LUNA PLATFORM 5 license key.
The "/iso" and "/detector" ("estimate_face_quality" parameter) resources and the "face_quality" check group of the "detect_policy" of the "/handlers" and "/verifiers" requests are used to perform the check.
The responses to requests show the overall result of passing all checks ("0" or "1"), as well as the results of each check.
See the detailed description of this functionality in the "Image check" section.
-
Perform Liveness estimation.
The ability to perform such estimation is adjusted by a special parameter in the LUNA PLATFORM 5 license key.
-
Perform estimation of number of people in the image
All returned values and the response format depend on the resource where the estimation is performed.
In order to get results when sending requests to "/handlers" or "/verifiers" resources, you need to generate an event and perform verification on the specified handlers. See the Handler object section for more information about working with these resources.
Gender and age by face image#
This estimation determines the basic attributes (gender and age) of a person in the face image.
For details on basic attributes, see Attribute object.
Resources where the estimation is performed:
-
Estimation name — "extract_basic_attributes".
-
Estimation name — "policies" > "extract_policy" > "extract_basic_attributes".
-
Estimation name — "policies" > "extract_policy" > "extract_basic_attributes".
-
Estimation name — "estimate_basic_attributes".
Face parameters#
Eyes attributes#
This estimation determines the following state of eyes for each of the eyes:
- "open"
- "closed"
- "occluded"
Poor quality images or ones that depict obscured eyes (for example, eyewear, hair, gestures) fall into the "occluded" category.
Iris landmarks are determined. An array of 34 landmarks is returned for each eye.
In the "/iso", "/detector" (image checking tool) and "detect_policy" > "face_quality" resources, the estimated value is also compared with threshold (according to ISO or non-standard threshold).
Resources where the estimation is performed:
-
Estimation name — "estimate_eyes_attributes".
-
Estimation name — "policies" > "detect_policy" > "estimate_eyes_attributes".
-
Estimation name — "policies" > "detect_policy" > "estimate_eyes_attributes".
-
Estimation name — "estimate_eyes_attributes".
Eyes attributes estimation using image checking tools:
-
"/iso" and "/detector" (see sections "7.2.3 Expression", point "a", "7.2.11 Visibility of pupils and irises" and "7.2.13 Eye patches" of the standard ISO/IEC 19794-5:2011).
Checks names — "left_eye", "right_eye".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources.
Checks names — "left_eye", "right_eye".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"left_eye" > "threshold" | ["open"] |
"right_eye" > "threshold" | ["open"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Face landmarks#
There are two estimations of the face landmarks:
- Estimation of 5 face landmarks
- Assessment of 68 face landmarks
Landmarks are used for various purposes, for example, when creating the sample, when extracting the descriptor, etc. See the SDK documentation for a more detailed description of the landmarks.
-
Estimation name — "detect_landmarks68".
-
Estimation name — "policies" > "detect_policy" > "detect_landmarks68".
-
Estimation name — "policies" > "detect_policy" > "detect_landmarks68".
-
Estimation name — "estimate_landmarks5".
Estimation name — "estimate_landmarks68".
Distance between eyes#
Note: It is not possible to use a sample as an input image for this estimation.
It is possible to estimate the distance between the centers of the eyes in pixels. The estimated value is also compared with threshold (according to ISO or non-standard threshold).
This estimation can only be performed using image checking tools:
-
"/iso" and "/detector" (see section "5.6.5 Eye and nostril centre Landmark Points" of the standard ISO/IEC 19794-5:2011).
Check name — "eye_distance".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources.
Check name — "eye_distance".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"eye_distance" > "threshold" | [90...inf] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Red eyes effect#
This estimation determines the presence of the red eyes effect, where:
- "0" — Red eyes effect is not present in the image.
- "1" — Red eyes effect is present in the image.
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
Image requirements:
For correct checking results, the following requirements should be met.
The table below shows the requirements for image quality:
Parameter | Required range |
---|---|
"illumination" | [0.61...1] |
"specularity" | [0.57...1] |
"blurriness" | [0.5...1] |
"dark" | [0.1...1] |
"light" | [0.1...1] |
The table below shows the requirement for natural light:
Parameter | Required range |
---|---|
"natural_light" | [0.5...1] |
Resources where the estimation is performed:
Red eyes effect estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "7.3.4 Unnatural colour" of the standard ISO/IEC 19794-5:2011)
Check name — "red_eyes".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "red_eyes".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"red_eyes" > "threshold" | "1" |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Gaze#
This estimation determines the gaze. The gaze is represented by the following parameters:
- Pitch angle
- Yaw angle
A positive value of the pitch angle means looking up, and a negative value means looking down.
A positive value of yaw angle means looking to the right, and a negative value means looking to the left.
Zero position corresponds to a gaze direction orthogonally to the face plane, with the axis of symmetry parallel to the vertical camera axis.
In the "/iso" and "detect_policy" > "face_quality" resources, the estimated value is also compared with threshold (according to ISO or non-standard threshold).
Resources where the estimation is performed:
-
Estimation name — "estimate_gaze".
-
Estimation name — "policies" > "detect_policy" > "estimate_gaze".
-
Estimation name — "policies" > "detect_policy" > "estimate_gaze".
-
Estimation name — "estimate_gaze".
Gaze estimation using image checking tools:
-
"/iso" and "/detector" (see section "7.2.3 Expression" point "e" of the standard ISO/IEC 19794-5:2011)
Checks names — "gaze_yaw", "gaze_pitch".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "gaze_yaw", "gaze_pitch".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"gaze_yaw" > "threshold" | [-5...5] |
"gaze_pitch" > "threshold" | [-5...-5] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Glasses#
This estimation determines the predominant state of the glasses from the following states:
- "sun_glasses"
- "glasses"
- "no_glasses"
In the "/iso" and "detect_policy" > "face_quality" resources, the estimated value is also compared with threshold (according to ISO or non-standard threshold).
Resources where the estimation is performed:
-
Estimation name — "estimate_glasses".
Glasses estimation using image checking tools:
-
"/iso" and "/detector" (see section "7.2.9 Eye glasses" of the standard ISO/IEC 19794-5:2011)
Check name — "glasses".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "glasses".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable values |
---|---|
"glasses" > "threshold" | ["no_glasses", "eyeglasses"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Eyebrows#
This estimation determines the predominant state of the eyebrows from the following states:
- "neutral" — Eyebrows are in the usual position.
- "raised" — Eyebrows are raised.
- "squinting" — Eyes are narrowed, eyebrows are lowered.
- "frowning" — Eyebrows are frowned.
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
It is possible to specify several eyebrow states as acceptable.
Image requirements:
For correct checking results, the following requirements should be met.
The table below shows the requirements for head pose:
Parameter | Required range |
---|---|
pitch | [-20...20] |
roll | [-20...20] |
yaw | [-20...20] |
The table below shows the requirement for face width:
Parameter | Required range |
---|---|
face_width | > 80 |
Resources where the estimation is performed:
Eyebrows estimation is available only using using image checking tools:
-
"/iso" and "/detector" (see section "7.2.3 Expression", points "d", "f" and "g" of the standard ISO/IEC 19794-5:2011)
Check name — "eyebrows_state".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "eyebrows_state".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"eyebrows_state" > "threshold" | ["neutral"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Mouth attributes#
This estimation determines a probabilistic score for each of the following parameters in the range [0..1]:
- "opened"
- "smile"
- "occluded"
The probability that the mouth is opened is also determined.
In the "/iso" and "detect_policy" > "face_quality" resources, the estimated value is also compared with threshold (according to ISO or non-standard threshold).
Resources where the estimation is performed:
-
Estimation name — "estimate_mouth_attributes".
-
Estimation name — "policies" > "detect_policy" > "estimate_mouth_attributes".
-
Estimation name — "policies" > "detect_policy" > "estimate_mouth_attributes".
-
Estimation name — "estimate_mouth_attributes".
Mouth attributes estimation using image checking tools:
-
"/iso" and "/detector" (see section "7.2.3 Expression" point "a", "b" and "c" of the standard ISO/IEC 19794-5:2011)
Checks names — "mouth_smiling", "mouth_occluded", "mouth_open".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "mouth_smiling", "mouth_occluded", "mouth_open".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"mouth_occluded" > "threshold" | [0...0.5] |
"mouth_smiling" > "threshold" | [0...0.5] |
"mouth_opened" > "threshold" | [0...0.5] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Smile state#
This estimation determines the predominant state of a smile from the following states:
- "none" — No smile found, so no additional parameters are determined.
- "smile_lips" — Usual smile with closed lips.
- "smile_teeth" — Smile with open teeth.
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
If necessary, you can specify several smile states as acceptable.
Image requirements:
For correct checking results, the following requirements should be met.
The table below shows the requirements for head pose:
Parameter | Required range |
---|---|
"pitch" | [-20...20] |
"roll" | [-10...10] |
"yaw" | [-25...25] |
The table below shows the requirement for face width:
Parameter | Required range |
---|---|
"face_width" | > 80 |
Resources where the estimation is performed:
Smile state estimation is only available using image checking tools:
-
"/iso" and "/detector" (see section "7.2.3 Expression" point "a", "b" and "c" of the standard ISO/IEC 19794-5:2011)
Check name — "smile_properties".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "smile_properties".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"smile_properties" > "threshold" | ["none"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Image quality#
This estimation determines a probabilistic score for each of the following parameters in the range [0..1], where 0 corresponds to low quality and 1 to high quality:
- "dark" — The degree of darkness in the photo.
- "light" — The degree of brightness in the photo.
- "blur" — The degree of blurriness.
- "illumination" — The degree of uniformity in illumination. The lower the difference between light and dark zones on the face, the higher the estimated value. When illumination is evenly distributed across the face, the value is close to "1."
- "specularity" — The degree of absence of glare. The higher the estimated value, the less glare and the better the image quality. If the estimated value is low, there are bright glares on the face.
In the "/iso" and "detect_policy" > "face_quality" resources, the estimated value is also compared with threshold (according to ISO or non-standard threshold).
Image quality is determined using a specially trained VisionLabs neural network. If necessary, you can determine the illumination of the face in the image using an algorithm that performs an estimation in accordance with the ICAO standard (see the section "Illumination uniformity according to ICAO standard).
Examples are presented in the images below. Good quality images are shown on the right.
The most important image quality parameters for face recognition are darkness, light, and blur, so you should select them carefully.
The illumination and secularity parameters enable you to select images of better visual quality. Face recognition is not greatly affected by uneven illumination or glares.
Resources where the estimation is performed:
-
Estimation name — "estimate_quality".
-
Estimation name — "policies" > "detect_policy" > "estimate_quality".
-
Estimation name — "policies" > "detect_policy" > "estimate_quality".
-
Estimation name — "estimate_quality".
Image quality estimation using image checking tools:
-
"/iso" and "/detector" (see sections "7.2.7 Subject and scene lighting", "7.3.2 Contrast and saturation", "7.3.3 Focus and depth of field", "7.2.8 Hot spots and specular reflections", "7.2.12 Lighting artefacts", "7.2.7 Subject and scene lighting" and "7.2.12 Lighting artefacts" of the standard ISO/IEC 19794-5:2011)
Checks names — "illumination_quality", "specularity_quality", "blurriness_quality", "dark_quality", "light_quality".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "illumination_quality", "specularity_quality", "blurriness_quality", "dark_quality", "light_quality".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"illumination_quality" > "threshold" | [0...0.3] |
"specularity_quality" > "threshold" | [0...0.3] |
"blurriness_quality" > "threshold" | [0.61...1] |
"dark_quality" > "threshold" | [0.5...1] |
"light_quality" > "threshold" | [0.57...1] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Illumination uniformity according to ICAO standard#
It is possible to estimate the uniformity of illumination according to the requirements specified in ICAO standard.
The estimated value is also compared with the threshold.
In accordance with the standard, it is recommended to use color images. When using black and white images, the results may be unexpected.
The uniformity of illumination according to the ICAO standard is only available using image checking tool:
-
Check name — "illumination_uniformity".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "illumination_uniformity".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"illumination_uniformity" > "threshold" | [0.5...1] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Image background#
Background lightness#
Note: It is not possible to use a sample as an input image for these estimations.
This estimation determines background lightness, where:
- [0...0.1] — The background is black.
- [0.1...0.3] — The background is dark.
- [0.3...0.97] — The background is light.
- [0.97...1] — The background is white.
Resources where the estimation is performed:
Background lightness estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "B.2.9 Backgrounds" of the standard ISO/IEC 19794-5:2011)
Check name — "background_lightness".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "background_lightness".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"background_lightness" > "threshold" | [0.2...1] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Background uniformity#
Note: It is not possible to use a sample as an input image for these estimations.
This estimation determines the degree of background uniformity, where:
- "0" — The background is not uniform.
- "1" — The background is uniform.
Resources where the estimation is performed:
Background uniformity estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "B.2.9 Backgrounds" of the standard ISO/IEC 19794-5:2011)
Check name — "background_uniformity".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "background_uniformity".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"background_uniformity" > "threshold" | [0.5...1] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Dynamic range according to ICAO standard#
This estimation determines the ratio of brightness of the lightest and darkest areas of the face according to the requirements specified in ICAO standard.
The estimated value is also compared with the threshold.
Dynamic range estimation is only available using image checking tool — "detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources.
Check name — "dynamic_range".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"dynamic_range" > "threshold" | [0.5...1] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Natural light#
This estimation determines whether there is natural lighting on the face, where:
- "0" — The lighting is unnatural.
- "1" — The lighting is natural.
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
Image requirements:
For correct checking results, the following requirements should be met.
The table below shows the requirement for mask:
Parameter | Required value |
---|---|
"predominant_mask" | missing |
The table below shows the requirement for image quality:
Parameter | Required range |
---|---|
"blurriness" | [0.5...1] |
The table below shows the requirement for glasses:
Parameter | Required values |
---|---|
"glasses" | "no_glasses" or "eyeglasses" |
Resources where the estimation is performed:
Natural light estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "7.3.4 Unnatural colour" of the standard ISO/IEC 19794-5:2011)
Check name — "natural_light".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "natural_light".
Acceptable value for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"natural_light" > "threshold" | "1" |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Face color type#
This estimation determines the most likely type of face color from the following:
- "color"
- "grayscale"
- "infrared" (near infrared range)
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
Resources where the estimation is performed:
Face color type estimation is only available using image checking tools:
-
"/iso" and "/detector" (see section "7.4.4 Use of near infra-red cameras" of the standard ISO/IEC 19794-5:2011)
Check name — "face_color_type".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "face_color_type".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"face_color_type" > "threshold" | ["color"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Head pose#
This estimation determines the head pose. The pose is defined by three parameters:
- pitch angle
- roll angle
- yaw angle
The angle values are specified in the range from "-180" to "180".
A positive pitch angle indicates an upward tilt of the head, while a negative angle indicates a downward tilt of the head.
A positive roll angle indicates a rightward deviation of the head, while a negative angle indicates a leftward deviation of the head.
A positive yaw angle indicates a rightward rotation of the head, while a negative angle indicates a leftward rotation of the head.
In the "/iso" and "detect_policy" > "face_quality" resources, the estimated value is also compared with threshold (according to ISO or non-standard threshold).
In all the resources listed below, with the exception of "/iso", the possibility to filtered out by head pose is availiable.
In the resources "/detector", "/handlers", "/verifiers" and "/sdk", the threshold value is specified from "0" to "180". The default value is "180", which means that the head in the image can be rotated to any angle from "-180" to "180". When you set any other value (for example, "30"), all the detections with the etimated angle less than or equal to "-30" and greater than or equal to "30" will be filtered.
For the "face_quality" field of the "/handlers" and "/verifiers" resources, the minimum and maximum thresholds are set in separate fields.
Resources where the estimation is performed:
-
Estimation name — "estimate_head_pose".
-
Estimation name — "policies" > "detect_policy" > "estimate_head_pose".
-
Estimation name — "policies" > "detect_policy" > "estimate_head_pose".
-
Estimation name — "estimate_head_pose".
Below are the recommended thresholds for estimation in the "/detector", "/handlers", "/verifiers" and "/sdk" resources.
Recommended maximum thresholds:
The table below shows the recommended maximum thresholds head pose for estimation in cooperative mode:
Parameter | Recommended maximum thresholds |
---|---|
"roll_threshold" | 30 |
"pitch_threshold" | 15 |
"yaw_threshold" | 15 |
The table below shows the recommended maximum thresholds head pose for estimation in non-cooperative mode:
Parameter | Recommended maximum thresholds |
---|---|
"roll_threshold" | 30 |
"pitch_threshold" | 30 |
"yaw_threshold" | 30 |
Head pose estimation using image checking tools:
-
"/iso" and "/detector" (see section "7.2.2 Pose" of the standard ISO/IEC 19794-5:2011)
Checks names — "head_roll", "head_pitch", "head_yaw".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "head_roll", "head_pitch", "head_yaw".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"head_yaw" > "threshold" | [-5...5] |
"head_pitch" > "threshold" | [-5...-5] |
"head_roll" > "threshold" | [-8...-8] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Vertical and horizontal face position#
Note: It is not possible to use a sample as an input image for these estimations.
These estimations determine the position of the center point vertically and horizontally relative to the image.
The estimated values are also compared with thresholds (according to ISO or non-standard thresholds).
Resources where the estimation is performed:
Vertical and horizontal face position estimation is available only using image checking tools:
-
"/iso" and "/detector" (see sections "8.3.2 Horizontally centred face" and "8.3.3 Vertical position of the face" of the standard ISO/IEC 19794-5:2011)
Checks names — "head_horizontal_center", "head_vertical_center".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "head_horizontal_center", "head_vertical_center".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"head_horizontal_center" > "threshold" | [0.45...0.55] |
"head_vertical_center" > "threshold" | [0.3...0.5] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Head width and height#
Note: It is not possible to use a sample as an input image for these estimations.
This estimations determine the vertical and horizontal head size relative to the size of the image. The estimated values are also compared with thresholds (according to ISO or non-standard thresholds).
Resources where the estimation is performed:
Head width and height estimation is available only using image checking tools:
-
"/iso" and "/detector" (see sections "8.3.4 Width of head" and "8.3.5 Length of head" of the standard ISO/IEC 19794-5:2011)
Checks names — "head_width", "head_height".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "head_width", "head_height".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"head_width" > "threshold" | [0.5...0.75] |
"head_height" > "threshold" | [0.6...0.9] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Face width and height#
Note: It is not possible to use a sample as an input image for these estimations.
These estimations determine the face width and height in pixels. The estimated values are also compared with the specified thresholds.
Resources where the estimation is performed:
Face width and height estimations are only available using image checking tool:
-
Checks names — "face_width", "face_height".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "face_width", "face_height".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"face_width" > "threshold" | [180...1920] |
"face_height" > "threshold" | [180...inf] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Indents from image edges#
Note: It is not possible to use a sample as an input image for these estimations.
This estimation is determined as the indent from the image border (left, right, top, bottom) to the face border (left, right, top, bottom) in pixels. The estimated values are also compared with the specified thresholds.
Resources where the estimation is performed:
Indents from image edges estimation is only available using image checking tool:
-
Checks names — "indent_upper", "indent_lower", "indent_right", "indent_left".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "indent_upper", "indent_lower", "indent_right", "indent_left".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"indent_upper" > "threshold" | [20...inf] |
"indent_lower" > "threshold" | [20...inf] |
"indent_right" > "threshold" | [20...inf] |
"indent_left" > "threshold" | [20...inf] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Mask#
This estimation determines a probabilistic score for each of the following parameters in the range [0..1]:
- "medical_mask" — The probability that the person wears a medical mask.
- "missing" — The probability that the person does not wear a mask.
- "occluded" — The probability that the face is occluded by an object other than a medical mask.
The predominant state of the mask is also determined.
In addition to the three main states, the following additional properties are defined:
- "correct" — There is mask on the face, the mouth and nose are occluded by the mask.
- "mouth" — There is mask on the face and occludes only the mouth.
- "clear" — There is no mask on the face.
- "chin" — There is mask on the face and is located under the chin, without occluding the area from eyes to mouth.
- "partially" — The face is partially occluded, but not by medical mask and not by mask with full face occlusion.
- "full" — There is mask on the face, in which the face is completely occluded, for example, balaclava/ski mask.
Each main mask state corresponds to one of two additional properties. The most likely additional property is returned in the "predominant_occlusion" field:
- The "medical_mask" state corresponds to the "correct" or "mouth" property.
- The "missing" state corresponds to the "clear" or "chin" property.
- The "occluded" state corresponds to the "partially" or "full" property.
For each of the properties, a probabilistic score is returned in the range [0..1].
Additional mask properties are not stored in the database and are not filtered by them.
Resources where the estimation is performed:
-
Estimation name — "estimate_mask".
-
Estimation name — "policies" > "detect_policy" > "estimate_mask".
-
Estimation name — "policies" > "detect_policy" > "estimate_mask".
-
Estimation name — "estimate_mask".
Emotions#
This estimation determines a probabilistic score for each of the following parameters in the range [0..1]:
- "anger"
- "disgust"
- "fear"
- "happiness"
- "neutral"
- "sadness"
- "surprise"
The predominant emotion is also estimated.
Emotions can be saved in the event object during the event creation.
Resources where the estimation is performed:
-
Estimation name — "estimate_emotions".
-
Estimation name — "policies" > "detect_policy" > "estimate_emotions".
-
Estimation name — "policies" > "detect_policy" > "estimate_emotions".
-
Estimation name — "estimate_emotions".
Shoulders position#
This estimation determines the most predominant state of the shoulder position from the following:
- "non-parallel"
- "parallel"
- "hidden"
Resources where the estimation is performed:
Shoulders position estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "7.2.5 Shoulders" of the standard ISO/IEC 19794-5:2011)
Check name — "shoulders_position".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "shoulders_position".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"shoulders_position" > "threshold" | ["parallel"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Headwear#
This estimation determines the most predominant type of headwear from the following:
- "none
- "baseball_cap"
- "beanie"
- "peaked_cap"
- "shawl"
- "hat_with_ear_flaps"
- "helmet"
- "hood"
- "hat"
- "other"
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
It is possible to specify several types of headwear as acceptable.
Image requirements:
The table below shows the requirements for head hose:
Parameter | Required range |
---|---|
"pitch" | [-20...20] |
"roll" | [-10...10] |
"yaw" | [-25...25] |
The table below shows the requirement for face width:
Parameter | Required range |
---|---|
face_width | > 80 |
Resources where the estimation is performed:
Headwear estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "B.2.7 Head coverings" of the standard ISO/IEC 19794-5:2011)
Check name — "headwear_type".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "headwear_type".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"headwear_type" > "threshold" | ["none"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Radial distortion (Fisheye effect)#
This estimation determines the presence of the Fisheye effect, where:
- "0" — The Fisheye effect is not present in the image.
- "1" — The Fisheye effect is present in the image.
The estimated value is also compared with threshold (according to ISO or non-standard threshold).
Image requirements:
For correct checking results, the following requirements should be met.
The table below shows the requirements for head position:
Parameter | Required range |
---|---|
pitch | [-20...20] |
roll | [-10...10] |
yaw | [-25...25] |
The table below shows the requirement for face width:
Parameter | Required range |
---|---|
face_width | > 80 |
Resources where the estimation is performed:
Fisheye effect estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "7.3.6 Radial distortion of the camera lens" of the standard ISO/IEC 19794-5:2011)
Check name — "radial_distortion".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "radial_distortion".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable value |
---|---|
"radial_distortion" > "threshold" | "1" |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Face occlusion#
The estimator returns information occlusion of the whole face or its parts.
This estimator returns information about:
- Overall face zone
- Forehead zone
- Nose zone
- Eyes zone (for both eyes)
- Mouth zone
- Lower face zone
Occlusion thresholds
The threshold for the acceptable percentage of the whole face or each of its zones can be specified in the Configurator service. The thresholds can also be set during the handler creation.
In addition, there is the threshold for the hair occlusion estimation. The threshold specifies the acceptable percantage of face occluded by hair. All the hair occlusion above the specified threshold is considered in the overall face occlusion and occlusion of each zone.
- If the hair threshold is set to 0, hair of any length is considered as an occlusion.
- If the hair threshold is set to 1, the hair occlusion is not considered.
The threshoulds can be changed according to your business cases.
Note Moustache and beard are never considered as a face occlusion.
Filtration
Filtration is available. You can specify list of zones that should not be occluded.
The detection is filtered if the occlusion of any of the specified zones exceeds the threshold.
Resources, where the estimation is performed
-
Estimation name — "estimate_face_occlusion".
-
Estimation name — "estimate_face_occlusion".
Image parameters#
Image format#
This estimation determines the correspondence of the incoming image format to one of the following formats — "JPEG", "JPEG2000", "PNG". The estimated value is also compared with threshold (according to ISO or non-standard threshold).
Resources where the estimation is performed:
Image format estimation is available only using image checking tools:
-
"/iso" and "/detector" (see section "7.5 Format requirements for the Frontal Image Type" of the standard ISO/IEC 19794-5:2011)
Check name — "image_format".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "image_format".
Acceptable values for passing check:
The image passes the check if it falls within the acceptable value of the corresponding threshold:
Parameter | Acceptable values |
---|---|
"image_format" > "threshold" | ["JPEG", "JPEG2000", "PNG"] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Image size#
This estimation determines the image size in bytes. The estimated value is also compared with the specified threshold.
Resources where the estimation is performed:
Image size estimation is only available using image checking tool:
-
Check name — "image_size".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "image_size".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"image_size" > "threshold" | [5120...2097152] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Image width and height#
These estimations determine the image width and height in pixels. The estimated values are also compared with thresholds (according to ISO or non-standard thresholds).
Resources where the estimation is performed:
Image width and height estimations are available only using image checking tools:
-
"/iso" and "/detector" (see sections "5.7.4 Width" and "5.7.5 Height" of the standard ISO/IEC 19794-5:2011)
Checks names — "image_height", "image_width".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Checks names — "image_height", "image_width".
Acceptable ranges for passing checks:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable ranges |
---|---|
"image_height" > "threshold" | [180...1920] |
"image_width" > "threshold" | [180...1080] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
Aspect ratio#
This estimation determines the proportional ratio of the image width to height. The estimated value is also compared with the specified threshold.
Resources where the estimation is performed:
Aspect ratio estimation is only available using image checking tool:
-
Check name — "aspect_ratio".
-
"detect_policy" > "face_quality" group of checks in the "/handlers" and "/verifiers" resources
Check name — "aspect_ratio".
Acceptable range for passing check:
The image passes the check if it falls within the acceptable range of the corresponding threshold:
Parameter | Acceptable range |
---|---|
"aspect_ratio" > "threshold" | [0.74...0.8] |
For the "face_quality" image checking tool, the acceptable value can be set manually, but this will mean a deviation from the standard.
EXIF metadata#
When the EXIF estimation is enabled, all the tags of the image are parsed and their names and values are outputted. Please refer to JEITA CP-3451 EXIF specification for details. The following data is returned:
- make
- model
- orientation
- latitude
- longitude
- artist
- software
- dateTime
- digitalZoomRatio
- flash
- uid
Resources where the estimation is performed:
-
Estimation name — "extract_exif".
-
Estimation name — "policies" > "detect_policy" > "extract_exif".
-
Estimation name — "policies" > "detect_policy" > "extract_exif".
-
Estimation name — "use_exif_info".
Body parameters#
Gender and age by body image#
This estimation determines the basic attributes (gender and age) of a person in the body image.
Estimating gender and age from a body image is less accurate than from a face.
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "body_attributes" > "estimate_basic_attributes".
-
Estimation name — "estimate_body_basic_attributes".
Upper body#
This estimation determines the parameters of the following elements of clothing on the upper body:
- "headwear". Type: absent, present, undefined; color: white, black, other, undefined.
- "sleeve". Type: short, long, undefined.
- "upper_clothing". Color: orange, purple, red, white, yellow, pink, brown, beige, khaki, multicolored, undefined.
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "body_attributes" > "estimate_upper_body".
-
Estimation name — "estimate_upper_body".
Lower body#
This estimation determines the parameters of the following elements of clothing on the lower body:
- "lower_garment". Type: trousers, shorts, skirt, undefined; color: orange, purple, red, white, yellow, pink, brown, beige, khaki, multicolored, undefined.
- "shoes". Color: white, black, other, undefined.
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "body_attributes" > "estimate_lower_body".
-
Estimation name — "estimate_lower_body".
Backpack#
This estimation determines the presence of a backpack on the body:
- "0" — There is no backpack on the body image.
- "1" — There is a backpack on the body image.
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "body_attributes" > "estimate_accessories".
-
Estimation name — "estimate_accessories".
Liveness#
Note: The ability to perform such estimation is adjusted by a special parameter in the LUNA PLATFORM 5 license key.
The Liveness technology enables LUNA PLATFORM to detect presentation attacks. To estimate Liveness in the LUNA PLATFORM, the estimator LUNA SDK OneShotLiveness is used.
As a result of the Liveness estimation, one of the following results may be returned:
- "0" — The person is not real.
- "1" — The person is real.
- "2" — Result of the check is unknown.
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "estimate_liveness".
-
Estimation name — "policies" > "detect_policy" > "estimate_liveness".
-
Estimation name — "estimate_liveness".
See "OneShotLiveness description" for more information about Liveness.
Deepfake#
Note: The ability to perform such estimation is adjusted by a special parameter in the LUNA PLATFORM 5 license key.
Note: It is not possible to use a sample as an input image for these estimation.
This estimation enables you to detect facial substitution using DeepFake technology in photo images.
A Deepfake evaluation may return the following results:
- "prediction" = "fake" — The person is not real.
- "prediction" = "real" — The person is real.
- "score" = [0...1] — The degree of reliability of the estimation.
If necessary, you can configure the handler to filter events by the expected result of the Deepfake estimation ("fake" or "real"). To do this, in the request body to create a handler, specify the "deepfake_states" parameter with the value "0" (filter by the value "fake") or "1" (filter by the value "real"). For example, if the "deepfake_states" parameter is "1" (filter by "real"), and the estimator has determined that the result is "fake", then an empty "events" field will be returned in the event, and the results of the check will fall into the "filtered_detections" field.
In the requests "create handler" and "create verifier", it is possible to set the "real_threshold" and the operating "mode". The "sdk" request will use the default values of these parameters (see below) without the possibility of explicit indication.
Threshold
Using the "real_threshold", you can set a value in the range [0...1], below which the system will assume that the person is not real.
For example, if the threshold value is "real_threshold" = "0.5", and the degree of reliability of the estimation is "score" = "0.4", then the result "prediction" = "fake" will be output in the response body. If the threshold value is "real_threshold" = "0.6", and the degree of reliability of the estimation is "score" = "0.7", then the result "prediction" = "real" will be given in the response body.
The default value is "0.5".
Mode
The operating modes are described in the table below.
Operating mode |
Description |
---|---|
"mode" = "1" |
Simplified operation mode. |
"mode" = "2" (default) |
Operation mode using an additional neural network model. When using this mode, a preliminary estimation of the face in the source image will be additionally performed. If the result of the preliminary check determined that the face is fake, then the result "score" = "0" and "prediction" = "fake" will be returned in the response body. |
Image requirements
For correct verification results, the following requirements must be met.
The table below shows the requirements for head pose:
Parameter | Required range |
---|---|
"pitch" | [-20...20] |
"yaw" | [-30...30] |
The table below shows the requirement for face width:
Parameter | Required range |
---|---|
"face_width" | > 150 |
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "estimate_deepfake".
-
Estimation name — "policies" > "detect_policy" > "estimate_deepfake".
-
Estimation name — "estimate_deepfake".
People count#
Note: The ability to perform such estimation is adjusted by a special parameter in the LUNA PLATFORM 5 license key.
This estimate determines the number of people in the image.
Resources where the estimation is performed:
-
Estimation name — "policies" > "detect_policy" > "estimate_people_count".
-
Estimation name — "estimate_people_count".
If necessary, together with estimating the number of people, you can get the X and Y coordinates of people using the "people_count_coordinates" parameter in the "/handlers" resource and the "people_coordinates" parameter in the "/sdk" resource.