Body skeleton tracking identifies more than one skeleton


I am using the body tracking of nuitrack for an action recognition application. I am trying to get the software to only track one person (the one closest to and is facing the camera). However, the software sometimes also identify the person behind me (who is more than 2m away from the camera and has his back on the camera). I have also attached an image. What I was expecting was to have skeletons_num to always equal to 1 and be always tracking the person facing the camera and is closest to the camera.

What I have done:

  • Changed Skeletonization.MaxDistance parameter to 2000 to try limit the maximum tracking distance as per this github post
  • Similarly I also changed Segmentation.MAX_DISTANCE to 2000 as per this post
  • I also set Skeletonization.ActiveUsers to 1

I am using an Xbox360 Kinect. It is rotated upside down so I also changed the following:

  • DepthProvider.RotateAngle to 180
  • DepthProvider.Mirror to true

Other things I have changed

  • “DepthProvider.Depth2ColorRegistration” to “true” # Not sure what this does
  • “Skeletonization.Type” to "CNN_HPE # Use the AI model

I also tried to add this box cutter solution but to no avail.

I am using the PyNuitrack on Ubuntu 20.04

Would you happen to know how to solve this issue?


Hi @luluTS

The parameter you need is Skeletonization.ActiveUsers .
Currently it’s available only for “Classical” pose estimation method (RegressionSkeletonization)

Currently I have 2 possible workarounds:

  • Switch Skeletonization.Type back to RegressionSkeletonization
  • Using AI manually filter out skeletons you don’t need : e.g. get real Z coordinate of JOINT_LEFT_COLLAR and skip skeletons if the coordinate larger than some distance or just find closest one and filter other

I’ll make sure to add this issue to our todo list

1 Like