how to detect and find the rotation angle if the skeleton tracked has turned 180 degrees to kinect? RRS feed

  • Question

  • Hi,

       I m developing an application using kinect.The IDE I  use is Visual studio 2012 and kinect SDK 1.8.I m developing using vc++

    I want to overlay an image on the person tracked when the person turns 180 degress to kinect. ie the person is not facing the kinect.

    how do i track the rotation angle of the person as he/she turns away from kinect. 




    Thursday, September 26, 2013 4:39 AM


All replies

  • I think easy to check the angle through any 3 points on the body, for ex: shoulderL, neck, shoulderR.

    It's better to use 2D coordinate only (plane parallel with ground: remove the height value/y value)

    Thursday, September 26, 2013 10:46 AM
  • Thankx a ton for your response.. I tried doing the same.. The challenge is that the points enter inferred region after some angle of turning and then get back to tracking state again.. So getting the angle becomes an issue here..

    I created vector points for the three points namely ShoulderL , neck and shoulderR.

    I also tried to find the angle of rotation between shoulderL and shoulderR by usung atan2 function.

    The inferred state tracking is the challenge here again.

    Using NuiTransformSkeletonToDepthImage function and passing vector point of hip center I tried to retrieve the depth values.

    Even here when i turn around the point enters the inferred region and then gets back to the tracked state.

    So how do I fix the point using which I can say that the person has turned and so I can overlay the respective image on the person.


    Thursday, September 26, 2013 11:54 AM
  • I just did a test and found that even you stand front or turn back the value are same. Kinect recognize right hand as left hand when player turn back :(

    So I have no idea to recognize when player turn back. Sorry about it

    Friday, September 27, 2013 2:57 AM
  • thankx again...

    Is there any other alternate to find the turning angle of the person and detect if the person is facing the kinect or has turned around ?


    Friday, September 27, 2013 6:02 AM
  • The only way would to do image analysis on the head region to determine if there is a face. The Face Tracking SDK might help with this depending on the distances.

    Carmine Sirignano - MSFT

    Monday, September 30, 2013 5:34 PM
  • Thankx a ton...

    Using face tracking mechanism was able to put separate attire for front and back.However the attire on the front pose is more stable than the back attire. Is there any specific reason for this stability issue.

    Now there are two different attires being displayed for front and back.

    how do I get a reality look and feel of the attire when the person turns slowly.?

    How do I get the 360 degree rotation of the attire along with the person.?


    Tuesday, October 1, 2013 12:08 PM
  • The detection wasn't really tuned for people not facing the sensor. You will have to do analysis on the skeleton data to try and stabilize it further for your needs.

    I am not sure what you mean by attire? Are you talking about putting clothes on people virtually? If so, you have to use some mesh deformation type algorithms to deform that to the shape of the clothes to fit the outline of the body. That isn't a trivial thing for real-time type processing. 

    The same affect can be seen in video games when you walk by a curtain or flag and it moves around the shape of the character. I am not sure of the specifics but looks like a physics/dynamic simulation. 

    Carmine Sirignano - MSFT

    Wednesday, October 2, 2013 9:47 PM
  • Thank u...

    Yes I m trying to put cloths virtually on people.

    Currently i m using direct2d for displaying the video and the cloth.But the cloth ie t shirt is a 2d image.It doesnt given the required look and feel.

    How do I implement the virtual attire concept using vc++ ??


    Thursday, October 3, 2013 3:59 AM