<?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; bundler</title>
	<atom:link href="http://www.visual-experiments.com/tag/bundler/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>
		<item>
		<title>PhotoSynthToolkit 8</title>
		<link>http://www.visual-experiments.com/2012/04/14/photosynthtoolkit-8/</link>
		<comments>http://www.visual-experiments.com/2012/04/14/photosynthtoolkit-8/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 18:05:05 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2254</guid>
		<description><![CDATA[I&#8217;ve finally decided to release the new version of my PhotoSynthToolkit. This new version has bundle.out output support: this was indeed easy to add as I&#8217;ve already implemented it in my WebGL chrome extension. I&#8217;ve also rewritten the network part of the downloader by using libcurl. PhotoSynthDownloader is now replaced by my new tool PhotoSynthGrabber. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally decided to release the new version of my PhotoSynthToolkit. This new version has <a href="http://phototour.cs.washington.edu/bundler/bundler-v0.4-manual.html">bundle.out</a> output support: this was indeed easy to add as I&#8217;ve already implemented it in <a href="http://www.visual-experiments.com/2012/03/25/webgl-photosynth-extension-updated/">my WebGL chrome extension</a>. I&#8217;ve also rewritten the network part of the downloader by using <a href="http://curl.haxx.se/libcurl/">libcurl</a>. PhotoSynthDownloader is now replaced by my new tool PhotoSynthGrabber. BTW thumbnail/HD pictures downloading should be really much faster <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . </p>
<p>New feature coming:</p>
<ul>
<li>CMVS support (coming very soon)</li>
<li>White space handling in the toolkit scripting (PhotoSynthGrabber is already ready)</li>
<li>Expose HTTP Proxy parameters for the downloader</li>
</ul>
<p>You can download the new version: <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit8.zip">PhotoSynthToolkit8.zip</a> or keep the previous one in case you miss some advanced feature (vis.dat generation, SoftImage XSI / 3DS Max scripting for example): <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit7.zip">PhotoSynthToolkit7.zip</a>.</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%2F04%2F14%2Fphotosynthtoolkit-8%2F&amp;title=PhotoSynthToolkit%208"><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/04/14/photosynthtoolkit-8/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PhotoSynth Viewer using Three.js</title>
		<link>http://www.visual-experiments.com/2011/06/20/photosynth-viewer-using-three-js/</link>
		<comments>http://www.visual-experiments.com/2011/06/20/photosynth-viewer-using-three-js/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 14:58:03 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[webgl]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=1772</guid>
		<description><![CDATA[I wasn&#8217;t happy with my previous WebGL PhotoSynth Viewer: my javascript parser was aware of the position of the cameras and I wasn&#8217;t doing anything useful with it&#8230; Furthermore I was only relying on XB-PointStream for the rendering (which manage to display perfectly a dense point cloud). But I definitively want to do more fancy [...]]]></description>
			<content:encoded><![CDATA[<p>I wasn&#8217;t happy with my previous <a href="http://www.visual-experiments.com/2011/04/13/google-chrome-photosynth-webgl-viewer-extension/">WebGL PhotoSynth Viewer</a>: my javascript parser was aware of the position of the cameras and I wasn&#8217;t doing anything useful with it&#8230; Furthermore I was only relying on <a href="https://github.com/asalga/XB-PointStream">XB-PointStream</a> for the rendering (which manage to display perfectly a dense point cloud). But I definitively want to do more fancy stuff. So Goodbye <a href="https://github.com/asalga/XB-PointStream">XB-PointStream</a>, Hello <a href="https://github.com/mrdoob/three.js/">Three.js</a>!</p>
<p><iframe width="560" height="349" src="http://www.youtube.com/embed/IHaEIg7OGz8" frameborder="0" allowfullscreen></iframe></p>
<p>The only trouble with this demo is that it is using a proxy PHP page to bypass ajax cross-domain security issue. Thus I won&#8217;t put it online (as it would kill my bandwidth limit). But I&#8217;ll try to update <a href="http://www.visual-experiments.com/2011/04/13/google-chrome-photosynth-webgl-viewer-extension/">my Google Chrome extension</a> so that you can give it a try too (will take time and I&#8217;m going in holiday&#8230;sorry).</p>
<p>On the tech side, this demo is using:</p>
<ul style="margin-left: 20px;">
<li><a href="https://github.com/mrdoob/three.js">Three.js</a>: for the rendering</li>
<li><a href="http://ajaxian.com/archives/downloadify-create-downloads-on-the-fly-without-server-interaction">Downloadify</a>: to allow downloading PLY generated on the client-side</li>
<li><a href="http://blog.vjeux.com/2011/javascript/jdataview-read-binary-file.html">jDataView</a>: to parse binary xhr response</li>
<li><a href="http://imageflow.finnrudolph.de/">ImageFlow</a>: coverflow system</li>
<li>Accordion(<a href="http://www.scriptiny.com/2009/03/accordion/">except css</a>) + Tween + SynthParser created by me</li>
</ul>
<h3>Other news</h3>
<p>On another side I&#8217;ve been up to:</p>
<ul>
<li>compile a <a href="http://phototour.cs.washington.edu/bundler/">bundler</a> version with <a href="http://grail.cs.washington.edu/projects/mcba/">PBA</a> support (with bad result: fast <a href="http://en.wikipedia.org/wiki/Bundle_adjustment">BA</a> but erroneous point cloud)</li>
<li>create a new framework for fast matching: already 3x faster than <a href="http://www.visual-experiments.com/demos/opensynther/">OpenSynther</a> (which is already really fast). This new framework is compatible with multi-gpu and multi-cpu + you can add constraints to memory usage!</li>
<li>create an hybrid AR solution for my current work based on my <a href="http://www.visual-experiments.com/2010/12/22/outdoor-tracking-using-panoramic-image/">panorama tracking demo</a> and using gyroscope information to fix the computing time of the vision part</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2011%2F06%2F20%2Fphotosynth-viewer-using-three-js%2F&amp;title=PhotoSynth%20Viewer%20using%20Three.js"><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/2011/06/20/photosynth-viewer-using-three-js/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>New toolkits released</title>
		<link>http://www.visual-experiments.com/2011/02/22/new-toolkits-released/</link>
		<comments>http://www.visual-experiments.com/2011/02/22/new-toolkits-released/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 10:58:54 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[missstereo]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<category><![CDATA[v3dsfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=1388</guid>
		<description><![CDATA[V3DSfMToolkit ETH-V3D Structure-and-Motion software was created by Christopher Zach. The original source code with dataset is available at Christopher Zach Open-Source page (GPL license). I have created a windows port of V3DSfMToolkit with scripting wich is available as both binary (V3dSfMToolkit1.zip) and source (github). I&#8217;ve tested this toolkit with the dataset given by Christopher Zach [...]]]></description>
			<content:encoded><![CDATA[<h3>V3DSfMToolkit</h3>
<p>ETH-V3D Structure-and-Motion software was created by <a href="http://www.inf.ethz.ch/personal/chzach/">Christopher Zach</a>. The original source code with dataset is available at <a href="http://www.inf.ethz.ch/personal/chzach/opensource.html">Christopher Zach Open-Source page</a> (GPL license). I have created a <a href="https://github.com/dddExperiments/V3DSfMToolkit">windows port of V3DSfMToolkit</a> with scripting wich is available as both <a href="https://github.com/downloads/dddExperiments/V3DSfMToolkit/V3dSfMToolkit1.zip">binary</a> (<a href="https://github.com/downloads/dddExperiments/V3DSfMToolkit/V3dSfMToolkit1.zip">V3dSfMToolkit1.zip</a>) and <a href="https://github.com/dddExperiments/V3DSfMToolkit">source</a> (<a href="https://github.com/dddExperiments/V3DSfMToolkit">github</a>).</p>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/02/v3dsfmtoolkit.jpg" alt="" title="v3dsfmtoolkit" width="523" height="207" class="alignnone size-full wp-image-1411" /><br />
I&#8217;ve tested this toolkit with the dataset given by Christopher Zach (see above screenshot) the reconstruction looks good but I only managed to get partial reconstruction from my own dataset.</p>
<h3>MissStereo</h3>
<p>Quasi-Euclidean Epipolar Rectification: MissStereo created by Pascal Monasse, Neus Sabater, Zhongwei Tang. The original source code is available at the <a href="http://www.ipol.im/pub/algo/m_quasi_euclidean_epipolar_rectification/">IPOL related page</a> under GPL license. You can download my windows port as both <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/MissStereo1.zip">binary</a> (<a href="http://www.visual-experiments.com/blog/?sdmon=downloads/MissStereo1.zip">MissStereo1.zip</a>) and <a href="https://github.com/dddExperiments/MissStereo">source</a> (<a href="https://github.com/dddExperiments/MissStereo">github</a>).</p>
<table>
<tbody style="background: white">
<tr>
<td><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/02/MissStereo.gif" alt="" title="MissStereo" width="220" height="302" class="alignnone size-full wp-image-1396" /></td>
<td><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/02/meshlab-2011-02-21-10-53-21-96.gif" alt="" title="MissStereoAnimation" width="360" height="300" class="alignnone size-full wp-image-1394" /></td>
</tr>
</tbody>
</table>
<p>I&#8217;m interested by this method to estimate the fundamental matrix without prior focal length knowledge.</p>
<h3>PhotoSynthToolkit with XSI support</h3>
<p>With the help of Julien Carmagnac (3D Graphist and XSI advanced user), I&#8217;ve duplicated the 3DS Max texture projection rendering solution for Softimage XSI:</p>
<div style="position: relative;">
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/02/xsi.gif" alt="" title="PhotoSynthToolkit_xsi_cameras" width="560" height="396" class="alignnone size-full wp-image-1438" /><br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/02/PhotoSynthToolkit_xsi_support.jpg" alt="" title="PhotoSynthToolkit_xsi_support" class="alignnone size-full wp-image-1418" style="position: absolute; z-index: 5; width: 150px; left: 5px; top: 253px;" />
</div>
<p>As usual, the new version of PhotoSynthToolkit including this new feature is available on his <a href="http://www.visual-experiments.com/demos/photosynthtoolkit/">dedicated page</a>.</p>
<h3>SFMToolkit with sequence matching</h3>
<p><a href="http://www.visual-experiments.com/demos/sfmtoolkit/">SFMToolkit</a> was packaged with BundlerMatcher, my own matching solution using <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a>: this is a trivial quadratic exhaustive matching implementation. This implementation is well-suited for unstructured (unordered) pictures but if you are using a sequence of images as input (movie) you can reduce the complexity of the matching to linear. You can do that by only comparing frame N with frame N+1, N+2 [...], N+p. I&#8217;ve also fixed a bug that may occur on some system (Windows 7 x64 with UAC activated): thanks to <a href="http://blog.neonascent.net/">Josh Harle</a> for the bug reporting!<br />
<br />
The new version of SFMToolkit is available on his <a href="http://www.visual-experiments.com/demos/sfmtoolkit/">dedicated page</a>: this new feature is hidden, you need to edit &#8220;1 &#8211; Bundler.wsf&#8221; and set SEQUENCE_MATCHING_ENABLED to true (replace false by true).</p>
<h3>3D-Arch&#8217;2011</h3>
<p>I&#8217;m going to the <a href="http://www.3d-arch.org/">3D-Arch&#8217;2011 Workshop</a> at <a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=trento&#038;aq=&#038;sll=37.0625,-95.677068&#038;sspn=66.408528,135.263672&#038;ie=UTF8&#038;hq=&#038;hnear=Trento+Province+of+Trento,+Trentino-Alto+Adige%2FS%C3%BCdtirol,+Italy&#038;ll=45.943511,11.134644&#038;spn=3.705217,8.453979&#038;z=8&#038;iwloc=A">Trento</a>: 3D Virtual Reconstruction and Visualization of Complex Architectures. I hope to see amazing things about 3D reconstruction <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/02/3darch.jpg" alt="" title="3darch" width="560" height="175" class="alignnone size-full wp-image-1415" /><br />
Jean-Philippe Pons (CSTB, Sophia-Antipolis, France): High-resolution large-scale multi-view stereo </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2011%2F02%2F22%2Fnew-toolkits-released%2F&amp;title=New%20toolkits%20released"><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/2011/02/22/new-toolkits-released/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>SFMToolkit updated</title>
		<link>http://www.visual-experiments.com/2011/01/29/sfmtoolkit-updated/</link>
		<comments>http://www.visual-experiments.com/2011/01/29/sfmtoolkit-updated/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 18:17:41 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=1358</guid>
		<description><![CDATA[This is a very short post to announce a SFMToolkit bug fix&#8230; If the toolkit wasn&#8217;t working at all on your machine (File not found error in &#8220;1 &#8211; Bundle.wsf&#8221;) this may fix the issue. The bug was linked to the Windows separator setting: &#8216;.&#8216; or &#8216;,&#8216;. Thus the default 0.8 matching threshold was on [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very short post to announce a <strong>SFMToolkit bug fix</strong>&#8230; If the toolkit wasn&#8217;t working at all on your machine (File not found error in &#8220;1 &#8211; Bundle.wsf&#8221;) this may fix the issue. The bug was linked to the Windows separator setting: &#8216;<strong>.</strong>&#8216; or &#8216;<strong>,</strong>&#8216;. Thus the default 0.8 matching threshold was on some system applied as 0: no matching -> no bundler output <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>I&#8217;ve also fixed other errors in BundlerMatcher too (small memory leak + no more 4096 match limit), so <strong>you should download this version too even if the previous version was working on your system</strong>. The new version is available on his <a style="font-size: 15px;" href="http://www.visual-experiments.com/demos/sfmtoolkit/">dedicated page</a>: please do not make direct link to the zip file but to <a href="http://www.visual-experiments.com/demos/sfmtoolkit/">this page</a> so people downloading will always get the latest version.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2011%2F01%2F29%2Fsfmtoolkit-updated%2F&amp;title=SFMToolkit%20updated"><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/2011/01/29/sfmtoolkit-updated/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Structure from motion projects</title>
		<link>http://www.visual-experiments.com/2010/12/20/structure-from-motion-projects/</link>
		<comments>http://www.visual-experiments.com/2010/12/20/structure-from-motion-projects/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 18:57:29 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[structure from motion]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=1029</guid>
		<description><![CDATA[I&#8217;ve introduced my tracking algorithm in the previous post. One of the issue I have is that the point cloud generated by my SFMToolkit (using Bundler) is not always accurate. This is a list of structure from motion projects alternative I&#8217;m interested in: Building Rome in a Day: Project home is using Bundler (GPL) Building [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve introduced my tracking algorithm in <a href="http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/">the previous post</a>. One of the issue I have is that the point cloud generated by my <a href="http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/">SFMToolkit</a> (using <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a>) is not always accurate. This is a list of structure from motion projects alternative I&#8217;m interested in:</p>
<h3>Building Rome in a Day:</h3>
<p><a href="http://grail.cs.washington.edu/projects/rome/">Project home</a> is using <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> (GPL)</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/kxtQqYLRaSQ?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/kxtQqYLRaSQ?version=3" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Building Rome on a Cloudless Day:</h3>
<p><a href="http://www.cs.unc.edu/~jmf/rome_on_a_cloudless_day/">Project home</a> | <a href="http://www.cs.unc.edu/~tjohnson/research.html">Source code</a> (Non-profit license, I&#8217;ve ported their source to windows)</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/PySBQ8Q_R8k?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PySBQ8Q_R8k?version=3" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h3>Samantha:</h3>
<p><a href="http://profs.sci.univr.it/~fusiello/demo/samantha/">Project home</a> (I&#8217;ve contacted them without response but they said that they were going to release the source code: <a href="http://videolectures.net/cvpr2010_spotlights5/">check at 28:50</a>)</p>
<table>
<tbody style="background-color: white;">
<tr>
<td colspan="2"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/11/samantha.jpg" alt="" title="samantha" width="551" height="199" class="alignnone size-full wp-image-1030" /></td>
</tr>
<tr>
<td style="text-align: center;">Samantha</td>
<td style="text-align: center;">Bundler</td>
</tr>
</tbody>
</table>
<h3>PhotoSynth:</h3>
<p><a href="http://photosynth.net/">Website</a> &#8211; Microsoft closed-source SFM application: <a href="http://www.visual-experiments.com/2010/11/09/photosynth-toolkit-updated/">check out my PhotoSynthToolkit</a></p>
<table>
<tbody style="background-color: white;">
<tr>
<td colspan="2"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/11/photosynth.jpg" alt="" title="photosynth" width="551" height="373" class="alignnone size-full wp-image-1035" /></td>
</tr>
<tr>
<td style="text-align: center;">PhotoSynth</td>
<td style="text-align: center;">Bundler</td>
</tr>
</tbody>
</table>
<h3>ETH-V3D Structure-and-Motion software:</h3>
<p><a href="http://www.inf.ethz.ch/personal/chzach/opensource.html">Project home</a> with source code (GPL, <a href="http://www.visual-experiments.com/2010/12/20/structure-from-motion-projects/comment-page-1/#comment-1824">I&#8217;ve partially ported</a> it to windows)</p>
<h3>Simple Sparse Bundle Adjustment:</h3>
<p><a href="http://www.cs.unc.edu/~cmzach/opensource.html">Project home</a> with source code (LGPL, I&#8217;ve ported it to windows)</p>
<h3>A multi-stage linear approach to structure from motion:</h3>
<p><a href="http://research.microsoft.com/en-us/um/redmond/groups/ivm/LinearSfm/">Project home</a> | <a href="http://research.microsoft.com/en-us/um/redmond/groups/ivm/LinearSfm/sinhaRMLE10_linearSfm.pdf">paper</a><br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/12/linearsfm.jpg" alt="" title="linearsfm" width="606" height="404" class="alignnone size-full wp-image-1124" /><br />
Results from the paper of <a href="http://research.microsoft.com/en-us/um/redmond/groups/ivm/LinearSfm/">LinearSFM</a> (Microsoft Research)</p>
<p>This list is not exhaustive, I&#8217;ve seen other projects (<a href="http://cvlab.epfl.ch/research/surface/emvs/">Efficient Large Scale Multi-View Stereo for Ultra High Resolution Image Sets</a>: not sure how it is related to ETH-V3D Structure-and-Motion software)</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F12%2F20%2Fstructure-from-motion-projects%2F&amp;title=Structure%20from%20motion%20projects"><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/2010/12/20/structure-from-motion-projects/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Augmented Reality outdoor tracking becoming reality</title>
		<link>http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/</link>
		<comments>http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 10:08:11 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[sift]]></category>
		<category><![CDATA[tracking]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=909</guid>
		<description><![CDATA[My interest in structure from motion was primary motivated by the capability of creating a point cloud that can be used as a reference for tracking reference. The video below is more a proof-of-concept than a prototype but this is an overview of my outdoor tracking algorithm for Augmented Reality: Analysis In a pre-processing step [...]]]></description>
			<content:encoded><![CDATA[<p>My interest in structure from motion was primary motivated by the capability of creating a point cloud that can be used as a reference for tracking reference. The video below is more a proof-of-concept than a prototype but this is an overview of my <strong>outdoor tracking algorithm for Augmented Reality</strong>:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/DdVz4xQJPC0?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DdVz4xQJPC0?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<h3>Analysis</h3>
<p>In a pre-processing step I&#8217;ve built a sparse point cloud of the place using my <a href="http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/">SFMToolkit</a>. Each vertex of the point cloud has several 2D Sift features correspondences. I&#8217;ve only kept one Sift descriptor per vertex (mean of the descriptors) and put all descriptors in an index using <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">Flann</a>.</p>
<p>For each frame of the video to be augmented, I&#8217;ve extracted Sift feature with <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a> and then matched them using Flann 2-nearest neighbor search and a distance ratio threshold. The <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">Flann</a> matching is done in parallel with <a href="http://threadpool.sourceforge.net/">boost::threadpool</a>. The matches computed contains a lot of outliers. So I have implemented a <a href="http://en.wikipedia.org/wiki/RANSAC">Ransac</a> pose estimator using <a href="http://cvlab.epfl.ch/software/EPnP/">EPnP</a> that permits to filter bad 2d/3d correspondences.</p>
<h3>Performance</h3>
<p>My implementation is slow (due to my implementation of Ransac EPnP that could be improved).</p>
<style type="text/css">
table.result {
color: black;
border: 1px solid black;
}
table.result td {
text-align: left;
padding: 1px;
}
</style>
<table class="result">
<tr>
<td colspan="3">Sift first octave: -1</td>
</tr>
<tr>
<td>Sift extraction:</td>
<td>49ms</td>
<td>2917 features</td>
</tr>
<tr>
<td>Sift matching:</td>
<td>57ms</td>
<td>(parallel matching using Flann)</td>
</tr>
<tr>
<td>Ransac EPnP:</td>
<td>110ms</td>
<td>121 inliers of 208 matches</td>
</tr>
<tr>
<td colspan="3">Global: 4.6fps (9.4fps without pose estimation)</td>
</tr>
</table>
<p></p>
<table class="result">
<tr>
<td colspan="3">Sift first octave: 0</td>
</tr>
<tr>
<td>Sift extraction:</td>
<td>32ms</td>
<td>707 features</td>
</tr>
<tr>
<td>Sift matching:</td>
<td>15ms</td>
<td>(parallel matching using Flann)</td>
</tr>
<tr>
<td>Ransac EPnP:</td>
<td>144ms</td>
<td>62 inliers of 93 matches</td>
</tr>
<tr>
<td colspan="3">Global: 5.2fps (21.2fps without pose estimation)</td>
</tr>
</table>
<p>The slowness is not a so big issue because it doesn&#8217;t need to run at 30fps. Indeed the goal of my prototype is to have absolute pose with this tracking system each second and relative pose using inertial system available on mobile device (or using KLT tracking).</p>
<h3>Issue</h3>
<ul style="margin-left: 20px;">
<li>Performance (faster is better <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )</li>
<li>Point cloud reference is not always accurate (<a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> fault)</li>
</ul>
<p>In another post I&#8217;ll introduce alternative to Bundler: faster and more accurate.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F12%2F13%2Faugmented-reality-outdoor-tracking-becoming-reality%2F&amp;title=Augmented%20Reality%20outdoor%20tracking%20becoming%20reality"><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/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Structure From Motion Toolkit released</title>
		<link>http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/</link>
		<comments>http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 15:23:55 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[bundlermatcher]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=898</guid>
		<description><![CDATA[Overview I have finally released my Structure-From-Motion Toolkit (SFMToolkit). So what can you do with it ? Let&#8217;s say you have a nice place like the one just bellow: Place de la Bourse, Bordeaux, FRANCE (picture from Bing) &#160; Well, now you can take a lot of pictures of the place (around 50 in my [...]]]></description>
			<content:encoded><![CDATA[<h3>Overview</h3>
<p>I have finally released my Structure-From-Motion Toolkit (SFMToolkit). So what can you do with it ? Let&#8217;s say you have a nice place like the one just bellow:</p>
<table>
<tbody style="background-color: white">
<tr>
<td><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/10/place_de_la_bourse_bing.jpg" alt="" title="place_de_la_bourse_bing" width="580" height="266" class="alignnone size-full wp-image-923" /></td>
</tr>
<tr>
<td>Place de la Bourse, Bordeaux, FRANCE (picture from Bing)</td>
</tr>
</tbody>
</table>
<div style="height: 20px;">&nbsp;</div>
<p>Well, now you can take a lot of pictures of the place (around 50 in my case):<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/10/place_de_la_bourse_pictures.jpg" alt="" title="place_de_la_bourse_pictures" width="565" height="220" class="alignnone size-full wp-image-943" /></p>
<div style="height: 5px;">&nbsp;</div>
<p>And then compute structure from motion and get a sparse point cloud using <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a>:<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/10/place_de_la_bourse_bundler.jpg" alt="" title="place_de_la_bourse_bundler" width="576" height="256" class="alignnone size-full wp-image-936" /></p>
<p>Finally you have a dense point cloud divided in cluster by <a href="http://grail.cs.washington.edu/software/cmvs/">CMVS</a> and computed by <a href="http://grail.cs.washington.edu/software/pmvs/">PMVS2</a>:<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/10/animation-cmvs.gif" alt="" title="animation-cmvs" width="580" height="250" class="alignnone size-full wp-image-939" /></p>
<p> You can also take a loot at the <a href="http://photosynth.net/">PhotoSynth</a> reconstruction of the place with <a href="http://photosynth.net/view.aspx?cid=e82eca65-60fe-498b-8916-80d1e3245640">53 pictures</a> and <a href="http://photosynth.net/view.aspx?cid=93c72ebb-5c54-4aff-ad12-3d0c5ade31fd">26 (without the fountain)</a>.</p>
<p>This is the SFMToolkit workflow:<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/10/sfmtoolkit_toolchain.jpg" alt="" title="sfmtoolkit_toolchain" width="570" height="160" class="alignnone size-full wp-image-954" /></p>
<p>SFMToolkit is composed of several programs:</p>
<ul style="margin-left: 20px">
<li>BundlerFocalExtractor : extract CCD width from Exif using XML database.</li>
<li>BundlerMatcher : extract and match feature using <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a>.</li>
<li>Bundler : <a href="http://phototour.cs.washington.edu/bundler/">http://phototour.cs.washington.edu/bundler/</a> created by Noah Snavely.</li>
<li>CMVS : <a href="http://grail.cs.washington.edu/software/cmvs/">http://grail.cs.washington.edu/software/cmvs/</a> created by Yasutaka Furukawa.</li>
<li>PMVS2 : <a href="http://grail.cs.washington.edu/software/pmvs/">http://grail.cs.washington.edu/software/pmvs/</a> created by Yasutaka Furukawa.</li>
<li>BundlerViewer : Bundler and PMVS2 output viewer based on <a href="http://www.ogre3d.org/">Ogre3D</a> (OpenSource 3D rendering engine).</li>
</ul>
<h3>Download</h3>
<p>As you can see this &#8220;toolkit&#8221; is composed of several open-source component. This is why I have decided to open-source my part of the job too. You can download the source code from the <a href="http://github.com/dddExperiments/SFMToolkit">SFMToolkit github</a>. You can also download a pre-compiled x64 version of the toolkit with windows scripting (WSH) for easier usage (but not cross-platform): <a style="font-weight: bold; font-size: 15px;" href="http://www.visual-experiments.com/blog/?sdmon=downloads/SFMToolkit1.zip">SFMToolkit1.zip</a>.</p>
<h3>Help</h3>
<p>If you need some help or just want to discuss about photogrammetry, please join the <a href="http://pgrammetry.com/forum/" style="font-weight: bold; font-size: 15px;">photogrammetry forum</a> created by Olafur Haraldsson. You may also be interested by Josh Harle&#8217;s <a style="font-weight: bold; font-size: 15px;" href="http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/">video tutorials</a>, they are partially out-dated due to the new SFMToolkit but these videos are very good to learn how to use <a href="http://meshlab.sourceforge.net/">MeshLab</a>.</p>
<p><a style="color:red; font-size: 15px; text-decoration: underline; font-weight: bold" href="http://www.visual-experiments.com/demos/sfmtoolkit/">Please go to the SFMToolkit page to get the latest version</a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F11%2F05%2Fstructure-from-motion-toolkit-released%2F&amp;title=Structure%20From%20Motion%20Toolkit%20released"><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/2010/11/05/structure-from-motion-toolkit-released/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>PMVS2 x64 and videos tutorials</title>
		<link>http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/</link>
		<comments>http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 09:26:12 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<category><![CDATA[pmvs]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=772</guid>
		<description><![CDATA[PMVS2 x64 I&#8217;ve finally managed to spend a couple of hours to compile a 64 bit version of PMVS2 for windows! You can download PMVS2_x64.zip right now. I&#8217;ll hope that this version will help some persons, I&#8217;ve personally managed to create a very dense model thanks to this version and PMVS2 was using more than [...]]]></description>
			<content:encoded><![CDATA[<h3>PMVS2 x64</h3>
<p>I&#8217;ve finally managed to spend a couple of hours to compile a 64 bit version of <a href="http://grail.cs.washington.edu/software/pmvs/">PMVS2</a> for windows! You can download <a href="http://code.google.com/p/visual-experiments/downloads/list">PMVS2_x64.zip</a> right now. I&#8217;ll hope that this version will help some persons, I&#8217;ve personally managed to create a very dense model thanks to this version and PMVS2 was using more than 4Gb of ram on a 8-cores machines.</p>
<blockquote><p>
<strong>How to compile PMVS2 x64 by yourself:</strong><br />
download the <a href="http://francemapping.free.fr/Portfolio/Prog3D/CMVS.html">CMake package of CMVS</a> (containing PMVS) created by Pierre Moulon.<br />
download and compile gsl 1.8<br />
download precompiled pthread x64 lib from <a href="http://www.equalizergraphics.com/cgi-bin/viewvc.cgi/trunk/src/Windows/pthreads/">equalizer svn</a><br />
download and compile <a href="http://icl.cs.utk.edu/lapack-for-windows/clapack/clapack-3.2.1-CMAKE.tgz">clapack 3.2.1 using CMake</a>
</p></blockquote>
<h3>PhotoSynthTileDownloader</h3>
<p>As requested by some persons, I&#8217;ve updated my PhotoSynthTileDownloader: you can now resume a partial download ! It&#8217;s already available for download: <a href="http://code.google.com/p/visual-experiments/downloads/list">PhotoSynthTileDownloader2.zip</a>.</p>
<h3>Videos tutorials</h3>
<p><a href="http://blog.neonascent.net/">Josh Harle</a> has done some very nice videos tutorials on how to use my PhotoSynth ToolKit and has created another toolkit for Bundler that is using my BundlerMatcher.<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/photosynth.jpg" alt="" title="photosynth" width="570" height="62" class="alignnone size-full wp-image-806" /><br />
<a href="http://blog.neonascent.net/archives/photosynth-toolkit/">PhotoSynth Toolkit post on Josh Harle&#8217;s blog</a>.<br />
<iframe src="http://player.vimeo.com/video/14796939" width="560" height="420" frameborder="0"></iframe></p>
<blockquote><p>
<strong>Note:</strong> In fact your synths doesn&#8217;t need to be 100% synthy. My tool (PhotoSynth2PMVS) is capable of using an uncomplete synth. And now you could use my 64bit version of PMVS2 instead.
</p></blockquote>
<p><a style="color:red; font-size: 15px; text-decoration: underline; font-weight: bold" href="http://www.visual-experiments.com/demos/photosynthtoolkit/">Please go to the PhotoSynthToolkit page to get the latest version</a><br />
<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/bundlermatcher.jpg" alt="" title="bundlermatcher" width="570" height="55" class="alignnone size-full wp-image-807" /><br />
<a href="http://blog.neonascent.net/archives/bundler-photogrammetry-package/">Bundler photogrammetry package post on Josh Harle&#8217;s blog</a>.<br />
<iframe src="http://player.vimeo.com/video/14783202" width="560" height="420" frameborder="0"></iframe><br />
</p>
<p><a style="color:red; font-size: 15px; text-decoration: underline; font-weight: bold" href="http://www.visual-experiments.com/demos/sfmtoolkit/">Please go to the SFMToolkit page to get the latest version</a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F09%2F23%2Fpmvs2-x64-and-videos-tutorials%2F&amp;title=PMVS2%20x64%20and%20videos%20tutorials"><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/2010/09/23/pmvs2-x64-and-videos-tutorials/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>Introducing OpenSynther</title>
		<link>http://www.visual-experiments.com/2010/09/08/introducing-opensynther/</link>
		<comments>http://www.visual-experiments.com/2010/09/08/introducing-opensynther/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 22:31:09 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[bundlermatcher]]></category>
		<category><![CDATA[opensynther]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=689</guid>
		<description><![CDATA[PhotoSynthTileDownloader In my previous post I have released my PhotoSynth Tookit but the PhotoSynth tile downloader wasn&#8217;t available yet. You can now download the picture of your Synth in HD using PhotoSynthTileDownloader1.zip. But please respect author&#8217;s copyright ! I have included a new confirmation dialog box that warn you about the Synth status (unlisted, public) [...]]]></description>
			<content:encoded><![CDATA[<h3>PhotoSynthTileDownloader</h3>
<p>In my <a href="http://www.visual-experiments.com/2010/08/22/dense-point-cloud-created-with-photosyth-and-pmvs2/">previous post</a> I have released my PhotoSynth Tookit but the PhotoSynth tile downloader wasn&#8217;t available yet. You can now download the picture of your Synth in HD using <a href="http://code.google.com/p/visual-experiments/downloads/list">PhotoSynthTileDownloader1.zip</a>. <strong>But please respect author&#8217;s copyright !</strong> I have included a new confirmation dialog box that warn you about the Synth status (unlisted, public) but this is not shown in the <a href="http://www.youtube.com/watch?v=xqeV3pI1TfU">video presentation</a> of PhotoSynthTileDownloader.</p>
<h3>BundlerMatcher</h3>
<p>I have finally released BundlerMatcher, a feature extraction and picture matching tool built with <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a>. The main goal of this tool was to replace the slow matching step packaged with <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> by a faster one using GPU without needing to modify Bundler&#8217;s code. You can download <a href="http://code.google.com/p/visual-experiments/downloads/list">BundlerMatcher1.zip</a> or checkout <a href="http://code.google.com/p/visual-experiments/source/checkout">the code</a> on my google code. <strong>Warning:</strong> this tool needs a 64bit windows OS (tested on 7 and vista) and a decent GPU. All my demos are available under MIT license but SiftGPU isn&#8217;t released under MIT so you should take a look at SiftGPU license.</p>
<h3>OpenSynther</h3>
<p>I&#8217;m proud to introduce OpenSynther which is under heavy development. The first goal of this tool is the same as BundlerMatcher: <strong>provide a faster matching engine for Structure from Motion tools</strong>. To achieve high performance it is coded in <strong>C++ and using both multi-core and GPU</strong>. Furthermore OpenSynther is using Surf instead of Sift and may in the future also compute the 3d reconstruction (as PhotoSynth does).</p>
<p><strong>OpenSynther current feature list:</strong></p>
<ul style="margin-left: 20px">
<li>Jpeg loading + Exif reading</li>
<li>multi-threaded Surf feature extraction (based on <a href="http://www.chrisevansdev.com/computer-vision-opensurf.html">OpenSurf</a> &#038; <a href="http://sourceforge.net/projects/parallelsurf/">ParallelSurf</a>)</li>
<li>multi-threaded Surf feature matching (based on OpenSurf matching + Cuda GPU matching)
<ul>
<li>Quadratic complexity O(n²) with n number of pictures</li>
</ul>
</li>
</ul>
<p><strong>OpenSynther TODO:</strong></p>
<ul style="margin-left: 20px">
<li>multi-threaded Surf feature approximate matching (based on <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">FLANN</a>)
<ul>
<li>Linear complexity (hypothetical)</li>
</ul>
</li>
<li>integrate 3d reconstruction ?
<ul>
<li>using <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> code or <a href="http://insight3d.sourceforge.net/">insight3D</a>, both are using <a href="http://www.ics.forth.gr/~lourakis/sba/">SBA</a>.</li>
</ul>
</li>
</ul>
<h3>Benchmarks</h3>
<p>These benchmarks were done on an Intel Corei7 920 (8 cores @ 2.66Ghz) + Nvidia GTX 285. The pictures size were 1600&#215;1200 (~2M pixels), I heard that it was the limit size at which PhotoSynth extract features (it can of course use bigger pictures but feature extraction are done at a max size of 2M pixels).<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/feature.extraction.png" alt="" title="feature.extraction" width="518" height="310" style="text-align:center; margin-bottom: 5px;" /><br />
Note:</p>
<ul>
<li><strong>Bundler:</strong> I had to reduce picture to 640&#215;480, otherwise I got too many features (would be unfair).</li>
<li><strong>PhotoSynth:</strong> I didn&#8217;t take into account the time spent in tile creation.</li>
<li><strong>OpenSynther:</strong> in the future I may consider using GPUSurf for feature extraction.</li>
<li><strong>BundlerMatcher:</strong> to be fair with PhotoSynth I didn&#8217;t write the ascii key file (so in fact it&#8217;s slower).</li>
</ul>
<p>
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/picture.matching.png" alt="" title="picture.matching" width="518" height="303" style="text-align:center; margin-bottom: 5px;" /><br />
Note:</p>
<ul>
<li><strong>PhotoSynth:</strong> they did a very good job and managed to have a linear matching !</li>
<li><strong>OpenSynther:</strong> the GPU is in fact doing the most part of the job as you can see in the table below:</li>
</ul>
<style type="text/css">
table.benchmarks, table.benchmarks td, table.benchmarks tr {
color: black;
border: 1px solid black;
background-color: white;
}
</style>
<table class="benchmarks">
<tr>
<td>App Name</td>
<td colspan="3">PhotoSynth</td>
<td colspan="3">OpenSynther</td>
<td colspan="3">BundlerMatcher</td>
<td colspan="3">Bundler</td>
</tr>
<tr>
<td>Extraction in sec</td>
<td>10</td>
<td>22</td>
<td>39</td>
<td>21</td>
<td>40</td>
<td>78</td>
<td>7</td>
<td>12</td>
<td>24</td>
<td>105</td>
<td>220</td>
<td> &#8211; </td>
</tr>
<tr>
<td>Matching in sec</td>
<td>15</td>
<td>31</td>
<td>58</td>
<td>31</td>
<td>104</td>
<td>322</td>
<td>40</td>
<td>170</td>
<td>542</td>
<td>75</td>
<td>440</td>
<td> &#8211; </td>
</tr>
<tr>
<td>% matching <br />done by CPU</td>
<td>100</td>
<td>100</td>
<td>100</td>
<td>22</td>
<td>12</td>
<td>13</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100</td>
<td>100</td>
<td> &#8211; </td>
</tr>
<tr>
<td>% matching <br />done by GPU</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>78</td>
<td>88</td>
<td>87</td>
<td>100</td>
<td>100</td>
<td>100</td>
<td>0</td>
<td>0</td>
<td> &#8211; </td>
</tr>
<tr>
<td>Nb pictures</td>
<td>49</td>
<td>98</td>
<td>196</td>
<td>49</td>
<td>98</td>
<td>196</td>
<td>49</td>
<td>98</td>
<td>196</td>
<td>49</td>
<td>98</td>
<td>196</td>
</tr>
</table>
<p><br/><br />
As you can see OpenSynther matching is in fact done by the GPU at 85%.<br />
<br/></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F09%2F08%2Fintroducing-opensynther%2F&amp;title=Introducing%20OpenSynther"><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/2010/09/08/introducing-opensynther/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
	</channel>
</rss>
