<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Visual-Experiments.com &#187; pba</title>
	<atom:link href="http://www.visual-experiments.com/tag/pba/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.visual-experiments.com</link>
	<description>ASTRE Henri experiments with Ogre3D and web stuff</description>
	<lastBuildDate>Mon, 16 Jan 2017 18:59:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>New bundler version</title>
		<link>http://www.visual-experiments.com/2012/05/26/new-bundler-version/</link>
		<comments>http://www.visual-experiments.com/2012/05/26/new-bundler-version/#comments</comments>
		<pubDate>Sat, 26 May 2012 14:24:09 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[opensynther]]></category>
		<category><![CDATA[pba]]></category>
		<category><![CDATA[sba]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2384</guid>
		<description><![CDATA[I&#8217;ve compiled a new version of Bundler with 2 interesting new options: --parallel_epipolar --ba sba BTW those options should be passed as command arguments to bundler.exe directly (and not been added to the options.txt file). The parallel_epipolar option allows to estimate the fundamental matrices (ransac + lm) in parallel. This problem is embarrassingly parallel but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve compiled a new version of Bundler with 2 interesting new options:</p>
<pre>
--parallel_epipolar
--ba sba
</pre>
<p>BTW those options should be passed as command arguments to bundler.exe directly (and not been added to the options.txt file).</p>
<p>The <strong>parallel_epipolar</strong> option allows to estimate the fundamental matrices (ransac + lm) in parallel. This problem is embarrassingly parallel but due to some global variables used in the callback passed to lmfit it wasn&#8217;t that easy to implement: I&#8217;ve used a functor to hide the global variables used by the callback but sadly lmfit doesn&#8217;t have a void* userData parameter (only a pointer to the callback). Thus I&#8217;ve modified lmfit and add this missing parameter that allow me to pass a pointer to my functor. Furthermore I had to compile almost everything in C++ instead of C to use my functor inside lmfit. Thus I had to fix a lot of malloc calls that weren&#8217;t compiling in C++ due to missing cast. To keep a &#8220;backward behavior compatibility&#8221; <strong>this option is disabled by default</strong>.</p>
<p>The <strong>ba</strong> option allows to change the bundle adjustment &#8220;engine&#8221; used. Here is the list of available &#8220;engine&#8221;:</p>
<ul>
<li><strong>sba</strong> (default)</li>
<li><strong>none</strong> (for debug only)</li>
<li><strong>pba_cpu_double</strong></li>
<li><strong>pba_cpu_float</strong></li>
<li><strong>pba_gpu_float</strong></li>
</ul>
<p>Pba stand for Parallel Bundle Adjustment: I&#8217;ve integrated <a href="http://grail.cs.washington.edu/projects/mcba/">mcba</a> from Changchang Wu.</p>
<p>So if you have an Nvidia GPU card and installed the Cuda runtime you can add those options:</p>
<pre>
bundler.exe list_focal_absolute.txt --ba pba_gpu_float --parallel_epipolar
--options_file options.txt //on the same line
</pre>
<p>Timing on a 245 pictures dataset:</p>
<table>
<tr>
<th>Bundler BA</th>
<th>Time</th>
<th>Nb pictures registered</th>
</tr>
<tr>
<td>SBA</td>
<td>2h18min</td>
<td>233</td>
</tr>
<tr>
<td>PBA CPU double</td>
<td>23min</td>
<td>230</td>
</tr>
<tr>
<td>PBA CPU float</td>
<td>9min</td>
<td>230</td>
</tr>
<tr>
<td>PBA GPU float</td>
<td>6min</td>
<td>230</td>
</tr>
<tr>
<td>none (for debug)</td>
<td>2min</td>
<td>189 (bad reconstruction)</td>
</tr>
</table>
<p></p>
<p>You can download this new version of bundler: <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/Bundler-multiBA-parallelEpipolar-x64.zip">bundler-multiBA-parallelEpipolar-x64.zip</a><br />
<strong>Update</strong>: the source code is available on the <a href="https://github.com/dddExperiments/Bundler/tree/MCBA">MCBA branch</a> of my Bundler fork.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2012%2F05%2F26%2Fnew-bundler-version%2F&amp;title=New%20bundler%20version"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2012/05/26/new-bundler-version/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
