Forums > Jitter

Kinect perspective correction?

December 4, 2011 | 3:44 pm

Hello

I am dealing with same this problem.

http://cycling74.com/forums/topic.php?id=32195

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



dtr
December 5, 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.


December 5, 2011 | 8:28 pm

@dtr:

How do you merge the 2 skeletons together ?



dtr
December 6, 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.)


December 6, 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!)


Viewing 5 posts - 1 through 5 (of 5 total)