Skeleton tracking – SDK for body tracking applications

Skeleton Tracking SDK

by Cubemos

The Skeleton Tracking SDK is designed to offer deep learning based 2D/3D full body tracking to applications for embedded and cost friendly hardware:

  • Runs on Windows and Linux using C, C++, C#, Python and within Unity.
  • Fast and highly accurate 2D and 3D human pose estimation with 18 joints.
  • No dedicated GPU needed: Real-time performance for video streams on edge hardware.

and more...

Easy start

One single installer for all relevant dependencies. One license file for all applications to ensure convenient deployment.

Try for free →

Cross-platform

C, C++, C# and Python interfaces for both Windows and Linux applications are included. Unity wrapper is also provided.

Less than 30 minutes

Use our quick installation guide to get you up and running with the skeletal tracking in less than 30 minutes.

See it in action

See it in action

— Ready for C, C++, C#, Python or Unity application development
— Sample application code included
— Real-time on embedded and cost friendly hardware
— No dedicated GPU needed to run deep learning model behind
— Convenient deployment with the same license code for all your devices
— Automatic license activation for your users and your headless devices

18 points of tracking.

Skeletal Tracking of 18 joints

Our Skeletal Tracking SDK allows tracking of 18 joints simultaneously. Thanks to our AI algorithms this tracking is available for up to 5 people in a scene.

Tracking ON
Off
Skeletal Tracking - 18 joints

Right eye

Right eye

Left eye

Left eye

Left ear

Left ear

Right ear

Right ear

Nose

Right shoulder

Right shoulder

Left shoulder

Left shoulder

Left elbow

Left elbow

Right elbow

Right elbow

Right wrist

Right wrist

Left wrist

Left wrist

Left hip

Left hip

Right hip

Right hip

Right knee

Right knee

Left knee

Left knee

Left ankle

Left ankle

Right ankle

Right ankle

Spine

Spine

Less than 10 lines of code to start. That's it.

The Skeleton Tracking SDK provides for both Windows and Linux a C, C++, C# and Python API. Using the C‑API it is also possible to develop your own custom wrapper. Our APIs offer Skeleton Tracking implementation with less than 10 lines of code.

// Read an RGB image of any size
cv::Mat image = cv::imread("/path/to/some/image.jpg");   

CM_Image img{ (void*)(image.data), CM_UINT8, image.cols, image.rows, image.channels(), (int)image.step[0], CM_HWC };

// Declare results container
CM_SKEL_Buffer skeletonKeypoints;

CM_SKEL_Handle* handle = nullptr;
CM_TargetComputeDevice enInferenceMode = CM_TargetComputeDevice::CM_CPU;

// Create cubemos API handle for Intel Inference Plugin and specify the valid cubemos license folder
cm_skel_create_handle(&handle, default_license_dir().c_str());

// Load the CPU model
std::string modelName = default_model_dir() + "/fp32/skeleton-tracking.cubemos";
cm_skel_load_model(handle, enInferenceMode, modelName.c_str());

// Send inference request and get the skeletons
cm_skel_estimate_keypoints(handle, &img, /* network height*/ 128, &skeletonKeypoints);
// Read an RGB image of any size
System.Drawing.Bitmap image = new System.Drawing.Bitmap(Common.DefaultResDir() + "\\images\\skeleton_estimation.jpg");

// Decalre results container
System.Collections.Generic.List<Cubemos.SkeletonTracking.Api.SkeletonKeypoints> skeletonKeypoints;

// Create cubemos API handle for Intel® Inference Plugin and specify the folder with the license key
var skeletontrackingApi = new Cubemos.SkeletonTracking.Api(Common.DefaultLicenseDir());

// Load the CPU model
skeletontrackingApi.LoadModel(Cubemos.TargetComputeDevice.CM_CPU,
                              Common.DefaultModelDir() + "\\fp32\\skeleton-tracking.cubemos");

