staticfusion
staticfusion copied to clipboard
About fps
Maybe the difference between CPU...I only get 50ms/frame on my computer. I intend to use cuda to accelerate it and use it for some further usage. Can you give me some suggestions on where to modify? I modify the kmeans algorithm to shorten it into 2ms(before it is 4ms) already.
I find that there is no cuda used in the reconstruction pipeline. Is it possible to modify the fusion part using cuda?
Hi, the reconstruction part uses OpenGL and it is already running on the GPU.
The whole tracking part is running on the CPU so in theory that could be sped up by porting it to CUDA. However, that would require heavy re-writing involving A LOT of effort.
A simple thing you can try is to change the res_factor variable. That one specifies the finest level of the pyramid that the algorithm will run on. res_factor=1 means use the full 640x480 image, res_factor=2 means 320x240 (current setting), res_factor=3 means (160x120), etc. It may come with a drop in accuracy but should be faster. I haven't much experimented with this but changing that variable may also require changing ctf_levels, which says how many levels to have in the pyramid.
I will try the simple way before I dive into it~ Many thanks! By the way, I found that the whole fusion part is not precise as ElasticFusion. something dropped? or the impact of dynamic removal?
The algorithm runs on half the resolution compared with ElasticFusion so this may make the map less detailed. Also, because we add and remove points a lot, in time this builds up to some noise getting integrated in the map.