<?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; bundlermatcher</title>
	<atom:link href="http://www.visual-experiments.com/tag/bundlermatcher/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>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>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>
