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 LMS sigma basic. The first and second derivative filters occur at the first three scales with an elongation factor of 3 (i.e. sigmax and sigmay). The Gaussians occur at the four basic scales while the 8 LOG filters occur at sigma and 3sigma. For LM Large (LML), the filt ers occur at the basic scales LML sigma basic. The filter bank is shown in figure 1.

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

Schmid Filter Bank equation

where F_{0} is added to obtain a zero DC component with the (sigma, tau) 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

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 sigma=10 pixels (these filters have rotational symmetry), an edge filter at 3 scales (scale values) = {(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

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 (scale values) = (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

  1. Matlab script for generating the RFS filter bank
  2. Matlab script for generating our implementation of the S filter bank
  3. Matlab script for generating our implementation of the LM filter bank

New Code

Added by Jan-Mark Geusebroek:

  1. Matlab script for applying the RFS filter bank using fast anisotropic Gauss filtering.
  2. 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

  1. 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.
  2. 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.
  3. 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.