// Send inference request and get the poses
skeletontrackingApi.RunSkeletonTracking(ref image, 128, out skeletonKeypoints);
#Read an RGB image of any size
img = cv2.imread(args.image)
#initialize the api with a valid license key in default_license_dir()
api = Api(default_license_dir())
model_path = os.path.join(
    sdk_path, "models", "skeleton-tracking", "fp32", "skeleton-tracking.cubemos"
)
api.load_model(CM_TargetComputeDevice.CM_CPU, model_path)
#perform inference
skeletons = api.estimate_keypoints(img, 192)

Pricing

 

 
  • 2D/3D Skeletal Tracking
  • Full Functionality
  • Linking to sensor
  • Duration
  • C / C++ / C# support
  • Python support
  • Unity wrapper
  • Custom wrappers
  • Custom features
  • Support
  • Dedicated manager

Trial

Free
  • 2D/3D Skeletal Tracking +
  • Full Functionality +
  • Linking to sensor +
  • Duration 30 Days
  • C / C++ / C# support +
  • Python support +
  • Unity wrapper +
  • Custom wrappers -
  • Custom features -
  • Support -
  • Dedicated manager -

Full

$75
  • 2D/3D Skeletal Tracking +
  • Full Functionality +
  • Linking to sensor +
  • Duration Perpetual
  • C / C++ / C# support +
  • Python support +
  • Unity wrapper +
  • Custom wrappers -
  • Custom features -
  • Support +
  • Dedicated manager -

Enterprise

Contact us
  • 2D/3D Skeletal Tracking +
  • Full Functionality +
  • Linking to sensor + / Options
  • Duration Perpetual / Options
  • C / C++ / C# support +
  • Python support +
  • Unity wrapper +
  • Custom wrappers +
  • Custom features +
  • Support +
  • Dedicated manager +

Frequently Asked Questions

The SDK supports Windows and Linux. For both a C/C++ and Python wrapper is included. For Windows a C# and Unity integration is provided.

Yes, we offer the most performant Skeleton Tracking for applications running on Intel® based devices. This enables real-time applications even on edge devices.

Working sample applications and source code are included for C# and C++.

Yes. The pose estimation works in 2D and 3D. 3D pose estimation requires 3D camera hardware.

Technically unlimited. However, for applications with more than 5 people, we suggest avoiding skeletons occluding each other.

The underlying AI model is optimized to provide the best performance on Intel® CPUs and VPUs. This means the SDK is suitable for real-time applications even on edge devices.

No, you buy lifetime licenses. One license for each device you run the Skeleton Tracking SDK on.

Yes, Unity packages wrapping the SDK functionality are included and can be imported into Unity.

You will always get one license key. The number of licenses in the basket allows you to activate this amount of devices running the Skeleton Tracking SDK.

This enables convenient automated deployment processes for applications running on numerous edge devices.

Support

Direct support for users of the Skeleton Tracking SDK is provided by our partner cubemos*. If you have a question or run into any issues, please reach out.

Let’s talk about how Intel RealSense depth sensing cameras can enhance your solution.

 

By submitting this form, you are confirming you are an adult 18 years or older and you agree to share your personal information with Intel to use for this business request. You also agree to subscribe to stay connected to the latest Intel technologies and industry trends by email and telephone. You may unsubscribe at any time. Intel’s web sites and communications are subject to our Privacy Notice and Terms of Use.

Stay Updated

Keep up to date with Intel® RealSense™ Technology: product updates, upcoming announcements, and events.

By submitting this form, you are confirming you are an adult 18 years or older and you agree to Intel contacting you with marketing-related emails or by telephone. You may unsubscribe at any time. Intel’s web sites and communications are subject to our Privacy Notice and Terms of Use

You are about to leave our website and switch to intel.com.
Click here to proceed

Stay Updated

Keep up to date with Intel® RealSense™ Technology: product updates, upcoming announcements, and events.