Giter Site home page Giter Site logo

huangjh-pub / di-fusion Goto Github PK

View Code? Open in Web Editor NEW
121.0 3.0 14.0 620 KB

[CVPR'21] [Jittor & Pytorch] DI-Fusion: Online Implicit 3D Reconstruction with Deep Priors

Python 43.12% CMake 0.35% Cuda 45.46% C++ 2.93% C 8.14%
3d-reconstruction deep-learning implicit-representation slam

di-fusion's Introduction

DI-Fusion

This repository contains the implementation of our CVPR 2021 paper: DI-Fusion: Online Implicit 3D Reconstruction with Deep Priors.

Jiahui Huang, Shi-Sheng Huang, Haoxuan Song, Shi-Min Hu

Introduction

DI-Fusion (Deep Implicit Fusion) is a novel online 3D reconstruction system based on RGB-D streams. It simultaneously localizes the camera and builds a local implicit map parametrized by a deep network. Please refer to our technical report and video for more details.

Implementations

We provide two implementations based on Jittor and Pytorch (the latter is also available on the public branch). Please refer to the corresponding folders jittor/ and pytorch/ for specific build and running instructions.

Citation

Please consider citing the following work:

@inproceedings{huang2021difusion,
  title={DI-Fusion: Online Implicit 3D Reconstruction with Deep Priors},
  author={Huang, Jiahui and Huang, Shi-Sheng and Song, Haoxuan and Hu, Shi-Min},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2021}
}

di-fusion's People

Contributors

heiwang1997 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

di-fusion's Issues

Problem while trying to Generate the data

I am in the first step of building the project in order to generate the data, I am having issues with that.

I followed the same instalation instruction of deepSDF and built :

  • CLI11
  • EIGEN
  • PANGOLIN
  • FLANN

I have cuda 11.7 and Ubuntu 22.04, Any clue what would be the problem ?

