Skip to content

Alternative Face Detectors (Deprecated in v8)

richardsimongreen edited this page Jul 27, 2023 · 2 revisions

Alternative Face Detectors

--ALTERNATIVE FACE DETECTORS HAVE BEEN REMOVED AS OF VERSION 9.0--

The following information is now kept purely historically.


By default, the Biometrics Android SDK leverages the Android built-in face detector. This is a simple face detector and is ubiquitous in Android phones, however it is not regularly updated. iProov also supports BlazeFace and ML Kit face detectors. The table below compares face detectors.

Note: Alternative Face Detectors, Blazeface and ML Kit, described here are Deprecated.

Face Detector Size Impact Accuracy Speed Angles Supported Lighting Conditions Supported Pose Control
CLASSIC 700 KB OK Fastest Limited Limited Unsupported
BLAZEFACE 3.7 MB Better Slower Better Better Unsupported
ML_KIT 21.3 MB Best Slowest Best Best Supported

Note: The total size impacts were approximated by measuring the APK size increases of a simple app when including only the minimum required iProov AAR dependencies:

  • CLASSIC used only the core iproov AAR dependency.
  • BLAZEFACE used both iproov and iproov-blazeface.
  • ML_KIT used both iproov and iproov-mlkit.

BlazeFace Support

BlazeFace is a relatively lightweight and performant face detector. BlazeFace provides increased accuracy when compared with the built-in face detector, however it requires the inclusion of TensorFlow Lite with the SDK along with the necessary model, and adds approximately 3.0 MB to the download size of your app. In iProov benchmarks, it also ran approximately 50% slower than the built-in "classic" face detector on very low-end devices.

To install BlazeFace, add the iProov module to your build.gradle file:

dependencies {
   implementation('com.iproov.sdk:iproov-blazeface:<VERSION>')
}

ML Kit Support

ML Kit face detector provides more advanced features such as facial landmarks, which allows iProov to offer detection of the user's pose. To use pose control features, add the iproov-mlkit module to your build.gradle file:

dependencies {
   implementation('com.iproov.sdk:iproov-mlkit:<VERSION>')
}

Note: Adding ML Kit support increases your app size (it includes various machine learning models used for face detection) and may result in poorer performance on low-end devices, as ML Kit is more computationally intensive. For details see Google Developer.