The texture segmentation algorithm in this project involves the following three steps:
• Decomposition of the input image using a filter bank,
• Feature extraction,
• Clustering.
We present the channels with a bank of two-dimensional Gabor filters. A two-dimensional Gabor function consists of a sinusoidal plane wave of some frequency and orientation, modulated by a two-dimensional Gaussian [3]. The Gabor filter in the spatial domain is given by
In this equation, λ represents the wavelength of the cosine factor, θ represents the orientation of the normal to the parallel stripes of a Gabor function in degrees, ψ is the phase offset in degrees, and γ is the spatial aspect ratio and specifies the elliptically of the support of the Gabor function, and σ is the standard deviation of the Gaussian determines the (linear) size of the receptive field.
The parameter λ is the wavelength and f = 1/λ is the spatial frequency of the cosine factor. The ratio σ/λ determines the spatial frequency bandwidth of simple cells and thus the number of parallel excitatory and inhibitory stripe zones which can be observed in their receptive fields. The half-response spatial frequency bandwidth b (in octaves) and the ratio σ/λ are related as follows:
ψ = 0◦ and ψ = 90◦ returns the real part and the imaginary part of Gabor filter respectively. The real part of Gabor filter is an even-symmetric filter, and the property satisfies the requirement proposed by Malik [1]. Therefore, we use the real part of Gabor.
We use orientation separation angles of 30◦ as recommended in [4], that is:
and following values of frequencies as recommended in [6]
where , Nc is the width of image which is a power of 2. Note that and .
Jain [2] suggested to use a nonlinear sigmoidal function,
which saturates the output of the filters. Jain [2] also suggested to compute the average absolute deviation (AAD) for each filtered image. We use Gaussian smoothing function which is given by
where σ is the standard deviation which determines the (linear) size of the receptive field (window size).
We choose where is the scale parameter of Gabor filter given by (2) as similar to the recommendation, , by [6].
The final step is to cluster the pixels into a number of clusters representing the texture regions. Although Jain used CLUSTER algorithm [2], we use the k-means algorithm. The algorithm of k-means is as follows:
' 1. Initialize centroids of K-clusters randomly.'
' 2. Assign each sample to the nearest centroid.'
' 3. Calculate centroids (means) of K-clusters.'
' 4. If centroids are unchanged, done. Otherwise, go to step 2.'
Furthermore, we include the spatial coordinates of the pixels as two additional features to take into account the spatial adjacency information in the clustering process as proposed by [2].
The multi-channel image segmentation system mentioned above was implemented and tested against a textured image from the Brodatz album [5]. The number of clusters is considered 5.
Also, the result is shown in another image as follow.
[1] Perona and Malik, ”Preattentive texture discrimination with early vision mechanisms,” J. Opt. Soc. Am. A, Vol. 7, No. 5, May 1990.
[2] A. K. Jain, F. Farrokhnia, ”Unsupervised texture segmentation using Gabor filters,” Pattern Recogni- tion, vol. 24, no. 12, pp.1167-1186, 1991.
[3] J.G. Daugman: ”Uncertainty relations for resolution in space, spatial frequency, and orientation opti- mized by two-dimensional visual cortical filters”, Journal of the Optical Society of America A, 1985, vol. 2, pp. 1160-1169.
[4] D. Clausi, M. Ed Jernigan, ”Designing Gabor filters for optimal texture separability,” Pattern Recogni- tion, vol. 33, pp. 1835-1849, 2000.
[5] P. Drodatz, ”Textures: A Photographic Album for Artists and Designers,” ”’Dover”’, New York, 1966.
[6] Jianguo Zhang, Tieniu Tan, Li Ma, ”Invariant texture segmentation via circular gabor filter”, Proceedings of the 16th IAPR International Conference on Pattern Recognition (ICPR), Vol II, pp. 901-904,2002.