dgrzech / sobfu

real-time 3D reconstruction of non-rigidly deforming scenes using depth data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comple sucessed, but get wrong result

BaldrLector opened this issue · comments

Hi @dgrzech , thanks for your kindly sharing of the source code, it really helps me.
However, when I compile the code and try to run it at the umbrella dataset, I find the wrong result will be produced.

Results at 149 frames,
image

Is the data need any pre-processing?
Thanks for your reply in advance, I very much appreciate it.

@BaldrLector were you able to resolve the issue?
I added a print function at line 99 of marching_cubes.cu which somehow made the module work. Below is the result on frame 116.
000116

Without adding the print function, I am getting illegal memory access because the number of active voxels would be 0. I am fairly new to CUDA programming but my assumption is that we are facing some synchronization issue where a GPU thread is accessing some part of memory not initialized.

Adding a print function is just a hack that has significantly increased the computation time. It would be very helpful if @dgrzech could look at it.

I am running the application on
OS: Ubuntu 18.04
g++: 7.5.0
GPU: NVIDIA 1060 (6GB)
Nvidia Driver Version: 450.102.04
CUDA Version: 11.0

Thanks.

I met this issue too. Thanks for @shubhMaheshwari 's help, adding a print function or __syncthreads() at line 99 of marching_cubes.cu is helpful, though I can't locate the problem.
btw I also run dynamicfusion and dynfu, and getting emtpy volume. The number of active voxels is 0. These 3 code base on the similar kfusion module. So I think these are caused by similar reason, but adding a print function at the same position is not helpful to dynamicfusion and dynfu.
My CUDA version is 10.2 .