Scanalyze GPU for Windows 7 Graphics and 3D Vision using CUDA
Dear all,

This is a release of GPU Scanalyze 64bit for Windows 7 (I am stressing that you should have a 64bit Windows 7 OS and have downloaded the 64bit CUDA Toolkit Version 4 or above). 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.

Download it in your CUDA enabled Windows 7 64bit PC and use it either as a hobby or professionally (yes it is a Professional registration tool since it is in 64bit) for small to very large datasets. I have tested it registering two 25 Millions of Points datasets and it works (the larger the mesh, the less sampling rate you should use).

Use : Unzip (rather unrar :-) the application and go into ScanalyzeGPU64bit/scanalyze and double click scanalyze.bat.

[b]Important note [/b]: [i]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 ScanalyzeGPU 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.

Here is a video of how to register meshes :

[url="http://www.iit.demokritos.gr/%7Eagalex/GPUScanalyze.mov"]Scanalyze GPU Video Demo[/url]

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).

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 :

[img]http://users.iit.demokritos.gr/%7Eagalex/dragon_reconst/dragon_aligned.jpg[/img]

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 : [url="http://users.iit.demokritos.gr/%7Eagalex/dragon_reconst/dragon_aligned.zip"]Dragon aligned[/url]

Next I have used Poisson surface reconstruction on the aligned data set and got this very smooth result :

[img]http://users.iit.demokritos.gr/%7Eagalex/dragon_reconst/dragon_reconstructed.jpg[/img]

Here are the data (ply file) of the reconstructed 3D object : [url="http://users.iit.demokritos.gr/%7Eagalex/dragon_reconst/dragon_reconstructed.zip"]Dragon reconstructed[/url]

If you use it for commercial, educational purposes please mention that Scanalyze was created in Stanford University and if you like my name.

Scanalyze GPU Download link : [url="http://www.iit.demokritos.gr/%7Eagalex/ScanalyzeGPU64bit.rar"]ScanalyzeGPU64bit[/url]

Regards,
Alexander.
Dear all,



This is a release of GPU Scanalyze 64bit for Windows 7 (I am stressing that you should have a 64bit Windows 7 OS and have downloaded the 64bit CUDA Toolkit Version 4 or above). 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.



Download it in your CUDA enabled Windows 7 64bit PC and use it either as a hobby or professionally (yes it is a Professional registration tool since it is in 64bit) for small to very large datasets. I have tested it registering two 25 Millions of Points datasets and it works (the larger the mesh, the less sampling rate you should use).



Use : Unzip (rather unrar :-) the application and go into ScanalyzeGPU64bit/scanalyze and double click scanalyze.bat.



Important note : [i]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 ScanalyzeGPU 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.



Here is a video of how to register meshes :



Scanalyze GPU 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).



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 :



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 :



Image



Here are the data (ply file) of the reconstructed 3D object : Dragon reconstructed



If you use it for commercial, educational purposes please mention that Scanalyze was created in Stanford University and if you like my name.



Scanalyze GPU Download link : ScanalyzeGPU64bit



Regards,

Alexander.

Dr. Alexander Agathos Degree in Maths, PhD in Computer Science (specialization in Computer Graphics)

Researcher in HPC, Department of Mathematics and Informatics, West University of Timisoara, Romania.

[email="agalex@iit.demokritos.gr"]Email[/email]

Website

--------------------
A famous researcher in parallelism said : Parallelism is a great problem. The basic question is though are you part of the solution or part of the problem?

The challenges of parallel computing are simple to enumerate : expose lots of parallelism and minimize communication (said another way : maximize locality)

The more complicated you present a subject the less you have really mastered it...Albert Einstein.

#1
Posted 08/06/2011 10:44 PM   
If the program produces an assertion fault inspite of having installed the most recent graphics driver maybe you should do a clean install meaning uninstalling the driver and installing it again, it is not a Software issue, it is Nvidia's and Windows 7 issue...unfortunately I can't help you on this.

1/11/2011 : Problem solved the assertion on some machine fails and on some machine succeeds but this has no effect luckily to Scanalyze, so erased it.
If the program produces an assertion fault inspite of having installed the most recent graphics driver maybe you should do a clean install meaning uninstalling the driver and installing it again, it is not a Software issue, it is Nvidia's and Windows 7 issue...unfortunately I can't help you on this.



1/11/2011 : Problem solved the assertion on some machine fails and on some machine succeeds but this has no effect luckily to Scanalyze, so erased it.

Dr. Alexander Agathos Degree in Maths, PhD in Computer Science (specialization in Computer Graphics)

Researcher in HPC, Department of Mathematics and Informatics, West University of Timisoara, Romania.

[email="agalex@iit.demokritos.gr"]Email[/email]

Website

--------------------
A famous researcher in parallelism said : Parallelism is a great problem. The basic question is though are you part of the solution or part of the problem?

The challenges of parallel computing are simple to enumerate : expose lots of parallelism and minimize communication (said another way : maximize locality)

The more complicated you present a subject the less you have really mastered it...Albert Einstein.

