Hand occlusion in skeleton tracking

I am using the Intel Realsense D415 and Nuitrack to track the skeleton for health system application. I noticed that Nuitrack fails to estimate the position of the joint point when it is occluded with other parts. for example, if the use put his/her hand behind the back, the system will go into a crazy mode and estimate the hand to be in front of the body. one other example is when the hands exceed the window boundaries and go outside it… the same crazy mode will be triggered.
can anybody suggest a solution for this issues?
I am thinking of adding human movement constraints on the skeletonization output… what do you think?


This is a fact of life for the type of tracking systems currently utilised by Nuitrack.

There are already a full set of human movement constraints being utilised inside nuitrack to approximate the skeletal position - take a look at the FABRIKSkeleton.xml file and the kinematic_filter.xml file in the data folder/

We started with advanced motion filtering on each point - to generate a cleaner base dataset.
Then yes you could look at discarding invalid data - by looking at the confidencescore of each joint - when a joint has LOW confidence - it is basically becoming a guess - if you discard these guesses - or filter them agressively against past positions - then you start to get some greater control over the data.


hi Westa,
thanks for your reply. do you have any idea how I can filter out the low confidence joint points? I mean which file should I change or where to write my code?


You would need to do that in your own code - each join returns a confidence value - how you code it is up to you.

Maybe always store a copy of the last high confidence point - and mix that with the low confidence point using the confidence lvl as a mix value. You could also look at adding your own joint filtering after that - maybe something like a unscented kalman filter for example or an exponential filter.


Hello Westa,
Thanks for your helpful comments. I had a look into the FABRIKSkeleton.Xml and the kinematic_filter.Xml files and I found them very useful.
the question is, Can I change the values in these files and then re-use them with nuitrack?
did you ever change anything to these files?
sorry for asking such questions but this is the first time to me to deal with system files and i don’t wont to miss the whole project.


The values in these file are undocumented - but are loaded by the system every time nutrack is use. So any changes you make are reflected the next time you run a session.
There is nothing stopping you making changes to files - BUT - its likely that the next version of nuitrack will overwrite them. So just make backups and experiment.