"make -j
[ 40%] Building CUDA object CMakeFiles/PreprocessMeshCUDA.dir/Utils.cu.o
[ 40%] Building CUDA object CMakeFiles/PreprocessMeshCUDA.dir/PreprocessMesh.cu.o
[ 60%] Building CXX object CMakeFiles/PreprocessMeshCUDA.dir/ShaderProgram.cpp.o
In file included from /usr/local/include/pangolin/gl/glsl.h:232,
from /home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/ShaderProgram.cpp:3:
/usr/local/include/pangolin/gl/glsl.hpp: In function ‘bool pangolin::IsLinkSuccessPrintLog(GLhandleARB)’:
/usr/local/include/pangolin/gl/glsl.hpp:19:5: error: ‘glGetProgramiv’ was not declared in this scope
19 | glGetProgramiv(prog, GL_LINK_STATUS, &status);
| ^~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp:25:9: error: ‘glGetProgramInfoLog’ was not declared in this scope
25 | glGetProgramInfoLog(prog, PROGRAM_LOG_MAX_LEN, &len, infolog);
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/pangolin/gl/glsl.h:232,
from /home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/ShaderProgram.cpp:3:
/usr/local/include/pangolin/gl/glsl.hpp: In function ‘bool pangolin::IsCompileSuccessPrintLog(GLhandleARB, const string&, const string&)’:
/usr/local/include/pangolin/gl/glsl.hpp:51:5: error: ‘glGetShaderiv’ was not declared in this scope
51 | glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
| ^~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp:57:9: error: ‘glGetShaderInfoLog’ was not declared in this scope
57 | glGetShaderInfoLog(shader, SHADER_LOG_MAX_LEN, &len, infolog);
| ^~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In destructor ‘pangolin::GlSlProgram::~GlSlProgram()’:
/usr/local/include/pangolin/gl/glsl.hpp:88:9: error: ‘glDeleteProgram’ was not declared in this scope; did you mean ‘GlSlProgram’?
88 | glDeleteProgram(prog);
| ^~~~~~~~~~~~~~~
| GlSlProgram
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘bool pangolin::GlSlProgram::AddPreprocessedShader(pangolin::GlSlShaderType, const string&, const string&)’:
/usr/local/include/pangolin/gl/glsl.hpp:108:16: error: ‘glCreateProgram’ was not declared in this scope
108 | prog = glCreateProgram();
| ^~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp:111:26: error: ‘glCreateShader’ was not declared in this scope; did you mean ‘GlSlVertexShader’?
111 | GLhandleARB shader = glCreateShader(shader_type);
| ^~~~~~~~~~~~~~
| GlSlVertexShader
/usr/local/include/pangolin/gl/glsl.hpp:113:5: error: ‘glShaderSource’ was not declared in this scope
113 | glShaderSource(shader, 1, &source, NULL);
| ^~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp:114:5: error: ‘glCompileShader’ was not declared in this scope; did you mean ‘GlSlComputeShader’?
114 | glCompileShader(shader);
| ^~~~~~~~~~~~~~~
| GlSlComputeShader
/usr/local/include/pangolin/gl/glsl.hpp:117:9: error: ‘glAttachShader’ was not declared in this scope
117 | glAttachShader(prog, shader);
| ^~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::ClearShaders()’:
/usr/local/include/pangolin/gl/glsl.hpp:229:9: error: ‘glDetachShader’ was not declared in this scope
229 | glDetachShader(prog, shaders[i]);
| ^~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp:230:9: error: ‘glDeleteShader’ was not declared in this scope; did you mean ‘GlSlVertexShader’?
230 | glDeleteShader(shaders[i]);
| ^~~~~~~~~~~~~~
| GlSlVertexShader
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘bool pangolin::GlSlProgram::Link()’:
/usr/local/include/pangolin/gl/glsl.hpp:365:5: error: ‘glLinkProgram’ was not declared in this scope; did you mean ‘GlSlProgram’?
365 | glLinkProgram(prog);
| ^~~~~~~~~~~~~
| GlSlProgram
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::Bind()’:
/usr/local/include/pangolin/gl/glsl.hpp:372:5: error: ‘glUseProgram’ was not declared in this scope; did you mean ‘GlSlProgram’?
372 | glUseProgram(prog);
| ^~~~~~~~~~~~
| GlSlProgram
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SaveBind()’:
/usr/local/include/pangolin/gl/glsl.hpp:378:5: error: ‘glUseProgram’ was not declared in this scope; did you mean ‘GlSlProgram’?
378 | glUseProgram(prog);
| ^~~~~~~~~~~~
| GlSlProgram
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::Unbind()’:
/usr/local/include/pangolin/gl/glsl.hpp:383:5: error: ‘glUseProgram’ was not declared in this scope; did you mean ‘GlSlProgram’?
383 | glUseProgram(prev_prog);
| ^~~~~~~~~~~~
| GlSlProgram
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘GLint pangolin::GlSlProgram::GetAttributeHandle(const string&)’:
/usr/local/include/pangolin/gl/glsl.hpp:388:20: error: ‘glGetAttribLocation’ was not declared in this scope
388 | GLint handle = glGetAttribLocation(prog, name.c_str());
| ^~~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘GLint pangolin::GlSlProgram::GetUniformHandle(const string&)’:
/usr/local/include/pangolin/gl/glsl.hpp:395:20: error: ‘glGetUniformLocation’ was not declared in this scope
395 | GLint handle = glGetUniformLocation(prog, name.c_str());
| ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, int)’:
/usr/local/include/pangolin/gl/glsl.hpp:402:5: error: ‘glUniform1i’ was not declared in this scope
402 | glUniform1i( GetUniformHandle(name), x);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, int, int)’:
/usr/local/include/pangolin/gl/glsl.hpp:407:5: error: ‘glUniform2i’ was not declared in this scope
407 | glUniform2i( GetUniformHandle(name), x1, x2);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, int, int, int)’:
/usr/local/include/pangolin/gl/glsl.hpp:412:5: error: ‘glUniform3i’ was not declared in this scope
412 | glUniform3i( GetUniformHandle(name), x1, x2, x3);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, int, int, int, int)’:
/usr/local/include/pangolin/gl/glsl.hpp:417:5: error: ‘glUniform4i’ was not declared in this scope
417 | glUniform4i( GetUniformHandle(name), x1, x2, x3, x4);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, float)’:
/usr/local/include/pangolin/gl/glsl.hpp:422:5: error: ‘glUniform1f’ was not declared in this scope
422 | glUniform1f( GetUniformHandle(name), f);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, float, float)’:
/usr/local/include/pangolin/gl/glsl.hpp:427:5: error: ‘glUniform2f’ was not declared in this scope
427 | glUniform2f( GetUniformHandle(name), f1,f2);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, float, float, float)’:
/usr/local/include/pangolin/gl/glsl.hpp:432:5: error: ‘glUniform3f’ was not declared in this scope
432 | glUniform3f( GetUniformHandle(name), f1,f2,f3);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, float, float, float, float)’:
/usr/local/include/pangolin/gl/glsl.hpp:437:5: error: ‘glUniform4f’ was not declared in this scope
437 | glUniform4f( GetUniformHandle(name), f1,f2,f3,f4);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, double)’:
/usr/local/include/pangolin/gl/glsl.hpp:442:5: error: ‘glUniform1d’ was not declared in this scope
442 | glUniform1d( GetUniformHandle(name), f);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, double, double)’:
/usr/local/include/pangolin/gl/glsl.hpp:447:5: error: ‘glUniform2d’ was not declared in this scope
447 | glUniform2d( GetUniformHandle(name), f1,f2);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, double, double, double)’:
/usr/local/include/pangolin/gl/glsl.hpp:452:5: error: ‘glUniform3d’ was not declared in this scope
452 | glUniform3d( GetUniformHandle(name), f1,f2,f3);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, double, double, double, double)’:
/usr/local/include/pangolin/gl/glsl.hpp:457:5: error: ‘glUniform4d’ was not declared in this scope
457 | glUniform4d( GetUniformHandle(name), f1,f2,f3,f4);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, pangolin::Colour)’:
/usr/local/include/pangolin/gl/glsl.hpp:462:5: error: ‘glUniform4f’ was not declared in this scope
462 | glUniform4f( GetUniformHandle(name), c.r, c.g, c.b, c.a);
| ^~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetUniform(const string&, const pangolin::OpenGlMatrix&)’:
/usr/local/include/pangolin/gl/glsl.hpp:472:5: error: ‘glUniformMatrix4fv’ was not declared in this scope
472 | glUniformMatrix4fv( GetUniformHandle(name), 1, GL_FALSE, m);
| ^~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::BindPangolinDefaultAttribLocationsAndLink()’:
/usr/local/include/pangolin/gl/glsl.hpp:529:5: error: ‘glBindAttribLocation’ was not declared in this scope
529 | glBindAttribLocation(prog, DEFAULT_LOCATION_POSITION, DEFAULT_NAME_POSITION);
| ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘GLint pangolin::GlSlProgram::GetProgramResourceIndex(const string&)’:
/usr/local/include/pangolin/gl/glsl.hpp:539:12: error: ‘glGetProgramResourceIndex’ was not declared in this scope; did you mean ‘GetProgramResourceIndex’?
539 | return glGetProgramResourceIndex(prog, GL_SHADER_STORAGE_BLOCK, name.c_str());
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| GetProgramResourceIndex
/usr/local/include/pangolin/gl/glsl.hpp: In member function ‘void pangolin::GlSlProgram::SetShaderStorageBlock(const string&, const int&)’:
/usr/local/include/pangolin/gl/glsl.hpp:544:5: error: ‘glShaderStorageBlockBinding’ was not declared in this scope
544 | glShaderStorageBlockBinding(prog, GetProgramResourceIndex(name), bindingIndex);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/PreprocessMeshCUDA.dir/build.make:90: CMakeFiles/PreprocessMeshCUDA.dir/ShaderProgram.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/usr/local/include/pangolin/gl/gl.hpp(348): error: identifier "glCopyImageSubDataNV" is undefined

