Fighting with computers

Computers are not always friendly.

Saturday, January 21, 2012

Testing PCL 2.0 Kinfu_app

I borrowed another graphics card from a friend and this time it was the right one: Nvidia GTX 560 Ti with 1GB of RAM so I was able to test drive the new open implementation of the Kinect Fusion. First result is really promising. A couple of times I've got out of memory errors when starting the application but it was unclear to me whether it was main system RAM or the graphics' card internal memory.

Pressing 3 you get the current point cloud written to disk. I am really shocked by the accuracy of the real-time results. I am getting around 20 fps. Definitely worth trying, but remember you'll need a powerful power supply too. I borrowed a 1.000 watts PC supply, sweet.


Thursday, January 19, 2012

Testing Kinfu (or not)

Once I realized all the work done for compiling PCL 2.0 was useless with my current graphics card I mentioned to a colleague the problem who was kind enough to lend me a Nvidia FX 5800 CUDA-enabled graphics card with 4 GB of RAM. I thought it was beyond the requirements of Kinfu so I did not bother checking it out before doing the installation.

First problem was that this card hardly fit inside my computer. Later I found out my power supply just lacked the proper connectors to power that graphics card. I asked for help and I have got a 1000W PC power supply. This one has all the connectors needed but I am not fitting it inside my computer box.

Once I was convinced of the right way of connecting the 8 pin PCI-express additional power socket, which was all but obvious to me, I fired up the system and it came up nicely. But, once again, I was defeated by the hardware: It turns out this board is not a good match for running Kinfu either. Though it has 250 cores, it lacks the computing skills needed for the job.

It was then when I realized I should have read first: This message talks about hardware requirements and this other page mentions the capabilities of different Nvidia card. Hopefully tomorrow a friend will lend me his GTX 470 that is 2.0 compliant and it should be good to go.


Saturday, January 14, 2012

Kinect Fusion open sourced!!

I was impressed when I saw the results presented in SIGGRAPH'11 about Kinect Fusion by a group of people from Microsoft Research. They manage to get a fantastic real-time scene scene registering using a software they named Kinect Fusion. A couple of papers were published explaining the system architecture and some videos shown the great performance they were obtaining.

Today I have learned that an open source version is being built around the Point Cloud Library and the sample video looks equally promising. But development is only going to be supported on the upcoming 2.0 version of the library.

I am going go give it a try as soon as I manage to compile the whole thing.

 

Ouch: After fighting with CUDA install (driver, tools, sdk) plus VTK library that was not installed plus some more fiddling with cmake and ccmake I manged to compile the current version of PCL2.0 but to no avail, as kingfu_app is not happy with my oldish video card (GF8400GS) and I get this lovely message instead of any relevant output "Kinfu is not supported for pre-Fermi GPU architectures, and not built for them by default. Exiting..."

Thursday, January 12, 2012

Software for 3D scanning using Kinect

Nicolas Burrus' company has been kind enough to make available software for 3D scanning using a Kinect device that anyone can use for both Windows and OSX.

What you obtain is a colored point cloud and not a mesh, but using software like meshlab you can turn that into triangular mesh.

The way you use this software is by handholding your Kinect and moving it around the object or room you want to scan as if you were painting all the space. The point cloud is growing larger every time you move to a different area of the scene or object.

Result is not as impressive as Kinect Fusion demos but, contrary to the former, this one is available. I guess the will keep on improving the system to obtain better spatial resolution with less noise.