none
What would be the best way to filter inconsistent bones orientation ? RRS feed

  • General discussion

  • Hi there, 

    As the title says, I would like to know what logic you guys are using when you know that Kinect is providing you a wrong bone orientation that mostly happens on the bone axis and resulting in a twisted bone. See this thread for a more accurate description : https://social.msdn.microsoft.com/Forums/en-US/98b24944-b3e4-4c91-976c-ea7ba426fde8/inconsistent-shoulder-elbow-wrist-bones-orientation?forum=kinectv2sdk.

    What I am doing right now is, just not apply the rotation. I am using the smoothing code from this thread : https://social.msdn.microsoft.com/Forums/en-US/eb647eeb-26ef-45d6-ba73-ac26b8b46925/joint-orientation-smoothing-unity-c?forum=kinectv2sdk.

    My problem with the "don't apply if wrong" solution, is that it results in a jittery bone. Because if I just don't apply the rotation and wait for a good value and directly apply this value to the bone, it will "jump" right to the new value. I don't really see an easy way to smooth the movement from the last good orientation to the new one. 

    So what could be a cleaner solution ? My goal is to achieve something similar to this : https://www.youtube.com/watch?v=ShQDh_XOWDc (go to 11 minutes).

    Here are screenshots from the Kinect studio that  represent an orientation inconsistency :

    In this screenshot, my thumb is not well detected so my forearm and wrist are facing backwards and it results in a twist on my 3D model because the shoulder orientation is not matching.


    Any suggestion is welcome.

    Clement.


    Friday, March 20, 2015 3:29 PM

All replies

  • If you have a look at the rotation it is typically the forearm(wrist) orientation that is flipping. You can filter this by looking at previous frames and note when the flip happens by the angle going >90 around the y. Also, the elbow rotation(shoulder joint) will give you the normal direction.

    Carmine Sirignano - MSFT

    Monday, March 23, 2015 5:26 PM
  • Thank you for the feedback Carmine. I know that I can spot when I have a value I don't want to use, the question is more : what could I do then ? Should I flip the value to try to correct it ? Should I wait for Kinect to give me good values ? What would be the best solution to achieve a proper avatar control with Kinect ?
    Monday, March 23, 2015 7:43 PM
  • that is a decision you would have to make. Depending on the scenario, sometime you can wait or just make your own adjustment/calculation.

    Carmine Sirignano - MSFT

    Tuesday, March 24, 2015 6:02 PM
  • Hi Clement,

    I'm facing a similar problem.

    Did you find a solution ?
    And if yes... which one ?

    GEMB

    Tuesday, July 19, 2016 1:43 PM