/usr/local/include/pangolin/gl/gl.hpp(522): error: identifier "glDeleteRenderbuffersEXT" is undefined

/usr/local/include/pangolin/gl/gl.hpp(527): error: identifier "glGenRenderbuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(528): error: identifier "glBindRenderbuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(529): error: identifier "glRenderbufferStorage" is undefined

/usr/local/include/pangolin/gl/gl.hpp(536): error: identifier "glDeleteRenderbuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(585): error: identifier "glDeleteFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(592): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(600): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(609): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(619): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(630): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(641): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(642): error: identifier "glDrawBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(648): error: identifier "glDeleteFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(650): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(655): error: identifier "glDrawBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(656): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(664): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(665): error: identifier "glFramebufferTexture2D" is undefined

/usr/local/include/pangolin/gl/gl.hpp(676): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(678): error: identifier "glFramebufferRenderbuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(734): error: identifier "glDeleteBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(751): error: identifier "glGenBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(759): error: identifier "glBufferData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(765): error: identifier "glBindBuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(770): error: identifier "glBindBuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(780): error: identifier "glBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(787): error: identifier "glGetBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(862): error: identifier "glGetBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(863): error: identifier "glBufferData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(864): error: identifier "glBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(969): error: identifier "glGenVertexArrays" is undefined

