Project Two Boundry Detector

Design Overview

1. create_filter_bank.m:
In each loop, I convovle a simple sobel filter(3x3) with a gaussian filter based on the given sigmas and then rotate the result filter by the angle in orientations. The parameters are the default 16x2.

2. gen_oriented_masks.m:
In each loop, I create two opposite half discs with horizontal divide line and then rotate them by the values in g_orients. parameters are the default 8x3.

3. pb_lite.m

I did the element-wise product of the base canny, mean of tg feature and mean of bg feature.

4. texton_img.m

I filtered the image by every filter in the fb, collapse them into an 2D data set and pass the data set to the kmeansML. I choose the kmeansMl over the matlab kmean because it is slightly faster. The K is default 64.

5. get_gradient.m
At first, it takes very long time to filter the tmp. It becomes much faster when I replace the imfilter with conv2. Later, James told me that imfilter is type sensitive and it should be as fast in single precision. There are three loops, one for orientations, one for scales and one for bins.


This is the result PR curve


Filterbank and half Disc Mask. Notice that although I stretched the image to rectangles, the filters are actually squares.


The following ten images are the result of my pb lite.

login: wchi