jonathonluiten / diff-gaussian-rasterization-w-depth Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Hi @JonathonLuiten , thanks for sharing your dynamic 3D gaussian work! May I ask the reason why you use median depth instead of the accumulated depth ( alpha blend the depth in the same way as color) to get the rendered depth image? I do find the former one achieves a cleaner depth map with less long tail effect, but I believe the latter is more friendly to back-propogate the gradient of depth to the gaussians, just curious about your motivation of making this decision choice for you dynamic gaussian splatting paper.
Hello,
Is it possible to render just single pixel which returns the color of each single ray from different colmap camera positions using depth/diff-gaussian-rasterization?
I am interested in getting final color at particular location for different view directions, by providing 3DGS pointcloud, location of target pixel for tracking in first fully rasterized image using first colmap camera pose from colmap pose sequence or 3D location in scene (how to find it?), and colmap camera poses.
Can you please guide me to achieve this?
Hi,
I want to ask what is exact definition of the depth. Is it the z-value depth? or the depth in the camera space after world_to_camera projection?
Many Thanks
Is this support drawing the Gaussian geometry in the image?
setup.py cannot be run because of a missing folder/library. Kindly clarify.
It seems that the viewmatrix (w2c) in GaussianRasterizationSettings is not differentiable. When traversing through grad_fn.next_functions.
# l1 + dssim
loss.backward()
grad_fn = loss.grad_fn
while grad_fn is not None:
print(grad_fn)
grad_fn = grad_fn.next_functions[0][0]
output:
<AddBackward0 object at 0x7f97e9d962b0>
<AddBackward0 object at 0x7f97e9d96310>
<MulBackward0 object at 0x7f97e9d962b0>
<MeanBackward0 object at 0x7f97e9d96310>
<AbsBackward0 object at 0x7f97e9d962b0>
<SubBackward0 object at 0x7f97e9d96310>
<MaskedSelectBackward0 object at 0x7f97e9d962b0>
<torch.autograd.function._RasterizeGaussiansBackward object at 0x7f97e9d7c140>
<AccumulateGrad object at 0x7f97e9d962b0>
I couldn't find the gradient function for viewmatrix. Do I need to edit the backward function of GaussianRasterization to compute the gradient of the camera view? Are there any other methods available? Thanks.
(splatam) root@carlos:/SplaTAM/diff-gaussian-rasterization-w-depth.git# python setup.py install
Traceback (most recent call last):
File "setup.py", line 13, in
from torch.utils.cpp_extension import CUDAExtension, BuildExtension
File "/usr/local/lib/python3.8/dist-packages/torch/init.py", line 191, in
_load_global_deps()
File "/usr/local/lib/python3.8/dist-packages/torch/init.py", line 153, in _load_global_deps
ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
File "/usr/lib/python3.8/ctypes/init.py", line 373, in init
self._handle = _dlopen(self._name, mode)
OSError: /opt/hpcx/ompi/lib/libmpi.so.40: undefined symbol: opal_hwloc201_hwloc_get_type_depth
running install
...
running build_py
warning: build_py: byte-compiling is disabled, skipping.
running build_ext
***/DynamicGaussian/.venv/lib/python3.9/site-packages/torch/utils/cpp_extension.py:820: UserWarning: There are no x86_64-linux-gnu-g++ version bounds defined for CUDA version 11.6
warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
building 'diff_gaussian_rasterization._C' extension
/usr/local/cuda/bin/nvcc -I/***/DynamicGaussian/.venv/lib/python3.9/site-packages/torch/include -I/***/DynamicGaussian/.venv/lib/python3.9/site-packages/torch/include/torch/csrc/api/include -I/***/DynamicGaussian/.venv/lib/python3.9/site-packages/torch/include/TH -I/***/DynamicGaussian/.venv/lib/python3.9/site-packages/torch/include/THC -I/usr/local/cuda/include -I/***/DynamicGaussian/.venv/include -I/usr/include/python3.9 -c cuda_rasterizer/backward.cu -o build/temp.linux-x86_64-cpython-39/cuda_rasterizer/backward.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options '-fPIC' -I/***/DynamicGaussian/diff-gaussian-rasterization/third_party/glm/ -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1011\" -DTORCH_EXTENSION_NAME=_C -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_70,code=compute_70 -gencode=arch=compute_70,code=sm_70 -std=c++14
In file included from cuda_rasterizer/backward.cu:12:0:
cuda_rasterizer/backward.h:19:10: fatal error: glm/glm.hpp: No such file or directory
#include <glm/glm.hpp>
^~~~~~~~~~~~~
compilation terminated.
error: command '/usr/local/cuda/bin/nvcc' failed with exit code 1
Hi thanks for the work!
I am using splatam and want to install pypose which requires at least torch 1.13, however, the rasterization needs 1.12, hence there is a conflict.
If i want to run the splatam (import the gs package) with torch=1.13, do you know how i can manage it?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.