Skip to main content

Settings

There are different types of settings on MegaMatcher ID Server. This section will talk about biometric operation settings. There are two ways to set biometric operation settings:

  • on Management Web - this is the preferred way and advised on production environment
  • from Web Demo - used for debug purposes while determining most suitable parameters for users application. Can be used when Allow settings override is enabled

Capturing

KeyRangeDefault valueNotes
Disallow multiple faces[false; true]trueFails the operation if multiple faces are detected
Timeout[0; x]0Determines operation timeout in milliseconds
QualityThreshold[0; 100]50Face quality threshold
DetectionConfidenceThreshold[0; 100]50Determines if the detection of a face is confident enough
FramesToSkip[0; max_int]100Skips first X frames before starting detection
StrictQualityImageSize[0; max_int]921600Minimal frame pixel count to start detection. E.g. 480×640 would be 307200
StrictQualityTimeout[0; max_int]30000Indicates how many milliseconds to wait for the image to reach StrictQualityImageSize

Timeout

Determines the time during which operation as to be finished. If 0 is specified - time is unlimited. If the timeout is reached, operation ends in Timeout status.

Note: When this setting is changed, it's advised to also update the timeouts in the configuration script.

FramesToSkip

Due to encoding some first frames of the stream are poor quality. This setting automatically skips X first frames in order to start face extraction and liveness detection with good frames. Here are some examples how first frames look like until server side encoder gets enough frames to produce good quality images.

Fames to skip Fames to skip Fames to skip Fames to skip Fames to skip Fames to skip Fames to skip Fames to skip

Verification

KeyRangeDefault valueNotes
MatchingThreshold[36; X]48Minimum score when Verify functions determines that compared faces are a match

Matching threshold

Biometric features matching algorithm provides similarity score as a result. The higher is score, the higher is probability that features collections are obtained from the same person.

The higher the threshold value, the more similar feature collections will have to be to yield positive result during matching.

Matching threshold - the minimum score that verification and identification functions accept to assume that the compared faces belong to the same person.

Matching threshold is linked to false acceptance rate (FAR, different subjects erroneously accepted as of the same) of matching algorithm. The higher is threshold, the lower is FAR and higher FRR (false rejection rate, same subjects erroneously accepted as different) and vice a versa.

Matching threshold for MegaMatcher ID should be determined from this table:

FAR (false acceptance rate)Matching threshold (score)
100%0
10%12
1%24
0.1%36
0.01%48
0.001%60
0.0001%72

or using this formula:

Threshold = -12 * log10(FAR); where FAR is NOT percentage value (e.g. 0.1% FAR is 0.001)

Matching threshold/FAR should be selected according to the system's development requirements and taking into account mentioned identification false acceptance accumulation.

Liveness

KeyRangeDefault valueNotes
Liveness mode-PassiveDetermines what liveness algorithm to use
LivenessCustomActionSequencecustom string"" (empty string)Action sequence to be used in Custom liveness. If left empty, random actions are used
LivenessThreshold[0; 100]50Threshold which determines if liveness prediction is confident enough
PassiveLivenessSensitivityThreshold[0; 100]30Threshold which regulates the positioning restrictions. The higher the threshold, the more centerted the face with respect to image size will have to be. This is also used for speed and less for accuracy.
PassiveLivenessQualityThreshold[0; 100]40Threshold which determines if image quality is suitable for liveness. Used for extraction speed up, not for accuracy.
LivenessBlinkTimeout[1000; 30000]2000Maximum time in ms when user has to blink when asked

Liveness mode

Liveness mode determines which Liveness checking algorithm to use. Currently these liveness modes are supported:

Passive

PassiveNoBlink liveness mode relies on LivenessThreshold. Checks whether the user is live or not in a passive way. User is only required to position his face according to the provided system status.

Liveness Liveness

Passive liveness mode relies on LivenessThreshold. The same as Passive mode, but when the user manages to pass the liveness check, the system waits for some random ammount of time and then asks the user to blink once in a set time window. If the blink requirement is not satisfied, liveness fails.

Liveness Liveness Liveness Liveness

Simple

Easier version of Passive. Can be used where there is quite a low chance that system users will use hard spoofing attacks.

Active

Active liveness mode does not use LivenessThreshold. User has to perform specified head turning and blink when asked.

Liveness Liveness Liveness Liveness Liveness Liveness

Custom

Custom liveness mode does not use LivenessThreshold. User has to perform specified head turning and blink when asked. LivenessCustomActionSequence can be set to use pre-defined liveness actions. If not set or left empty - random actions are chosen by the liveness algorithm.

Liveness Liveness Liveness Liveness Liveness Liveness Liveness Liveness

LivenessCustomActionSequence

When Custom liveness mode is set, pre-defined liveness actions can be used. It is possible to combine a liveness action sequence from these actions:

