Skip to main content
Version: 2.4.0 (latest)

Face recognition settings

Image API services use a set of objects and processing blocks that implement the functionality of Face SDK - a set of code libraries for development of face recognition solutions:

  • capturer: face detection
  • recognizer: face matching
  • block: processing block:
    • AGE_ESTIMATOR: processing block used to determine person's age
    • EMOTION_ESTIMATOR: processing block used to determine person's emotions
    • GENDER_ESTIMATOR: processing block used to determine person's gender
    • LIVENESS_ESTIMATOR: processing block used to estimate liveness
    • MASK_ESTIMATOR: processing block used to detect a medical mask
    • QUALITY_ASSESSMENT_ESTIMATOR: processing block used to estimate image quality

You can configure object and/or processing block in the ./cfg/image-api.values.yaml file in the specific service block in the configs attribute.

Object fields:

  • name: name of Face SDK configuration file
  • params: parameters to be overridden in this configuration

Processing block fields:

  • unit_type - name of processing block, for example, AGE_ESTIMATOR
  • modification - modification of processing block
  • version - version of processing block

For more information about objects and processing blocks, see Face SDK.

Face detection settings

The field processing.services[*].configs[*].capturer.name indicates the name of the configuration file of the selected face detector. When installing Image API, the default is common_capturer_uld_fda.xml (ULD detector configuration file used to detect faces of different sizes, including masked faces).

note

The same detector configuration file must be specified for all services that use the capturer object.

This configuration file can be replaced with another one, specially configured for one of the following use cases:

ATTENTION

Customizing for specific use cases is available only for services with face detection: face-detector-face-fitter, face-detector-liveness-estimator, face-detector-template-extractor.

For each use case, we've created a set of specific configuration files. The filename indicates the use case and the level of detection accuracy.

FOR EXAMPLE

The access_control_system_several_faces_q1.xml configuration file is tuned for the non-cooperative recognition in ACS and delivers remarkable q1 detection accuracy.

Configuration files marked with q1 provide the highest detection accuracy, while q2-marked files ensure the fastest face detection. You can explore benchmark results for all available configuration files on the separate use case pages.

Safe city

img.png

Application

Missing person search, tracking down criminals, and collecting statistics. Applied on city streets, public spaces, entertainment and shopping centers. Top priority is to never miss a wanted individual, even if it may lead to false identifications.

Use case requirements

  • Detecting the maximum number of faces in the frame
  • Dense flow of people in the frame (~1 person/m²)
  • People in the frame not facing the camera or slowing down for identification
  • Human speed in the captured frame up to 5 km/h (individuals moving at a standard walking pace)
  • Frames captured under changing lighting and weather conditions, with camera lenses subject to dirt or obstruction
  • Head rotation angle in relation to the camera lens not exceeding 40° horizontally and 20° vertically
  • Image type for detection and identification is "WILD" (according to NIST), which corresponds to QAA totalscore >= 40%
  • safety_city_q1.xml
  • safety_city_q2.xml

How to configure

1. Open the ./cfg/image-api.values.yaml file in Image API distribution, find the capturer configuration object (path to the object: processing.services.service name.configs.capturer) and enter the same values for the fields of the capturer object in each detection service: face-detector-face-fitter, face-detector-liveness-estimator, face -detector-template-extractor.

Example:

configs:
capturer:
name: safety_city_q2.xml // name of the Face SDK configuration file

2. After editing the file, save it and update Image API in the cluster using the command:

./cli.sh image-api install

Benchmark results

Capturer configuration fileTime to detect one frame (ms)Detection accuracy (0 to 1)
safety_city_q1.xml13500.74
safety_city_q2.xml3700.685

Remote identification

img.png

Application

Remote selfie-based identification and authentication using the front camera of a mobile phone in banking systems, exchanges, municipal portals, etc. Top priority is to ensure accurate identification and prevent any errors.

Use case requirements

  • One face in the frame, minimal likelihood of side views
  • Images of faces are of significant size (up to 80% of the frame area)
  • High noise tolerance in photos due to poor lighting or low-quality cameras
  • Image type for detection and identification is "BORDER" or "MUGSHOT" (according to NIST), which corresponds to QAA totalscore >= 51%
  • remote_identification_q1.xml
  • remote_identification_q2.xml

