Skeleton Tracking

I’ve been working with python, Tensorflow, and OpenCV along with a couple of RealSense cameras for a project. As a break from it all, I wanted to test out the skeleton tracking SDK from Cubemos. Their SDK allows the tracking of 18 joints per person for up to 5 people in a given frame.

Using their trial license and one of my RealSense cameras the process was rather painless.

Lately, most of my development revolves around python using Conda as my python package manager and Docker to contain specific environments from which to deploy the resulting solutions.

I do revert to C++ and on the windows environment, Microsoft Visual Studio Community 2019 is used to compile stuff from source such as OpenCV. The Cubemos installer generates sample solutions for VS17. In my case, the installation failed and I had to resort to generating them by hand.

The error is because the OpenCV cmake file that comes bundled with Cubemos, does not recognize a VS19 environment. Fortunately, I have OpenCV 4.3 and built a version specific to my needs.

Alternatively, one can download OpenCV 4.3.0 and copy the required files to the Cubemos samples folder.

OpenCV build folder contents.
Cubmeos OpenCV dependency folder contents

Configure and Generate work as expected. OpenCV was built using VS19 thus the OpenCV Runtime is vc16. If you downloaded OpenCV 4.3.0 then the runtime would be vc15

Although the binaries for the demos come installed, I felt compiling for specific environment was a must, even though most of development is in python.

Sample Outputs

Each estimated joint location has a corresponding x,y,z coordinate from which one can use to provide specific solutions.

The demo app does not perform any smarts such as verifying if a person is standing or just a an picture of a person. In this example, it got confused with the tools hanging on the pegboard. The potential applications are plenty and limited by your imagination. A permanent licence costs $75US.