Git Product home page Git Product logo

fusibile's Introduction

Silvano Galliani

Portfolio Badge Gmail Badge Twitter Badge

fusibile's People

Contributors

kysucix 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fusibile's Issues

offset of fused point cloud

Hi there! Thank you for providing such wonderful tool for point cloud processing, but I just found that the fused point cloud does not align very well with the ground truth points (the fused points consistently shift a little margin along one direction), is there any possible reason that caused this effect? Thank you in advance!

Non-existent documentation

Running fusible seems to require first reading the source code, as there is no documentation. If the docs are elsewhere, a link in the README.md would be most welcome.

Thanks!
Andrew

"Not enough space to save points" Problem

Hi @kysucix ,thanks for your great work and sharing.
When I run fusibile, the program log shows that "Not enough space to save points". However, the empty space of my desk is sufficient to store the point files.This problem appears in the "processing camera" once in a while. Although, the program can finally generate .ply files. I wonder will this kind of situation affect the quality of .ply files. Thanks in advance ! The problem look like this.
image

make error

[ 33%] Building NVCC (Device) object CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu(178): warning: variable "used_list" was set but never used

/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu(372): warning: variable "grid_size" was set but never used

/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu(375): warning: variable "block_size" was set but never used

ptxas info    : 64576 bytes gmem, 72 bytes cmem[3]
ptxas info    : Compiling entry function '_Z8fusibileR11GlobalStatei' for 'sm_75'
ptxas info    : Function properties for _Z8fusibileR11GlobalStatei
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 58 registers, 364 bytes cmem[0]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu: In function ‘void copy_point_cloud_to_host(GlobalState&, int, PointCloudList&)’:
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu:289:7: warning: ‘texture4[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             float texture4[4];
       ^     ~~
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu:289:7: warning: ‘texture4[1]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu:289:7: warning: ‘texture4[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu:289:7: warning: ‘texture4[2]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
Scanning dependencies of target fusibile
[ 66%] Building CXX object CMakeFiles/fusibile.dir/main.cpp.o
In file included from /diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/main.cpp:32:0:
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h: In function ‘const char* _cudaGetErrorEnum(cudaError_t)’:
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:38:12: warning: enumeration value ‘cudaErrorNvlinkUncorrectable’ not handled in switch [-Wswitch]
     switch (error)
            ^
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:38:12: warning: enumeration value ‘cudaErrorJitCompilerNotFound’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:38:12: warning: enumeration value ‘cudaErrorCooperativeLaunchTooLarge’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h: In function ‘const char* _cudaGetErrorEnum(CUresult)’:
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_PEER_ACCESS_UNSUPPORTED’ not handled in switch [-Wswitch]
     switch (error)
            ^
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_PTX’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_GRAPHICS_CONTEXT’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_NVLINK_UNCORRECTABLE’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_JIT_COMPILER_NOT_FOUND’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_ILLEGAL_ADDRESS’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_HARDWARE_STACK_ERROR’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_ILLEGAL_INSTRUCTION’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_MISALIGNED_ADDRESS’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_ADDRESS_SPACE’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_PC’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_COOPERATIVE_LAUNCH_TOO_LARGE’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_NOT_PERMITTED’ not handled in switch [-Wswitch]
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_NOT_SUPPORTED’ not handled in switch [-Wswitch]
[100%] Linking CXX executable fusibile
CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o: In function `__device_stub__Z8fusibileR11GlobalStatei(GlobalState*, int)':
/tmp/tmpxft_00007fb7_00000000-5_fusibile.cudafe1.stub.c:13: undefined reference to `__cudaPopCallConfiguration'
/tmp/tmpxft_00007fb7_00000000-5_fusibile.cudafe1.stub.c:13: undefined reference to `__cudaPopCallConfiguration'
CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o: In function `__sti____cudaRegisterAll()':
/tmp/tmpxft_00007fb7_00000000-5_fusibile.cudafe1.stub.c:2: undefined reference to `__cudaRegisterFatBinaryEnd'
CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o: In function `void fusibile_cu<float4>(GlobalState&, PointCloudList&, int)':
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu:421: undefined reference to `__cudaPushCallConfiguration'
CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o: In function `__device_stub__Z8fusibileR11GlobalStatei(GlobalState*, int)':
/tmp/tmpxft_00007fb7_00000000-5_fusibile.cudafe1.stub.c:13: undefined reference to `__cudaPopCallConfiguration'
CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o: In function `void fusibile_cu<float>(GlobalState&, PointCloudList&, int)':
/diskD/hzc/Self-Supervised-MVS/jdacs/fusion/fusibile/fusibile.cu:421: undefined reference to `__cudaPushCallConfiguration'
CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o: In function `__device_stub__Z8fusibileR11GlobalStatei(GlobalState*, int)':
/tmp/tmpxft_00007fb7_00000000-5_fusibile.cudafe1.stub.c:13: undefined reference to `__cudaPopCallConfiguration'
collect2: error: ld returned 1 exit status
CMakeFiles/fusibile.dir/build.make:109: recipe for target 'fusibile' failed
make[2]: *** [fusibile] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/fusibile.dir/all' failed
make[1]: *** [CMakeFiles/fusibile.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

How can I solve this question?

Artifacts far from the object for dino sparse ring

I was able to get a successful reconstruction with:

Ubuntu 14.04
GTX Titan X
Dino Sparse Ring
gipuma 7c6056b2ec0de742fa5c7608bc367fce37f76bc0
fusible 4646d91
Debug build configuration

However, there are some major artifacts very far from the dino in one specific direction:

fusible_dino_sparse_ring_artifact00

This seems likely to be a coding error, rather than a bad heuristic or something, since the camera positions are more or less symmetric. Perhaps there is a gap in the detection of the ring topology or something?

Error: no kernel image is available for execution on the device

Hi, @kysucix
I come across such problem when i want to do post processing of the output from mvenet
there is a py script to utilize the executable binary fusibile
here is the output

./fusibile/build/fusibile -input_folder ./test_scan9_90422/points_mvsnet/ -p_folder ./test_scan9_90422/points_mvsnet/cams/ -images_folder ./test_scan9_90422/points_mvsnet/images/ --depth_min=0.001 --depth_max=100000 --normal_thresh=360 --disp_thresh=0.25 --num_consistent=3.0
Command-line parameter error: unknown option -input_folder
input folder is ./test_scan9_90422/points_mvsnet/
image folder is ./test_scan9_90422/points_mvsnet/images/
p folder is ./test_scan9_90422/points_mvsnet/cams/
pmvs folder is
numImages is 49
img_filenames is 49
Device memory used: 166.592514MB
Device memory used: 166.592514MB
P folder is ./test_scan9_90422/points_mvsnet/cams/
numCameras is 49
Camera size is 49
Accepted intersection angle of central rays is 10.000000 to 30.000000 degrees
Selected views: 49
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
Reading normals and depth from disk
Size consideredIds is 49
Reading normal 0
Reading disp 0
Reading normal 1
Reading disp 1
...
Reading normal 48
Reading disp 48
Resizing globalstate to 49
Run cuda
Run gipuma
Grid size initrand is grid: 13-10 block: 32-32
Device memory used: 407.764984MB
Number of iterations is 8
Blocksize is 15x15
Disparity threshold is  0.250000
Normal threshold is     6.283185
Number of consistent points is  3
Cam scale is    1.000000
Fusing points
Processing camera 0
Found 0.00 million points
Processing camera 1
Found 0.00 million points
...
Processing camera 48
Found 0.00 million points
                ELAPSED 0.055763 seconds
Error: no kernel image is available for execution on the device
Writing ply file ./test_scan9_90422/points_mvsnet//consistencyCheck-20190423-203951//final3d_model.ply
store 3D points to ply file

i have 49 images in my images folder and i have got no result folder or files after the executation
btw,i run it on my ubuntu 16.04 system with GTX1080 graphic card
tensorflow-gpu 1.5.0+cuda9.0+cudnn7.0
opencv 4.0.0
gcc 5.4.0

what wrong with it, and any idea how to fix it?
much thx for your help

Something wrong with AlgorithmParameters

int main(int argc, char **argv)
{

    AlgorithmParameters* algParameters = new AlgorithmParameters; // segmentation fault

    return 0;
  
}

gdb says : Program terminated with signal SIGSEGV,Segmentation fault.

I don't know much about c/c++ ,only took a course in college.

My gcc and g++ version are both 7.5.0.
OS is Ubuntu 20.04 with CUDA 10.2 ,OpenCV 4.5.3.

Update 1
By adding following debug settings to CMakeList.txt , The error become clear

SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

Now the error is
图片
Saddly I still don't understand why this error occurs here , it looks good to me.

Update 2
I switched gcc and g++ to 5.4.0.
OS still is Ubuntu 20.04 with CUDA 9.0 ,OpenCV 4.5.3.
update 1 error occurs in this environment.

Update 3
After step to step debug,it looks somethings wrong with my CUDA memory
图片
Can't run NVIDIA-CUDA-SAMPLE/1_Utilities/UnifiedMemoryPerf
图片

Update 4
I'm running fusibile on vGPU
according to this topic
I found out that unified memory is not supported from inside a VM with vGPU (only via pass-through mode).
It might be the culprit

Update 5
vGPU and Unified Memory
图片

Compilation Error

Hello, I am trying to compile the algorithm and when doing make I get the following error. Any idea or help would be greatly appreciated. Thanks!

"make
[ 33%] Building NVCC (Device) object CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o
ptxas info : 77824 bytes gmem, 72 bytes cmem[3]
ptxas info : Compiling entry function '_Z8fusibileR11GlobalStatei' for 'sm_30'
ptxas info : Function properties for _Z8fusibileR11GlobalStatei
8192 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 49 registers, 332 bytes cmem[0], 20 bytes cmem[2]
ptxas info : 77824 bytes gmem, 72 bytes cmem[3]
ptxas info : Compiling entry function '_Z8fusibileR11GlobalStatei' for 'sm_52'
ptxas info : Function properties for _Z8fusibileR11GlobalStatei
8192 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 56 registers, 332 bytes cmem[0], 20 bytes cmem[2]
Scanning dependencies of target fusibile
[ 66%] Building CXX object CMakeFiles/fusibile.dir/main.cpp.o
In file included from /media/smarty/Storage2/tools/fusibile/main.cpp:32:0:
/media/smarty/Storage2/tools/fusibile/helper_cuda.h: In function ‘const char* _cudaGetErrorEnum(cudaError_t)’:
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:38:12: warning: enumeration value ‘cudaErrorNvlinkUncorrectable’ not handled in switch [-Wswitch]
switch (error)
^
/media/smarty/Storage2/tools/fusibile/helper_cuda.h: In function ‘const char* _cudaGetErrorEnum(CUresult)’:
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_PEER_ACCESS_UNSUPPORTED’ not handled in switch [-Wswitch]
switch (error)
^
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_PTX’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_GRAPHICS_CONTEXT’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_NVLINK_UNCORRECTABLE’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_ILLEGAL_ADDRESS’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_HARDWARE_STACK_ERROR’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_ILLEGAL_INSTRUCTION’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_MISALIGNED_ADDRESS’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_ADDRESS_SPACE’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_INVALID_PC’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_NOT_PERMITTED’ not handled in switch [-Wswitch]
/media/smarty/Storage2/tools/fusibile/helper_cuda.h:293:12: warning: enumeration value ‘CUDA_ERROR_NOT_SUPPORTED’ not handled in switch [-Wswitch]
"

error of 'make'

Hello, I got the problem when I run 'make', the errors are as follows, could you please help me?

[ 33%] Building NVCC (Device) object CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o
In file included from /test/fusibile-master/globalstate.h:21:0,
from /test/fusibile-master/fusibile.cu:9:
/usr/local/cuda/include/cuda_gl_interop.h:66:10: fatal error: GL/gl.h: No such file or directory
#include <GL/gl.h>
^~~~~~~~~
compilation terminated.
CMake Error at fusibile_generated_fusibile.cu.o.cmake:219 (message):
Error generating
/test/fusibile-master/CMakeFiles/fusibile.dir//./fusibile_generated_fusibile.cu.o

CMakeFiles/fusibile.dir/build.make:63: recipe for target 'CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o' failed
make[2]: *** [CMakeFiles/fusibile.dir/fusibile_generated_fusibile.cu.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/fusibile.dir/all' failed
make[1]: *** [CMakeFiles/fusibile.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

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.