Jump to content

ScanalyzeGPU


  • Please log in to reply
3 replies to this topic

#1
agalex

agalex

    InsanelyMac Protégé

  • Members
  • PipPip
  • 59 posts
  • Gender:Male
  • Location:Greece
Dear all,

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 ( Stanford's Scanalyze ). 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 low and try ICP then a pop up will appear that you dont have enough memory.


Here is a video of how to register meshes :

GPUScanalyze Video Demo

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. You can find all the 3D data in Stanford's archives at : Stanford's 3D Scanning Repository

First comes the registration step where the scans provided by Stanford are aligned using GPUScanalyze :

Posted Image

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 :

Posted Image

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 :
Posted Image

Note : If anybody wants to participate in the development of this Software send me a PM or e-mail. When this application is ready it will be uploaded in the Mac Store for free and I will include all the names of the people who have participated. You should know CUDA + C++ + 3D Computer Graphics (or willing to learn on your own 3D computer Graphics) in order to participate. The next application that I want to embed in Scanalyze is GPU-based Poisson surface reconstruction : Highly Parallel Surface Reconstruction. Mail me if you want to participate in coding this paper.

Regards,
Alexander.

Attached Files



#2
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,123 posts
  • Gender:Male
  • Location:Brazil
agalex;

hot damn that's a lot of pixels moving around.

Scanalyze seems to work fine for me but I don't understand what to do with it except look at the pretty models.
I'm a musician, not a maths genius and I don't really know anything about 3D graphics. :D

If you want me to try anything specific, let me know.

Specs: 10.6.7 retail, 64-bit kernel and drivers, Core 2 Duo E8500, 4GB RAM, 1GB GTX 460.

Attached File  rowr.png   220.46KB   14 downloads

#3
agalex

agalex

    InsanelyMac Protégé

  • Members
  • PipPip
  • 59 posts
  • Gender:Male
  • Location:Greece
I wanted to see at the output and your GPU memory reading which is ok. A friend of mine with a MacBook Pro, NVIDIA 9700M has issues with the readings but yet again with 16 CUDA cores and 256VRAM I did not expect him to be able to run it.

#4
agalex

agalex

    InsanelyMac Protégé

  • Members
  • PipPip
  • 59 posts
  • Gender:Male
  • Location:Greece
I have added also the case when there is not enough GPU memory to perform ICP. Then a pop appears telling you so.

Cheers,
Alexander.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy