CS 1430 Project 2: pb-lite: Boundary Detection

Kumud Nepal
October 10, 2011

Overview

pB-lite boundary detection detects boundaries in images by considering texture, brightness and color discontinuities. It is superior to classical methods of boundary detection like sobel and canny algorithms because of its ability to suppress false positives produced by the classical algorithms in textured regions. In this project, a simplified version of pb is implemented, which finds boundaries by examining brightness and texture information accross multiple scales. The output is a per-pixel probability of boundary. Evaluation of the effectiveness of this pb-lite implementation will be done against human annotations (ground truth) from a subset of the Berkeley Segmentation Data Set 500 (BSDS500).



Boundary detection Examples

Example 1: Original Picture - Butterfly

Boundaries detected by Sobel

Boundaries detected by Canny

Boundaries detected by pB

___________________________________________________



Example 2: Original Picture - Butterfly

Boundaries detected by Sobel

Boundaries detected by Canny

Boundaries detected by pB

Boundary Detection Process

Filter Banks used: 2 scales and 16 orientations

Filter banks are generated with different scales and orientation, and are filtered with the image input, and clustered into a set of texton ids using k-means, to generate a texton map.



Cicular half-disc mask pairs generated: 8 orientations, 3 scales

Half-discs of binary circles are used as masks as reference for brightness gradient and histogram calculations for texture and brightness gradient, using chi-square differences.



Texton Map generated

Texton map is generated by filtering the image with the filter banks and clustering the results into 64 bins of texton ids. Similarly for brightness gradient, 32 bins are used.



Evaluation

Test set of ALL 200 images given




Test set of 10 images




It is seen that for a test set of only 10 images, the pb-lite imlementation gives a higher ODS F value (0.59) than both sobel (0.45) and canny (0.58), indicating that it is outperforming both in boundary detection per pixel. However, for all 200 images, the ODS F value for canny and pB are the same (0.60). The pB implementation also takes significantly longer amount of time to process each image than either canny or sobel. Evaluation wise though, a sobel implementation takes 38.8109050 seconds to finish, while canny takes 74.402107 seconds and pb takes 55.598894 seconds. This is all for a test set of only 10 images.