Showing posts with label floating point. Show all posts
Showing posts with label floating point. Show all posts

Wednesday, April 25, 2012

Building faster Bundler with CPU/GPU parallelism

The initial Bundler release caused quite a stir allowing simple bundle adjustment from random collection of photos. It leverages the sparse bundle adjustment - SBA created by Lourakis. However being totally single threaded it does not scale quite well to large images. Sift point finding can be accelerated using SiftGPU - Changchang seem to have moved to greater things at Google since his PhD and academic research days.

I have built bundler for Windows 64 bit + CUDA as the MCBA documentation suggests. A few flags are not supported as shown below.
    CHECK_PARAM_SUPPORT(explicit_camera_centers == false);
    CHECK_PARAM_SUPPORT(optimize_for_fisheye);
    CHECK_PARAM_SUPPORT(use_constraints);
    CHECK_PARAM_SUPPORT(use_point_constraints);
    CHECK_PARAM_SUPPORT(fix_points);



I am calling it PBA_Bundler, please give it a try and let me know if it makes bundle adjustments faster for you. The GPU has higher error rates on floating-point calculations and can lead to large bundles drifting off reality. Even computers can have optical illusions. CPU parallel version has less error rate and yields more stable bundles. I am currently working on adding pthreads based parallelism to match filtering stages of Bundler (computing Epipolar Geometry and establishing bundle bounds) and removing the constraint in multi-core bundler which prevents the use of camera constraints.

Saturday, November 14, 2009

Floating around in Singapore

Due to the night curfew in Adelaide, flights from Singapore to Adelaide can only leave for a 12 hour period. So if you are unfortunate enough to arrive at the wrong end of the half-day stick you will have to stooge about in the Singapore airport (not that it isn't huge and a shopping paradise) or the fine city of Singapore itself.

I booked a random hotel near little india from the airport, which turned out to be a stones throw from electronics Mecca of Singapore - Sim Lim. Most of my day got sucked in there, staring at gyros and brushless motor, some super compact hard disks and the newly affordable handheld FLIR sensors post H1N1 scare.

I managed to catch up with one of the top Orfeo Developers via Linked In. We walked around a bit dodging police cordons which had blocked off a fair few roads because of APEC. Managed find a decent bar with a sofa-bed next to the pier and chatted about IEEE standards for floating point over a couple of beers. I am indeed a splendid conversationalist.