Page 204 -
P. 204
Section 6.2 Pooled Texture Representations by Discovering Textons 172
Obtain a set of n filters representing subelements, at multiple scales
Apply each filter F i to the image
For each filter response map F i ∗∗I, compute
max(0, F i ∗∗I(x, y)) and max(0, −F i ∗∗I(x, y))
For each of the 2n rectified maps, compute local summaries
either by convolving with a Gaussian of scale approximately twice the
scale of the base filter, or by taking the maximum value over that radius.
Algorithm 6.1: Local Texture Representation Using Filters.
pixel might need hundreds of pixels to represent it well; similarly, hundreds of
different filters might be needed to represent the image at a pixel. This means we
cannot build a histogram directly, either, because it will have an unmanageable
number of cells.
6.2.1 Vector Quantization and Textons
Vector quantization is a strategy to deal with these difficulties. Vector quantization
is a way of representing vectors in a continuous space with numbers from a set
of fixed size. We first build a set of clusters out of a training set of vectors; this
set of clusters is often thought of as a dictionary. We now replace any new vector
with the cluster center closest to that vector. This strategy applies to vectors quite
generally, though we will use it for texture representation. Many different clusterers
can be used for vector quantization, but it is most common to use k-means or one
of its variants. For concreteness, we describe this algorithm in Section 6.2.2, but
the other clusterers of Chapter 9 would apply.
We can now represent a collection of vectors as a histogram of cluster centers.
This general recipe can be applied to texture representation by describing each
pixel in the domain with some vector, then vector quantizing and describing the
domain with the histogram of cluster centers. Natural vectors to use are: the local
summary representation described in Section 6.1; a vector of unprocessed filter
outputs, using filters appropriate for a local texture representation (Figure 6.9); or
even just a vector obtained by reshaping the pixels from a fixed-size patch around
the image pixel (Figure 6.10). In each case, we are building a representation in
terms of commonly repeated pattern elements.
6.2.2 K-means Clustering for Vector Quantization
We could use any clustering method to vector quantize (Chapter 9 describes a
number of different clustering methods in the context of segmentation). However,
by far the most common method used is k-means clustering. Assume we have a set
of data items that we wish to cluster. We now assume that we know how many
clusters there are in the data, which we write k. This is equivalent to fixing the
number of values we wish to quantize to. Each cluster is assumed to have a center;
we write the center of the ith cluster as c i .The jth data item to be clustered
is described by a feature vector x j . In our case, these items are vectors of filter