Onur Ulusel Asgn2

CS143 - Introduction to Computer Vision

Onur Ulusel (oulusel)
Oct 10, 2011

Assignment Description

The aim of this assignment is to implement a simplified version of the pb boundary detection algorithm, which will return a per-pixel probability of boundary. An image processing group from Berkeley describe this algortihm in detail.

Implementation

The implementation of the algorithm was done purely in MATLAB. Texture, brightness and color information of an image is examined to assign a pb score to each pixel location. Once a pb score is generated, the boundaries found by canny edge detection are re-evaluated to see if they are boundaries or not. The final boundaries found are then compared with boundaries found by sobel edge detection, canny edge detection, state of the art gpb algorithm and ground truth boundaries drawn by observers. (benchmarks taken from the Berkeley Segmentation Data Set 500 (BSDS500))

Texture properties of images are found by using oriented filter bank. This filter bank is applied to each image to compute the textons. The result of these filters are passed through a k-nearest neigbour algorithm to segment out k (64 for this implementation) unique textons. The filter bank used in this implementation include 16 different orientations and 2 different scales of a gaussian kernel along with a difference of gaussian (DoG) as a center-surround filter. The filter bank is shown in the following figure.

The image is converted in to CIE Lab colorspace and its brightness, color a and color b channels are extracted for evaluation as suggested by the original pb algorithm. Then texton gradient (tg), brightness gradient (bg) and color gradients (cag and cbg) are computed using pairs of half-disc masks for 8 different orientations and 3 different scales. The gradient is computed by comparing the distributins in the left and right half of the given disc pairs. The scales used for texton and brightness ([5 10 20]) and the scales used for color gradients ([2.5 5 10]) differ as been suggested in the original pb implementation. Once the gradients are computed, they are compared using the chi-square measure. The generated masks are given in the following figures. The masks displayed on left are used for texton and brightness gradients and the masks displayed on right are used for color gradients.



A sample of the performed boudary detection is showed below. The figures from top to bottom: (1) input image (2) boundary strength from baseline method based on Canny edge detection (3) boundary strength from baseline method based on Sobel edge detection (4) sample "pb-lite" result (5) Sample human annotated ground truth. It can be seen that texture edges are less likely to be labeled as boundary by the pb algorithm.



The precision-recall curve obtained when 200 images are tested is given below along with all the evaluation scores.



./data/baseline1tmp/
Boundary
ODS: F( 0.64, 0.43 ) = 0.51 [th = 0.13]
OIS: F( 0.63, 0.48 ) = 0.54
Area_PR = 0.28

../data/baseline2tmp/
Boundary
ODS: F( 0.65, 0.55 ) = 0.60 [th = 0.18]
OIS: F( 0.70, 0.55 ) = 0.61
Area_PR = 0.53

../data/mypbtmp/
Boundary
ODS: F( 0.67, 0.56 ) = 0.61 [th = 0.11]
OIS: F( 0.69, 0.59 ) = 0.64
Area_PR = 0.54