Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vertical stripes in the depth image and GMCMode #81

Open
nh2 opened this issue May 21, 2014 · 2 comments
Open

Vertical stripes in the depth image and GMCMode #81

nh2 opened this issue May 21, 2014 · 2 comments

Comments

@nh2
Copy link

nh2 commented May 21, 2014

NiViewer shows some artifacts in the depth image, usually 2 to 8 vertical bars (and sometimes more).

It is especially visible when you turn NiViewer into Psychedelic Depth mode (press 2) and point the camera at a wall.

Image showing the artifact

The bars are always vertical, no matter how you turn the camera!

This has been reported in various places for all devices that use Primesense chips (Kinect, Asus Xtion, Asus Xtion Pro, and the Primesense camera):

This problem is fixed by setting GMCMode=0 in the OpenNI .ini file for your camera (for me that's PS1080.ini, and it works great for both cameras I have, Asus Xtion Pro and the Primesense one).

@shenberg I saw you commented on this at https://groups.google.com/forum/#!topic/openni-dev/N3jYzxqcDLo, suggesting this setting.

What does the GMCMode setting do?

Might I get drawbacks from turning it off?

@shenberg
Copy link

In total depth is more accurate with GMCMode enabled (it fixes some small
systemic-yet-not-constant depth error), but the artifacts might not be
worth the slight improvement in depth accuracy. I don't know the specifics
of how exactly the mechanism works though.

On Wed, May 21, 2014 at 8:11 PM, Niklas Hambüchen
[email protected]:

NiViewer shows some artifacts in the depth image, usually 2 to 8 vertical
bars (and sometimes more).

It is especially visible when you turn NiViewer into Psychedelic Depthmode (press
2) and point the camera at a wall.

Image showing the artifacthttps://simple-openni.googlecode.com/issues/attachment?aid=-8669968271920100909&name=screenshot.png&token=ABZ6GAdXYy4MAZ9FFYXplcM2nDs_V_5KUg%3A1400691935537&inline=1

The bars are always vertical, no matter how you turn the camera!

This has been reported in various places for all devices that use
Primesense chips (Kinect, Asus Xtion, Asus Xtion Pro, and the Primesense
camera):

This problem is fixed by setting GMCMode=0 in the OpenNI .ini file for
your camera (for me that's PS1080.ini, and it works great for both
cameras I have, Asus Xtion Pro and the Primesense one).

@shenberg https://github.com/shenberg I saw you commented on this at
https://groups.google.com/forum/#!topic/openni-dev/N3jYzxqcDLo,
suggesting this setting.

What does the GMCMode setting do?

Might I get drawbacks from turning it off?


Reply to this email directly or view it on GitHubhttps://github.com//issues/81
.

@adamjdorwart
Copy link

Upon further investigation GMC most likely stands for Global Motion Compensation and is part of the compression performed by the firmware of the sensor. What's interesting is that the usual GMC algorithm shouldn't partition the screen into the vertical sections that are being seen (Hence 'Global') but other similar motion compensation algorithms such as Block Motion Compensation do just this and create a very similar artifact.

The main disadvantage of block motion compensation is that it introduces discontinuities at the block borders (blocking artifacts). These artifacts appear in the form of sharp horizontal and vertical edges which are easily spotted by the human eye and produce false edges and ringing effects (large coefficients in high frequency sub-bands) due to quantization of coefficients of the Fourier-related transform used for transform coding of the residual frames.

This seems like a very likely culprit for the vertical banding being seen in the Primesense devices.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants