This is the first release of GPU Scanalyze. Scanalyze is an application for registering meshes using ICP and has been developed at Stanford University under the supervision of Prof. Marc Levoy. The bottleneck of ICP is finding the pairs that are close with each other between the two meshes.
I am using for the time being (and I think will be using) Lawrence Cayton RBC in GPU for finding these pairs.
For the time being it only registers ply files.
Download it in your CUDA enabled Mac and use it either as a hobby or professionally for small to very large datasets. The advice is not to set the sample rate above 3-4 million of points.
Use : Unzip the attached application and double click on the Michelangelo head icon. Simple as that.
Important note : In order to run the ICP process of GPUScanalyze you should have sufficient GPU memory. For this reason I have put at the lower right end two meters of the form CPU:xxx / GPU:xxx
The first meter indicates how much memory GPUScanalyze occupies on the CPU side (Host side) and the GPU meter tells you how much remaining GPU memory you have for CUDA purposes. If the GPU meter is very low ICP might not run, ICP is not performed in this case and a pop up appears telling you so.
Here is a video of how to register meshes :
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).
GPU Scanalyze will continue to evolve to include plugins like surface reconstruction etc and when it is mature it will go into the Apple Mac Store. So far so good. I have fixed memory leaks and bad memory allocations, meaning that you will not be screaming at your screen if Scanalyze throws a memory exception in the middle of a tedious session. 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.
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
Also here is a nice setting to run ScanalyzeGPU. A dual monitor. On one screen the main window and on the other the tools needed for ICP :
ScanalyzeGPU.zip (826 KB)