Sunday, March 7, 2010

A Freeman's Silhouette




The Freeman Code has garnered a number of applications in image processing. Some Malaysians (http://paper.ijcsns.org/07_book/200911/20091132.pdf) have used the Freeman Chain Code for car plate number recognition. Filipinos (http://people.ee.duke.edu/~qh/classes/spring2007/ece635/index_files/papers/curve_spread.pdf) have used the Freeman Vector Code for Silhouette Processing for use in frontal human gait recognition (apparently, we can also recognize people just by the way they walk:) <-- how true in my HS barkada!)

Sample Freeman Transformation / Encoding

The Freeman Code is a shape representation of a boundary of connected pixels(4-connected or 8-connected) where each pixel is numbered according to it's relative position. This representation scheme is very powerful since (1) it preserves the information of interest(the outline/edge), (2) it permits compact storage(just an array of numbers!!), and (3) facilitates processing.

So for the Gait Silhouette, the Freeman Code looks like:

From this Freeman-coded representation, we can even get concavities just by applying a simple gradient running average onto the freeman code array which results in some + / - or 0 values that is indicative of whether there is a convex or concave curve or none at all:)

Now, for this activity, I chose to look at race tracks.:) Why?? well, i was studying some mobile robot tracks and google earth images at this time(with some roads) :) I guess this is what came first into my mind then when I heard: edge + curve + image. hehehe

and so here are some race tracks, clean, ideal, made from paint!

I chose to process the 2nd one. The one with a thinner outline so that i do not have to do any edge detection anymore.



I used the freeman transformation shown above(Sample Freeman Encoding) which Soriano et al also used in their Curve Spread work.

Now, let's see if we can also get the curvature information:)



Notice how the values swing from + to - to zero. The signs indicate whether the curve is convex or concave, and zero means straight.



Grade for this Activity: 1.25 ... or from 0-10, 9.5 i think i could have done this sooner and without being so messy:)

No comments:

Post a Comment