Kinect2 inaccurate measuring due indirect illumination

Im working on a project where i have to measure the dimensions(bounding boxes) of different object standing on the floor…

While i did some experiments with Kinect2 i figured out a strange phenomena. the edges of the cardboardbox i used for testing showed a strongly curved shape in the pointclod instead of being a straight. my first thought was that it is kind of a lens distortion which could be solved by some filter. But strangely the curve got much less when i hovered the box around 40 cm from the floor… it seemed like the floor affects the box.

Then suddenly i had an idea what could cause this effect. The only way the floor cann affect the pixels on the cardboard box is by indirect illumination.

Kinect2 works with TOF which to my understanding measures the time the light needs travelling from the lightsource to the reflecting object and back to the sensor. The mayor amount of lightrays is reflected directly back to the sensor. but theres also quite some amount of rays bounces of an area and illuminate another area, especially when they are right angled to each other.
So in the end you have mixture of different pathes the light takes in areas close to each other…

To see if this thought could be right i covered my floor with some dark, less ir reflecting plates i had lying around and voila: the curving on the box suddenly was much less… Taking away the black plates one after another and the curving suddenly got stronger and stronger…

I attached some screenshots to show the effect. if you look closely on the ir image you can also see the indirect ir illumination caused by the floor.

not sure if my theory is accurate maybe someone else knows more or made similar observations?

i think for my project i end up using kinect1, as it doesnt suffer from this problem. just thought its worth sharing as it could be a real problem whenever accurate distance measuring is necessary.

i also experienced exactly this behaviour. but i didn’t have to make measurings, so it wasn’t a big problem.

thanks for the heads up!