Filter Banks
We describe the rotationally invariant MR filter sets that are used in the our algorithm for classifying textures with filter banks. We also describe two other filter sets (LM and S) that will be used in classification comparisons. The aspects of interest are the dimension of the filter space, and whether the filter set is rotationally invariant or not.
The Leung-Malik (LM) Filter Bank
The LM set is a multi scale, multi orientation filter bank with 48
filters. It consists of first and second derivatives of Gaussians at 6
orientations and 3 scales making a total of 36; 8 Laplacian of
Gaussian (LOG) filters; and 4 Gaussians. We consider two versions of
the LM filter bank. In LM Small (LMS), the filters occur at basic
scales . The first
and
second
derivative filters occur at the first three scales with an elongation
factor of 3 (i.e.
and
). The Gaussians occur at the
four
basic
scales while
the 8 LOG filters occur at
and
. For LM Large (LML), the
filt
ers occur at the basic
scales
. The
filter
bank is
shown in figure 1.

Figure 1: The LM filter bank has a mix of edge, bar and spot filters at multiple scales and orientations. It has a total of 48 filters - 2 Gaussian derivative filters at 6 orientations and 3 scales, 8 Laplacian of Gaussian filters and 4 Gaussian filters.
The Matlab code to generate the filter bank is available. Please note that this is our implementation of the LM filter bank and might not correspond exactly to that used in [1].
The Schmid (S) Filter Bank
The S set consists of 13 rotationally invariant filters of the form

where is added to obtain
a
zero DC component with the
pair taking values
(2,1),
(4,1), (4,2),
(6,1), (6,2), (6,3), (8,1), (8,2), (8,3), (10,1), (10,2), (10,3) and
(10,4). The filters are shown in figure 2. As can be seen all the
filters have rotational symmetry.

Figure 2: The S filter bank is rotationally invariant and has 13 isotropic, "Gabor-like" filters.
The Matlab code to generate the filter bank is available. Please note that this is our implementation of the S filter bank and might not correspond exactly to that used in [2].
The Maximum Response (MR) Filter Banks
Each of the reduced MR sets is derived from a common Root Filter Set
(RFS) which consists of 38 filters and is very similar to LM. The
filters used in the RFS bank are a Gaussian and a Laplacian of
Gaussian both with pixels
(these filters have
rotational symmetry), an edge filter at 3 scales (
) = {(1,3), (2,6), (4,12)} and a bar filter at the
same 3 scales. The latter two filters are oriented and, as in LM,
occur at 6 orientations at each scale. The filter bank is shown in
figure 3.

Figure 3: The RFS filter bank consists of 2 anisotropic filters (an edge and a bar filter, at 6 orientations and 3 scales), and 2 rotationally symmetric ones (a Gaussian and a Laplacian of Gaussian).
To achieve rotational invariance, we derive the Maximum Response 8 (MR8) filter bank from RFS by recording only the maximum filter response across all orientations for the two anisotropic filters. Measuring only the maximum response across orientations reduces the number of responses from 38 (6 orientations at 3 scales for 2 oriented filters, plus 2 isotropic) to 8 (3 scales for 2 filters, plus 2 isotropic). Thus, the MR8 filter bank consists of 38 filters but only 8 filter responses.
The dimensionality of the filter response space can be reduced even further by taking the maximum over both scales and orientations. This leads to the MRS4 filter bank. In it, each of the 4 different types of filters contributes only a single response. As in MR8, the responses of the two isotropic filters (Gaussian and LOG) are recorded directly. However, for each of the anisotropic filters, the maximum response is taken over both orientations and scale again giving a single response per filter type. With proper normalisation, MRS4 is both rotation and scale invariant.
Finally, we also consider the MR4 filter bank where we only look at
filters at a single scale. Thus, the MR4 filter bank is a subset of
the MR8 filter bank where the oriented edge and bar filters occur at a
single fixed scale () = (4,12).
The Matlab code to generate the RFS filter bank is available.
The motivation for introducing these MR filters sets is twofold. The first is to overcome the limitations of traditional rotationally invariant filters which do not respond strongly to oriented image patches and thus do not provide good features for anisotropic textures. However, since the MR sets contain both isotropic filters as well as anisotropic filters at multiple orientations they are expected to generate good features for all types of textures. Additionally, unlike traditional rotationally invariant filters, the MR sets are also able to record the angle of maximum response. This enables us to compute higher order co-occurrence statistics on orientation and such statistics may prove useful in discriminating textures which appear to be very similar.
The second motivation arises out of a concern about the dimensionality of the filter response space. Quite apart from the extra processing and computational costs involved, the higher the dimensionality, the harder the clustering problem. In general, not only does the number of cluster centres needed to cover the space rise dramatically, so does the amount of training data required to reliably estimate each cluster centre. This is mitigated to some extent by the fact that texture features are sparse and can lie in lower dimensional subspaces. However, the presence of noise and the difficulty in finding and projecting onto these lower dimensional subspaces can counter these factors. Therefore, it is expected that the MR filter banks should generate more significant textons not only because of improved clustering in a lower dimensional space but also because rotated features are correctly mapped to the same texton.
Code
- Matlab script for generating the RFS filter bank
- Matlab script for generating our implementation of the S filter bank
- Matlab script for generating our implementation of the LM filter bank
New Code
Added by Jan-Mark Geusebroek:
- Matlab script for applying the RFS filter bank using fast anisotropic Gauss filtering.
- Matlab code for the fast anisotropic Gauss filtering.
Note that a small bug has been fixed in the above RFS filter bank code by not normalizing the zeroth order Gaussian filter. The original code uses a zero-mean normalization of the filters itself, which cause the Gaussian to become a Difference-of-a-Box-with-a-Gaussian like filter - which is not the intention. Results remain similar after applying the new filter scheme to the Curet data.
References
- T. Leung and J. Malik.Representing and recognizing the visual appearance of materials using three-dimensional textons.International Journal of Computer Vision, 43(1):29-44, June 2001.
- C. Schmid. Constructing models for content-based image retrieval. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, volume 2, pages 39-45, 2001.
- J.M. Geusebroek, A.W.M. Smeulders and J. van de Weijer. Fast Anisotropic Gauss Filtering. IEEE Transactions on Image Processing, 12(8):938-943, 2003.