<?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>Romeil Sandhu dot com &#187; Projects</title>
	<atom:link href="http://romeilsandhu.com/resume/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://romeilsandhu.com</link>
	<description>Mix of Math, Engineering, and Fun</description>
	<lastBuildDate>Sun, 05 Sep 2010 23:44:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Update:  A New Distribution Metric for Image Segmentation</title>
		<link>http://romeilsandhu.com/update-a-new-distribution-metric-for-image-segmentation/</link>
		<comments>http://romeilsandhu.com/update-a-new-distribution-metric-for-image-segmentation/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 20:18:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://romeilsandhu.com/?p=639</guid>
		<description><![CDATA[Hey everyone.  As the holiday season approaches, I am finding time to gather some MATLAB code that I did for research projects that were completed.  While it is already mentioned on my project&#8217;s page, I thought I point to an update that code for &#8220;A New Distribution Metric for Image Segmentation&#8221; is now available.  You [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Hey everyone.  As the holiday season approaches, I am finding time to gather some MATLAB code that I did for research projects that were completed.  While it is already mentioned on my project&#8217;s page, I thought I point to an update that code for &#8220;A New Distribution Metric for Image Segmentation&#8221; is now available.  You can also find it on the Mathworks MATLAB file exchange.  At any rate, here&#8217;s a quick link to download the code for those that are interested.</div>
<p><img class="alignleft size-full wp-image-645" style="margin-top: 0px; margin-bottom: 10px;" title="corpus" src="http://romeilsandhu.com/wp-content/uploads/2009/12/corpus1.png" alt="corpus" width="158" height="130" />Hey everyone.  As the holiday season approaches, I am finding time to gather some MATLAB code that I did for research projects that were completed.  While it is already mentioned on my project&#8217;s page, I thought I point to an update that code for &#8220;A New Distribution Metric for Image Segmentation&#8221; is now available.  You can also find it on the Mathworks MATLAB file exchange.  At any rate, here&#8217;s a quick link to download the code for those that are interested.</p>
<p><strong>Download Link</strong>:  <a href="http://www.romeilsandhu.com/publications/new_metric_matlab_code.zip">New_Distribution_Metric_Active_Contour_Segmentation.zip</a></p>
<p>As always, if you have any questions or comments, feel free to ask!</p>
]]></content:encoded>
			<wfw:commentRss>http://romeilsandhu.com/update-a-new-distribution-metric-for-image-segmentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding Theory and Error Correction in Everyday Use</title>
		<link>http://romeilsandhu.com/coding-theory-and-error-correction-in-everyday-use/</link>
		<comments>http://romeilsandhu.com/coding-theory-and-error-correction-in-everyday-use/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 02:54:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://romeilsandhu.com/?p=470</guid>
		<description><![CDATA[Yesterday, I found an old scratched Pearl Jam CD that I had (the classic debut Ten album) and decided to put it in my CD player on my drive home to Alabama.  Thankfully, the music showed no signs of corruption from years of small scratches.  Of course when I first bought the CD, circa 1991, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Yesterday</strong>, I found an old scratched Pearl Jam CD that I had (the classic debut Ten album) and decided to put it in my CD player on my drive home to Alabama.  Thankfully, the music showed no signs of corruption from years of small scratches.  Of course when I first bought the CD, circa 1991, I thought its ability to play music was magic.  Here&#8217;s a cool picture that I found of Pearl Jam &#8212; a definite band favorite of mine.</p>
<p><img class="size-full wp-image-495 alignnone" style="margin: -5px 100px;" title="pearljam_02" src="http://romeilsandhu.com/wp-content/uploads/2009/10/pearljam_02.jpg" alt="pearljam_02" width="435" height="250" /></p>
<p>At any rate, this time around, it dawned upon me of how engineering works even in the harshest conditions.  That is, whether we are playing music, or sending messages into deep space, coding theory and error correction is at the heart of designing the system.</p>
<p>For example, how can we transmit a <em>message </em>that is robust to transmision errors such as CD scratches? For now, we will assume our message consists of 1&#8242;s and 0&#8242;s.  The first step is called encoding.  In addition to just your message, encoding a message is done by appending what is known as <em>parity bits </em>in a unique fashion.  This results in a <em>code </em>word.  So why do this?</p>
<p>Well simply said, just because we would like to transmit a particular message over a channel, we might observe an entirely different message and code word at the receiver.  For those of you not familar with systems design, the transmitter can be considered a CD in our case and the reciever is your speakers.  The &#8220;channel&#8221; is the whole process of reading the data from the cd and interpreting it as music.  Now you can see that errors may be caused from scratches, dirt, and ware of your CD.  These parity bits that are discussed help and enable us to correct the underlying message and decode the correct data.</p>
<p>Lets dive right into an extremely popular coding scheme that is used, the 7-4 Hamming Code.  Here, our message is of length 4 bits (d<sub>1</sub>d<sub>2</sub>d<sub>3</sub>d<sub>4</sub>) with 3 appending parity bits (p<sub>1</sub>p<sub>2</sub>p<sub>3</sub>), totally a code word of 7 bits (d<sub>1</sub>d<sub>2</sub>d<sub>3</sub>d<sub>4</sub>p<sub>1</sub>p<sub>2</sub>p<sub>3</sub>).  Note, in reality, transmitted messages are much longer than our example since they are describing parts of data, i.e. track 5 of Pearl Jam &#8220;Black&#8221; on the Ten Album.  Let&#8217;s say that our message 1101.  How should we encode this?  Looking at the following figure should help us.</p>
<p><img class="alignnone size-full wp-image-516" style="margin: -5px 130px;" title="7-4_Hamming" src="http://romeilsandhu.com/wp-content/uploads/2009/10/7-4_Hamming.png" alt="7-4_Hamming" width="300" height="279" /></p>
<p>The 7-4 Hamming scheme encodes a message by making sure that if we input our data message into the above diagram at the specified locations, then the parity bits are added to ensure the sum of each circle is even.  Here I should note that we are using modulo 2 arithmetic for addition (e.g., 1+1 = 0, 1+0 = 1, &#8230;).  Doing so, we can then see the above message of 1101 is encoded as 1101100.  Hopefully this wasn&#8217;t bad!  Now, what happens if we transmitted this code word, but due to extraneous noise caused from our system, the message received is shown below.</p>
<p><img class="alignnone size-full wp-image-526" style="margin-top: -5px; margin-bottom: -5px;" title="system_cdplayer" src="http://romeilsandhu.com/wp-content/uploads/2009/10/system_cdplayer.png" alt="system_cdplayer" width="586" height="173" /></p>
<p>We see here that our observed code word is 1111100.  The term &#8220;observed&#8221; here is important from a conceptual point of view.  That is, we have no idea of what the input code word is nor any of the system noise (we can only assume a general model for our system at best).  So how can we decode our message at the receiver with no knowledge of what the input is, but only that it was encoded via a 7-4 Hamming scheme?</p>
<p>One simple way is to put the code word in the above ven diagram, and see where the sum of each circle is not equal.  Doing so, one sees that the bottom two circles are not even in their sum.  But&#8230; should we flip the appropriate parity bits to be 1 rather than 0 or flip the third message bit from a 1 to a 0?  Either is a valid code word from a decoding point of view.  This means one can &#8220;correct&#8221; an error of the code word, but this code word may not be the underlying transmitted word.  This is known as a &#8220;decoding error.&#8221;  From this, the 7-4 Hamming code can be shown to correct at most 1 single bit error without resulting in a &#8220;decoding error.&#8221;  Unfortunately, there is no way around this and is dependent on the coding scheme that is used.  For the 7-4 Hamming code, if we have two or more bit errors in the transmission, the decoder may result in an error (but have a valid code). Because the decoder itself is beyond the scope of this post, I&#8217;ll refer you to this nice <a href="http://en.wikipedia.org/wiki/Hamming%287,4%29">Wikipedia article.</a> Also, given a coding scheme, different decoders may be used.  For example, if you use a convolution code (which can be found on my project&#8217;s page soon), one can use what is known as a <a href="http://en.wikipedia.org/wiki/Convolutional_code">Trellis Map </a>to efficiently decode your message.  After we pass the information through the decoder, the correct code word will indeed be our transmitted code word.  While I have simplified this example and shown the use of the above ven diagram, more complex schemes will need a more powerful way of decoding involving parity check matrices (see wiki article).</p>
<p>Lastly, I will note that this coding scheme can only correct a single bit flip as opposed to several bits in a row, which is called a &#8220;burst error.&#8221;  So for our CD scratch example, where a scratch can be seen as several bits corrupted in a sequence, we will need to use other coding techniques in combination with the Hamming Code.</p>
<p>If you are interested, I have provided additional details on achieving a more efficient code via convolution codes.  This will soon be found on my projects page with MATLAB code for you to test out.  I have also written a short techncal summary that can be found on resume and publications page under &#8220;Technical Reports.  Here&#8217;s a quick <a href="http://www.romeilsandhu.com/publications/Sandhu09_Coding_Theory_Project.pdf">link</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://romeilsandhu.com/coding-theory-and-error-correction-in-everyday-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What does distance mean in imaging?</title>
		<link>http://romeilsandhu.com/what-does-distance-mean-in-imaging/</link>
		<comments>http://romeilsandhu.com/what-does-distance-mean-in-imaging/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 22:31:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://romeilsandhu.com/?p=291</guid>
		<description><![CDATA[Distance is one of those ideas that we or (at least I) have taken for granted. This basic question arises in many fields like that of image processing and has become a major part of my PhD research. In particular, we have introduce a new distrubtion metric that arises from prediction theory. But before going [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Distance </strong>is one of those ideas that we or (at least I) have taken for granted.  This basic question arises in many fields like that of image processing and has become a major part of my PhD research.  In particular, we have introduce a new distrubtion metric that arises from prediction theory.  But before going into this, I&#8217;ve written a short introduction to those that are not familar to how one really defines a &#8220;distance&#8221; between two points.</p>
<p>I&#8217;ve found one of the more tangible examples is path planning by GPS.  Of course, you may all know how many miles it roughly takes you to go from your home to your favourite restaurant.  The more interesting question is how exactly does GPS compute the mileage?  The obvious answer here is the miles that it takes you while traveling on a road or other legal pathways (e.g., not through the local shopping mall).  It takes me 7.6 miles to go from Georgia Tech to my temporary favorite, Panera Bread.  For fun, here&#8217;s a quick view of the path.</p>
<p><iframe width="600" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?daddr=2311+North+Druid+Hills+Rd+NE,+Atlanta,+GA+30329&amp;geocode=%3BFacqBAIdczv5-g&amp;dirflg=&amp;saddr=313+Ferst+Drive,+Atlanta,+Georgia,+30318&amp;f=d&amp;sll=33.827646,-84.329563&amp;sspn=0.006693,0.009645&amp;ie=UTF8&amp;ll=33.80054,-84.36331&amp;spn=0.06174,0.06742&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?daddr=2311+North+Druid+Hills+Rd+NE,+Atlanta,+GA+30329&amp;geocode=%3BFacqBAIdczv5-g&amp;dirflg=&amp;saddr=313+Ferst+Drive,+Atlanta,+Georgia,+30318&amp;f=d&amp;sll=33.827646,-84.329563&amp;sspn=0.006693,0.009645&amp;ie=UTF8&amp;ll=33.80054,-84.36331&amp;spn=0.06174,0.06742&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<p>Ok so with that trivial example, the next question that begs to ask is well what if it isn&#8217;t distance between two points in a city, but between two cities in different continents? Better yet, what if you decided to fly a plane rather than drive &#8212; then you can fly right over that shopping mall! <span id="more-291"></span> However, if you have ever flown in an airplane and have seen a flight of path that is being displayed, you realize that the path is not a straight line, but rather it resembles an arc (even assuming times where turbulence is being avoided).  Realizing that airlines what to be the most efficient, it would seem that a straight line would be better?? The short answer is no.  In fact, the arc pathway that is taken is the shortest distance possible between the two cities.  Below is flight path (in red) from Atlanta Hartsfield Airport to this year&#8217;s Computer Vision and Pattern Regconition Conference (CVPR) sight in San Francisco.  Note, the black line is a straight line for reference.</p>
<p><img class="alignleft size-full wp-image-312" title="flight_path" src="http://romeilsandhu.com/wp-content/uploads/2009/09/flight_path.png" alt="flight_path" width="618" height="309" /></p>
<p>The question is why? Well, it has to do with the surface that we live &#8212; the earth or better yet, a sphere!  Tthe shortest distance between any two points that live on a sphere can be characterized by great circles or arcs.  In differential geometry, this shortest distance is known as a <strong>geodesic</strong>.  The first inclination is then why do our GPS compute distance via miles traveled on roads, doesn&#8217;t it make more sense to compute the arc between your home and that favorite restaurant of yours?  First lets assume that the resturant is in San Franciso and you are in Atlanta.  Then the answer is yes and no.   If you had a plane, and were flying by plane, then yes.  This is because you can assume that the surface that you travel on has no restrictions except that it is a sphere.  Now if you are traveling by road, then you can think of your surface as not really being a sphere.  The buildings and restricted legal pathways make the surface on which you compute distance an entirely different one!  Thus, the GPS computes this distance, in which is interestingly referred to as the &#8220;taxicab distance&#8221; or &#8220;taxicab geometry.&#8221;  The arguement of &#8220;shortest path&#8221; for path planning by GPS is beyond our present discussion.  If you are interested though, the area has been studied in many control problems.  Here&#8217;s a link to the webpage of <strong><a href="http://people.csail.mit.edu/enikolova/">Evdokia Nikolova</a></strong>, who gave an excellent seminar here at Georgia Tech.</p>
<p>Now lets take what we have learned a step further.  Say that I have a set of data points that characterize  specific object <strong>p</strong> and another set of points that characterize object <strong>q</strong>, what is the distance between these <strong>p</strong> and <strong>q</strong>?  The first question that you may ask is what surface do these points lie on.  If they live in the Euclidean world, then the answer is simple.  Its the distance that we have learned since we were little, and one that Shaq has once used to describe his skills as an athlete:</p>
<blockquote><p>Shaq:  I&#8217;m like the pythagorean theorem. Not too many people know the answer to my game.</p></blockquote>
<p>Unfortunately, to the shagrin of Shaq, this distance,which is also known as the Euclidean distance, only answer&#8217;s the problem for linearly related points or those points that live on a Euclidean surface.  If these points were derived from a probability space (e.g., <strong>p</strong> and <strong>q</strong> now represent probability density functions) the answer is not so simple.  In fact, this now leads us to a new class of distance metrics that try to measure the similarity between two probability density functions.</p>
<p>In computer vision and segmentation, being able to characterize an image through statistical measures has recently grabbed many people&#8217;s attention.  Segmentation, which is a low level vision task, is the idea of being able partition a certain object from that background.  You can imagine now that in the above examples, <strong>p</strong> now represents an object we would like to grab in an image while <strong>q</strong> is the background.  Interestingly, the ability to quanitify the distance between the two probability measures plays a major role on how effective one&#8217;s segmentation algorithm is.  This has become a major research of mine, where it has been my joy to work with Tryphon Georgiou to introduce a new way of characterizing distance in the area of imaging and perhaps, even in your everday life! Please check out my<a href="http://www.romeilsandhu.com/research_projects/41/"><strong> project&#8217;s page</strong></a> for more details.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 64px; width: 1px; height: 1px;">&lt;iframe width=&#8221;425&#8243; height=&#8221;350&#8243; frameborder=&#8221;0&#8243; scrolling=&#8221;no&#8221; marginheight=&#8221;0&#8243; marginwidth=&#8221;0&#8243; src=&#8221;http://maps.google.com/maps?daddr=2311+North+Druid+Hills+Rd+NE,+Atlanta,+GA+30329&amp;amp;geocode=%3BFacqBAIdczv5-g&amp;amp;dirflg=&amp;amp;saddr=313+Ferst+Drive,+Atlanta,+Georgia,+30318&amp;amp;f=d&amp;amp;sll=33.827646,-84.329563&amp;amp;sspn=0.006693,0.009645&amp;amp;ie=UTF8&amp;amp;ll=33.80054,-84.36331&amp;amp;spn=0.06174,0.06742&amp;amp;output=embed&#8221;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href=&#8221;http://maps.google.com/maps?daddr=2311+North+Druid+Hills+Rd+NE,+Atlanta,+GA+30329&amp;amp;geocode=%3BFacqBAIdczv5-g&amp;amp;dirflg=&amp;amp;saddr=313+Ferst+Drive,+Atlanta,+Georgia,+30318&amp;amp;f=d&amp;amp;sll=33.827646,-84.329563&amp;amp;sspn=0.006693,0.009645&amp;amp;ie=UTF8&amp;amp;ll=33.80054,-84.36331&amp;amp;spn=0.06174,0.06742&amp;amp;source=embed&#8221; style=&#8221;color:#0000FF;text-align:left&#8221;&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;</div>
]]></content:encoded>
			<wfw:commentRss>http://romeilsandhu.com/what-does-distance-mean-in-imaging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