/usr/local/include/pangolin/gl/gl.hpp(974): error: identifier "glDeleteVertexArrays" is undefined

/usr/local/include/pangolin/gl/gl.hpp(979): error: identifier "glBindVertexArray" is undefined

/usr/local/include/pangolin/gl/gl.hpp(985): error: identifier "glBindVertexArray" is undefined

/usr/local/include/pangolin/gl/gl.hpp(993): error: identifier "glVertexAttribPointer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(995): error: identifier "glEnableVertexAttribArray" is undefined

/usr/local/include/pangolin/gl/gl.hpp(348): error: identifier "glCopyImageSubDataNV" is undefined

/usr/local/include/pangolin/gl/gl.hpp(522): error: identifier "glDeleteRenderbuffersEXT" is undefined

/usr/local/include/pangolin/gl/gl.hpp(527): error: identifier "glGenRenderbuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(528): error: identifier "glBindRenderbuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(529): error: identifier "glRenderbufferStorage" is undefined

/usr/local/include/pangolin/gl/gl.hpp(536): error: identifier "glDeleteRenderbuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(585): error: identifier "glDeleteFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(592): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(600): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(609): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(619): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(630): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(641): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(642): error: identifier "glDrawBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(648): error: identifier "glDeleteFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(650): error: identifier "glGenFramebuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(655): error: identifier "glDrawBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(656): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(664): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(665): error: identifier "glFramebufferTexture2D" is undefined

/usr/local/include/pangolin/gl/gl.hpp(676): error: identifier "glBindFramebuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(678): error: identifier "glFramebufferRenderbuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(734): error: identifier "glDeleteBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(751): error: identifier "glGenBuffers" is undefined

/usr/local/include/pangolin/gl/gl.hpp(759): error: identifier "glBufferData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(765): error: identifier "glBindBuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(770): error: identifier "glBindBuffer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(780): error: identifier "glBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(787): error: identifier "glGetBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(862): error: identifier "glGetBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(863): error: identifier "glBufferData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(864): error: identifier "glBufferSubData" is undefined

/usr/local/include/pangolin/gl/gl.hpp(969): error: identifier "glGenVertexArrays" is undefined

/usr/local/include/pangolin/gl/gl.hpp(974): error: identifier "glDeleteVertexArrays" is undefined

/usr/local/include/pangolin/gl/gl.hpp(979): error: identifier "glBindVertexArray" is undefined

/usr/local/include/pangolin/gl/gl.hpp(985): error: identifier "glBindVertexArray" is undefined

/usr/local/include/pangolin/gl/gl.hpp(993): error: identifier "glVertexAttribPointer" is undefined

