Skip to content

Neural networks used in LUNA ID#

In LUNA ID, neural networks provide efficient and accurate processing of faces in images and video streams. The neural networks are stored in .plan files.

The table below shows all .plan files used in LUNA ID and functionality that the files cover. Some of them are required for using LUNA ID in your app.

Note, that using the .plan files will add extra size to your app. To learn how to exclude extra .plan files, see Reducing your app size by excluding .plan files.

.plan file Size Required Feature name Description
ags_angle_estimation_flwr_arm.plan
ags_angle_estimation_flwr_cpu.plan
(in LUNA ID for Android only)
1.6 MB
1.6 MB
Yes
Yes
Best shot quality estimation Evaluates image quality to choose the best image for further processing.
The BestShotQuality estimator consists of two components - AGS (Approximate Garbage Store) and Head Pose.

For details, see:
  • Android: Best shot quality estimation
  • iOS: Best shot quality estimation
  • ags_v3_arm.plan
    ags_v3_cpu.plan
    (in LUNA ID for Android only)
    635 KB
    608 KB
    Yes
    Yes
    AGS estimation Evaluates the source image score for further image processing.
    cnn52m_arm.plan
    cnn52m_cpu.plan
    (in LUNA ID for Android only)
    cnn59m_arm.plan
    cnn59m_cpu.plan
    (in LUNA ID for Android only)
    cnn60m_arm.plan
    (in LUNA ID for iOS only)
    13 MB
    13 MB

    24 MB
    24 MB

    19 MB
    No
    No

    No
    No

    No
    Descriptor generation from an image Stores a compact set of packed properties as well as some helper parameters used to extract these properties from the source image.

    For details, see:
  • Android: Descriptor
  • iOS: Descriptor
  • eye_status_estimation_flwr_arm.plan
    eye_status_estimation_flwr_cpu.plan
    (in LUNA ID for Android only)
    810 KB
    810 KB
    Yes
    Yes
    Eye state Determines the eye state: open, closed, occluded.

    For details, see:
  • Android: Eyes estimation
  • iOS: Eyes estimation
  • eyes_estimation_flwr8_arm.plan
    eyes_estimation_flwr8_cpu.plan
    (in LUNA ID for Android only)
    963 KB
    963 KB
    Yes
    Yes
    Eye state estimation Determines the following eye state and keypoints:
  • Eye state: open, closed, occluded.
  • Precise eye iris location as an array of landmarks.
  • Precise eyelid location as an array of landmarks.


  • For details, see:
  • Android: Eyes estimation
  • iOS: Eyes estimation
  • FaceDet_v2_first_arm.plan
    FaceDet_v2_first_cpu.plan
    (in LUNA ID for Android only)
    FaceDet_v2_second_arm.plan
    FaceDet_v2_second_cpu.plan
    (in LUNA ID for Android only)
    FaceDet_v2_third_arm.plan
    FaceDet_v2_third_cpu.plan
    (in LUNA ID for Android only)
    963 KB
    9.4 KB

    9.4 KB
    107 KB

    1.6 MB
    1.6 MB
    Yes
    Yes

    Yes
    Yes

    Yes
    Yes
    Face detection Detects a face in an image and shows a rectangular area around the detected face.

    The neural networks should be launched consequently.

    For details, see:
  • Android: Detection facility
  • iOS: Detection facility
  • glasses_estimation_v2_cpu.plan
    (in LUNA ID for Android only)
    glasses_estimation_v2_arm.plan
    735 KB

    734 KB
    No

    No
    Glasses estimation Detects glasses on the face in the source image. You can then define whether images with occluded eyes can be considered best shots.

    For details, see:
  • Android: Glasses estimation
  • iOS: Glasses estimation
  • Getting the best shot with faces with occluded eyes
  • headpose_v3_arm.plan
    (in LUNA ID for Android only)
    headpose_v3_cpu.plan
    (in LUNA ID for Android only)
    628 KB

    628 KB
    Yes

    Yes
    Head pose estimation Determines a person’s head rotation angles in 3D space, that is pitch, yaw, and roll.
    mask_clf_v3_arm.plan
    mask_clf_v3_cpu.plan
    (in LUNA ID for Android only)
    22 MB
    22 MB
    No
    No
    Medical mask estimation Detects a medical mask on the face in the source image. You can then define whether images with occluded faces can be considered best shots.

    For details, see:
  • Android: Medical mask estimation functionality
  • iOS: Medical mask estimation functionality
  • Getting the best shot with an occluded face
  • model_subjective_quality_v1_arm.plan
    model_subjective_quality_v1_cpu.plan
    (in LUNA ID for Android only)
    model_subjective_quality_v2_arm.plan
    model_subjective_quality_v2_cpu.plan
    (in LUNA ID for Android only)
    263 KB
    263 KB

    1.0 MB
    1.0 MB
    Yes
    Yes

    Yes
    Yes
    Image quality estimation Determines an image quality by the following criteria:
  • The image is blurred.
  • The image is underexposed, that is, too dark.
  • The image is overexposed, that is, too light.
  • The face in the image is illuminated unevenly and there is a great difference between dark and light regions.
  • The image contains flares on face, that is, too specular.


  • For details, see:
  • Android: Image quality estimation
  • iOS: Image quality estimation
  • oneshot_rgb_liveness_v7_model_3_arm.plan
    oneshot_rgb_liveness_v7_model_4_arm.plan
    oneshot_rgb_liveness_v7_model_3_cpu.plan
    (in LUNA ID for Android only)
    oneshot_rgb_liveness_v7_model_4_cpu.plan
    (in LUNA ID for Android only)
    8.4 MB
    8.4 MB
    8.3 MB

    8.3 MB
    No
    No
    No

    No
    Offline OneShotLiveness estimation Determines whether a person’s face is real or fake, for example, a photo or printed image.

    For details, see:
  • Android: LivenessOneShotRGB Estimation
  • iOS: LivenessOneShotRGB Estimation
  • Configuration options of the supported features are stored in the faceengine.conf file. The file is located in data/faceengine.conf in the current working directory.

    Warning: We do not recommend that you change any configuration settings from default ones as these settings affect performance and output results of your application.

    For more information about the settings stored in the faceengine.conf file, see: