SFE Toolkit — Introduction
Documentation version
This documentation describes SFE Toolkit v4.2.1, the current release. For documentation of older versions (currently v3.2.2), see the API Reference page → Previous versions.
Package
Get the SDK: SFE Toolkit packages are distributed through the Innovatrics Customer Portal (one package per target OS / CPU architecture / accelerator) and are available on request via sales@innovatrics.com.
Each of the SFE Toolkit packages consists of:
- root directory includes:
- this readme file,
- changelog,
- EULA,
docdirectory includes documentation in HTML and PDF format,libdirectory includes shared libraries compiled for one target CPU,solverdirectory includes a set of solvers compiled to be accelerated using a specific neural network accelerator,includedirectory includes header files with documentation of the C API,bindirectory includes:- pre-built example applications demonstrating the usage and integration of the SFE Toolkit libraries,
- pre-built benchmark applications for benchmarking the SFE Toolkit libraries,
- License Manager application compiled for the target CPU,
exampledirectory includes sources of example applications,benchmarksdirectory includes sources of benchmark applications,assetsdirectory includes images for example and benchmark applications.
Overview
SmartFace Embedded Toolkit (SFE Toolkit) is a modular, portable and easy-to-integrate SDK that can be used in any facial recognition use case on various platforms.
Key Features
SFE Toolkit currently supports the following features.
Face Detection
SmartFace Embedded can detect faces of various sizes, orientations, facial hair types or ethnicities.
Face Quality Evaluation
SFE Toolkit provides functionality to measure the quality of detected faces to improve the quality of enrollment and accuracy of face recognition.
SFE Toolkit supports the following face attributes:
- Head pose deviation (yaw, pitch, roll)
- Brightness in the facial region
- Contrast in the facial region
- Sharpness in the facial region
- Uniform Lighting / Shadow in the facial region
- ICAO cropping of the facial region.
Face Recognition
- Face verification (1:1)
- Face identification (1:N)
- Face liveness evaluation
Iris Recognition
- Iris detection
- Iris verification (1:1)
- Iris identification (1:N)
Palm Recognition
- Palm detection
- Palm verification (1:1)
- Palm identification (1:N)
- Palm attributes
Platform support
SFE Toolkit supports the following platforms:
- Windows x86_64,
- Linux x86_64,
- Android ARMv7 and ARM64
- Embedded Linux ARMv7 and ARM64
If you need to support another OS or architecture, please contact your sales representative at Innovatrics.
HW acceleration
- Ambarella CVFlow (Ambarella SDK 3.0)
- CV28
- CV25
- CV22
- CV2
- Rockchip RKNPU (RKNPU 1.6.0)
- RK1808/RK1806
- RV1109/RV1126
- Rockchip RKNPU2 (RKNPU2 1.5.2)
- RK3566/RK3568
- RK3588/RK3588S
- RV1103/RV1106
- RK3562
- NVIDIA GPUs and NVIDIA Jetson platforms with NVIDIA CUDA or TensorRT support
- NXP iMX8 (Tensorflow Lite -> VX delegate)
Libraries
SFE Toolkit consists of the following libraries:
- libsfe_core.so (sfe_core.dll on Windows)
- solver loading
- image operations
- error handling
- libsfe_face.so (sfe_face.dll on Windows)
- face detection
- face landmarks detection
- face mask detection
- face template extraction
- 1:1 face template matching
- 1:N face template identification
- face liveness detection
- face and image quality attributes
- libsfe_iris.so (sfe_iris.dll on Windows)
- iris detection
- iris template extraction
- 1:1 iris template matching
- 1:N iris template identification
- libsfe_palm.so (sfe_palm.dll on Windows)
- palm detection
- palm template extraction
- 1:1 palm template matching
- 1:N palm template identification
- libsfe_tattoo.so (sfe_tattoo.dll on Windows)
- tattoo detection
API
SFE Toolkit libraries provide C API. We can also provide a binding with an example application for the following platforms:
- Python for Windows and Linux
- Kotlin for Android
- Swift for iOS
- .NET for Windows and Linux
Licensing
You will need a valid license file to use the SFE Toolkit.
Hardware ID
The hardware ID of your Embedded/Edge device or PC is required to generate the valid license.
Please use the License Manager application to generate a Hardware ID for your device:
./license_manager_cli -p
On Embedded platforms, the MAC address of the device's network adapter is used as the hardware ID.
NOTE: If you require a license based on a different type of hardware parameter of your edge device, please contact your Innovatrics sales representative.
License generating
Use the hardware ID or MAC address (without colons) of your device to generate a license at our Customer Portal.
License deployment
Copy this license file to one of the following locations on Linux PC and Embedded Linux:
/etc/innovatrics(all users)~/.innovatrics(specific user)- working directory
and on Windows PC:
- C:\ProgramData\Innovatrics\iengine.lic (all users)
- C:\Users<user>\AppData\Local\Innovatrics\iengine.lic (specific user)
- working directory
The license file has to be named iengine.lic.
License ENV variables
The license can be also set using environment variables:
- ILICENSE - path to the license file
- ILICENSE_DATA - base64 (RFC 4648) encoded license file content. Please note you have to disable line wrapping. To convert the license file to base64 correctly, please use the following command:
cat iengine.lic | base64 -w0 > base64_license.txt
Example application
To run the pre-built example applications run the following commands in the package root directory:
export LD_LIBRARY_PATH=$PWD/lib
bin/example_face_identify
To display options run:
bin/example_face_identify -h
Python example
To run the Python example, run the following command:
On Linux:
cd example/python
export LD_LIBRARY_PATH=../../lib
python example_face.py
On Windows:
- Copy
sfe_*DLLs toC:\Windows\System32or working directory (example/python) - Copy DLLs from
bin/directory topython.exeinstallation directory because there is an incompatibleonnxruntime.dllinstalled in Windows 10 and 11.onnxruntime.dll,zlibwapi.dll- OPTIONALLY:
onnxruntime_providers_*and CUDA (cudnn*) DLLs to enable GPU acceleration usingcudaortensorrtruntime provider
- Run
python.exe example_facefromexample/pythondirectory.
Benchmarks application
To run the pre-built benchmarks applications run the following commands in the package root directory:
export LD_LIBRARY_PATH=$PWD/lib
bin/benchmark_face
To display options run:
bin/benchmark_face -h
If you want to build the application, please follow the instructions in example/readme.md
Support
Please contact sfembedded-integration@innovatrics.com in case of any issues or questions.