/usr/local/include/pangolin/gl/gl.hpp(995): error: identifier "glEnableVertexAttribArray" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(19): error: identifier "glGetProgramiv" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(25): error: identifier "glGetProgramInfoLog" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(51): error: identifier "glGetShaderiv" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(57): error: identifier "glGetShaderInfoLog" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(88): error: identifier "glDeleteProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(108): error: identifier "glCreateProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(111): error: identifier "glCreateShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(113): error: identifier "glShaderSource" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(114): error: identifier "glCompileShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(117): error: identifier "glAttachShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(229): error: identifier "glDetachShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(230): error: identifier "glDeleteShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(19): error: identifier "glGetProgramiv" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(25): error: identifier "glGetProgramInfoLog" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(51): error: identifier "glGetShaderiv" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(57): error: identifier "glGetShaderInfoLog" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(88): error: identifier "glDeleteProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(108): error: identifier "glCreateProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(111): error: identifier "glCreateShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(113): error: identifier "glShaderSource" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(114): error: identifier "glCompileShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(117): error: identifier "glAttachShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(365): error: identifier "glLinkProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(372): error: identifier "glUseProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(378): error: identifier "glUseProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(383): error: identifier "glUseProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(388): error: identifier "glGetAttribLocation" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(395): error: identifier "glGetUniformLocation" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(402): error: identifier "glUniform1i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(407): error: identifier "glUniform2i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(412): error: identifier "glUniform3i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(417): error: identifier "glUniform4i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(422): error: identifier "glUniform1f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(427): error: identifier "glUniform2f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(432): error: identifier "glUniform3f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(437): error: identifier "glUniform4f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(442): error: identifier "glUniform1d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(447): error: identifier "glUniform2d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(452): error: identifier "glUniform3d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(457): error: identifier "glUniform4d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(462): error: identifier "glUniform4f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(472): error: identifier "glUniformMatrix4fv" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(529): error: identifier "glBindAttribLocation" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(539): error: identifier "glGetProgramResourceIndex" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(544): error: identifier "glShaderStorageBlockBinding" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(229): error: identifier "glDetachShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(230): error: identifier "glDeleteShader" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(365): error: identifier "glLinkProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(372): error: identifier "glUseProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(378): error: identifier "glUseProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(383): error: identifier "glUseProgram" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(388): error: identifier "glGetAttribLocation" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(395): error: identifier "glGetUniformLocation" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(402): error: identifier "glUniform1i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(407): error: identifier "glUniform2i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(412): error: identifier "glUniform3i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(417): error: identifier "glUniform4i" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(422): error: identifier "glUniform1f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(427): error: identifier "glUniform2f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(432): error: identifier "glUniform3f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(437): error: identifier "glUniform4f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(442): error: identifier "glUniform1d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(447): error: identifier "glUniform2d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(452): error: identifier "glUniform3d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(457): error: identifier "glUniform4d" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(462): error: identifier "glUniform4f" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(472): error: identifier "glUniformMatrix4fv" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(529): error: identifier "glBindAttribLocation" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(539): error: identifier "glGetProgramResourceIndex" is undefined

/usr/local/include/pangolin/gl/glsl.hpp(544): error: identifier "glShaderStorageBlockBinding" is undefined

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(99): error: namespace "pangolin" has no member "get"

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(99): error: type name is not allowed

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(110): error: namespace "pangolin" has no member "get"

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(110): error: type name is not allowed

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(167): error: namespace "pangolin" has no member "get"

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(167): error: type name is not allowed

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(185): error: namespace "pangolin" has no member "get"

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu(185): error: type name is not allowed

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/PreprocessMesh.cu(75): error: no instance of function template "Eigen::CwiseBinaryOp<BinaryOp, LhsType, RhsType>::cross [with BinaryOp=Eigen::internal::scalar_difference_op<float, float>, LhsType=const Eigen::Matrix<float, 3, 1, 0, 3, 1>, RhsType=const Eigen::Matrix<float, 3, 1, 0, 3, 1>]" matches the argument list
argument types are: (const Eigen::CwiseBinaryOp<Eigen::internal::scalar_difference_op<float, float>, const Eigen::Matrix<float, 3, 1, 0, 3, 1>, const Eigen::Matrix<float, 3, 1, 0, 3, 1>>)
object type is: const Eigen::CwiseBinaryOp<Eigen::internal::scalar_difference_op<float, float>, const Eigen::Matrix<float, 3, 1, 0, 3, 1>, const Eigen::Matrix<float, 3, 1, 0, 3, 1>>

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/PreprocessMesh.cu(447): error: namespace "pangolin" has no member "get"

/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/PreprocessMesh.cu(447): error: type name is not allowed

