DFX SDK v4.0.4
enabling applications to perform DFX blood flow analysis
DFX SDK v4.0.4 Documentation

The primary purpose of the Nuralogix DeepAffex™ SDK (DFX SDK) is to convert a series of face-tracked images into resultant blood-flow. This procedure is referred to as 'blood-flow extraction' and is the first stage in the Transdermal Optical Imaging (TOI) pipeline required for DeepAffex™ processing. The SDK is then used to generate measurement data chunks that are then forwarded to the DeepAffex™ Server for analysis and processing.

The DFX SDK consists of:

We provide 64-bit binaries for Windows, macOS and Ubuntu Linux. The C++ wrapper layer that sits on top of the C API is a convenient access layer for C++ applications. It requires access to an OpenCV implementation. (The C library has no external dependencies).

Getting started

The dfx::DFXFactory is the primary entry point for the C++ SDK, and is used to create one or more dfx::Collectors.

The SDK leaves it up to the client application to capture frames (from a camera or a video file) and to populate the dfx::VideoFrame structure. This is done so that client applications and devices can capture in any format that is most suitable to their environment.

The client application is also responsible for ensuring that dfx::Frames (created from dfx::VideoFrames) have accurate timestamps and dfx::Faces. We provide no built-in face pose estimation as it is available as a commodity with implementations like dlib and Visage or via platform-specific libraries like Apple's Vision Framework or Android's FaceDetector. Whatever the output of the face tracking engine, it will need to be transformed into dfx::PosePoint definitions conforming to the standard MPEG-4 Facial Data Points and attached to the dfx::Face structure.

Once sufficient dfx::Frames have been added to the collector, the collector will indicate that a chunk is ready (isChunkReady) and the client application will need to get the dfx::ChunkPayload (using calls to getChunkData and getChunkPayload) and make a network call to the DeepAffex™ Server API.

The DeepAffex™ Server API leverages well formed protobuf structures for the wire protocol and communicates using WebSockets or REST.