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).
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:
- Safe city
- Remote identification
- Cooperative recognition in Access Control Systems (ACS)
- Non-cooperative recognition in Access Control Systems (ACS)
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.
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
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%
Recommended configuration files
- 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 file | Time to detect one frame (ms) | Detection accuracy (0 to 1) |
safety_city_q1.xml | 1350 | 0.74 |
safety_city_q2.xml | 370 | 0.685 |
Remote identification
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%
Recommended configuration files
- 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 file | Time to detect one frame (ms) | Detection accuracy (0 to 1) |
remote_identification_q1.xml | 1040 | 0.977 |
remote_identification_q2.xml | 75 | 0.97 |
Cooperative recognition in ACS
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%
Recommended configuration files
- 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 file | Time to detect one frame (ms) | Detection accuracy (0 to 1) |
access_control_system_one_face_q1.xml | 70 | 0.996 |
access_control_system_one_face_q2.xml | 69 | 0.986 |
access_control_system_one_face_q3.xml | 95 | 0.98 |
Non-cooperative recognition in ACS
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%
Recommended configuration files
- 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 file | Time to detect one frame (ms) | Detection accuracy (0 to 1) |
access_control_system_several_faces_q1.xml | 969 | 0.946 |
access_control_system_several_faces_q2.xml | 95 | 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
The same recognizer configuration file must be specified for all services that use the recognizer object.