Application Design

Overview

The Face Capture SDK’s purpose in an application is to initiate and coordinate a controlled capture of a subject’s Face biometric data. The library is re-entrant and can be used from multiple threads. However, only one capture session can occur at a time. The library provides functionality for:

  • Intializing and operating the device’s cameras
  • Selecting which camera to use in facial capture
  • Providing preview image data to the application
  • Processing images and returning feedback codes used to guide the user experience
  • Specifying a maximum duration to attempt face capture
  • Updating the application with the current capture session status
  • Creating a JSON package compatible with the Aware Face Liveness Server back-end

Integration Tasks

The following is a quick checklist of objects to create and parameters to configure in order to capture a face.

  • Create a Face Capture library
  • Create a Workflow
  • Set the Capture Profile for the Workflow
  • Specify a Capture Timeout for the Workflow (optional, but recommended)
  • Specify a Username for the Workflow (optional)
  • Get the list of cameras for either the front or back side of the device
  • Select a camera from the list
  • Set up a polling thread for getting the capture session frames
  • Set up a polling thread for getting the capture session status
  • Set up a polling thread for getting the capture session feedback
  • Start a Capture Session with the Workflow and Camera
  • Display images and feedback from the capture session to guide the user to a successful capture
  • Handle the three cases where the Capture Session will end
  • Upon receiving the Completed status, the Capture Session has successfully captured. The application should retrieve the server package from the Workflow used.
  • Upon receiving the Timedout status, the Capture Session was unsuccessful. The application has been notified that the user did not capture in the time allowed.
  • Upon receiving the Aborted status, the Capture session was unsuccessful. The application should handle this case as a camera/hardware failure.
  • If successful, send the server package to the back-end.

Server Communication

The Face Capture SDK does not communicate directly with any server. All server communication is to be handled by the application integrating against it. Instead, the Face Capture SDK provides a request package to be delivered to the back-end. Some of the properties of the request package will differ based on which Workflow was created and what properties were used in the capture session.

The Face Capture SDK does not parse or interpret results from the Face Liveness server. Interpretation of the server results are left to the integrator and how they have delegated responsibilities between their application and back-end.

Data Security

The FaceCapture function getEncryptedServerPackage() returns an encrypted JSON package. There is a matching decryption function in the Face Liveness server. The encryption used is asymmetric RSA based on a AES 256 cipher block chain.