81 errors detected in the compilation of "/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/Utils.cu".
make[2]: *** [CMakeFiles/PreprocessMeshCUDA.dir/build.make:104: CMakeFiles/PreprocessMeshCUDA.dir/Utils.cu.o] Error 1
76 errors detected in the compilation of "/home/hamza/Desktop/di-fusion/pytorch/sampler_cuda/PreprocessMesh.cu".
make[2]: *** [CMakeFiles/PreprocessMeshCUDA.dir/build.make:76: CMakeFiles/PreprocessMeshCUDA.dir/PreprocessMesh.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/PreprocessMeshCUDA.dir/all] Error 2
make: *** [Makefile:91: all] Error 2 "

Error running PreprocessMeshCUDA (libflann_cuda.so.1.9)

Hi, great work here!

I've been trying to run the data generation code (copied line generated using data_generator.py which fails):

./PreprocessMeshCUDA -m /home/data/ShapeNetCore.v2/04379243/25bc205f6de491f4ccde40b1205ec7ff/models/model_normalized.obj -s 1800000 -o ../di-datasets/shapenet_plivoxs/000598.raw -c ../di-datasets/shapenet_plivoxs/000598.cam -r 1 --surface ../di-datasets/shapenet_plivoxs/000598.surf -p 0.8 --var 0.00015 -e 0.2

I keep getting the following error:

./PreprocessMeshCUDA: error while loading shared libraries: libflann_cuda.so.1.9: cannot open shared object file: No such file or directory

Note: libflann_cuda.so.1.9 is located in /usr/local/lib

Installing flann was quite a problem. Which flann version/installation method is best used for data generation script to work?

Thank you!

Environmental Configurations Recommendations.

I have tried different environment configurations and found that there will be problems in some cases.
The recommended configuration is python 3.7 + pytorch 1.6 + pytorch_scatter 1.4 + cuda 10.1.

The following configuration will have some problems, for example
"No module named 'marching_cubes" or " CUDA error: invalid device ordinal"

The problematic configurations include:
python 3.7 + pytorch 1.7.0 + pytorch_scatter 2.3 + cuda 11.0.
python 3.7 + pytorch 1.7.1 + pytorch_scatter 2.4 + cuda 11.0.
python 3.7 + pytorch 14.0 + pytorch_scatter 1.4 + cuda 10.0.

About the scannet training scripts

Hey! Thanks for your wonderful and impressive work. I'm a newbie in computer graphics and I've tried to use the Di-Fusion to recon the RGBDs in scannet, but I encounter some problems in the data preprocessing. How can you pre-process the images as well as depths in scannet dataset? Many thanks for sharing the data! would you please tell me how to use di-fusion on scannet correctly?

Compilation failed when first run main.py

Hi ~
Thanks for sharing this great work.

when I run

python main.py configs/fusion-lr-kt.yaml --vis 1

the compilation of marching_cube failed: (following output log with __COMPILE_VERBOSE = True)

Using /home/dlr/.cache/torch_extensions/py37_cu113 as PyTorch extensions root...
Detected CUDA files, patching ldflags
Emitting ninja build file /home/dlr/.cache/torch_extensions/py37_cu113/marching_cubes/build.ninja...
Building extension module marching_cubes...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/2] :/usr/local/cuda:/usr/local/cuda/bin/nvcc  -DTORCH_EXTENSION_NAME=marching_cubes -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1013\" -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include/TH -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include/THC -isystem :/usr/local/cuda:/usr/local/cuda/include -isystem /home/dlr/anaconda3/envs/di-fusion/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_75,code=compute_75 -gencode=arch=compute_75,code=sm_75 --compiler-options '-fPIC' -std=c++14 -c /home/dlr/Project/di-fusion/pytorch/system/ext/marching_cubes/mc_interp_kernel.cu -o mc_interp_kernel.cuda.o 
FAILED: mc_interp_kernel.cuda.o 
:/usr/local/cuda:/usr/local/cuda/bin/nvcc  -DTORCH_EXTENSION_NAME=marching_cubes -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1013\" -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include/TH -isystem /home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/include/THC -isystem :/usr/local/cuda:/usr/local/cuda/include -isystem /home/dlr/anaconda3/envs/di-fusion/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_75,code=compute_75 -gencode=arch=compute_75,code=sm_75 --compiler-options '-fPIC' -std=c++14 -c /home/dlr/Project/di-fusion/pytorch/system/ext/marching_cubes/mc_interp_kernel.cu -o mc_interp_kernel.cuda.o 
/bin/sh: 1: :/usr/local/cuda:/usr/local/cuda/bin/nvcc: not found
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1814, in _run_ninja_build
    env=env)
  File "/home/dlr/anaconda3/envs/di-fusion/lib/python3.7/subprocess.py", line 512, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    from system import map
  File "/home/dlr/Project/di-fusion/pytorch/system/map.py", line 13, in <module>
    import system.ext
  File "/home/dlr/Project/di-fusion/pytorch/system/ext/__init__.py", line 19, in <module>
    verbose=__COMPILE_VERBOSE, **optimize_flags)
  File "/home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1214, in load
    keep_intermediates=keep_intermediates)
  File "/home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1435, in _jit_compile
    is_standalone=is_standalone)
  File "/home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1540, in _write_ninja_file_and_build_library
    error_prefix=f"Error building extension '{name}'")
  File "/home/dlr/anaconda3/envs/di-fusion/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1824, in _run_ninja_build
    raise RuntimeError(message) from e
