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

[WIP] Add latest Gaussian Splatting techiques to 2DGS #151

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

Conversation

hugoycj
Copy link

@hugoycj hugoycj commented Sep 8, 2024

image

yulunwu0108 and others added 13 commits June 12, 2024 21:43
- Introduced `AppearanceNetwork` and `UpsampleBlock` classes in `scene/appearance_model.py`
- Added decoupled appearance parameter and new learning rates in `ModelParams` and `OptimizationParams`
- Adjusted lambda values in `OptimizationParams` for better optimization control
- Introduced `edge_aware_normal_gradient_loss` for better edge handling
- Integrated `AppearanceModel` to support decoupled appearance handling
- Enhanced normal handling with expected normal calculation in renderer
@hugoycj hugoycj changed the title [WIP] Add latest Gaussian Splatting techique to 2DGS [WIP] Add latest Gaussian Splatting techiques to 2DGS Sep 8, 2024
@CanCanZeng
Copy link

Hello, the work you have done is impressive. I can't wait to try the code you submitted. While I am waiting for the results, could you share the comparison before and after the improvement, such as chaotic areas, textureless areas, illumination varying areas, etc.

@hugoycj
Copy link
Author

hugoycj commented Sep 9, 2024

@CanCanZeng The result heavily depends on the prior from our latest work StableNormal, you could take a loot at the StableNormal video demo for reference https://www.youtube.com/watch?v=sylXTxG_U2U

hugoycj and others added 7 commits September 12, 2024 00:54
- Add new parameters to OptimizationParams for better propagation control
- Refactor patchmatch.py to improve normal rendering and consistency checking
- Update depth and normal processing logic to handle new parameters
- Added 'rend_depth' to rendering outputs in gaussian_renderer
- Integrated generate_K function for camera intrinsic matrix in cameras
- Implemented generate_K to calculate focal lengths and principal points
- Implement normal2rotation and rotmat2quaternion functions
- Modify densify_from_depth_propagation to include propagated_normal
- Enhance detail and filter mask downsampling from 1/8 to 1/4
…e hypothesis

- Add normal vector handling during input initialization
- Refactor plane hypothesis and cost calculation with normals
- Simplify and consolidate cost propagation logic
@hugoycj
Copy link
Author

hugoycj commented Sep 16, 2024

@CanCanZeng @hbb1 We have added a modified Propagation-guided Densification to solve the hole issue in the large scenes.

Currently, the patch match algorithm input rendered normals to initialize the planar instead of randomly initialized. During the propagation, these normals remain fixed. Additionally, I've enhanced the densification step by computing scale and rotation based on both depth and normal information. Much faster and more robust than calculating the scaling using knn.

We're seeking peer review of these modifications and would greatly appreciate any feedback to further refine our method."

@hbb1
Copy link
Owner

hbb1 commented Sep 22, 2024

Awesome for contributing a stronger baseline with 2DGS. I am overwhelmed by some stuffs but once I am free, I will review the code.

hugoycj and others added 29 commits October 16, 2024 14:56
- Re-enabled storing normals and depth normals in GaussianExtractor
- Fixed background masking issue preventing redundant RGB clipping
- Adjusted normal and depth normal visualization saving logic
- Use ground truth mask for valid pixel processing in losses
- Adjust normal calculations to avoid NaN values
- Ensure accurate weighting by valid pixel count
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.

4 participants