Skip to main content
Version: 3.20.2

Benchmark results

Facial recognition

Facial recognition accuracy (NIST Standards)

The table below shows Face SDK quality metrics based on the National Institute of Standards and Technology (NIST) Standards:

NIST Face Recognition Vendor Test (FRVT) 1:1Score
VISA* True Acceptance Rate (@FAR 1E-6)99.70%
Mugshot* True Acceptance Rate (@FAR 1E-5)99.76%
Border* True Acceptance Rate (@FAR: 1E-6)99.75%
Click here to see the description of image types from the table*
  • VISA – Full Frontal image type. The images have a size of 252x300 pixels. The mean interocular distance (IOD) is 69 pixels.
  • Mugshot – Full Frontal image type. The images are of variable sizes. The mean IOD is 113 pixels.
  • Border – The images are taken with a camera, which is oriented by an attendant toward a cooperating subject. This is done under time constraints so there are role, pitch and yaw angle variations. Background illumination is sometimes strong, so the face is under-exposed. There is some perspective distortion due to close range images. Some faces are partially cropped.

Facial recognition accuracy on extended LFW dataset with Wild images

For this test we used extended LFW dataset (LFW dataset + our internal dataset). The set of mismatched pairs was increased and LFW errors were fixed to get accurate measurements at low FAR.

ROC-curve

FAR9.300 TAR (%)12.30 TAR (%)12.50 TAR (%)12.100 TAR (%)12.1000 TAR (%)
1e-4 98.7 98.9 99.2 99.4 99.5
1e-5 98.0 98.1 98.7 99.1 99.4
1e-6 96.6 96.7 97.9 98.5 99.3
1e-7 93.2 94.3 96.3 97.5 98.9
1e-8 32.2 88.0 89.5 94.1 97.7
1e-9 10.5 82.0 80.9 84.9 93.9

img.png

Recognition errors for the most relevant methods (12vX)

Template extraction speed using CPU and GPU

Desktop

MethodGPU (NVIDIA GTX 1070)CPU (Core i5-9400 4.0GHz)
12v100047 ms442 ms
9v30010 ms292 ms
12v1008 ms49 ms
12v506 ms21 ms
12v305 ms12 ms

Mobile

MethodCPU (Qualcomm Snapdragon 845)
12v10007968ms
9v3001960ms
12v100801ms
12v50270ms
12v30150ms

Note: The speed test was performed using Google Pixel 3.

Facial recognition speed for CPU

Recognition methodTemplate generation (ms)Accelerated Matching 1:N (ms)Matching 1:1 (ms)
N = 104 N = 106 N = 107
6.7 40 (45**) 0,25 12,1 126 0,04
7.7 170 (180**) 0,25 12,1 126 0,04
8.7 20 (20**) 0,25 12,1 126 0,04
9.30 55 0,18 12,0 117 0,04
9.300 402 0,18 12,0 117 0,04
9.1000 1092 0,18 12,0 117 0,04
9.30mask 38 0,18 12,0 117 0,04
9.300mask 263 0,18 12,0 117 0,04
9.1000mask 469 0,18 12,0 117 0,04
10.30 44 0,18 12,0 117 0,04
10.100 71 0,18 12,0 117 0,04
10.1000 1061 0,18 12,0 117 0,04
11.1000 1396 0,22 15,0 151 0,04
12.30 23*** 0,20 15,0 120 0,04
12.50 37*** 0,20 15,0 120 0,04
12.100 79*** 0,20 15,0 120 0.04
12.1000 647*** 0,40 20,0 170 0,04

* – characteristics specified in this table are given for a single-core CPU.
** – template extraction time when processing_less_memory_consumption was set to true in the FacerecService.createRecognizer call for creating a Recognizer.
*** – template extraction time using the AVX2 instruction set (see Facial Recognition).

