<?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>ContentFull &#187; Andre (2009-?)</title>
	<atom:link href="http://www.contentfull.com/category/andre-2009/feed" rel="self" type="application/rss+xml" />
	<link>http://www.contentfull.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 02 Sep 2011 14:13:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Addressing level of expertise</title>
		<link>http://www.contentfull.com/andre-2009/research-andre-2009/addressing-level-of-expertise</link>
		<comments>http://www.contentfull.com/andre-2009/research-andre-2009/addressing-level-of-expertise#comments</comments>
		<pubDate>Fri, 02 Sep 2011 14:13:58 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=572</guid>
		<description><![CDATA[The question/answer model for classifying coins is&#194;&#160;reasonable&#194;&#160;for applications where the expertese of the person who trained the system and the user of the system are equal. For instance in the bird dataset presented by [1] the questions and answers were mostly understood by the users, and thus the &#8220;human&#8221; element can be used to increase [...]]]></description>
			<content:encoded><![CDATA[<p>The question/answer model for classifying coins is&Acirc;&nbsp;reasonable&Acirc;&nbsp;for applications where the expertese of the person who trained the system and the user of the system are equal. For instance in the bird dataset presented by [1] the questions and answers were mostly understood by the users, and thus the &#8220;human&#8221; element can be used to increase classification accuracy. However, the paper notes that the&Acirc;&nbsp;deterministic&Acirc;&nbsp; experiments yielded a higher accuracy than when tested with actual humans. Was this due to lack of complete understanding of the questions and answers? The paper addressed this issue by allowing users to judge their confidence of their answers. While a reasonable method, there is little work done in the field of confidence accuracy from the psychological standpoint. Is it fair to be confident about confidence?</p>

<p>Back to the coins, there are a few intuitions which seem important to be noted.First, coins are ultimately&Acirc;&nbsp;annotated&Acirc;&nbsp; by students who copy from primary sources written by experts. &Acirc;&nbsp;Second, ideally the expert uses a more precise vocabulary than the student (where &#8220;precise&#8221; is a metric not yet defined). Third, ideally the entropy present in the answers given by experts is far higher than that of students. That is, students answer questions in more general terms than experts such that an expert&#8217;s answer is far more helpful in classifying a coin than a student&#8217;s answer. The problem arises due to the fact that coins are annotated by experts and no graceful method for generalizing the questions/answers exists&Acirc;&nbsp;implicitly&Acirc;&nbsp;in the dataset. All questions trivially present in the database such as &#8220;Name the figure on the reverse of the coin from this list&#8221; has no clear general form. That is, not without knowing about linguistics because the general form of the question could be &#8220;Is the figure on the reverse of the coin a male or female or other?&#8221;</p>

<p>One way of generalizing questions/answers is to use WordNet. This is not a trivial issue, but has been researched at length. Instead of asking the question &#8220;Figure on the obverse of coin&#8221; and offer over 100 answers to choose from, more abstract questions could potentially be used by abstracting the answers, and then further refining the answer as needed. Bellow is a tree of the abstraction of answers where the green circles represent actual answers encoded in the dataset and the black circles represent abstract answers.</p>

<p><a href="http://www.contentfull.com/andre-2009/research-andre-2009/addressing-level-of-expertise/attachment/obversefiguretree" rel="attachment wp-att-576"><img class="alignnone size-medium wp-image-576 aligncenter" title="ObverseFigureTree" src="http://www.contentfull.com/wordpress/wp-content/uploads/2011/09/ObverseFigureTree-300x83.png" alt="" width="300" height="83" /></a></p>

<p>Many terms are not included in this chart, and many of the generalized answers are not intuitive or what questions can be made such that the answers make sense. These are points of further research. What does become apparent is that several answers which are encoded in the dataset can be generalized into much broader terms. Example: instead of having answers &#8220;Ares&#8221; and &#8220;Luna&#8221; side by side its more intuitive (a metric that needs further defining) for a student to be first asked about &#8220;Greek deities&#8221; and &#8220;Roman deities&#8221;.</p>

This is not a new idea and has been partially been explored in [2] where image classification is improved by the use of WordNet ontologies. What has not been done however, is added the interactive nature of question and answer which is crucial for difficult datasets such as coins.<br />
<ol>
	<li>&#8220;Visual Recognition with Humans in the Loop&#8221;, Branson, Wah, Schroff, Babenko, Welinder, Perona, Belongie. 2010</li>
	<li>&#8220;Exploiting ontologies for automatic image annotation&#8221;, Srikanth, Varner, Bowden, Moldovan. <span class="caps">SIGIR</span> 2005.</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/research-andre-2009/addressing-level-of-expertise/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Answer similarity</title>
		<link>http://www.contentfull.com/andre-2009/research-andre-2009/answer-similarity</link>
		<comments>http://www.contentfull.com/andre-2009/research-andre-2009/answer-similarity#comments</comments>
		<pubDate>Sun, 28 Aug 2011 14:58:31 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=570</guid>
		<description><![CDATA[In the question/answer model for coin identification similarity is an important metric. Prior methods in question/answer systems have shown good results by using image similarity and across-question similarity, however answers have been mostly been ignored. Let&#8217;s assume for any given question, there is a discreet set of possible answers, one of which is the &#8220;correct&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>In the question/answer model for coin identification similarity is an important metric. Prior methods in question/answer systems have shown good results by using image similarity and across-question similarity, however answers have been mostly been ignored.</p>

<p>Let&#8217;s assume for any given question, there is a discreet set of possible answers, one of which is the &#8220;correct&#8221; one. In prior work if the wrong answer is given, it can drastically skew the accuracy of results. This is particularly the case in the Coin dataset. If a coin is annotated to have a &#8220;young male&#8221; on the obverse side but the user mistakes it for &#8220;Zeus&#8221; this will make identifying the coin almost impossible. Current systems recover from such situations by asking the user more questions as to dampen the incorrect answer. This is however clumsy as the more questions that are asked, more likely is there a chance for incorrect answers to be given (or rather, there is a fixed error rate for all questions).</p>

It&#8217;s for this reason that it would seem good to have a sort of metric to measure how similar answers are as to not to consider &#8220;young male&#8221; confused with &#8220;Zeus&#8221; to be completely incorrect. Many issues arise which are curious by themselves as possible research paths:<br />
<ul>
	<li>&#8220;young male&#8221; vs. &#8220;boy&#8221;. WordNet can be used to find similarity of single words, not phrases. How to address phrase similarity is a problem.</li>
	<li>&#8220;man&#8221; vs. &#8220;Zeus&#8221;. WordNet does not have proper nouns. This seems a problem suited for ontological studies.</li>
	<li>&#8220;Zeus&#8221; vs. &#8220;Jupiter&#8221;. This is the most curious issue because it crosses several problems. First it is similar to the ontological problem as both could be thought of as &#8220;man&#8221; and thus share some similarity. Or some equivalency could also exist, like a pseudonym. Second, and much more interesting, there exists no historical/mythical genealogical database similar to WordNet. It would be very helpful if similarity between &#8220;Henry II&#8221; and &#8220;Henry <span class="caps">III</span>&#8221; could be calculated because that is much more similar to &#8220;Buddha&#8221; who shares no historical or mythical connection.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/research-andre-2009/answer-similarity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Questions to ask</title>
		<link>http://www.contentfull.com/andre-2009/research-andre-2009/questions-to-ask</link>
		<comments>http://www.contentfull.com/andre-2009/research-andre-2009/questions-to-ask#comments</comments>
		<pubDate>Mon, 18 Jul 2011 19:39:16 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=559</guid>
		<description><![CDATA[One method to dealing with multi-class classification/image retrieval is incorporating the user into the task. Particularly interesting is with the approach of asking the user questions which he/she can readily answer but the computer cannot. Animals A simple example would be using the &#8220;Animals with attributes&#8221; dataset where every picture has a set of attributes [...]]]></description>
			<content:encoded><![CDATA[<p>One method to dealing with multi-class classification/image retrieval is incorporating the user into the task. Particularly interesting is with the approach of asking the user questions which he/she can readily answer but the computer cannot.</p>

<p><strong>Animals</strong></p>

<p>A simple example would be using the &#8220;Animals with attributes&#8221; dataset where every picture has a set of attributes which are all equally challenging. These include things such as: Is it X (where X is the color of the animal), does it have stripes, does it like water, does it eat X, and etc&amp;&#8230; These are complex which require prior knowledge but that can also quickly improve classification/retrieval accuracy. [1]</p>

<p><strong>Coins</strong></p>

<p>Coins are very similar to the &#8220;Animal with attributes&#8221; dataset. Some basic questions include: Does the obverse contain an animal, what is the pose of the obverse figure, how many beings are on the obverse side, and &amp;etc&#8230; As it can be see, while questions can be made, they are no longer boolean. While they could be reduced to boolean questions it would also create dependencies between the questions as well as drastically increasing the total number of attributes. For this reason a good system would have to be able to incoreporate non-boolean questions for it to be practical. Also many of the answers to these questions are similar for instance some figures are said to be &#8220;charging&#8221; while others are &#8220;running&#8221;. These similarities if not taken account of would make any system impractical. Some understanding of attribute similarity is important to allow for both user and ground-truth errors that may exist.</p>

<p>[1] Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer. Lampert, Nickisch, Harmeling. 2009</p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/research-andre-2009/questions-to-ask/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Relations between Coins and other datasets</title>
		<link>http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets</link>
		<comments>http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets#comments</comments>
		<pubDate>Sat, 16 Jul 2011 14:43:06 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=537</guid>
		<description><![CDATA[Classification of images has 2 distinct fields &#8211; differing in the quantity of classes and categories involved. Most studied are the multi-category datasets where subsets of images drastically differ in appearance from the others. Sample images from the Caltech-101 dataset. Link These datasets while difficult, are relatively easy when compared to the multi-class datasets. This [...]]]></description>
			<content:encoded><![CDATA[<p>Classification of images has 2 distinct fields &#8211; differing in the quantity of classes and categories involved. Most studied are the multi-category datasets where subsets of images drastically differ in appearance from the others.</p>

<p><a rel="attachment wp-att-544" href="http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets/attachment/untitled-2"><img class="alignnone size-full wp-image-544" title="Caltech 101 sample images" src="http://www.contentfull.com/wordpress/wp-content/uploads/2011/07/Untitled.png" alt="" width="440" height="92" /></a></p>

<p><em>Sample images from the Caltech-101 dataset. <a href="http://www.vision.caltech.edu/Image_Datasets/Caltech101/Caltech101.html">Link</a></em></p>

<p>These datasets while difficult, are relatively easy when compared to the multi-class datasets. This is because images belonging to a particular category can be visually different from the other images. For instance a soccer ball is very different from an airplane when color histograms are compared.</p>

<p><a rel="attachment wp-att-549" href="http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets/attachment/histogram"><img class="alignnone size-full wp-image-549" title="Caltech-101 sample images with histogram" src="http://www.contentfull.com/wordpress/wp-content/uploads/2011/07/histogram.png" alt="" width="486" height="242" /></a></p>

<p>Birds and flowers have recently become popular datasets because while the images can still be very different, they are more similar than prior datasets. For this reason they belong in the multi-class type of classification.</p>

<p><a rel="attachment wp-att-550" href="http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets/attachment/flowers"><img class="alignnone size-full wp-image-550" title="Flowers dataset" src="http://www.contentfull.com/wordpress/wp-content/uploads/2011/07/flowers.png" alt="" width="342" height="109" /></a></p>

<p>Flowers dataset. <a href="http://www.robots.ox.ac.uk/~vgg/data/flowers/">Link</a></p>

<p><a rel="attachment wp-att-551" href="http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets/attachment/birds"><img class="alignnone size-full wp-image-551" title="Caltech-UCSD Birds 200 " src="http://www.contentfull.com/wordpress/wp-content/uploads/2011/07/birds.png" alt="" width="394" height="108" /></a></p>

<p>Caltech-UCSD Birds 200. <a href="http://www.vision.caltech.edu/visipedia/CUB-200.html  ">Link</a></p>

<p><a rel="attachment wp-att-552" href="http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets/attachment/coins"><img class="alignnone size-full wp-image-552" title="Coins dataset" src="http://www.contentfull.com/wordpress/wp-content/uploads/2011/07/coins.png" alt="" width="333" height="111" /></a></p>

<p>Coins dataset. Link</p>

<p>As it can be seen, coins is perhaps an extreme example of the multi-class image classification problem. While a numismatic expert may argue that coins from different regions of the world could be split by category, and denominations within the region are actually classes, for the untrained eye (ie. computers) they are pretty much all the same. Unlike flowers where color and petal shape can aid in the classification process coins have neither. Also coins have no &#8220;poses&#8221; as is the case with birds which has been shown to be an important feature. These omissions have all been used in the recent past in creating state-of-the-art classification algorithms for the Bird and Flower datasets. While birds and flowers have a relatively small number of visual characteristics coins have complex scenes that have been painstakingly catalogued by humans.</p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/research-andre-2009/relations-between-coins-and-other-datasets/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome + Mac + I/O Error</title>
		<link>http://www.contentfull.com/andre-2009/technology/chrome-mac-io-error</link>
		<comments>http://www.contentfull.com/andre-2009/technology/chrome-mac-io-error#comments</comments>
		<pubDate>Wed, 15 Sep 2010 22:46:30 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=531</guid>
		<description><![CDATA[A month ago I started getting repeated kernel errors that claimed that an &#8220;I/O Error&#8221; had occurred. When this took place the entire computer would freeze for 1min and then resume as if nothing had happened. I was/am using Snow Leopard and the latest version of Google Chrome on a MacBook Pro. I tried everything: [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago I started getting repeated kernel errors that claimed that an &#8220;I/O Error&#8221; had occurred. When this took place the entire computer would freeze for 1min and then resume as if nothing had happened. I was/am using Snow Leopard and the latest version of Google Chrome on a MacBook Pro.</p>

I tried everything:<br />
<ul>
	<li>Fixing any disk errors</li>
	<li>Fixing any permission errors</li>
	<li>Reinstalling Snow Leopard</li>
	<li>Reinstalling Chrome</li>
</ul>
Finally after much frustration I removed the application settings and the problem went away. A month later however the problem cam back. I almost tried all the above methods again, however instead of removing all the settings instead I cleared the cache. I haven&#8217;t had a problem ever since!]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/technology/chrome-mac-io-error/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transitioning to Python from Matlab – Day 2</title>
		<link>http://www.contentfull.com/andre-2009/programming-current/transitioning-to-python-from-matlab-%e2%80%93-day-2</link>
		<comments>http://www.contentfull.com/andre-2009/programming-current/transitioning-to-python-from-matlab-%e2%80%93-day-2#comments</comments>
		<pubDate>Thu, 20 May 2010 21:35:09 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Andre (2009-?)]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=527</guid>
		<description><![CDATA[A great limit to Matlab the very high price for both individual licenses and distributed/parallel computing toolbox. To this python already has several good alternatives. That said, the documentation and capabilities of these options is highly convoluted. Parallel Python Parallel Python (PP) is a great start in getting code to run in several computers. It [...]]]></description>
			<content:encoded><![CDATA[<p>A great limit to Matlab the very high price for both individual licenses and distributed/parallel computing toolbox. To this python already has several good alternatives. That said, the documentation and capabilities of these options is highly convoluted. </p>

<p><strong>Parallel Python</strong></p>

<p>Parallel Python (<a href="http://www.parallelpython.com/">PP</a>) is a great start in getting code to run in several computers. It works on a versatile client/server model, where generic servers must be launched to do the actual computations and the user must right a client which interacts with the several servers. The nice thing about this module is how fast you are up and running. Basically you pass arguments, and a function pointer to PP and it handles the distribution and gathering of results. Load balancing, passing extra data, and anything that can&#8217;t be done with a single function will be outside the realm of this module. </p>

<p><strong><span class="caps">MPI4P</span>y</strong></p>

<p><a href="http://en.wikipedia.org/wiki/Message_Passing_Interface"><span class="caps">MPI</span></a> is something that I never used, the documentation is sparing, and overall very mysterious. That said, the potential is great. There are several <span class="caps">MPI </span>implementations for Python, and I picked this one because it seemed the easiest to install and start using. Essentially when using <a href="http://mpi4py.scipy.org/"><span class="caps">MPI4P</span>y</a> your script is called in parallel on multiple <span class="caps">CPU </span>cores and/or computers and the <span class="caps">MPI </span>element makes sure that all the instances talk to each other. What is cool is that variables in your program are both local to an instance, but at the same time can be shared seamlessly with your other instances. The documentation is very good, but the actual <span class="caps">MPI </span>standards are very odd and worth learning more about particularly because it can be used with computer clusters. </p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/programming-current/transitioning-to-python-from-matlab-%e2%80%93-day-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transitioning to Python from Matlab &#8211; Day 1</title>
		<link>http://www.contentfull.com/andre-2009/programming-current/transitioning-to-python-from-matlab-day-1</link>
		<comments>http://www.contentfull.com/andre-2009/programming-current/transitioning-to-python-from-matlab-day-1#comments</comments>
		<pubDate>Fri, 14 May 2010 14:14:56 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Andre (2009-?)]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=508</guid>
		<description><![CDATA[People are fast to point out that transitioning from Matlab to Python is easy with NumPy and SciPy. That is, however, far from the case. Having become fed up with the arcane Matlab programming language I figured that the summer would be a great time to move my work to Python. The setup My main [...]]]></description>
			<content:encoded><![CDATA[<p>People are fast to point out that transitioning from Matlab to Python is easy with NumPy and SciPy. That is, however, far from the case. Having become fed up with the arcane Matlab programming language I figured that the summer would be a great time to move my work to Python.</p>

<p><strong>The setup</strong></p>

<p>My main computer runs Snow Leopard and I have become a stickler to running all my applications in 64bit. Not for performance gains (although this does enable the use of OpenCL which &Acirc;&nbsp;is 64bit only), but for consistency. Actual computations are left for my schools computer cluster which uses some linux distribution and are also 64bit machines.</p>


<ul>
<li>Python-2.6</li>
<li>Matlab 2010a on the mac (64bit) </li>
<li>Matlab 7.6 on linux (32+64bit)</li>
</ul>



<p><strong>Great, but what about my old code</strong></p>

<p>The first hurdle to the transition is making all that old Matlab code work. Once in 1999 someone discovered this problem and wrote <a href="http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html">PyMat</a> which interfaced Python and Matlab by using Matlab&#8217;s shared libraries. While perhaps it still works, the code felt very antiquated. It has been over 10 years since the last update! So I wrote a new version from scratch which was a delight for learning more of the internals of Python.</p>

<p>The nice thing about the module I wrote is that is allows for all matlab functions to be called directly so that:</p>



<pre><code>X = matlab.rand(numpy.array([100 100]), 1)</code></pre>



<p>The following snippet calls Matlab&#8217;s native <code>rand</code> function and the result is stored in a numpy array in X. The 1 at the end of the snippet tells the python interface to expect a single return value. In the future this may not be required. </p>

<p>A difficulty in doing this interface is that each Matlab version has slightly different set of function names. This makes the interface have to be slightly tweaked for each version. </p>

<p><strong>Functions that don&#8217;t exist</strong></p>

<p>It surprises to see how many helpful functions Matlab has. Particularly saving and opening images and other assorted data types. Numpy while very good doesn&#8217;t have a easy to use save routine nor can Numpy natively open arbitrary images. While naturally this is because these features are not part of the project&#8217;s mission statement, it does mean more work for the valiant researcher.</p>

<p>Quickly you will see that a handful of functions must be written to do these simple tasks, and while there are plenty of stable modules including <a href="http://www.pythonware.com/products/pil/"><span class="caps">PIL</span></a> and <a href="http://docs.python.org/library/pickle.html">Pickle</a> for opening images and saving data (respectively), it does mean more steps between you and your work. </p>

<p><strong><span class="caps">IDE</span></strong> </p>

<p>Finally by the end of the day you will begin to miss the ugly, Java-esc, Windows-esc and <span class="caps">X11</span>-est <span class="caps">IDE </span>that Matlab has featured for probably over a decade. Being able to inspect variables, even see the variable names being used, and the ugly but useful debug features is badly missed as well. </p>

<p><strong>By the end</strong></p>

<p>By the end you realize why Matlab exists and is widely used. However, unless someone ventures out and fixes the wholes that exist with Python as a Matlab alternative, people will never have an alternative. Unifying the tools that exist for Python and adding interoperability with Matlab are the first steps to making a really good alternative to the most widely used piece of software in the sciences. </p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/programming-current/transitioning-to-python-from-matlab-day-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCV 2.0 for OSX 10.6</title>
		<link>http://www.contentfull.com/andre-2009/programming-current/opencv-2-0-for-osx-10-6</link>
		<comments>http://www.contentfull.com/andre-2009/programming-current/opencv-2-0-for-osx-10-6#comments</comments>
		<pubDate>Mon, 28 Dec 2009 16:57:42 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=506</guid>
		<description><![CDATA[There are plenty of people lost after discovering that OpenCV no longer fully functions with OSX 10.6. I have been working on making changes to update OpenCV 2.0 to work with 10.6 at 32/64 bit. This meant deprecating the use of Carbon (who uses that anymore anyway) and updating the Quicktime implementation which now must [...]]]></description>
			<content:encoded><![CDATA[<p>There are plenty of people lost after discovering that OpenCV no longer fully functions with <span class="caps">OSX</span> 10.6. I have been working on making changes to update OpenCV 2.0 to work with 10.6 at 32/64 bit. This meant deprecating the use of Carbon (who uses that anymore anyway) and updating the Quicktime implementation which now must use <span class="caps">QTK</span>it framework. Nick Butko was nice enough to have already implemented the Quicktime features, so it was a matter of just merging all the changes.</p>

<p>A fork of OpenCV 2.0 can be found at https://code.google.com/p/opencv-cocoa/ which has both the Cocoa and Quicktime updates. This is completely tested so use it with caution. Any help and suggestions are greatly appreciated.</p>

<p>Because Cocoa functions strictly inside a <span class="caps">MVC </span>framework there is a small change that you must make at initializing HighGUI that is found <a href="https://code.google.com/p/opencv-cocoa/wiki/UsingCocoaWithOpenCV" target="_blank">here</a>. It boils down to the fact that your code cannot run in the main thread, because Cocoa needs to run there. So to update any existing projects you must remove your code from the main function and place it in an auxiliary function which is called by cvInitSystem.</p>

<p>I have not yet made any benchmarks, so there is a chance that using Cocoa and <span class="caps">QTK</span>it at either 32 or 64 bit is not imperative for improving performance of your code. The main purpose is to allow the usage of other libraries in conjunction with OpenCV which already work at 64bit and may depend on Cocoa.</p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/programming-current/opencv-2-0-for-osx-10-6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The reason Matlab persists</title>
		<link>http://www.contentfull.com/andre-2009/programming-current/the-reason-matlab-persists</link>
		<comments>http://www.contentfull.com/andre-2009/programming-current/the-reason-matlab-persists#comments</comments>
		<pubDate>Sun, 27 Sep 2009 21:39:31 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Andre (2009-?)]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=500</guid>
		<description><![CDATA[While Matlab may not be in the cutting edge of computing, it does have one great qualitiy: amazing service. While I still have major gripes towards using it due to its slowness, antiquated programming language, and lack of Mac support, they did an honest effort in fixing a bug I filed. Within 24 hours someone [...]]]></description>
			<content:encoded><![CDATA[<p>While Matlab may not be in the cutting edge of computing, it does have one great qualitiy: amazing service. While I still have major gripes towards using it due to its slowness, antiquated programming language, and lack of Mac support, they did an honest effort in fixing a bug I filed. Within 24 hours someone contacted me asking for more information about the bug, and a week later I was told files were available that would fix the issue. While the fix didn&#8217;t fix much, and it was not in an easy to use patch, they did try. Never would an open source solution be so helpful.</p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/programming-current/the-reason-matlab-persists/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image warping with OpenCL</title>
		<link>http://www.contentfull.com/andre-2009/programming-current/image-warping-with-opencl</link>
		<comments>http://www.contentfull.com/andre-2009/programming-current/image-warping-with-opencl#comments</comments>
		<pubDate>Tue, 08 Sep 2009 21:56:06 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.contentfull.com/?p=493</guid>
		<description><![CDATA[Finally image warping is no longer painful. In previous projects warping images was the slowest component in the algorithm. In face tracking for instance a good 1/3 to 2/3 of the time was just warping them. OpenCL finally changes all of this. With just a hundred lines you can warp +12,000 images (each 48&#215;48) in [...]]]></description>
			<content:encoded><![CDATA[<p>Finally image warping is no longer painful. In previous projects warping images was the slowest component in the algorithm. In face tracking for instance a good 1/3 to 2/3 of the time was just warping them. OpenCL finally changes all of this. With just a hundred lines you can warp +12,000 images (each 48&#215;48) in under 1 second! It could take up to a 1 sec to do 300 samples without <span class="caps">GPU </span>processing.</p>

<p>It is extremely easy to write OpenCL kernels (although there is room for improvement) and <a href="http://www.contentfull.com/?attachment_id=497">here</a> is the warping kernel I have written.</p>]]></content:encoded>
			<wfw:commentRss>http://www.contentfull.com/andre-2009/programming-current/image-warping-with-opencl/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

