Skip to content

LUNA PLATFORM v.5.22.0#

Changes

  • The SDK was updated to version 5.6.0.

  • The "face_quality" group of checks was added to the "detect_policy" policy of the "/handlers" and "/verifiers" resources of the API and Handlers services, which enables you to configure the check of incoming images and faces in these images in accordance with predefined conditions. With "face_quality" group of checks it is possible to check face images in accordance with the requirements of ISO/IEC 19794-5:2011 or similar.

    Available checks

    The following face and image checks are available:

    • Head pose angles: "head_yaw", "head_pitch", "head_roll"
    • Gaze angles: "gaze_yaw", "gaze_pitch"
    • Presence of smile: "mouth_smiling"
    • Presence of occluded mouth: "mouth_occluded"
    • Presence of opened mouth: "mouth_open"
    • Type of smile that is determined when there is smile (no smile, closed-mouth smile, open-mouth smile): "smile_properties"
    • Eye status for each eye (opened, closed, occluded): "left_eye", "right_eye"
    • Red eye effect: "red_eyes"
    • Distance between eye centers: "eye_distance"
    • Eyebrows state (neutral, raised, squinting, frowning): "eyebrows_state"
    • Naturalness of lighting: "natural_light"
    • Presence of radial distortion (Fisheye effect): "radial_distortion"
    • Highlights and specularity: "specularity_quality"
    • Blurriness: "blurriness_quality"
    • Contrast and saturation (insufficient or too large exposure): "dark_quality", "light_quality"
    • Type of color by face (color, grayscale, infrared (Near infrared range)): "face_color_type"
    • Position of face center point on the image horizontally and vertically: "head_horizontal_center", "head_vertical_center"
    • Vertical and horizontal head size relative to size of image: "head_width", "head_height"
    • Face width and height: "face_width", "face_height"
    • Indents of face from image edges: "indent_upper", "intend_lower", "intend_left", "intend_right"
    • Image size in bytes: "image_size"
    • Image height and width: "image_width", "image_height"
    • Image aspect ratio: "aspect_ratio"
    • Image format (JPG, JPG2000, PNG): "image_format"
    • Headwear (none, baseball cap, beanie, peaked cap, shawl, hat with ear flaps, helmet, hood, hat, other): "headwear_type"

    For a description of each check, see the "Face and image parameters" section in the administrator manual.

    Enabling face_quality checks

    Checks are performed for each face detection found in the photo. The results of the checks listed above are not aggregated. It is possible to enable and disable image processing with multiple faces using the "multiface_policy" option. To enable checks, you should specify the value "1" in the "estimate" field for "face_quality". Image check is disabled by default. To enable filtering based on the checks results, you should specify the value "1" in the "filter" field. If one or more checks for face detection fail, no further policies for that detection will be performed. In this case, the results obtained in accordance with the "detect_policy" policy for this detection will be returned in the response. Parameters of the "face_quality" check group:

       "face_quality": {
          "estimate": 0,
          "filter": 0,
          "checks": {}
          }
    

    The checks to be performed and their parameters are listed in the "checks" group.

    Each check can be enabled or disabled. This enables you to specify the set of checks required for a particular scenario.

    To disable checking, set "estimate": 0 for a particular check. By default, all checks are enabled and will be performed when "face_quality" is enabled.

    Depending on the type of check, the user can specify the minimum and maximum values of the threshold, or allowable values for this check. For this, the "threshold" field is used. An example of setting check parameters:

       "checks": {
          "image_format": {
              "estimate": 1,
              "threshold": [
                  "JPEG",
                  "JPEG2000",
                  "PNG"
              ]
          },
          "illumination_quality": {
              "estimate": 1,
              "threshold": {
                  "min": 0.3,
                  "max": 0.9
          }},
      }
    

    Returned response

    The name of the check ("name"), the defined value ("object_value"), the set thresholds/allowed values ("threshold_value") and the final verdict ("result") are output in the response to the request "handlers/{handler_id}/events" in "events" > "detection" > "samples" > "face" > "detection" > "face_quality".

    Based on the results of all checks, a general verdict is displayed ("status" field), which is equal to "1" if all checks pass successfully and equal to "0" if at least one check fails.

    The results of the checks are not stored in the database, they are returned only in the response.

    An example of a system response for two checks:

       "face_quality": {
          "status": 1,
          "checks": [
              {
                  "name": "image_format",
                  "object_value": "PNG",
                  "threshold_value": [
                      "JPEG",
                      "JPEG2000",
                      "PNG"
                  ],
                  "result": 1
              },
              {
                  "name": "illumination_quality",
                  "object_value": 0.5182177424430847,
                  "threshold_value": {
                      "min": 0.3,
                      "max": 1.0
                  },
                  "result": 1
              }]
    

    Licensing

    This functionality is licensed separately, the ISO estimation option should be specified in the key. The "face_quality" parameter group and the "/iso" resource use the same license.

    If the license does not have the ISO estimation option, then "face_quality" > "estimate": 1 will return the error "License problem: 'ISO license feature is disabled.'".

    Difference between checks for "face_quality" and "/iso" resource

    The set of checks for "face_quality" and the "/iso" resource is different. See the "Image check" section in the administrator manual. The section provides a comparison table of available checks.

  • The following new checks was added to the "/iso" resource:

    • Eyebrows state ("eyebrows_state")
    • Headwear ("headwear_type")
    • Type of smile that is determined when there is smile ("smile_properties")
    • Naturalness of lighting ("natural_light")
    • Presence of radial distortion (Fisheye effect) ("radial_distortion")
    • Red eye effect ("red_eyes")
    • Type of color by face ("face_color_type")

    These checks are performed in accordance with the default threshold values set in the system. If you want to change the threshold or disable the check, you should use the "face_quality" group of checks in the "/handlers" or "/verifiers" resources.

    For a description of each of the checks, see the "Face and image parameters" section in the administrator manual.

  • The internal estimation mechanism for the Handlers service was updated, which significantly reduced the consumption of resources (CPU, GPU, RAM) for performing calculations. You can now run more instances of the Handlers service, or increase the number of workers per instance at the same capacity, resulting in faster query execution.

    In some cases, this change may cause performance degradation with the old Handlers configuration. In this case, you need to increase the number of instances or Handlers workers to improve performance.

  • Matching by a large list (more than 100,000 faces) was accelerated with a large number of simultaneously performed requests. The speed of performing of such requests in some cases is increased up to two times.

  • In the examples of the OpenAPI specification, the "exif" field is expanded with orientation information for all resources that support exif extraction.