ActionNotes
blinkUser is asked to blink
turnLeftUser is asked to turn his head left
turnRightUser is asked to turn his head right
turnUpUser is asked to turn his head up
turnDownUser is asked to turn his head down
turnWithTargetsUser is asked to turn his head to a specified angle (as on Active liveness mode)
keepStillUser is asked to keep still for a short period of time (up to 1 second). This may act as a pause between liveness actions

When constructing liveness action sequence, actions must be separated by commas ,. For example, action sequence for turning head left, right and blinking would look like this:

turnLeft,turnRight,blink

ICAO

OptionRangeDefault valueGlossary
Check ICAO[false; true]falseEnables or disables ICAO compliance checking during image capturing
IcaoRemoveBackground[false; true]falseEnables or disables ICAO token image background removal
IcaoBackgroundColor[0; 255]209Background color of removed background if ICAO token image background removal is enabled, e.g. default is 209 which is #D1D1D1
TokenFaceBackgroundPercentage[0; 100]60The ratio of the face to the token image

Check ICAO

Enables or disables ICAO compliance checking. If enabled and capture is successful Token image is returned on Enroll and CheckLiveness operations.

On Verify operation Check ICAO can only be used with Liveness combination. Verify operation does not return a Token image even in Check ICAO is enabled.

To achieve ICAO compliant image, user is instructed to position its face according ICAO standard. If the face does not met ICAO requirements operation will not end the capture until Timeout is reached.

TokenFaceBackgroundPercentage

Regulates the ratio of the face to the token image. Its default value is set to 60, which represents the ideal image ratio in accordance with token image standards. When the value is set lower than 60, the crop radius increases, causing the face to appear smaller in the final token image. Conversely, values higher than 60 decrease the crop radius, making the face appear larger relative to the final token image.

Combining Liveness and ICAO

Check ICAO can be used in combination with face liveness checking. When both settings are enabled, face liveness is calculated during capture and at the end user is asked to position its face to get ICAO compliant image, if such was not retrieved during face liveness calculations.

ICAO Thresholds

KeyRangeDefault valueValue to turn offAlways shows a warning
IcaoSharpnessThreshold[0; 100]500100
IcaoBackgroundUniformityThreshold[0; 100]00100
IcaoGrayscaleDensityThreshold[0; 100]500100
IcaoSaturationThreshold[0; 100]500100
IcaoExpressionThreshold[0; 100]541000
IcaoDarkGlassesThreshold[0; 100]271000
IcaoBlinkThreshold[0; 100]100100
IcaoMouthOpenThreshold[0; 100]251000
IcaoLookingAwayThreshold[0; 100]501000
IcaoRedEyeThreshold[0; 100]501000
IcaoFaceDarknessThreshold[0; 100]501000
IcaoUnnaturalSkinToneThreshold[0; 100]200100
IcaoWashedOutThreshold[0; 100]501000
IcaoPixelationThreshold[0; 100]501000
IcaoSkinReflectionThreshold[0; 100]601000
IcaoGlassesReflectionThreshold[0; 100]501000
IcaoHeavyFrameThreshold[0; 100]471000
IcaoOcclusionThreshold[0; 100]71000
IcaoResolutionThreshold[0; 100]700100
IcaoMotionBlurThreshold[0; 100]101000
IcaoCompressionArtifactsThreshold[0; 100]101000
IcaoOverexposureThreshold[0; 100]251000
IcaoUnderexposureThreshold[0; 100]201000
IcaoGlassesThreshold[0; 100]551000
IcaoHatThreshold[0; 100]211000

Icao thresholds are advised to change only on supervision. Possibly some thresholds are not relevant in customer use cases, therefore can be turned off. If any threshold seems to be "too hard" they can be set closer to the "Value to turn off" until smooth capture can be made. Note: setting thresholds in this manner reduces the captured ICAO image quality, but increases application usability for the end user as it is easier to capture a photo. Setting the thresholds closer to the "Always shows a warning" value forces the user to take a better quality image, yet makes the process less smooth and comfortable.

How ICAO warnings look graphically can be found here.

Icao warnings can also be ignored by using the IcaoWarningsFilter parameter. It's suggested to only use this to ignore the ICAO warnings which do not have a threshold. For example, to ignore position warnings, you can set IcaoWarningsFilter to TooNorth,TooSouth,TooEast,TooWest.

ISO 30103-7 certification

Liveness algorithm for Mobile and PC is ISO 30103-7 certified. By default, the MegaMatcher ID product does not use the certified parameter set. Lower values are used that are still reliant for spoof prevention, yet make the capturing process easier for the user. To use ISO 30103-7 certified parameter set some thresholds need to be changed:

PC values may also used for MegaMatcher ID Web service, yet it is strongly advised to stick to default configuration. Due to WebRTC protocol limitations it is hard to achieve good user experiance with high thresholds.