<?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; gpgpu</title>
	<atom:link href="http://www.visual-experiments.com/tag/gpgpu/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>GPUSurf and Ogre::GPGPU</title>
		<link>http://www.visual-experiments.com/2010/06/23/gpusurf-and-ogregpgpu/</link>
		<comments>http://www.visual-experiments.com/2010/06/23/gpusurf-and-ogregpgpu/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 21:09:18 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[gpgpu]]></category>
		<category><![CDATA[gpusurf]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=415</guid>
		<description><![CDATA[In this post I&#8217;d like to introduce my GPU-Surf implementation and a new library for Ogre3D Ogre::GPGPU. What is GPUSurf ? It is a GPU accelerated version of Surf algorithm based on a paper of Nico Cornelis1. This version is using GPGPU technique (pixel shader) and Cuda for computing. The Cuda part was done using [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;d like to introduce my <a href="http://www.visual-experiments.com/demos/gpusurf/">GPU-Surf implementation</a> and a new library for Ogre3D <a href="http://www.visual-experiments.com/demos/ogregpgpu/">Ogre::GPGPU</a>.</p>
<h3>What is GPUSurf ?</h3>
<p>It is a GPU accelerated version of <a href="http://en.wikipedia.org/wiki/SURF">Surf</a> algorithm based on a paper of Nico Cornelis<sup><a href="#nico_cornelis">1</a></sup>.<br />
This version is using GPGPU technique (pixel shader) and Cuda for computing. The Cuda part was done using my <a href="http://www.visual-experiments.com/demos/ogrecuda/">Ogre::Cuda</a> library and the GPGPU part was done using a new library called <a href="http://www.visual-experiments.com/demos/ogregpgpu/">Ogre::GPGPU</a>. This new library is just a little helper that hide the fact that GPGPU computing is done using quad rendering.</p>
<table>
<tbody style="background-color: white">
<tr>
<td><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/06/gpusurf.screenshot.jpg" alt="" title="gpusurf.screenshot" width="560" height="240" class="alignnone size-full wp-image-365" /></td>
</tr>
<tr>
<td>Screenshot of my GPU-Surf implementation <em>(3 octaves displayed)</em></td>
</tr>
</tbody>
</table>
<div style="height: 20px"></div>
<p>GPU-Surf could be used to help panoramic image creation, create tracking algorithm, speed-up structure from motion&#8230; I&#8217;m currently using <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a> to speed-up image matching step of structure from motion tools (<a href="http://phototour.cs.washington.edu/bundler/">bundler</a>), but SiftGPU v360 as a memory issue (it&#8217;s eating a lot of virtual memory, your program as to be 64bit to bypass common 32bit application limitation: 2Go of virtual memory under windows), and Sift matching is more expensive than Surf (descriptor of 128 float vs 64 for Surf). That&#8217;s why I have decided to create my own implementation of GPU-Surf.</p>
<table>
<tbody style="background-color: white">
<tr>
<td><iframe frameborder="0" src="http://photosynth.net/embed.aspx?cid=d3b19f2d-59fe-4ce5-8be0-91d0be2f629f&#038;delayLoad=true&#038;slideShowPlaying=false" width="500" height="300"></iframe></td>
</tr>
<tr>
<td>Structure from motion using PhotoSynth</td>
</tr>
</tbody>
</table>
<h3>Implementation details:</h3>
<p>The current version of my implementation of GPU-Surf is uncomplete (descriptor missing, only detector is available). You’ll get all information about license (MIT), svn repository, demo (<a href="http://code.google.com/p/visual-experiments/downloads/list">GPUSurfDemo1.zip</a>) and documentation on the <a href="http://www.visual-experiments.com/demos/gpusurf/">GPUSurf page</a>.</p>
<p><a name="nico_cornelis">[1]</a>: N. Cornelis, L. Van Gool: <em>Fast Scale Invariant Feature Detection and Matching on Programmable Graphics Hardware</em> (<a href="http://homes.esat.kuleuven.be/~ncorneli/gpusurf/ncorneli_cvpr2008.pdf ">ncorneli_cvpr2008.pdf</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%2F06%2F23%2Fgpusurf-and-ogregpgpu%2F&amp;title=GPUSurf%20and%20Ogre%3A%3AGPGPU"><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/06/23/gpusurf-and-ogregpgpu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
