In this project, pb-lite boundary detection is done in the following process:

1. Create a filter bank by convolving a sobel filter with a Gaussian kernel.
2. Create a set of binary half-disc mask pair.
3. Create a texton map: filter the image with the filter bank to get responses, use k-mean algorithm to cluster the responses into discrete texton id.
3. Get the gradients: compare the histograms by convolving the textonmap with the half-disc masks, then calculate the chi-square distance between the left and right resulted images.
4. Combine the texton and brightness gradients (taking mean values) and the Canny result to obtain the final outcome.

Below are an F-score table, sample results of one picture from the testset and the curve:

  Baseline 1 [th = 0.09] Baseline 2 [th = 0.18] Pb-lite [th = 0.10]
ODS: F( 0.38, 0.55 ) = 0.45 F( 0.70, 0.54 ) = 0.61 F( 0.73, 0.53 ) = 0.62
OIS: F( 0.38, 0.55 ) = 0.45 F( 0.74, 0.53 ) = 0.62 F( 0.69, 0.56 ) = 0.62
Area_PR: 0.21 0.48 0.53

Sobel, Canny and Pb-lite results respectively.

 

 

Extra credit

 

1. More oritentations:

By using 32 orientations instead of 16 - the baseline, the results are slightly improved:
Specifications: orientations = 32 + center-surround filter.

  Baseline 1 [th = 0.09] Baseline 2 [th = 0.18] More orients [th = 0.11]
ODS: F( 0.38, 0.55 ) = 0.45 F( 0.70, 0.54 ) = 0.61 F( 0.72, 0.54 ) = 0.61
OIS: F( 0.38, 0.55 ) = 0.45 F( 0.74, 0.53 ) = 0.62 F( 0.69, 0.56 ) = 0.62
Area_PR: 0.21 0.48 0.53

 


2. Add a center-surround filter:

When creating the filter bank, add a center-surround filter by taking the difference of 2 Gaussians kernel at each scale.

  Baseline 1 [th = 0.09] Baseline 2 [th = 0.18] More orients [th = 0.10]
ODS: F( 0.38, 0.55 ) = 0.45 F( 0.70, 0.54 ) = 0.61 F( 0.72, 0.53 ) = 0.61
OIS: F( 0.38, 0.55 ) = 0.45 F( 0.74, 0.53 ) = 0.62 F( 0.70, 0.55 ) = 0.61
Area_PR: 0.21 0.48 0.53

 

Using the color gradients:

In addition to brightness and texton gradients, convert the image to CIELab color space, and calculate the gradients of channels a and b. The results pb-lite is the average of the 4 gradients multiply (element-wise) canny result.

Specifications: orientations = 32 + center-surround filter.

  Baseline 1 [th = 0.09] Baseline 2 [th = 0.18] More orients [th = 0.10]
ODS: F( 0.38, 0.55 ) = 0.45 F( 0.70, 0.54 ) = 0.61 F( 0.72, 0.53 ) = 0.61
OIS: F( 0.38, 0.55 ) = 0.45 F( 0.74, 0.53 ) = 0.62 F( 0.68, 0.56 ) = 0.62
Area_PR: 0.21 0.48 0.53

 

Using the maximum gradients:

Instead of using the mean values of feature gradients, use the maximum gradients among different scales and orientations. This significantly improves the results.

Specifications: orientations = 16 + center-surround filter. Gradients used: texton, brightness, a and b gradients.

  Baseline 1 [th = 0.09] Baseline 2 [th = 0.18] More orients [th = 0.10]
ODS: F( 0.38, 0.55 ) = 0.45 F( 0.70, 0.54 ) = 0.61 F( 0.70, 0.57 ) = 0.63
OIS: F( 0.38, 0.55 ) = 0.45 F( 0.74, 0.53 ) = 0.62 F( 0.67, 0.59 ) = 0.63
Area_PR: 0.21 0.48 0.54