Introduction
InspireFace is a C/C++ SDK for processing faces in images and video. It detects faces, follows them between frames, extracts landmarks and embeddings, and runs optional analysis such as pose, quality and RGB liveness. Your application supplies the images, manages the camera and UI, and uses the returned results.
The same processing flow is available through C, C++, Python, Java, Android, HarmonyOS ArkTS, Objective-C and Swift. The Apple interfaces cover iOS and macOS, including image buffers, tracking, analysis, recognition and capture. Windows x64 supports CPU inference through C/C++ and the published Python package.

What a typical application does
- Load a resource pack once when the application starts.
- Create a session with the detection mode and optional features you need.
- Submit an image or camera frame and receive a list of faces.
- Use those faces to read landmarks, extract embeddings or run extra analysis.
- Release frame resources, then release the session when the worker stops.
A face's track ID connects detections within a video session. To compare people across images or sessions, extract embeddings and compare them or search a gallery.
| Task | What you get | Read next |
|---|---|---|
| Detection and tracking | Boxes, confidence, track IDs and track counts | Sessions and tracking |
| Landmarks and pose | Facial points and optional roll, yaw and pitch | Landmarks |
| Recognition | An embedding and a comparison score | Recognition |
| Frame selection | Quality checks and a bounded set of capture candidates | Face capture |
| Liveness and actions | RGB liveness scores, eye state and action flags | Liveness detection |



Quick Start
Try the Android Example App
The Android app lets you try detection, tracking, recognition and liveness with a camera before integrating the SDK.

Install the Android demo app, or scan the QR code on your phone.
Start with a well-lit face and follow the camera guide. The app's Anti-fraud menu includes silent and action-based liveness demos.
The optional PLUS passive and flash demos use an online service and require an internet connection. See the liveness guide for details.
For code, start with a single-image Python example or the complete C example. Both run on local image files.
New: mobile real-time liveness [Plus]
Plus adds passive and flash liveness for real-time mobile capture and server-side verification, designed for high accuracy and low power use on mobile devices. Both use an ordinary RGB camera: passive capture asks the user to hold a frontal pose, while flash capture displays a sequence of screen colors.


The Android demos above currently use an online service for verification. Try them to see capture, waiting and result feedback together. The Plus liveness guide explains the capture sequence, device requirements and retry handling.
Choose a language
| Interface | When to use it |
|---|---|
| C API | Native applications, FFI bindings and integrations that need explicit ownership. It also works from C++. |
| Python | Prototyping, scripts and services. NumPy arrays can be passed directly. |
| C++ | Applications that want Session, Image and FrameProcess objects. Build headers and libraries from the same version. |
| Java | Desktop applications and services on a regular JVM, using a JAR and matching native libraries. |
| Android | Java or Kotlin applications using the JNI wrapper. |
| Objective-C / Swift | Native Apple interfaces with NSError / throws, scoped buffer access and explicit cleanup. |
| iOS | Xcode integration, device and simulator builds, camera pixel buffers. |
| Windows | x64 CPU applications using C/C++, or Python installed from PyPI. |
| macOS | Intel and Apple Silicon apps, dynamic frameworks and native tools. |
| HarmonyOS | ArkTS applications using the Node-API adapter in the source tree. |
SDK, models and backends
An SDK library contains the runtime. A resource pack contains the models and their configuration. Both are needed. Start with a CPU build and the Pikachu pack unless you already have a target-specific deployment.
For hardware acceleration, use the SDK build and resource pack for your target backend, and install its runtime dependencies. The model pack guide explains how to match them.
InspireCV handles image operations and preprocessing. Its standalone Image and Task APIs are useful even when an application does not need face recognition.
Prebuilt 1.2.4 SDKs are available for Windows, Linux, Android, Apple and HarmonyOS; see Overview and downloads for the packages and integration paths. To compile your own SDK, choose a platform build guide; replacing Python’s .so/.dylib/.dll and creating a wheel have a dedicated chapter.
About these examples
The native and Java examples use InspireFace 1.2.4; image-processing examples use InspireCV 1.0.2. Python examples use the 1.2.4.post3 PyPI package, which includes the 1.2.4 native SDK and supports snapshots, capture and diagnostics. Android examples use 1.2.4.post1, including capture, snapshots and the complete Java API. When using a custom native build, keep its wrappers and headers matched to the library.
Check the SDK releases and Python package files for your platform. The troubleshooting guide shows how to inspect the version actually loaded by your application.
Documentation version
Current documentation: 1.2.4.d10 — SDK 1.2.4, documentation revision 10.
The version beside the site name follows SDK version.dN. The SDK part comes from the development source covered by these guides; dN counts documentation releases for that SDK version. Each documentation update increments the count by one. When the guides move to a new SDK version, the count starts again at d1.
Prebuilt SDKs and Python packages have their own release versions. Check Overview and downloads when choosing a package.