RuntimeError: Error building extension 'marching_cubes'

I indeed have nvcc in my ubuntu 20.04:

(di-fusion) d@pc:~/Project/di-fusion/pytorch$ which nvcc
/usr/local/cuda/bin/nvcc
(di-fusion) d@pc:~/Project/di-fusion/pytorch$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:15:13_PDT_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0

do you know how to solve it?

No results in the Displayed Window

Hello, when I run:
python main.py configs/fusion-lr-kt.yaml --vis 1
a white window called "Implicit SLAM" is opened but without any content.

RuntimeError: merge_sort: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

When I start tracking, the first depth map can be projected, when I press ',' again, the compiler gives me this:

INFO - 2022-05-10 14:18:10,560 - map - Map size Nx = 80, Ny = 40, Nz = 80
INFO - 2022-05-10 14:18:12,698 - main - Frame ID = 0
/home/wuha/anaconda3/envs/autosdf/lib/python3.8/site-packages/torch/nn/functional.py:3609: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4.0. Please specify align_corners=True if the old behavior is desired. See the documentation of nn.Upsample for details.
  warnings.warn(
/home/wuha/anaconda3/envs/autosdf/lib/python3.8/site-packages/torch/_tensor.py:575: UserWarning: floor_divide is deprecated, and will be removed in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values.
To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor'). (Triggered internally at  /opt/conda/conda-bld/pytorch_1623448278899/work/aten/src/ATen/native/BinaryOps.cpp:467.)
  return torch.floor_divide(self, other)
INFO - 2022-05-10 14:18:13,219 - map - 3468 voxels will be updated by the encoder. Points/Voxel: avg = 71.76152801513672, min = 1.0, max = 183.0
INFO - 2022-05-10 14:18:14,416 - main - Frame ID = 1
Traceback (most recent call last):
  File "main.py", line 147, in <module>
    engine.run()
  File "main.py", line 71, in refresh
    frame_pose = vis_param.tracker.track_camera(frame_data.rgb, frame_data.depth, frame_data.calib,
  File "/home/wuha/Hanfeng/TUM/MasterSeminar/di-fusion/system/tracker.py", line 124, in track_camera
    final_pose = self.gauss_newton(self.all_pd_pose[-1].dot(lspeed), cur_intensity, cur_depth, cur_dIdxy, pc_data, calib)
  File "/home/wuha/Hanfeng/TUM/MasterSeminar/di-fusion/system/tracker.py", line 240, in gauss_newton
    sdf_H, sdf_g, sdf_energy = self.compute_sdf_Hg(i_iter, last_pose, cur_delta_pose, obs_xyz, i_iter == -1)
  File "/home/wuha/Hanfeng/TUM/MasterSeminar/di-fusion/system/tracker.py", line 191, in compute_sdf_Hg
    dsdf_dpos = torch.autograd.grad(cur_obs_sdf, [cur_obs_xyz], grad_outputs=torch.ones_like(cur_obs_sdf),
  File "/home/wuha/anaconda3/envs/autosdf/lib/python3.8/site-packages/torch/autograd/__init__.py", line 226, in grad
    return Variable._execution_engine.run_backward(
RuntimeError: merge_sort: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

Do you have encountered the same Problem? My cuda version is 11.6

No module named 'marching_cubes'

Hello,when I run python main.py configs/fusion-lr-kt.yaml --vis 1
I get the result
Using C:\Users\huangzhizhou\AppData\Local\torch_extensions\torch_extensions\Cache as PyTorch extensions root...
C:\Program Files\Python37\lib\site-packages\torch\utils\cpp_extension.py:274: UserWarning: Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
Detected CUDA files, patching ldflags
Emitting ninja build file C:\Users\huangzhizhou\AppData\Local\torch_extensions\torch_extensions\Cache\marching_cubes\build.ninja...
Building extension module marching_cubes...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
1.10.0
Loading extension module marching_cubes...
Traceback (most recent call last):
File "main.py", line 11, in
from system import map
File "H:\MeshReconstruction\di-fusion\system\map.py", line 13, in
import system.ext
File "H:\MeshReconstruction\di-fusion\system\ext_init_.py", line 16, in
verbose=__COMPILE_VERBOSE)
File "C:\Program Files\Python37\lib\site-packages\torch\utils\cpp_extension.py", line 980, in load
keep_intermediates=keep_intermediates)
File "C:\Program Files\Python37\lib\site-packages\torch\utils\cpp_extension.py", line 1196, in _jit_compile
return _import_module_from_library(name, build_directory, is_python_module)
File "C:\Program Files\Python37\lib\site-packages\torch\utils\cpp_extension.py", line 1543, in _import_module_from_library
file, path, description = imp.find_module(module_name, [path])
File "C:\Program Files\Python37\lib\imp.py", line 296, in find_module
raise ImportError(_ERR_MSG.format(name), name=name)
ImportError: No module named 'marching_cubes'

About the setting of the coordinate system

Hi:
when testing the given ICL-NUIM example, I am confused about the setting of the coordinate in class_ ICLNUIMSequence.

Specifically, therer are two code segments that confusing me:

  1. at https://github.com/huangjh-pub/di-fusion/blob/merged/pytorch/dataset/production/icl_nuim.py#L45
            cur_q[1] = -cur_q[1]
            cur_q[:, 1] = -cur_q[:, 1]
            cur_t[1] = -cur_t[1]
            cur_iso = motion_util.Isometry(q=Quaternion(matrix=cur_q), t=cur_t)
            camera_ext[cur_p[0]] = cano_quat.dot(cur_iso)
  1. at https://github.com/huangjh-pub/di-fusion/blob/merged/pytorch/dataset/production/icl_nuim.py#L32
            change_iso = self.first_iso.dot(self.gt_trajectory[0].inv())
            self.gt_trajectory = [change_iso.dot(t) for t in self.gt_trajectory]

I have check the local camera coordinate of ICL data, which is a regular coordinate: (z: forward, x: right, y: downward).:

the local coordiante of a image

so why do we need to adjust the axis orientation by above 1) and 2) and what is the meaning of them?

Since I am writing api to test on other benchmark data, your detailed explanation will be very helpful to me~

Thanks in advance!

Comparison of surface error on ICL-NUIM benchmark

I tried to repeat your surface error results after running, but found in meshlab that they were registered, but the following problems occurred when using SurfReg. So I would like to ask how you did the final error calculation work.
How cna this be resolved? # #
QQ图片20221107211846

QQ图片20221107211041

how to reproduce the Quantitative and Qualitative results in paper?

Hi~
Thank you for open-sourcing such a fascinating project, I am interested in related research on implicit scene representation based SLAM.
I am trying to reproduce some results like Tab .1 & 2 and visualize textured mesh like Fig6 &7 on ICL-nuim and scannet in your paper.
But I have not found relevant codes in the repository

could you share some relevant guidance? @heiwang1997

Changing resolution variable

Thanks for sharing your code to this project.

It appears that you require that the variable resolution > 1 i.e. 2, 3 etc. Is there a way to make it work with resolution = 1? When resolution = 1, I would assume that the grid is sampled at the voxel size so if the grid consists of X voxels, then you sample X grid points. Please correct me if I am wrong.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.