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

add RaDeGS #317

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

add RaDeGS #317

wants to merge 2 commits into from

Conversation

BaowenZ
Copy link

@BaowenZ BaowenZ commented Aug 7, 2024

Hi! I added the Rade-GS depth and normal rendering.

@ichsan2895
Copy link

Hello, how to test for creating mesh from existing PLY with this PR?

@@ -400,7 +423,7 @@ def rasterization(
"tile_size": tile_size,
"n_cameras": C,
}
return render_colors, render_alphas, meta
return render_colors, render_alphas, expected_depth, median_depths, expected_normal, meta

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is meant to be merged, tests and the other training scripts in examples need to be adapted to this API change.

image = imageio.imread(self.parser.image_paths[index])[..., :3]
image = imageio.imread(self.parser.image_paths[index])
if image.shape[-1]==4:
mask = image[...,-1]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the conversion to a binary mask be done here? (you're doing data["mask"]/255<0.5 later on)

@ichsan2895
Copy link

Any news on this PR?

Comment on lines +214 to +220
mat3x2<T> nJ_inv_T = mat3x2<T>(vv + 1, -uv, // 1st column
-uv, uu + 1, // 2nd column
-u, -v // 3nd column
);
T factor = l / (uu + vv + 1);
vec3<T> Cinv_uvh_n = glm::normalize(Cinv_uvh);
T u_Cinv_u_n_clmap = max(glm::dot(Cinv_uvh_n, uvh), 1E-7);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @BaowenZ , I am a little bit lost here and can not align the code with the equation in original paper. Is there any hint?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is related to further derivation of the rendering equation. The plane vector is $\frac{\Sigma'^{-1}v'}{v'^T\Sigma'^{-1}v'}$, where $\Sigma'={J}{\Sigma}^\top{J}^\top$ and $v'=(0,0,1)^\top$. After pluging $\Sigma'$ and $v'$, the $J^{-1}v'$ is the last column of $J^{-1}$. After substracting $z$ from each term to make x, y become u, v, and reduction, we can get the code.

@BaowenZ
Copy link
Author

BaowenZ commented Aug 23, 2024

Hi, Ruilong is currently writing the code with a similar depth rendering method. And this PR might be helpful as a reference. @ichsan2895

@LearnedVector
Copy link

hi @BaowenZ can the output of RaDeGS be used in a typical gaussian splat renderer? Or does it require special modifications?

@KohsukeIde
Copy link

Appreciate your amazing work!

I have a question about the mesh extraction part of the simple_trainer_recon.py.
I have trained my Gaussians with your code and ran the code again with its checkpoint, but it gives me the following error.
Do you have any insights into this error?
I would greatly appreciate it if you could provide any assistance.

RuntimeError: [Open3D Error] (void open3d::t::geometry::kernel::voxel_grid::DepthTouchCPU(std::shared_ptropen3d::core::HashMap&, const open3d::core::Tensor&, const open3d::core::Tensor&, const open3d::core::Tensor&, open3d::core::Tensor&, open3d::t::geometry::kernel::voxel_grid::index_t, float, float, float, float, open3d::t::geometry::kernel::voxel_grid::index_t)) /root/Open3D/cpp/open3d/t/geometry/kernel/VoxelBlockGridCPU.cpp:189: No block is touched in TSDF volume, abort integration. Please check specified parameters, especially depth_scale and voxel_size

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

Successfully merging this pull request may close these issues.

6 participants