Note:

  • Accelerated search time is given for k=1. As for larger values of k, the time will increase up to the search time without acceleration.
  • Accelerated search is implemented only for the recognition methods 6.5, 6.6, 6.7, 7.3, 7.6, 7.7, 8.6, 8.7, 9.30, 9.300, 9.1000, 10v30, 10v100, 10v1000, 11v1000, 12.30, 12.50 , 12.100, 12.1000.
  • To achieve this speed, the templates in the index must be located in order of creation (by using the Recognizer.processing or Recognizer.loadTemplate method).
  • To achieve higher speed, use GPU (see GPU Usage).

Memory characteristics

Recognition methodSerialized template size (Bytes)Template size in RAM (Bytes)Memory consumption* (MB)
6.7 536 636 105 (85**)
7.7 536 636 195 (163**)
8.7 536 636 52 (40**)
9.30 280 380 155
9.300 280 380 210
9.1000 280 380 290
10.30 280 380 160
10.100 280 380 180
10.1000 280 380 270
11.1000 296 396 480
12.30 230 330 160
12.50 261 361 170
12.100 337 437 180
12.1000 400 500 440

* – the amount of memory consumed doesn't depend on the number of the Recognizer objects created by this method
** – memory consumption when processing_less_memory_consumption was set to true in the FacerecService.createRecognizer call for Recognizer creation

Face detection

Face detection speed

Configuration fileCapture time (ms)
640x480, 1 face640x480, 4 faces1280x720, 1 face1280x720, 4 faces1920x1080, 1 face1920x1080, 4 faces
common_capturer_blf_fda_auto.xml9-43 17-52 17-50 17-55 33-69 25-57
common_capturer_blf_fda_back.xml43 52 50 55 67 57
common_capturer_blf_fda_front.xml9 17 17 17 33 25
common_capturer_refa_fda_a.xml1001 996 777 792 864 858
common_capturer_uld_fda.xml (min_size=150)19 28 24 29 36 30
common_capturer_uld_fda.xml (min_size=90)88 97 93 100 109 102
common_capturer_uld_fda.xml (min_size=50)377 385 375 385 402 397
safety_city_q1.xml99 107 100 112 110 117
safety_city_q2.xml376 383 379 385 399 393
remote_identification_q1.xml1000 1001 773 791 863 858
remote_identification_q2.xml44 51 50 55 66 56
access_control_system_one_face_q1.xml44 52 50 56 66 56
access_control_system_one_face_q2.xml43 52 50 55 67 55
access_control_system_one_face_q3.xml88 96 94 98 107 102
access_control_system_several_faces_q1.xml1004 1007 773 788 863 858
access_control_system_several_faces_q2.xml87 95 92 98 106 101
common_capturer4_fda.xml23 35 49 108 94 143
common_capturer4_fda_with_angles.xml481 697 414 768 312 410
common_capturer4_mesh.xml27 60 57 142 102 175
common_capturer4_mesh_with_angles.xml492 732 424 788 321 443
common_capturer4_fda_singleface.xml31 - 60 - 112 -
common_capturer4_mesh_singleface.xml34 - 68 - 120 -

Note: Actual capture time may vary depending on the image content.

Capturer configuration files

