We have one application on the web server, using methods for enrollment and matching. For enrollment, we use extraction of face template and getting of facial features (using IFace functionality). For matching 1:N we use IDKit Multi. As a single application, we are trying to use both SDK’s on it but we are having issues. It looks like IFace and IDKit cannot cohabit in one application. Is there a way to solve it?

We have IDKit_Multi_SDK_v4.5.3.0 x64 and IFace_SDK_3.1.0_x86-64.

Solution 1:

To cooperate IDKit Multi SDK with IFace SDK, both must have a same iface.dll version. 

IDKit Multi SDK v4.5.3.0 cohabits with IFace SDK v2.11.2.0 (they are bound to the same version of the iface.dll library). So to use them together, you have to downgrade IFace SDK from v3.1.0 to v2.11.2. Also in your code, you have to initialize IDKit instance first and after create IFace instance but not initialize it (it has already been initialized by IDKit initializer). 

Solution 2:

If you cannot downgrade to the lower IFace SDK version because of its different functionality, there is another(difficult) way- implement a multiprocess application, i.e. with one process carrying IDKit instance and another process carrying IFace instance, each handling dedicated jobs. The each process must be bound(explicit DLL linking) to a different iface.dll library (of demanded version). This involves also implementing of an interprocess communication, e.g. using third-party MPI implementations.