Appendix A. Specifications#
Runtime performance for mobile environment#
Face detection performance depends on input image parameters such as resolution and bit depth as well as the size of the detected face. The iOS platform uses mobilenet by default.
Input data characteristics:
- Image resolution: 640x480px;
- Image format: 24 BPP RGB;
IOS#
Performance measurements for the ARM architecture of iPhone X are presented in the tables below. The measured values represent averages of at least 60 experiments. Mobilenet is used by default. The auto setting for the number of threads indicates that the maximum number of available threads will be used. To enable this mode, set the numThreads parameter to -1
in runtime.conf. This configuration corresponds to the number of available processor cores. We strongly recommend that you follow this recommendation. Otherwise, performance may be significantly reduced. You can find descriptions of the corresponding settings in "Configuration Guide - Runtime settings".
The tables below show performance metrics for iPhone 11 (128 GB).
Matcher performance#
Type | CPU threads | Batch Size | Percentile 95 (matches/sec) | RAM Memory (Mb) |
---|---|---|---|---|
59 | 1 | 1 | 6503020 | 361 |
60 | 1 | 1 | 6588440 | 361 |
Extractor performance#
Type | CPU threads | Batch Size | Percentile 95 (ms) | RAM Memory (Mb) |
---|---|---|---|---|
59 | 1 | 1 | 45.66 | 144 |
59 | auto | 1 | 46.85 | 156 |
59 | auto | 4 | 48.15 | 180 |
59 | auto | 8 | 50.33 | 255 |
60 | 1 | 1 | 46.12 | 294 |
60 | auto | 1 | 46.15 | 317 |
60 | auto | 4 | 45.4 | 339 |
60 | auto | 8 | 45.54 | 361 |
Detector performance#
Type | CPU threads | Batch Size | Percentile 95 (ms) | RAM Memory (Mb) |
---|---|---|---|---|
Detector | 1 | 1 | 22.54 | 91 |
Detector | auto | 1 | 22.58 | 96 |
Detector | auto | 4 | 23.27 | 118 |
Detector | auto | 8 | 23.26 | 144 |
Estimations performance with batch interface#
Type | CPU threads | Batch Size | Percentile 95 (ms) | RAM Memory (Mb) |
---|---|---|---|---|
AGS | 1 | 1 | 0.5 | 39 |
AGS | auto | 1 | 0.49 | 43 |
AGS | auto | 4 | 0.48 | 48 |
AGS | auto | 8 | 0.47 | 55 |
BestShotQuality | 1 | 1 | 0.94 | 55 |
BestShotQuality | auto | 1 | 0.94 | 60 |
BestShotQuality | auto | 4 | 0.93 | 68 |
BestShotQuality | auto | 8 | 0.92 | 76 |
Eyes | 1 | 1 | 1.84 | 144 |
Eyes | auto | 1 | 1.83 | 144 |
Eyes | auto | 4 | 1.83 | 144 |
Eyes | auto | 8 | 1.79 | 144 |
Glasses | 1 | 1 | 2.54 | 361 |
Glasses | auto | 1 | 2.45 | 361 |
Glasses | auto | 4 | 2.42 | 361 |
Glasses | auto | 8 | 2.38 | 361 |
HeadPose | 1 | 1 | 0.54 | 361 |
HeadPose | auto | 1 | 0.54 | 361 |
HeadPose | auto | 4 | 0.54 | 361 |
HeadPose | auto | 8 | 0.52 | 361 |
MedicalMask | 1 | 1 | 14.74 | 361 |
MedicalMask | auto | 1 | 14.73 | 361 |
MedicalMask | auto | 4 | 14.18 | 361 |
MedicalMask | auto | 8 | 14.0 | 361 |
Quality | 1 | 1 | 2.8 | 361 |
Quality | auto | 1 | 3.03 | 361 |
Quality | auto | 4 | 2.97 | 361 |
Quality | auto | 8 | 2.9 | 361 |
Warper | 1 | 1 | 1.05 | 361 |
Warper | auto | 1 | 1.07 | 361 |
Warper | auto | 4 | 1.02 | 361 |
Warper | auto | 8 | 1.2 | 361 |
LivenessOneShotRGBEstimator | 1 | 1 | 167.81 | 361 |
LivenessOneShotRGBEstimator | auto | 1 | 168.15 | 361 |
LivenessOneShotRGBEstimator | auto | 4 | 169.31 | 363 |
LivenessOneShotRGBEstimator | auto | 8 | 170.31 | 559 |
Mouth | 1 | 1 | 18.98 | 575 |
Mouth | auto | 1 | 18.98 | 575 |
Mouth | auto | 4 | 18.44 | 575 |
Mouth | auto | 8 | 18.39 | 580 |
FaceOcclusion | 1 | 1 | 16.21 | 580 |
FaceOcclusion | auto | 1 | 16.29 | 580 |
FaceOcclusion | auto | 4 | 15.82 | 580 |
FaceOcclusion | auto | 8 | 15.86 | 580 |
Descriptor size#
The table below shows size of serialized descriptors to estimate memory requirements.
"Descriptor size"
Descriptor version | Data size (bytes) | Metadata size (bytes) | Total size |
---|---|---|---|
CNN 59 (60) | 512 | 8 | 520 |
Metadata includes signature and version information that may be omitted during serialization if the NoSignature flag is specified.
When estimating individual descriptor size in memory or serialization storage requirements with default options, consider using values from the "Total size" column.
When estimating memory requirements for descriptor batches, use values from the "Data size" column instead, since a descriptor batch does not duplicate metadata per descriptor and thus is more memory-efficient.
These numbers are for approximate computation only, since they do not include overhead like memory alignment for accelerated SIMD processing and the like.
Feature matrix#
Mobile versions come only in the complete edition.
The table below shows FaceEngine features supported by the complete edition for mobile platforms.
"Feature matrix"
Facility | Module | Complete |
---|---|---|
Core | Yes | |
Face detection & alignment | Face detector | Yes |
Parameter estimation | BestShotQuality estimation | Yes |
Color estimation | Yes | |
Eye estimation | Yes | |
Head pose estimation | Yes | |
AGS estimation | Yes | |
LivenessOneShotRGB estimation | Yes | |
Medical Mask estimation | Yes | |
Quality estimation | Yes | |
Mouth estimation | Yes | |
Glasses estimation | Yes | |
Face descriptors | Descriptor extraction | Yes |
Descriptor matching | Yes | |
Descriptor batching | Yes | |
Descriptor search acceleration | Yes |
See file "doc/FeatureMapMobile.htm" for more details.