Click here to see the list of the capturer configuration files
FileDetectorSet of pointsAngles (roll/yaw/pitch)Description and use case
common_capturer4_fda.xmllbffda[-30;30][-60;60][-60;60]Frontal face detector.
common_capturer4_fda_with_angles.xmllbffda[-90;90][-60;60][-60;60]Frontal face detector. Adapted for a wide range of head rotation angles.
common_capturer4_fda_with_angles_noise.xmllbffda[-90;90][-60;60][-60;60]Frontal face detector. Adapted for a wide range of head rotation angles. Suitable for images with high noise level.
common_capturer4_fda_singleface.xmllbffda[-30;30][-60;60][-60;60]Only one frontal face is detected.
common_capturer4_fda_singleface_with_angles.xmllbffda[-90;90][-75;75][-60;60]Only one frontal face is detected. The detector is adapted for a wide range of head rotation angles.
common_capturer4_fda_singleface_with_angles_noise.xmllbffda[-90;90][-75;75][-60;60]Only one frontal face is detected. The detector is adapted for a wide range of head rotation angles. Suitable for images with high noise level.
common_capturer4_lbf.xmllbfdoublelbf[-30;30][-60;60][-60;60]Frontal face detector.
common_capturer4_lbf_singleface.xmllbfdoublelbf[-30;30][-60;60][-60;60]Only one frontal face is detected.
common_capturer4_mesh.xmllbfmesh[-30;30][-60;60][-60;60]Frontal face detector that allows you to get a 3D face mask.
common_capturer4_mesh_with_angles.xmllbfmesh[-90;90][-60;60][-60;60]Frontal face detector adapted for a wide range of head rotation angles that allows you to get a 3D face mask.
common_capturer4_mesh_with_angles_noise.xmllbfmesh[-90;90][-60;60][-60;60]Frontal face detector adapted for a wide range of head rotation angles and suitable for images with high noise level. The detector allows you to get a 3D face mask.
common_capturer4_mesh_singleface.xmllbfmesh[-30;30][-60;60][-60;60]Only one frontal face is detected. The detector allows you to get a 3D face mask.
common_capturer4_mesh_singleface_with_angles.xmllbfmesh[-90;90][-75;75][-60;60]Only one frontal face is detected. The detector is adapted for a wide range of head rotation angles and allows you to get a 3D face mask.
common_capturer4_mesh_singleface_with_angles_noise.xmllbfmesh[-90;90][-75;75][-60;60]Only one frontal face is detected. The detector is adapted for a wide range of head rotation angles, suitable for images with high noise level and allows you to get a 3D face mask.
common_capturer_blf_fda_front.xmlblffda[-70;70][-90;90][-70;70]Detection of large face images (the face should take up most of the frame size). Suitable for detection of masked faces.
common_capturer_blf_fda_back.xmlblffda[-70;70][-90;90][-70;70]Detection of several faces or small face images. Suitable for detection of masked faces.
common_capturer_blf_fda_auto.xmlblffda[-70;70][-90;90][-70;70]Detection of large and small face images (the parameters `resolution_width` and `min_face_size` should be specified in the configuration file). Suitable for detection of masked faces.
common_capturer_refa_fda_a.xmlrefafda[-70;70][-90;90][-70;70]Face detector recommended for use in expert systems. The detector provides face detection with the largest coverage of rotation angles and maximum quality (including masked faces).
common_capturer_uld_fda.xml.xmluldfda[-70;70][-90;90][-70;70]Detection of large and small face images. Suitable for detection of masked faces.
common_video_capturer_fda.xmllbffda[-30;30][-60;60][-60;60]Frontal face video tracker (RGB only).
common_video_capturer_lbf.xmllbfsinglelbf[-30;30][-60;60][-60;60]Frontal face video tracker (RGB only).
common_video_capturer_mesh.xmllbfmesh[-30;30][-60;60][-60;60]Frontal face video tracker (RGB only) that allows you to get a 3D face mask.
fda_tracker_capturer.xmllbffda[-30;30][-60;60][-60;60]Frontal face video tracker.
fda_tracker_capturer.w.xmllbffda[-30;30][-60;60][-60;60]Frontal face video tracker that can be used in case of insufficient lighting. Note that false detections can occur a bit more often in this case.
fda_tracker_capturer_mesh.xmllbffda[-30;30][-60;60][-60;60]Frontal face video tracker that allows you to get a 3D face mask.
fda_tracker_capturer_fake_detector.xmllbffda[-30;30][-60;60][-60;60]Detection speed is higher because only fitter is used (no detector). Suitable only if a face takes up most of the image size.
fda_tracker_capturer_blf.xmlblffda[-30;30][-60;60][-60;60]Frontal face video tracker. Suitable for detection of masked faces.
fda_tracker_capturer_refa_a.xmlrefafda[-70;70][-90;90][-70;70]Frontal face video tracker. Recommended for use in expert systems. The tracker provides face detection with the largest coverage of rotation angles and maximum quality (including masked faces).
fda_tracker_capturer_uld_fda.xml.xmluldfda[-70;70][-90;90][-70;70]Frontal face video tracker that can be used to detect faces of different size. Suitable for detection of masked faces.
manual_capturer_fda.xmllbffda[-30;30][-60;60][-60;60]Eye points should be manually specified. The remaining points are calculated based on the eye points.
manual_capturer_mesh.xmllbfmesh[-30;30][-60;60][-60;60]Eye points should be manually specified. The remaining points are calculated based on the eye points that allows you to get a 3D face mask.
video_worker_fdatracker_refa_fda.xmlrefafda[-70;70][-90;90][-70;70]Face detector recommended for use in expert systems. The detector provides face detection with the largest coverage of rotation angles and maximum quality (including masked faces).