How to configure

1. Open the ./cfg/image-api.values.yaml file in Image API distribution, find the capturer configuration object (path to the object: processing.services.service name.configs.capturer) and enter the same values for the fields of the capturer object in each detection service: face-detector-face-fitter, face-detector-liveness-estimator, face -detector-template-extractor.

Example:

configs:
capturer:
name: remote_identification_q1.xml // name of the Face SDK configuration file

2. After editing the file, save it and update Image API in the cluster using the command:

./cli.sh image-api install

Benchmark results

Capturer configuration fileTime to detect one frame (ms)Detection accuracy (0 to 1)
remote_identification_q1.xml10400.977
remote_identification_q2.xml750.97

Cooperative recognition in ACS

img.png

Application

Time and attendance systems and corporate access control systems utilizing biometric terminals or cameras, primarily deployed in well-lit environments. Top priority is ensuring accurate identification without any errors.

Use case requirements

  • Frames taken by a camera installed in a room with stable lighting
  • One face in the frame, ensuring direct eye contact with the camera
  • Image type for detection and identification is "BORDER" (according to NIST), which corresponds to QAA totalscore >= 51%
  • access_control_system_one_face_q1.xml
  • access_control_system_one_face_q2.xml
  • access_control_system_one_face_q3.xml

How to configure

1. Open the ./cfg/image-api.values.yaml file in Image API distribution, find the capturer configuration object (path to the object: processing.services.service name.configs.capturer) and enter the same values for the fields of the capturer object in each detection service: face-detector-face-fitter, face-detector-liveness-estimator, face -detector-template-extractor.

Example:

configs:
capturer:
name: access_control_system_one_face_q2.xml // name of the Face SDK configuration file

2. After editing the file, save it and update Image API in the cluster using the command:

./cli.sh image-api install

Benchmark results

Capturer configuration fileTime to detect one frame (ms)Detection accuracy (0 to 1)
access_control_system_one_face_q1.xml700.996
access_control_system_one_face_q2.xml690.986
access_control_system_one_face_q3.xml950.98

Non-cooperative recognition in ACS

img.png

Application

Non-corporate access control systems (such face recognition payment in transportation and visitor tracking in gyms) implemented using cameras without the need for specialized biometric terminals. Our main focus is on fast and accurate detection and identification, ensuring smooth and efficient entry without queues or delays. Top priority is to eliminate identification errors and provide a seamless experience for all users.

Use case requirements

  • Face detection from frames taken within a crowd, even from side angles
  • Frames captured in an indoor environment with consistent lighting
  • Up to 5-8 faces in the frame. Only the face closest to the camera is identified
  • Image type for detection and identification is "WILD" (according to NIST), which corresponds to QAA totalscore >= 40%
  • access_control_system_several_faces_q1.xml
  • access_control_system_several_faces_q2.xml

How to configure

1. Open the ./cfg/image-api.values.yaml file in Image API distribution, find the capturer configuration object (path to the object: processing.services.service name.configs.capturer) and enter the same values for the fields of the capturer object in each detection service: face-detector-face-fitter, face-detector-liveness-estimator, face -detector-template-extractor.

Example:

configs:
capturer:
name: access_control_system_several_faces_q1.xml // name of the Face SDK configuration file

2. After editing the file, save it and update Image API in the cluster using the command:

./cli.sh image-api install

Benchmark results

Capturer configuration fileTime to detect one frame (ms)Detection accuracy (0 to 1)
access_control_system_several_faces_q1.xml9690.946
access_control_system_several_faces_q2.xml95 0.936

Face matching settings

The field processing.services[*].configs[*].recognizer.name specifies the name of the recognizer configuration file. Each recognizer uses a specific recognition method. In total, Face SDK provides several recognition methods that differ in characteristics of recognition accuracy and operating time.

For Image API, you can specify the following recognizer configuration files:

  • method11v1000_recognizer.xml
  • method12v30_recognizer.xml
  • method12v50_recognizer.xml
  • method12v100_recognizer.xml
  • method12v1000_recognizer.xml
note

The same recognizer configuration file must be specified for all services that use the recognizer object.