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

Color Interference Between Two Planes in 3D Reconstruction #312

Open
JacobYeah opened this issue Nov 28, 2024 · 6 comments
Open

Color Interference Between Two Planes in 3D Reconstruction #312

JacobYeah opened this issue Nov 28, 2024 · 6 comments

Comments

@JacobYeah
Copy link

I am working on a 3D reconstruction of a model consisting of two planes, but I am encountering an issue where the color of the front plane is influenced by the back plane. Specifically, the front plane's color is incorrectly showing the color block of the back plane.

Is there a way to ensure that the colors of overlapping or adjacent planes don't bleed into each other during reconstruction?

@mkazhdan
Copy link
Owner

Can you share the dataset?

@JacobYeah
Copy link
Author

JacobYeah commented Dec 1, 2024

Can you share the dataset?

The first image shows the point cloud of the back plane, colored green, and the second image shows the front plane, colored red. The third image displays the entire point cloud, which clearly indicates the distance between the front and back planes. However, in the final image—where I applied Poisson reconstruction with a depth of 15—the color of the front plane is incorrectly influenced by the back plane.

Could anyone suggest what might be causing this color interference, and how to prevent the color bleeding between the two planes?

Thank you for your help!
11
22
33
44

@mkazhdan
Copy link
Owner

mkazhdan commented Dec 1, 2024

Can you share the actual oriented point-cloud?

@JacobYeah
Copy link
Author

data.zip

This data was clipped, but it still exhibits color interference between two planes.

@mkazhdan
Copy link
Owner

mkazhdan commented Dec 3, 2024

Still not 100% sure what the issue.
Here are snapshots of the input point-cloud (visualized as colored disks, with orientation defined by the normals) and the reconstruction at depth 10.
1111 recon
1111 disks

I'm seeing a bit of a horizontal band at the top and bottom of the reconstruction. But that appears to match the slightly darker colors of the points in that region.

Note that for this visualization, I changed Reconstructors.h, Line 45 from:
static const unsigned int DataDegree = 0;
to:
static const unsigned int DataDegree = 1;
This creates a slightly smoother color interpolant, particularly in thin regions where the distance between samples on one side is on the order of the "thickness" of the region, and can remove some speckling artifacts.

Also worth noting: The color interpolation only uses distances to the input samples and not the normals. (So in thin regions, when the distance between samples is on the order of the thickness, there can be some color bleeding.)

@JacobYeah
Copy link
Author

Thank you so much for your help!
It works! I believe that adding normals as a constraint could improve the precision of the reconstruction. If needed, I’d be happy to assist with improving the code to incorporate this change.

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

2 participants