Kinect performance performance

boya's picture

Got the Kinect with the intention to track actors from 6-7 meters above in a performance. Preliminary results seems a bit disappointing regards to dept range and artifacts. I do not know if my living room is more messy than others, but it is freaking out on lamps, windows and sharp contrasts giving 0 depth all over the place. Also the fidelity at 5-7 meters depth accounts for only about 5% of the total z depth, so some serious clamping is due. Seem to me the Kinects cameras should have been a bit more separated to get better readings at these ranges. But could someone point me at how to clamp the z to get rid of the unwanted ranges, and also how to connect "stuff".

PreviewAttachmentSize
Bilde 6.jpg
Bilde 6.jpg98.68 KB
kinect 3D.qtz9.73 KB

gtoledo3's picture
Re: Kinect performance performance

I don't have one yet, but try using the False Color patch as a quick way of decreasing luminosity, or making black more grey.

Can you post a picture (or multiple) of the output of only the depth channel? That would help much more in seeing where things are going awry.

boya's picture
Re: Kinect performance performance

Sorry, getting late. I´ll post some tomorrow.

smokris's picture
Re: Kinect performance performance

It looks like your GLSL shader is just using the r channel of the depth map. Keep in mind that our Kinect patch outputs alpha transparent (thus r=0) when the Kinect is unable to determine the depth for a pixel.

gtoledo3's picture
Re: Kinect performance performance

In the case of what Steve is describing, see if this works for you a bit better. I admit, I didn't look at the shader you posted (sorry). It was clear that background was extruding, which is why I asked for the depth channel pic.

PreviewAttachmentSize
GLSL Depth and Texture_GT.qtz205.35 KB
B_52.png
B_52.png26.1 KB

post's picture
Re: Kinect performance performance

Gtoledo's works well at removing the alpha artifacts --

I've modified his composition so it's set up for the kinect. Also, I've put a sweeping motion into the scene, which is good for testing.

All the best -R.

PreviewAttachmentSize
GLSL Depth_Kinect_redux.qtz11.38 KB

gtoledo3's picture
Re: Kinect performance performance

Glad to hear it.

Oh! Wait. Why the invert? Isn't alpha far and white close?

Is this alpha none/white far/black close? Weird.

If anyone can, I would really appreciate seeing a picture of the depth channel out of the kineme plugin (like, to billboard, pixel aligned, real size, would be ideal). It would probably be slightly better to do that in the shader than with the invert (but not a big deal).

Why are you cropping width and height arbitrarily? No criticism, I'm curious what that's working around. I removed the arbitrary numbers, and published params to allow one to crop extra as they see fit.

I removed the interpolate, because it's distracting (to me), and makes the setup less universal. That's why it's in a trackball, so that you can grab it and turn it easily.

boya's picture
Re: Kinect performance performance

While you´re wainting for your gift George, here´s my livingroom in Kinect. Sorry to get so personal, but its the only place I have the depth I´ll be working with.

These are 1:1 from a bilboard so dark is closer, yes, need to invert and make black alpha to reproduce.

The far wall is at about 9 meters, and the staircase at about 7,5 is showing a slightly difent shade, but when I examine it with the colormeter it really is hard to distiguish it from the wall. The white chair at about 6 meters seems to be the last thing clearly standing out.

The false color aproach seems only to lessen the depth, but bringing up contrast to 2 and brightness to 0.2 seemed to render the most correct depth for the room in the capture attached.

So where should I go next? If I´d like to track people (up to 6?) and connect sprites or 3D emitters, how could I connect to things showing up in the range between 55 and 60% while disregarding all other info?

PreviewAttachmentSize
Kinect RGB.jpg
Kinect RGB.jpg137.86 KB
Kinect Depth.jpg
Kinect Depth.jpg55.7 KB
Bilde 7.jpg
Bilde 7.jpg185.82 KB

dust's picture
Re: Kinect performance performance

im using my kinect pretty close its about a foot behind my laptop screen. but i'm tracking my hand and fingers. what i do is subtract the depth image from the background and threshold out until i get only depth i want in my case my hands which are in front of me.

dust's picture
Re: Kinect performance performance

you can track up to six people if they can fit in the image when you get rid of the background.

gtoledo3's picture
Re: Kinect performance performance

That makes sense. When I look at that pic, it seems like there is more accurate tracking up close, but things get very noisy deeper.

I appreciate you posting that, because it says a bit. I'm not sure I can use it for tweaking a setup since it's jpeg; not sure if alpha was preserved on that. I'll check it; thanks either way.

Reflective objects, things that scatter the near IR, or strong light sources look problematic. It looks like those things can defeat the near IR from returning to the CMOS, apparently, creating null image areas. Then again, this is jpeg, not a png where transparency would be shown... maybe that stuff is pure black, and I just think it's alpha.

Those good looking images (thinking of the point cloud stuff Vade posted) seem to have been done very close to the cam, so that the resolution is good, and the IR doesn't have opportunity to scatter on a bunch of different reflective surfaces.

Things with more detail in the room do tend to look sketchier depth map wise, and are being used to augment openCV tracking (makes good sense). I think the cool stuff with this will be not so much with directly rendering stuff involving the depth map, but using the depth map to enable other stuff, like physical reaction, using the info to place stuff by people, create drop shadows, track joints, etc.

I wonder how long it will be before people try parts mods. I'm sure someone's on it...

post's picture
Re: Kinect performance performance

Hiya George

Thanks for letting me mess with your composition. Next time, I'll ask first :-)

Here's two pixel-aligned 1:1 depth images from the Kinect patch.

Regarding the composition, I stuck the crop in, because there seem to be artifacts on the right edge of the depth image. The interpolation was so I could get up from the damn computer and still see the scene moving in space.

All the best -R.

PreviewAttachmentSize
blending_replace.png
blending_replace.png37.99 KB
blending_over.png
blending_over.png37.27 KB

gtoledo3's picture
Re: Kinect performance performance

Lol....hack away at the comp, please, it's my pleasure ;) I was wanting to know the point of the changes so I could understand what was going on better. I try to approach basic setups so they're kind of universal, hopefully.

Artifacts at the edges huh? That's interesting. Kinda makes sense too.

That pic with blending in over (either actually) - there is a ton of tonal variation between your hand, areas of your clothing, and the face area. The eye sockets are a bit depressed even. I'm not sure if that's 1cm accuracy or not, but it's not horrible. I guess that having the cam in tight helps get the most out of the resolution.

I'm sort of surprised there's that much area of occlusion in the areas right by your body. I'm trying to envision why the rays don't get picked up by the sensor at that point.