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.