<?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/"
	>

<channel>
	<title>Computer Vision Topics</title>
	<atom:link href="http://jake.askeland.ws/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://jake.askeland.ws</link>
	<description>by Jake Askeland</description>
	<pubDate>Tue, 23 Mar 2010 05:38:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Stanford / VW Autonomous Driving</title>
		<link>http://jake.askeland.ws/?p=141</link>
		<comments>http://jake.askeland.ws/?p=141#comments</comments>
		<pubDate>Tue, 23 Mar 2010 05:33:39 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Reviews]]></category>

		<category><![CDATA[Junior]]></category>

		<category><![CDATA[Object recognition]]></category>

		<category><![CDATA[Stanford]]></category>

		<category><![CDATA[VW]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=141</guid>
		<description><![CDATA[Last week I was half invited and I half invited myself to attend a meeting for the Stanford Autonomous Vehicle Racing Team along with my VWoA-ERL coworkers. Some interesting ideas were mentioned, such as a method for re-lighting a scene using a light scattering formula to reconstruct points&#8217; surface normals and textural qualities from velodyne [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was half invited and I half invited myself to attend a meeting for the <a href="http://cs.stanford.edu/group/roadrunner/team.html" target="_blank">Stanford Autonomous Vehicle Racing Team</a> along with my VWoA-ERL coworkers. Some interesting ideas were mentioned, such as a method for re-lighting a scene using a light scattering formula to reconstruct points&#8217; surface normals and textural qualities from velodyne data captured by Junior (by Jesse Levinson). At the end of the meeting I offered some of my time to finish a system they&#8217;ve been developing for detecting traffic lights for their next-generation Junior vehicle! That should make April and May pretty interesting!</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=141</wfw:commentRss>
		</item>
		<item>
		<title>Volkswagen Internship</title>
		<link>http://jake.askeland.ws/?p=139</link>
		<comments>http://jake.askeland.ws/?p=139#comments</comments>
		<pubDate>Wed, 17 Feb 2010 05:47:20 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[VW]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=139</guid>
		<description><![CDATA[I started a 7 month internship with VW-ERL last month, working with the Driver Assistance Systems (DAS) team on confidential, vision-related things &#8212; if I told you, they&#8217;d have to kill me! I&#8217;ve already hit some significant milestones with the project they put me on; we finished the second internal release (since the project&#8217;s conception, [...]]]></description>
			<content:encoded><![CDATA[<p>I started a 7 month internship with <a target="_blank" href="http://vwerl.com/">VW-ERL</a> last month, working with the Driver Assistance Systems (DAS) team on confidential, vision-related things &#8212; if I told you, they&#8217;d have to kill me! I&#8217;ve already hit some significant milestones with the project they put me on; we finished the second internal release (since the project&#8217;s conception, earlier last year) as of Friday, which included two components I developed! My biggest challenge so far has been to be as relaxed and fun-loving as my teammates! Suffice it to say, I&#8217;m having a great time.</p>
<p>For more on the DAS team&#8217;s achievements, check out their the <a target="_blank" href="http://vwerl.com/research/das">ERL website</a>. Also, be sure to check out &#8220;Shelly&#8221;, the autonomous TTS will set the first official autonomous land-speed record in May!</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=139</wfw:commentRss>
		</item>
		<item>
		<title>Taspa v.1.2.0 (Last major update!)</title>
		<link>http://jake.askeland.ws/?p=136</link>
		<comments>http://jake.askeland.ws/?p=136#comments</comments>
		<pubDate>Fri, 08 Jan 2010 21:08:31 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=136</guid>
		<description><![CDATA[After a two-month hiatus, I&#8217;ve fixed the mechanical bugs in Taspa. CVX_Part was already working to the desired specifications and so I did not include it in this update. Since Taspa is now also up to spec, this will be the last major update on these projects. Further posts will be binary releases on all [...]]]></description>
			<content:encoded><![CDATA[<p>After a two-month hiatus, I&#8217;ve fixed the mechanical bugs in Taspa. CVX_Part was already working to the desired specifications and so I did not include it in this update. Since Taspa is now also up to spec, this will be the last major update on these projects. Further posts will be binary releases on all the major OS&#8217;s and distros.</p>
<p>As it stands, I have tested Taspa 1.2.0 with Fedora 11.1 (x86_64) and compiled with GCC 3.4 and 4.4, and Intel C++ 11.1. Windows binaries might take a while, as tests have failed miserably thus far (using Windows 7, 64-bit).</p>
<p><a href="http://taspa.googlecode.com/files/taspa_2010-01-08.tar.gz">TASPA v1.2.0 — Source tarball (GPL v3)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=136</wfw:commentRss>
		</item>
		<item>
		<title>The Double Order Scaled Approximation (DOSA), rev. 1</title>
		<link>http://jake.askeland.ws/?p=129</link>
		<comments>http://jake.askeland.ws/?p=129#comments</comments>
		<pubDate>Wed, 28 Oct 2009 07:09:30 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Papers]]></category>

		<category><![CDATA[digital curvature]]></category>

		<category><![CDATA[integers]]></category>

		<category><![CDATA[pathfinding]]></category>

		<category><![CDATA[proof]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=129</guid>
		<description><![CDATA[This is a companion paper proving scaled integer edge weights can be used as in Thorup’s algorithm
for SSSP to retrieve shortest paths in two-dimensional obstacle maps in grid-space. The proof extends to
n-dimensional spaces over the integers. Before getting started, we need to cover some ground covered in my
paper (pending publication; see below) regarding digital curvature [...]]]></description>
			<content:encoded><![CDATA[<p>This is a companion paper proving scaled integer edge weights can be used as in Thorup’s algorithm<br />
for SSSP to retrieve shortest paths in two-dimensional obstacle maps in grid-space. The proof extends to<br />
n-dimensional spaces over the integers. Before getting started, we need to cover some ground covered in my<br />
paper (pending publication; see below) regarding digital curvature and pathfinding.</p>
<p><a href="http://taspa.googlecode.com/files/proof_of_scaled_ints.pdf">DOSA, rev. 1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=129</wfw:commentRss>
		</item>
		<item>
		<title>Topological all shortest paths automatique&#8217; (TASPA) 1.1.0</title>
		<link>http://jake.askeland.ws/?p=125</link>
		<comments>http://jake.askeland.ws/?p=125#comments</comments>
		<pubDate>Wed, 28 Oct 2009 07:01:07 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=125</guid>
		<description><![CDATA[Now bug-free for all major features!
TASPA/CVX_PART v1.1.0 — Source tarball (GPL v3)
TASPA and CVX_PART are image processing programs using arbitrary boundary
detection algorithms to generate an all-pairs shortest paths matrix and
an approximately minimal set of convex polygons (respectively) in the
ground space of a bitmap.
TASPA is designed to demonstrate a vertex thinning algorithm, using word
combinatorics to find [...]]]></description>
			<content:encoded><![CDATA[<p>Now bug-free for all major features!</p>
<p><a href="http://taspa.googlecode.com/files/taspa_2009-10-27.tar.gz">TASPA/CVX_PART v1.1.0 — Source tarball (GPL v3)</a></p>
<p>TASPA and CVX_PART are image processing programs using arbitrary boundary<br />
detection algorithms to generate an all-pairs shortest paths matrix and<br />
an approximately minimal set of convex polygons (respectively) in the<br />
ground space of a bitmap.</p>
<p>TASPA is designed to demonstrate a vertex thinning algorithm, using word<br />
combinatorics to find the minimum set of convex vertices. It then applies<br />
Thorup&#8217;s SSSP algorithm iteratively to generate a matrix whose entries<br />
[a_ij] = &#8220;the next edge to traverse from vertex i to vertex j&#8221; in APSP.</p>
<p>CVX_PART demonstrates a minimum convex partitions approximation heuristic<br />
and marks vertices shared by more than one partition, which are useful in<br />
path-finding when a sophisticated natural line tracer is available.</p>
<p>Each uses monochromatic pixels (either a pixel is &#8216;traversable&#8217; or<br />
&#8216;not-traversable&#8217; and traversal occurs from pixel center to pixel center)<br />
on an undirected traverability graph (A to B is equivalent to B to A).</p>
<p>NOTE: As far as I know, this version is bug-free for all necessary features<br />
and is mostly bug-free for all additional features. I would appreciate any<br />
feedback concerning bugs, along with a copy of the input and output bitmaps<br />
from which you found them.</p>
<p>-Jake Askeland<br />
jake (dot) askeland (at) gmail.com</p>
<p>=========================================================================<br />
Dependencies<br />
=========================================================================</p>
<p>Originally built with the following utilities:</p>
<p>	GCC version 4.4.1 (also compiles on 3.4)<br />
	GNU Make version 3.81</p>
<p>Optional libraries (must be installed before-hand):</p>
<p>    SDL-image 1.2.0 (or later)</p>
<p>=========================================================================<br />
Installation<br />
=========================================================================</p>
<p>&#8212; Linux and Unix derivatives (including Darwin) &#8212;<br />
Run the following, from this directory, in this order:</p>
<p>./configure<br />
make<br />
su -c &#8220;make install&#8221;</p>
<p>Now you can use &#8216;taspa&#8217; and &#8216;cvx_part&#8217; from the command line.</p>
<p>&#8212; Windows &#8212;<br />
Install a recent copy of MinGW</p>
<p>=========================================================================<br />
Example Usages<br />
=========================================================================</p>
<p>From the &#8216;bitmaps&#8217; directory, try the following from the command line<br />
after installation:</p>
<p>  taspa -v -d footprint robot_map.bmp robot_map.bmp<br />
  taspa -v maze_grey.bmp maze_grey.bmp<br />
  taspa -v -d color_variation face_sm.bmp face_sm.bmp</p>
<p>  cvx_part -v nw_sjsu_grey.bmp nw_sjsu_grey.bmp<br />
  cvx_part -v mars_grey.bmp mars_color.bmp<br />
  cvx_part -v -d lum_diff face_edge.bmp face_sm.bmp</p>
<p>=========================================================================<br />
Built-in boundary detectors<br />
=========================================================================</p>
<p>TASPA currently has five built in boundary detection algorithms<br />
(referred to as distillers) which can be specified with the &#8216;-d<br />
[distiller_name]&#8216; command line option:</p>
<p>	luminance (default)	Takes any pixel whose luminance<br />
				is above 50% of maximum as traversable.</p>
<p>	avg_luminance		Takes the average luminance of<br />
				neighboring pixels with<br />
				above 50% maximum as traversable<br />
				(good for natrual image filtering).</p>
<p>	color_variation		Pixels whose color (luminance-<br />
				independant) variation between<br />
				opposing neighbor pixels,<br />
				beyond a small threshold, are<br />
				*untraversable* (good for natrual<br />
				images with shadows).</p>
<p>	lum_diff		Compares the previous neighbor pixel to<br />
				the current pixel. If luminance diff is<br />
				less than or equal to 12.5%, pixel is<br />
				traversable.</p>
<p>	footprint		Supposes the size of the thing traversing<br />
				the map has a 9&#215;9 footprint; thus a pixel<br />
				only remains traversable if each pixel in<br />
				the 9&#215;9 grid surrounding it was originally<br />
				traversable. </p>
<p>=========================================================================<br />
Formats supported<br />
=========================================================================</p>
<p>Input formats<br />
&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Bitmap:		24 bit RGB    (standard color bitmap)<br />
		8 bit indexed (256 colors from a 24 bit pallet; buggy)</p>
<p>If the SDL-image library was available when compiling Taspa, the<br />
following formats may be supported (depending on your SDL build):<br />
BMP, LBM, GIF, JPEG, PCX, PNG, PNM, TGA, TIFF, XCF, XPM.</p>
<p>Output formats<br />
&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Bitmap:		24 bit RGB    (standard color bitmap)</p>
<p>=========================================================================<br />
Known issues<br />
=========================================================================</p>
<p>None.</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=125</wfw:commentRss>
		</item>
		<item>
		<title>Fast, Exact Digital Curvature Detection</title>
		<link>http://jake.askeland.ws/?p=115</link>
		<comments>http://jake.askeland.ws/?p=115#comments</comments>
		<pubDate>Sat, 15 Aug 2009 03:25:34 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Articles]]></category>

		<category><![CDATA[Papers]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=115</guid>
		<description><![CDATA[
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));


try {
var pageTracker = _gat._getTracker("UA-11324450-2");
pageTracker._trackPageview();
} catch(err) {}My article submitted to Computational Geometry: Theory and Applications titled &#8220;Fast Exact Convex and Concave Curvature in Digital Images with an Application in Path-finding [Pre-print PDF] (coauthored with my adviser, Dr. Winncy Du) is [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><br />
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-11324450-2");
pageTracker._trackPageview();
} catch(err) {}</script>My article submitted to <a href="http://www.elsevier.com/wps/find/journaldescription.cws_home/505629/description">Computational Geometry: Theory and Applications</a> titled &#8220;Fast Exact Convex and Concave Curvature in Digital Images with an Application in Path-finding [<a href="http://taspa.googlecode.com/files/fast_exact_curvature_rev4.pdf">Pre-print PDF</a>] (coauthored with my adviser, Dr. Winncy Du) is now pending publication.</p>
<p>This article describes in good detail the algorithm I wrote a couple months ago when I discovered a simple method for finding digitally convex end-points in TASPA. Do not hesitate to comment with questions; it would be good to know if I and those who&#8217;ve proof read missed something.</p>
<p>Thanks go to Kate, Alex, Dr. Taylor, and Dr. Teoh for their support.</p>
<p>Oct-22-2009 Addendum &#8212; Runtime of all-pairs shortest paths on integer edge weights using Thorup&#8217;s algorithm is written in the caption to Figure 6 as O(n^2) and should be O(n^2 + nm).</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=115</wfw:commentRss>
		</item>
		<item>
		<title>Topological all shortest paths automatique’ (TASPA) v1.0</title>
		<link>http://jake.askeland.ws/?p=100</link>
		<comments>http://jake.askeland.ws/?p=100#comments</comments>
		<pubDate>Wed, 01 Jul 2009 16:26:47 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=100</guid>
		<description><![CDATA[I&#8217;ve been writing a paper on the theory behind this project, and in the preliminaries, I derived what it means for a curve to locally concave. Through this definition, I realized my code, as it was, had two major flaws:
(1) I didn&#8217;t need to partition the map to find the minimum set of vertices required [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been writing a paper on the theory behind this project, and in the preliminaries, I derived what it means for a curve to locally concave. Through this definition, I realized my code, as it was, had two major flaws:</p>
<p>(1) I didn&#8217;t need to partition the map to find the minimum set of vertices required for path-finding.</p>
<p>(2) Using the set I was getting from convex partitioning, I would need a more sophisticated straight-line algorithm to deal with cases when source or destination lands on or near the boundary of an obstacle, at a crux of a step.</p>
<p>In (1), while I was at the Numenta conference last Thursday, a spark of inspiration came to me. This will be fully disclosed in my paper and so I won&#8217;t discuss it fully here. Suffice it to say, I came up with a fully word-combinatorial approach to finding the minimum set and it takes a very short linear time with respect to obstacle boundary length to fully compute. What took version 0.5 about an hour to compute takes version 1.0 about 1/10 of a second.</p>
<p>Because convex partitioning was no longer required for finding the minimum set, I was a little crest-fallen. I&#8217;ve spent many hours writing my convex partitioning engine from scratch, optimizing it for speed, and determining how to use it for path-finding. As most would do under such circumstances, I tried to come up with some justification, ex post facto, for having put so much of my recent life into this algorithm, and I think I&#8217;ve done it!</p>
<p>It occurred to me that for the same reasons as (2) but with the new combinatorial algorithm, I needed to slightly modify the path-finding wrapper to handle nitch cases where the source point is in the crux of a down-step and needs to travel along the boundary of the obstacle to reach its destination. My solution was to check for source/dest being against a boundary, store passible neighboring pixels, do the appropriate table lookup for each pair of source/dest neighbors, and use the shortest (and thus, possible) path. Mind you, after determining all-pairs shortest paths, this is a fast transaction.</p>
<p>But then I thought to myself, if I can do this for this slightly larger set (the true minimum set via combinatorics is typically larger than that got by shared vertices of convex partitions), its not much of a stretch to do it for the case of partitions. This is not implemented in taspa yet, but I already have code written for a text-based game I&#8217;ve been working on for some years now (_very_ part time) that does a simple heuristic for shortest path-finding, which, when given strict limits, can do a good job of circumventing a lot of irregularities in terrain, including bumpy digital lines!</p>
<p>Since, for many practical purposes, this is asking a lot of the end-developer that would use these algorithms for something like robotics or even video games, I have decided to split my project in two. Below are links to Taspa v1.0, including an implementation of Thorup&#8217;s algorithm, a linear time SSSP algorithm (thanks <a href="http://www.crobak.org/">Joe Crobak</a>!), my new word combinatorial algorithm for the minimum set, and my new bug-fix for the nitch situation, and to CVX_part v1.0, a convex partitioner for bitmaps, including all the old code, minus the path-finding.</p>
<p>If I hear of some interest in CVX_part as a path-finding preprocessor, I will consider putting the line heuristic and Thorup&#8217;s algorithm into it, but for now, the more clinical, provable, and elegant solution is contained in Taspa. Oh! I almost forgot to mention, I added a method to save/load path matrices to/from disk, so paths found with Taspa can be used in other programs without incorporating more than a few of its headers.</p>
<p>Here is the tarball. There was lots of code reuse, so only one tarball is necessary for both utilities.</p>
<p><a href="http://taspa.googlecode.com/files/taspa_2009-07-02.tar.gz">TASPA/CVX_PART    v1.0.1 &#8212; Source tarball (GPL v3)</a></p>
<p><del datetime="2009-07-02T14:42:18+00:00">TASPA/CVX_PART    v1.0 &#8212; Source tarball (GPL v3)</del></p>
<p>Unlike last time, I not only expect this will be the last update on this project for a while (not counting binaries for Windows and some of the major Linux distros), I have someone to hold me to it. My friend and colleague, <a href="http://feralchicken.wordpress.com/">Alex Tsui</a> are going to begin work on a video analytics project.</p>
<p><strong>Below are a list of regressions that version 1.0.1 fixed.</strong> If you downloaded 1.0.0 and are having problems, try 1.0.1 before commenting.</p>
<p>Version 1.0.0 regressions <em>If you have trouble compiling with g++ &gt; 3.3, &lt; 4.3, replace the following lines of code:</em><br />
src/taspa.cc:423 &amp;<br />
src/cvx_part.cc:513<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (reportFile.tellp() == 0) {<br />
should read:<br />
&nbsp;&nbsp;&nbsp;&nbsp;std::streampos begin = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (reportFile.tellp() == begin) {</p>
<p>Version 1.0.0 regressions<em>If you have trouble compiling with g++ &gt; 4.3, add the following line of code:</em><br />
src/user_interface/ui.cpp:39, add<br />
 #include &lt;stdlib.h&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=100</wfw:commentRss>
		</item>
		<item>
		<title>Topological all shortest paths automatique’ (TASPA) v0.5</title>
		<link>http://jake.askeland.ws/?p=97</link>
		<comments>http://jake.askeland.ws/?p=97#comments</comments>
		<pubDate>Fri, 19 Jun 2009 18:33:16 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=97</guid>
		<description><![CDATA[Fixed a lot of bugs, improved run-time both asymptotically (by a factor of &#124;V&#124; and lg&#124;V&#124; in a couple places) and for small input (by about 10x). Implemented a true Johnson&#8217;s algorithm for non-negative edge weights by using a Fibonacci heap (thanks for not settling for anything less, Arthur!). Added some examples to the README, [...]]]></description>
			<content:encoded><![CDATA[<p>Fixed a lot of bugs, improved run-time both asymptotically (by a factor of |V| and lg|V| in a couple places) and for small input (by about 10x). Implemented a true Johnson&#8217;s algorithm for non-negative edge weights by using a Fibonacci heap (thanks for not settling for anything less, Arthur!). Added some examples to the README, along with some sample bitmaps.</p>
<p><a href="http://taspa.googlecode.com/files/taspa_2009-06-19.tar.gz">TASPA v0.5 &#8212; Source tarball (GPL v3)</a></p>
<p>Further updates will likely have to wait more than a couple months, as I&#8217;m now trying to work on preparing for graduate school admissions. I might add some binaries for Windows and Mac users, though this source is now very portable.</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=97</wfw:commentRss>
		</item>
		<item>
		<title>Topological all shortest paths automatique&#8217; (TASPA) v0.4</title>
		<link>http://jake.askeland.ws/?p=85</link>
		<comments>http://jake.askeland.ws/?p=85#comments</comments>
		<pubDate>Thu, 30 Apr 2009 15:54:18 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[pathfinding]]></category>

		<category><![CDATA[taspa]]></category>

		<category><![CDATA[vertex thinning]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=85</guid>
		<description><![CDATA[As promised, here&#8217;s the initial release of the polygon fitting source code! Most have had no trouble installing it under various distributions of Linux. The install script does run into problems in various BSD installations and is untested under MacOS and Windows. That said, leave a comment if you run into problems so I can [...]]]></description>
			<content:encoded><![CDATA[<p>As promised, here&#8217;s the initial release of the polygon fitting source code! Most have had no trouble installing it under various distributions of Linux. The install script does run into problems in various BSD installations and is untested under MacOS and Windows. That said, leave a comment if you run into problems so I can make the next package a little better <img src='http://jake.askeland.ws/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>TASPA is a designed to demonstrate a transitional vertex thinning algorithm based on convex polygon fitting. It makes a copy of the input bitmap file, showing the fitted polygons, the vertices used in path finding after thinning, and (optionally) a sample shortest path between two random points. For now, TASPA is limited to monochromatic pixel weights (either a pixel is &#8216;passable&#8217; or &#8216;impassible&#8217; and &#8216;passable&#8217; pixels have a weight of 1) and undirected graphs (A to B is equivalent to B to A). It is possible this will be extended to support multi-chromatic (semi-passable) pixel weights and even weight heuristics, such as &#8217;safest route&#8217; vs. &#8217;shortest route&#8217; balancing. Please inform me if you have any particular features you would like to see in future releases.</p>
<p><a href="http://taspa.googlecode.com/files/taspa_2009-04-30.tar.gz">Source tarball (GPL v3)</a></p>
<p>NOTE: I would appreciate any feedback concerning bugs, along with a copy of the input and output bitmaps from which you found them.</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=85</wfw:commentRss>
		</item>
		<item>
		<title>Sample Polygon Fitting Output</title>
		<link>http://jake.askeland.ws/?p=64</link>
		<comments>http://jake.askeland.ws/?p=64#comments</comments>
		<pubDate>Wed, 01 Apr 2009 02:21:00 +0000</pubDate>
		<dc:creator>jaskeland</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jake.askeland.ws/?p=64</guid>
		<description><![CDATA[I&#8217;ll be giving a presentation on polygon segmentation as it applies to path finding, which I&#8217;ll now call “polygon fitting,” as its a more succinct and probably more accurate description. In preparation, I&#8217;ve come up with some nice figures that I&#8217;d like to share with you:
A small region of Mars, rotated 90 degrees

An aerial satellite [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be giving a presentation on polygon segmentation as it applies to path finding, which I&#8217;ll now call “polygon fitting,” as its a more succinct and probably more accurate description. In preparation, I&#8217;ve come up with some nice figures that I&#8217;d like to share with you:</p>
<div align="center"><img src="http://jake.askeland.ws/wp-content/uploads/2009/03/psp_tnoutput3.jpg" alt="psp_tnoutput3" width="611" height="256" class="aligncenter size-full wp-image-81" />A small region of Mars, rotated 90 degrees</div>
<p></p>
<div align="center"><img src="http://jake.askeland.ws/wp-content/uploads/2009/03/las-vegasoutput.jpg" alt="las-vegasoutput" width="490" height="336" class="aligncenter size-full wp-image-74" />An aerial satellite photo of Las Vegas</div>
<p></p>
<p>I had to make my own masks for these maps, as I didn&#8217;t find a boundary detection method that would give me nice, even patterns. I used a simple luminosity boundary detection algorithm on the hand-made masks and superimposed the output onto the maps you see above.</p>
<p>Check back soon for a demo code release!</p>
]]></content:encoded>
			<wfw:commentRss>http://jake.askeland.ws/?feed=rss2&amp;p=64</wfw:commentRss>
		</item>
	</channel>
</rss>