Processing Blocks

Face detection speed

Modification Version Face SDK version Default parameters Detection time CPU (ms)*
640x4801280x7201920x1080
uld13.19precision_level=1, confidence_threshold=0.7, coarse_confidence_threshold=0.37 7 8
precision_level=2, confidence_threshold=0.7, coarse_confidence_threshold=0.337 38 40
precision_level=3, confidence_threshold=0.7, coarse_confidence_threshold=0.3194 187 197
ssyv13.19confidence_threshold=0.5, iou_threshold=0.5151 150 152
246 46 47
396 94 96
43.201517 1506 1502
ssyv_light13.2411 11 12
blf_front13.19confidence_threshold=0.67, iou_threshold=0.53 5 9
blf_back111 13 18
* - CPU Intel Xeon E5-2683 v4 (single-core)

Body and object detection speed

Type Modification Version Face SDK version Detection time CPU (ms)*
640x4801280x7201920x1080
HUMAN_BODY_DETECTORssyv13.19238 236 237
OBJECT_DETECTORssyx13.192095 2031 2036
* - CPU Intel Xeon E5-2683 v4 (single-core)

Face estimation performance

The speed test was performed using CPU Intel Xeon E5-2683 v4 (single-core)

Modification Version Face SDK version Detection time CPU (ms)* Detection time GPU (ms)** Accuracy, (average error in years)
light13.19 1 2 5.5
2 1 2 4.9
heavy13.19 1 2 4.7
2 1 2 3.5
* - CPU Intel Xeon E5-2683 v4 (single-core)
** - GPU (NVIDIA GTX 10xx series)

Liveness Estimator performance

Modification Version Detection time CPU (ms)*BPCERAPCER
2d_additional_check1 410.190.27

Quality Assessment Estimator performance

Modification Version Face SDK version Detection time CPU (ms)* Detection time GPU (ms)** The worst samples by total_score, discarded, (%)FNMRFPR
assessment13.16595710.00971.98E-07
50.00872.00E-07
100.00812.11E-07
23.24626110.00971.98E-07
50.00872.00E-07
100.00812.11E-07
estimation13.1995510.00791.93E-07
50.00621.93E-07
100.00591.97E-07
* - CPU Intel Xeon E5-2683 v4 (single-core)
** - GPU (NVIDIA GTX 10xx series)

Face Fitter speed

Modification Version Face SDK version Detection time CPU (ms)* Detection time GPU (ms)**
fda13.2333
tddfa_faster13.1921
tddfa13.1962
mesh13.1963
* - CPU Intel Xeon E5-2683 v4 (single-core)
** - GPU (NVIDIA GTX 10xx series)

Human Pose Estimator speed

Modification Version Face SDK version Detection time CPU (ms)* Detection time GPU (ms)**
heavy13.161936
* - CPU Intel Xeon E5-2683 v4 (single-core)
** - GPU (NVIDIA GTX 10xx series)

Estimation of facial attributes

Facial attributesAccuracy
Gender95%
Emotion80%
Age3.95 y/o (mean Average Error)
No mask (face without a mask)99%
Has mask (face with a mask)97%