Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You can either start your own project from scratch (Unity3D Integrationintegration), or look for the samples (visage|SDK>Documentation>Samples>Unity3D) that come the VisageTrackerUnityDemo sample that comes with full source code so you can use them it as know-how for your project.

Note

This FAQ entry contains pointers to the visage|SDK offline documentation which is deprecated. These pointers need to be replaced with links to online documentation.

Can I use visage|SDK with C#?


For the C# API, please look in the documentation.html (in visage|SDK root folder), under API\C# API Reference. This is a managed C# wrapper that exposes all of visage|SDK functionalities – face tracking, analysis and recognition.

The C# API is implemented in libVisageCSWrapperVisageCSWrapper.dll library (libVisageVisionlibVisageVision64.dll is and other dependencies are required for running).

Additionally, we provide VisageTrackerUnity PluginVisageTrackerUnityPlugin, which is a C# wrapper made specifically for integration with Unity 3D engine. For more information, please take a look at the documentation.html under Samples\ Unity3D. The VisageTrackerUnity Plugin VisageTrackerUnityPlugin comes included with visage|SDK for Windows, MAC OS X, iOS and Android.

Note

This FAQ entry contains pointers to the visage|SDK offline documentation which is deprecated. These pointers need to be replaced with links to online documentation.

Can I use visage|SDK with Java?

...

visage|SDK is implemented in C++. It provides C++ and C# APIs. On Windows, the C# API is implemented as a C++/CLI library (VisageCSWrapper.dll) which, in theory, should be usable in other NET languages, e.g. VB.NET. However, we have not tested this. The C# API documentation may be used as a basis for usage of VisageCSWrapper C++/CLI library in VBVB.NET.

Can I use visage|SDK with Python?

...

visage|SDK is implemented in C++ and provides C++ API which cannot easily be used directly in Python without a C functions wrapper. visage|SDK provides such a wrapper in the form of VisageTrackerUnity Plugin VisageTrackerUnityPlugin which was made specifically for integration with Unity 3D engine. However, it can also be used by other applications/languages that support importing C functions from a library. At its core, the VisageTrackerUnity Plugin VisageTrackerUnityPlugin is a high-level C functions API wrapper around C++ API. In the case of Python, ctypes library (foreign function library for Python) can be used to import and use C functions from VisageTrackerUnity PluginVisageTrackerUnityPlugin. As the source code is provided, VisageTrackerUnity Plugin VisageTrackerUnityPlugin can also be used to implement custom Python wrapper.
Even though it was tested, such usage of VisageTrackerUnity Plugin VisageTrackerUnityPlugin is not officially supported.

...

visage|SDK is implemented in C++ and provides C++ API, therefore direct calls from React Native are not possible without a wrapper with C-interface functions. An example of such a wrapper is provided in visage|SDK in the form of VisageTrackerUnity Plugin VisageTrackerUnityPlugin which provides simpler, high-level API through a C-interface. It is intended for integration with Unity3D Unity 3D (in C# with P/Invoke), but it can also be used by other applications/languages that support importing and calling C-functions from a native library, including React Native.

...

For users willing to experiment, there is an undocumented workaround that allows use of visage|SDK in Flutter.
visage|SDK is implemented in C++ and provides C++ API. Therefore, direct calls from Flutter are not possible without a wrapper with C-interface functions. An example of such a wrapper is provided in visage|SDK in the form of VisageTrackerUnity Plugin which provides simpler, high-level API through a C-interface. It is intended for integration with Unity3D Unity 3D (in C# with P/Invoke), but it can also be used by other applications/languages that support importing and calling C-functions from a native library, including Flutter.

...

A way without wrapping NSObject is by wrapping C++ API in C-interface functions and exposing them through bridging-header. Example of such a wrapper is provided in visage|SDK in the form of VisageTrackerUnity Plugin VisageTrackerUnityPlugin which provides simpler, high-level API through a C-interface.

...

Will visage|SDK for HTML5 work in browsers on smartphones?

May
The HTML5 demo page contains the list of supported browsers: https://visagetechnologies.com/demo/#supported-browsers

Please note that the current HTML5 demos have not been optimized for use in mobile browsers. Therefore, for the best results it is recommended to use a desktop browser.

On iOS, the HTML5 demos work in Safari browser version 11 14 and higher. They do not work in Chrome and Firefox browsers due to limitations on camera access.
(https://stackoverflow.com/questions/59190472/webrtc-in-chrome-ios)

...

Info

See also:

Are these camera specs

...

OK for visage|SDK: 1920 x 1080, 30 fps, mono?

The mentioned camera parameters (1920 x 1080, 30 fps, mono) should be appropriate for our software and most of the use cases.

...

To get you started, each platform specific visage|SDK package contains sample projects with full source code that can be modified for that purpose. In the documentation, click on Samples See Samples page to find the documentation of the specific sample projects.

On Windows, there are Visual Studio 2015 samples: ShowCaseDemo  ShowcaseDemowhich is written in C# and and FaceTracker2which is written in C++.

On macOS, there is an Xcode sample: VisageTrackerDemo which is written in Objective-C++.

Processing and saving information to a file can be implemented in parts of the sample projects where tracking from video file is performed:

  • In Showcase Demo ShowcaseDemo project on Windows, the appropriate function is worker_DoWorkVideo().

  • In FaceTracker2 sample project on Windows, the appropriate function is CVisionExampleDoc::trackFromVideo().

  • In VisageTrackerDemo sample project on macOS, the appropriate function is trackingVideoThread().

Please search source code of each sample for the exact location.Important

Note

...

Sample projects have “video_file_sync“ (or similarly named functionality) enabled, which skips video frames if tracking is slower than real-time. This functionality should be disabled for full video processing i.e processing of all video frames.


Info

See also:

...