PB Lite

PB Lite performs better than classical edge-detection algorithms, such as Sobel filtering (simple) and Canny edge detection (elaborate). PB Lite achieves its advantage by extracting texture features from an image and searching for evidence of edges in the form of large texture gradients.

The pipeline of my version of the algorithm is as follows:

Creating A Filter Bank

Most of the filters used were derivatives of Gaussian curves, rotated at 16 different orientations, and on two scales (sigma = 1 or 2 pixels). Center-surround filters were also included in the filter bank. These were generated by adding two concentric Gaussian curves of different sizes and opposite signs.

Generating a Texton Map

An pixel's responses to the filters in the filter bank are indicative of which texture group, or "texton", it belongs to. Edges should not go through textons, and there is likely to be an edge between a large group of pixels belonging to one texton and a large group of pixels belonging to another.

K-means clustering with was used to cluster the pixels in an image into 64 textons based on their responses to the filters in the filter bank. An original image, and a Matlab-style "paint-by-number" representation of its texton map are shown below.

Creating Oriented Mask Pairs

Masks are used to define small portions of an image for which to compute local statistics. Circular mask pairs of 3 sizes and 8 orientations were used.

Computing Gradients

For a given feature, the magnitude of the feature gradient at a given pixel is computed by averaging the chi-squared distances between the feature distributions under the 24 mask pairs. Below are maps of the magnitudes of various feature gradients of the image above.

Texture

An image has a large texture gradient at a certain pixel if the texton distribution on one side of the pixel is very different from the texton distribution on the other side.

Intensity

An image has a large intensity gradient at a certain pixel if the intensity (discretized into 32 "bins") distribution on one side of the pixel is very different from the intensity distribution on the other side.

Color

The color channel gradients were computed in the same way that the intensity gradient was, but operating on the individual red, green, and blue channels separately, and using 13 bins rather than 32.

Red


Green


Blue


Red + Green + Blue

The output of PB Lite is the normalized sum of the result of canny edge detection, and the texture, intensity, and color gradients.

Performance

Result of applying Sobel filtering:

Result of applying Canny Edge Detection:

Result of applying PB Lite:



When compared to human performance, PB Lite outperforms both Sobel filtering and the Canny Edge Detection algorithm.