Kinect perspective correction?


    Dec 04 2011 | 3:44 pm
    Hello
    I am dealing with same this problem.
    Kinect is on the ground and want to correct the perspective like seeing in the front of person. Here is dtr's thankful patch contribution. http://dtr.noisepages.com/2011/02/2-methods-for-undistorting-the-kinect-depth-map-in-maxjitter/
    but the shadows won't make the depth visual look normal as a front view.
    So If I use 2 Kinect (on the ground-look up, and over the head-look down), Can I make the corrected perspective like seeing in front of the person?
    Any suggestion please! thanks

    • Dec 05 2011 | 2:36 pm
      that should work. calibrating the 2 cams so they overlap nicely might be a pain though.
      i'm doing a similar thing but with kinect skeleton tracking. in my motion tracked performance i need 360° freedom of movement so i need to prevent limbs being obscured to the camera. i use a 2nd kinect at 120° angle. both kinects perform skeleton tracking and i merge the 2 results together. it's not super precise but good enough for my needs right now.
    • Dec 05 2011 | 8:28 pm
      @dtr:
      How do you merge the 2 skeletons together ?
    • Dec 06 2011 | 9:58 am
      @mudang:
      I've got 2 computers each running a Processing sketch which uses the SimpleOpenNI library for Kinect skeleton analysis. They both send their joint coordinates over OSC to Max running on one of the computers.
      I draw the joints to a 3d GL context so I can manually rotate and translate the 2 skeletons till they overlap pretty good (compensating for the 120° horizontal angle, vertical angle, etc). I do this visually though I'm sure there's more scientific methods to do this but this works for me for now. (Any tips on this?)
      Then I have some logics going on to merge the 2 skeletons in 1 resulting skeleton. I iterate through all of the joints. If I have a valid reading (according to the confidence parameter) in both skeletons I take the average coordinate. If one is valid and one is invalid I take only the valid one. If none are valid I don't update the joint.
      Lastly I apply smoothing to the resulting skeleton.
      (Btw, I hope that at some point the OpenNi/NITE libraries will have this built in, as well as fixing the 2 cam's on 1 computer skeleton tracking issue. Doesn't work as it should for now.)
    • Dec 06 2011 | 1:59 pm
      thanks for the info! I never thought of matching of the skeletons by hand. I don't have the math skills either to do this by calculus. I suppose this involves solving a system of linear equations..might get nasty..
      (@djtoshi182: sorry for hijacking your thread!)