Kinect perspective correction?

Dec 4, 2011 at 3:44pm

Kinect perspective correction?

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

#60460
Dec 5, 2011 at 2:36pm

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.

#217603
Dec 5, 2011 at 8:28pm

@dtr:

How do you merge the 2 skeletons together ?

#217604
Dec 6, 2011 at 9:58am

@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.)

#217605
Dec 6, 2011 at 1:59pm

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!)

#217606

You must be logged in to reply to this topic.