This is the first release of GPU Scanalyze in Linux. Scanalyze is an application for registering meshes using ICP and has been developed at Stanford University under the supervision of Prof. Marc Levoy (Stanford’s Scanalyze). The bottleneck of ICP is finding the pairs that are close with each other between the two meshes.
I am using Lawrence Cayton RBC in GPU for finding these pairs.
Download the attachment of this thread it in your CUDA enabled Linux machine and unzip it. Since it is supposed to run in large data sets I have made available only the 64bit version. Built in 10.10 Ubuntu server. Sorry no 32bit.
Use : Simply type ./scanalyze in the directory Scanalyze which is into the GPUScanalyze directory, created after unzipping the file.
Here is a video of how to register meshes :
GPUScanalyze Video Demo
Well it is on a Mac, the same procedure applies in Linux
The above registration is just a demo, it needed more culling in order to be precise.
Also since Lawrence RBC is extremely fast even on a million point data set sampling, use the maximum in iterations (20). The advice is not to set the sample rate above 3-4 million of points.
GPU Scanalyze will continue to evolve to include plugins like surface reconstruction etc. So far so good. I have fixed memory leaks and bad memory allocations, Lawrence RBC is memory leak proof, meaning that your GPU memory wont be dried after successive registrations.
Just to show an example I have reconstructed Stanford’s dragon. (Stanford’s data archive)
First comes the registration step where the scans provided by Stanford are aligned using GPUScanalyze :
This session involved the registration of 50+ range views and I did not find any trouble, thus the process is error proof.
Here are the data (ply file) of the aligned data set : Dragon aligned
Next I have used Poisson surface reconstruction on the aligned data set and got this very smooth result :
Here are the data (ply file) of the reconstructed 3D object : Dragon reconstructed
LinuxGPUScanalyze.zip (1.7 MB)