#2
Posted 10/31/2011 08:17 PM   
Update :The 64bit version of Scanalyze has been used by the [url="http://www.zamani-project.org/welcome"]Zamani Project[/url] to reconstruct a site on the island [color="#222222"][font="arial, sans-serif"][size="2"]Songo Mnara, an island off the [/size][/font][/color][color="#222222"][font="arial, sans-serif"][size="2"]coast of Tanzania. The scans consisted of billion of points which only a 64bit program can handle and this is questionable. Scanalyze can cope but it had to be ported on 64 bit which I did after a lot of effort. The speed can be boosted by using also the GPU, using a low sampling rate, we should not forget that modern cards don't exceed 3GB of GDDR5 memory. So ICP must be fed with a sampling so as not exceed its memory limits. I am certain that with the new GTX-680 the process of registration should be very fast. Also Scanalyze64 can run on Windows 8. So it is Windows 8 ready.[/size][/font][/color]
[color="#222222"][font="arial, sans-serif"][size="2"]I am inserting images of their registration. All rights belong to the [/size][/font][/color][url="http://www.zamani-project.org/welcome"]Zamani Project[/url][color="#222222"][font="arial, sans-serif"][size="2"]. Maybe if you contact them they can make the data available under a license for Academic purposes. There a lot of issues that can arise from these pictures like fitting surfaces, clearing noise etc. [/size][/font][/color]
[color="#222222"][font="arial, sans-serif"][size="2"]Also you might have in your repository a session of scans of a large building that is huge and you could not create a full registration due to memory limitations. Nowdays it is easy to build a system with 12GB of DDR3 memory and acquire an NVIDIA card with 3GB of GDDR5 memory. These pictures serves a purpose that Scanalyze can cope with huge data. [/size][/font][/color]
[font="arial, sans-serif"][size="2"][color="#222222"]If you want to use the code (if commercially you have to talk with Stanford not me) there is a link on my web page with the code for 64 bit, its easy to find it.[/color][/size][/font]
[img]http://www.iit.demokritos.gr/~agalex/snapshotB30_31.png[/img][img]http://www.iit.demokritos.gr/~agalex/snapshotB18_19.png[/img][img]http://www.iit.demokritos.gr/~agalex/snapshot_Mosque.png[/img]

[font="arial, sans-serif"][size="2"][color="#222222"]
[/color][/size][/font][color="#222222"][font="arial, sans-serif"][size="2"][img]http://www.iit.demokritos.gr/~agalex/snapshot_Landscape.png[/img]
[/size][/font][/color]
Update :The 64bit version of Scanalyze has been used by the Zamani Project to reconstruct a site on the island Songo Mnara, an island off the coast of Tanzania. The scans consisted of billion of points which only a 64bit program can handle and this is questionable. Scanalyze can cope but it had to be ported on 64 bit which I did after a lot of effort. The speed can be boosted by using also the GPU, using a low sampling rate, we should not forget that modern cards don't exceed 3GB of GDDR5 memory. So ICP must be fed with a sampling so as not exceed its memory limits. I am certain that with the new GTX-680 the process of registration should be very fast. Also Scanalyze64 can run on Windows 8. So it is Windows 8 ready.

I am inserting images of their registration. All rights belong to the Zamani Project. Maybe if you contact them they can make the data available under a license for Academic purposes. There a lot of issues that can arise from these pictures like fitting surfaces, clearing noise etc.

Also you might have in your repository a session of scans of a large building that is huge and you could not create a full registration due to memory limitations. Nowdays it is easy to build a system with 12GB of DDR3 memory and acquire an NVIDIA card with 3GB of GDDR5 memory. These pictures serves a purpose that Scanalyze can cope with huge data.

If you want to use the code (if commercially you have to talk with Stanford not me) there is a link on my web page with the code for 64 bit, its easy to find it.

ImageImageImage





Image

Dr. Alexander Agathos Degree in Maths, PhD in Computer Science (specialization in Computer Graphics)

Researcher in HPC, Department of Mathematics and Informatics, West University of Timisoara, Romania.

[email="agalex@iit.demokritos.gr"]Email[/email]

Website

--------------------
A famous researcher in parallelism said : Parallelism is a great problem. The basic question is though are you part of the solution or part of the problem?

The challenges of parallel computing are simple to enumerate : expose lots of parallelism and minimize communication (said another way : maximize locality)

The more complicated you present a subject the less you have really mastered it...Albert Einstein.

#3
Posted 05/08/2012 09:42 PM   
I need to stress also that you need a [b]strong [/b]graphics NVIDIA card if you plan using it for huge models, [b]GTX[/b]-480 upwards. The processor of the card approaches 100% utilization.
I need to stress also that you need a strong graphics NVIDIA card if you plan using it for huge models, GTX-480 upwards. The processor of the card approaches 100% utilization.

Dr. Alexander Agathos Degree in Maths, PhD in Computer Science (specialization in Computer Graphics)

Researcher in HPC, Department of Mathematics and Informatics, West University of Timisoara, Romania.

[email="agalex@iit.demokritos.gr"]Email[/email]

Website

--------------------
A famous researcher in parallelism said : Parallelism is a great problem. The basic question is though are you part of the solution or part of the problem?

The challenges of parallel computing are simple to enumerate : expose lots of parallelism and minimize communication (said another way : maximize locality)

The more complicated you present a subject the less you have really mastered it...Albert Einstein.

#4
Posted 05/09/2012 11:10 PM   
Scroll To Top