cmp605 texture recognition report final

Upload: ahmed-el-sheikh

Post on 14-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 CMP605 Texture Recognition Report Final

    1/37

    Faculty of Engineering

    Computer Engineering Department

    Texture Recognition

    In partial fulfillment of the Requirements for

    CMP605 Image Processing and Computer Vision

    Presented by

    Ahmed Mohamed Ahmed El Sheikh Jihad Ibrahim

    May 2012

  • 7/30/2019 CMP605 Texture Recognition Report Final

    2/37

    Contents

    Abstract ...................................................................................................................................... 4

    Acknowledgement ...................................................................................................................... 4

    Chapter 1: Introduction ............................................................................................................... 5

    1.1 Motivation and Justification ........................ ......................... .......................... .............. 5

    Applications......................................................................................................................... 5

    1.2 Problem Definition ............................................................................................................ 5

    1.3 Summary of Approach ....................................................................................................... 8

    1.4. Report Overview ........................ ......................... ........................... ......................... .......... 8

    Chapter 2: Literature Survey........................................................................................................ 9

    Model-based Approaches [3,11,15] ........................ ......................... .......................... .............. 9

    Statistical Approaches [3] ...................................................................................................... 11

    Structural Approach [3] ......................................................................................................... 14

    Transform Methods............................................................................................................... 14

    Chapter 3: Necessary Background ............................................................................................. 16

    Wavelet Transform ........................... ......................... ........................... ......................... ........ 16

    Singular Value Decomposition ............................................................................................... 20

    Chapter 4: System Description .................................................................................................. 21

    Selected Approaches ............................................................................................................. 21

    Declined Approaches ........................ ......................... ........................... ......................... ........ 21

    System Block Diagram ........................................................................................................... 21

    Histogram and GLCM Statistics .............................................................................................. 22

    Laws Masks .......................................................................................................................... 23

    Wavelet Decomposition ........................................................................................................ 24

    Curvelet Decomposition ........................................................................................................ 24

    Gabor Filter Bank .................................................................................................................. 24

    Singular Value Decomposition ............................................................................................... 24

    Classifiers .............................................................................................................................. 25

    Classifier Fusion [9] ............................................................................................................... 25

  • 7/30/2019 CMP605 Texture Recognition Report Final

    3/37

    Chapter 5: Results ..................................................................................................................... 27

    Histogram and GLCM Statistics .............................................................................................. 27

    Laws Masks .......................................................................................................................... 28

    Wavelet Decomposition ........................................................................................................ 28

    Curvelet Decomposition ........................................................................................................ 29

    Gabor Filter Feature .............................................................................................................. 29

    Singular Value Decomposition ............................................................................................... 30

    Fusion Results ....................................................................................................................... 31

    Chapter 6: Conclusion and future work. .................................................................................... 32

    Conclusions ........................................................................................................................... 32

    Future Work .......................................................................................................................... 32

    References ................................................................................................................................ 33

    Appendix A. Development Tools and Environment ...................................... .......................... .... 34

    Used Toolboxes and Functions .............................................................................................. 34

    Appendix B. Sample MATLAB Functions and Scripts................................................................... 35

    FeatureExtract Function ........................................................................................................ 35

    Wavelet Feature Function ..................................................................................................... 36

    SVD Feature .......................................................................................................................... 37

  • 7/30/2019 CMP605 Texture Recognition Report Final

    4/37

    Abstract

    Image texture, defined as a function of the spatial variation in pixel intensities (gray values), is

    useful in a variety of applications and has been a subject of intense study by many researchers.

    One immediate application of image texture is the recognition of image regions using texture

    properties. Texture is the most important visual cue in identifying these types of homogeneous

    regions. This project is concerned with exploiting various texture analysis techniques. Existing

    techniques are classified and implemented for comparison purposes. A proposed technique

    Singular Value Decomposition is examined and compared with the existing. Finally, we suggest

    some possible future work in this field. This technique give a good spatial representation that

    differs from the other techniques and therefore useful in decision fusion. We are classifying

    between 20 textures, each texture has 40 samples [1], 30 are used for training and 10 for

    testing. Implementation is done using MATLAB. The highest recognition rate achieved using a

    single feature is 82% and the highest accuracy using fusion techniques is 93%.

    Acknowledgement

    We thank Dr. Ahmed for his well guided self-study course and outlined project, from which we

    have gained significant experience.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    5/37

    Chapter 1: Introduction

    1.1Motivation and JustificationTexture analysis techniques are not only used with textures by its strict meaning, many of the

    computer vision applications encounter textures by its descriptive meaning. Although, there are

    many definitions given for a texture in computer vision, we found the following to be the most

    relevant:

    A region in an image has a constant texture if a set of local statistics or other local properties of

    the picture function are constant, slowly varying, or approximately periodic.

    So, we thought exploiting the various techniques for textural analysis will be a good experience

    and increase the benefit from the course, given the fact we have no prior knowledge of the

    problem.

    Applications

    Areas of application are endless. In some of the mature domains (such as remote sensing)

    texture already has played a major role, while in other fields (such as surface inspection) new

    applications of texture are being found. Texture analysis can be also used in automated

    inspection, medical image processing, document processing.

    1.2 Problem Definition

    We are testing the various analysis techniques that show promising results from the literature

    survey that will be discussed later.

    Our texture dataset [1] contains 25 types of natural and synthetic textures, each has 40 samples .

    We are only classifying between 20 of them that are shown in Fig.1. We use 30 samples fromeach for the training phase and 10 for testing i.e. a total of 600 training samples and 200 testing.

    We are using neural networks for the classification stage.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    6/37

    Figure 1 Samples of dataset

  • 7/30/2019 CMP605 Texture Recognition Report Final

    7/37

    Figure 2 cont. samples of dataset

  • 7/30/2019 CMP605 Texture Recognition Report Final

    8/37

    1.3 Summary of Approach

    The main flow of our system can be summarized in the following diagram

    The input to the above system is the raw grayscale images and the output is the class

    recognized class (in the recognition phase).

    A final stage is added to fuse the decision of various classifiers to improve the recognition rate.

    1.4. Report Overview

    Chapter 2 will be a literature survey for the texture analysis techniques that were previously

    implemented.

    Chapter 3 will give some necessary background for the implemented algorithms.

    Chapter 4 will be a detailed system description.

    Chapter 5 will discuss the results.

    And finally, chapter 6 will suggest some future work in the field.

    Processing(if necessary)

    Resizing

    Equaliztion

    Analysis

    FeatureExtraction

    Classification

    Learning phase(targets given)

    Recognition(targets required)

  • 7/30/2019 CMP605 Texture Recognition Report Final

    9/37

    Chapter 2: Literature Survey

    Texture recognition techniques can be classified into one of the following categories:

    Model Based. Statistical. Structural. Transform.We shall now discuss the concept on which each of them is based and give various example

    approaches for each.

    Model-based Approaches [3,11,15]

    Those methods consider texture as random process, which is governed by some parameters.

    The analysis of texture images is executed, defining a model and considering each texture

    groups parameters. The estimation of the parameters can serve to classify and to segment

    textures.

    This category of analysis offers a good possibility to recreate realistic examples of natural

    textures.

    AR Model [3,13,15]

    The autoregressive (AR) model assumes a local interaction between image pixels in that pixel

    intensity is a weighted sum of neighboring pixel intensities. Assuming image f is a zero-mean

    random field, an AR causal model can be defined as

    1

    Where fs is image intensity at site s, es denotes an independent and identically distributed

    noise, Ns is a neighborhood ofs and is a vector of model parameters.

    Causal AR models have an advantage of simplicity and efficiency in parameter estimation.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    10/37

    Markov Random Fields Model [3,15]

    A Markov random field (MRF) is a probabilistic process in which all interactions are local; the

    probability that a cell is in a given state is entirely determined by probabilities for states of

    neighboring cells.Let S be a set of locations, here for simplicity, assume S a grid.

    S={ (i, j) | i, j are integers }.

    Neighbours of s(i,j) ||S are defined as:

    ((i, j)) = { (k, l) | 0

  • 7/30/2019 CMP605 Texture Recognition Report Final

    11/37

    Another measure, called lacunarity, has been suggested in order to capture the textural

    property that will let one distinguish between such textures.

    Statistical Approaches [3]

    Statistical methods analyze the spatial distribution of gray values, by computing local features at

    each point in the image, and deriving a set of statistics from the distributions of the localfeatures.

    The reason behind this is the fact that the spatial distribution of gray values is one of the

    defining qualities of texture.

    Depending on the number of pixels defining the local feature, statistical methods can be further

    classified into first- order (one pixel), second-order (two pixels) and higher-order (three or more

    pixels) statistics.

    1st Order Statistics Based Approach (Histogram) [12]

    First order texture measures are statistics calculated from the original image values, and do notconsider pixel neighborhood relationships.

    Features that can be used with this method are: as mean, variance, dispersion, mean square

    value or average energy, entropy, skewness and kurtosis.

    It suffers from the limitation that it provides no information about the relative position of pixels

    to each other.

    For example, 2 completely different images each with a 50% black and 50% white pixels (such

    as a checkerboard and a Salt & Pepper noise pattern) may produce the same gray level

    histogram.

    Therefore we cannot distinguish between them using first order statistical analysis.

    2nd Order Statistics Based Approach (Co-occurrence Matrices) [10,3]

    Grey level co-occurrence matrices are two dimensional histograms of occurrence of pairs of grey

    levels for a given displacement vector.

    Grey level co-occurrence matrix pd for a d= (dx, dy) displacement vector is defined as follows.

    The entry (I,j) of pd is the number of occurrences of the pair of gray levels (I,j) and which are a d

    distance apart.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    12/37

    For example, consider the following 4*4 image containing 3 different grey values and

    Displacement vector d = (1, 0)

    1 1 0 0 Pd =

    1 1 0 0 4 0 2

    0 0 2 2 2 2 00 0 2 2 0 0 2

    Note: Different authors define the co-occurrence matrix a little differently in two ways:

    By defining the relationship operator p by an angle and distance d, and

    By ignoring the direction of the position operator and considering only the (bidirectional)

    relative relationship

    Features that can be used with this method are:

    Figure 4 Texture features of GLCM

    x and y are the means, x and y are the standard deviations of Pd(x) and Pd(y)

  • 7/30/2019 CMP605 Texture Recognition Report Final

    13/37

    Laws Energy Filters [2]

    This method involved the application of simple filters to digital images. The basic filters used

    were common Gaussian, edge detector and Laplacian-type filters, and were designed to

    highlight points of high texture energy in the image. By identifying these high energy points,

    smoothing the various filtered images characterizes textures efficiently.

    The Laws masks are constructed by convolving together just three basic 1x3 masks:

    5

    The initial letters of these masks indicate Local averaging, Edge detection and Spot detection. In

    fact, these basic masks span the entire 1x3 subspace and form a complete set. Similarly, the 1x5

    masks obtained by convolving pairs of these 1x3 masks together form a complete set.

    6

    Where R5 is Ripple detection and W5 is Wave detection mask.

    2D masks can be obtained by outer product of pairs of the above masks. Masks that dont

    average to zero are not used because they are more sensitive to image intensity than the

    texture itself.

    The filtered images are then averaged over larger moving windows to get macro-features of the

    texture. The average is the absolute sum of all elements in a given window of size

    (2p+1)x(2p+1).

    7

    Second level feature extraction can be in the form of statistical measures for the energy matrix.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    14/37

    Structural Approach [3]

    This technique aims at representing texture by well-defined primitives (micro-texture) and a

    hierarchy of spatial arrangements (macro-texture or grammar) of those primitives. To describe

    the texture, one must define the primitives and the placement rules. The choice of a primitive

    (from a set of primitives) and the probability of the chosen primitive to be placed at a particular

    location can be a function of location or the primitives near the location. The advantage of the

    structural approach is that it provides a good symbolic description of the image; however, this

    feature is more useful for synthesis than analysis tasks. The abstract descriptions can be ill

    defined for natural textures because of the variability of both micro- and macrostructure and no

    clear distinction between them.

    Transform Methods

    Wavelet Decomposition [4,5]

    The texture image is decomposed using any type of wavelets up to a certain level of

    decomposition; producing 4 matrices at each layer from the decomposition of the blurof theprevious layer (see the graphical interpretation and the wavelets section in ch.3 for further

    illustration).

    Various statistical measures of these resulting matrices are taken for each of the resulting layers.

    Examples of these statistics are the mean, standard deviation and the covariance.

    Graphical interpretation

    Figure 5 Wavelet decomposition & Produced matrices

    LL: Low frequency information (Blur).

    HL: Horizontal high frequency component (vertical edges).

    LH: Vertical high frequency component (Horizontal edges).

    HH: Diagonal high frequency component (oblique edges).

  • 7/30/2019 CMP605 Texture Recognition Report Final

    15/37

    Curvelet Transform [6]

    Curvelet transform is one of the modified wavelets families. The main difference is that

    curevelets have an orientation parameter in 2D and higher dimensional spaces. This orientation

    gives a more sparse representation for curved edges. Yet, this feature is not of significance in

    our task as there are no clear edge in most of the textures, besides various orientations in the

    scenery requires averaging over the various curvelet orientations causing some sort of blurring

    in a curved way.

    Figure 6 Curvelet transform

    Gabor Filter [5]

    Gabor filter is also one of wavelets families, but its main advantage is that it achieves minimum

    uncertainty between the time and frequency domain. Also, it has an orientation parameter like

    curvelets.

    The wavelet used has the form of a complex sinusoid modulated by a Gaussian window.

    8

    9

    Statistics such as mean and standard deviation for each frequency and scale are calculated and

    averaged over the various orientations.

    Rotated

    Gaussian Oriented ComplexSinusoid

  • 7/30/2019 CMP605 Texture Recognition Report Final

    16/37

    Chapter 3: Necessary Background

    In this chapter we include two of the most essential backgrounds for understanding the

    implementation of the chosen techniques that were also mentioned previously in the literature

    survey.

    Wavelet Transform

    Historical Motivation

    Fourier Transform

    FT decomposes a given signal in an orthogonal set of sinusoids of different frequencies.

    10

    Where xn is the signal in the time domain (TD) and Xk in the frequency domain (FD).

    These sinusoids have deterministic frequencies but extended throughout the whole time

    domain. Therefore lacks localization in the time (or space in 2D).

    Short-Time Fourier Transform (STFT)

    If we wish to gain some information on our location in the time (space) domain we can perform

    the FT on a window of the signal.

    11

    Where w[n] is the windowing function in time domain.

    A simple rectangular window corresponds to a sinc function in FD. Since multiplication in the TD

    corresponds to convolution in the FD this results in what is called leakage. The deltas of the

    frequencies are now wider. Therefore we are now limited by a certain resolution between the

    frequency and time domain. This resolution is fixed because the window size is fixed.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    17/37

    Figure 7 FT on a window of the signal

    Multi-Resolution Analysis (Wavelets)

    Since STFT has fixed resolution we can use a variable size window to obtain various resolutions.

    This results in an over complete set such as the wavelets.

    12

    13

    Where is the wavelet basis function, m is the scaling factor and n is the translation factor.

    The time frequency resolution can be interpreted as the following figure, as we get more

    localized in tine we lose localization in frequency and vice versa.

    Figure 8 Time frequency resolution

    This is in contrast to the STFT which has fixed resolution that can be interpreted by the following

    figure

  • 7/30/2019 CMP605 Texture Recognition Report Final

    18/37

    Figure 9 STFT's fixed resolution

    Various modifications to the original wavelets have arisen such as Curvelets, Ridigilets and

    Gabor filers.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    19/37

    Curvelet Transform

    This transformation was motivated by the fact that wavelets in 2D dont sparsely represent

    curved edges.

    So, the family of wavelets with an orientation parameter was devised to overcome such

    complication.

    The space frequency resolution map can be regarded as the following figure

    Figure 10 Space frequency resolution map

    This can be thought of as taking the time axis of the wavelets resolution map and rotating it

    towards the frequency axis clockwise, the above figure will be the result.

    Gabor FilterGabor thought of this resolution problem as an analogous problem to the Heisenberg

    Uncertainty Principle and found that tf >= 1/(4).

    By seeking the equality he found that the wavelet that gives highest resolution in both time and

    frequency is a complex sinusoid modulated by a Gaussian window (as was shown in the

    literature survey).

  • 7/30/2019 CMP605 Texture Recognition Report Final

    20/37

    Singular Value Decomposition

    The SVD is motivated by the following geometric fact:

    The image of the unit sphere under any m xn matrix is a hyperellipse.

    Figure 11 Unit sphere changes to hyperellipse

    First, we define the n singular values of A. These are the lengths of the n principal semiaxes of

    AS, written 1, 2 ... It is conventional to assume that the singular values are numbered in

    descending order.

    Next, we define the n left singular vectors of A These are the unit vectors {u1, u2} oriented in

    the directions of the principal semiaxes of AS, numbered to correspond with the singular values.

    Thus the vector iui is the ith largest principal semiaxis of AS.

    Finally, we define the n right singular vectors of A. These are the unit vectors {v1, v2...} S that

    are the pre-images of the principal semiaxes of AS, numbered so that Avj = juj

    This mathematical identity motivated the proposed techniques. As the singular values are

    thought to be characteristic for a given bases and matrix operating on it.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    21/37

    Chapter 4: System Description

    Selected Approaches

    Statisticalo Histogram and GLCM.o Laws Masks.

    Transformo Wavelet decomposition.o Curvelet decomposition.o Gabor filter bank.

    Proposed Techniqueo Singular Value Decomposition (SVD).

    Declined Approaches

    Model-based methods. Structural approaches.

    Reasoning:

    The model-based and structural approaches are better used in synthesis than in recognition.

    The search for the parameters of an assumed model or a building unit along with a placement

    rule fails in case of natural textures, due to not only the variability in natural scenes but also the

    variability in the image acquisition view (zooming in and out, inclination and rotation).

    System Block Diagram

    We shall know describe the implementation procedure used for each approach and the

    implemented fusion techniques.

    Read Image Pre-processing Image Analysis

    Classificaiton

    Multiple

    Classifier Fusion Final Decision

  • 7/30/2019 CMP605 Texture Recognition Report Final

    22/37

    Histogram and GLCM Statistics

    Procedure

    1. Calculate the GLCM using MATLAB command graycomatrix for the four mainorientations.

    2. Get the statistical properties of the GLCM using the MATLAB command graycoprops,along with the mean and standard deviation.

    3. Take the average of the above values to overcome rotations in the scenery.4. Calculate the histogram of the image.5. Calculate the mean, variance, skewness, kurtosis, energy and entropy of the histogram.

    Summary of GLCM Properties [7]

    Summary of Histogram Properties [3]

  • 7/30/2019 CMP605 Texture Recognition Report Final

    23/37

    Laws Masks

    Procedure

    1. Form the required mask by outer product of the following masks:

    2. Calculate the normalization image by convolving with L5L5.3. Convolve the zero-average 5x5 mask with the image and normalize.4. Average the convolved image using a 15x15 mask.5. Do the above steps using the reversed mask. E.g.: E5L5 and L5E5.6. Take the average of the final two images.7. Take five statistical parameters for the averaged image; mean, STD, skewness, kurtosis

    and entropy.

    Summary of Laws Masks Properties [8]

  • 7/30/2019 CMP605 Texture Recognition Report Final

    24/37

    Wavelet Decomposition

    Procedure [4]

    1. Calculate up to the 3rdlevel Haar decomposition using MATLAB dwt2 command 3 timesin succession on the blur.

    2. Obtain the mean and STD ofthe final blur.3. For each of the high frequency details at each level obtain the mean and STD.

    Curvelet Decomposition

    Procedure

    1. Calculate the curvelet decomposition using the CurveLab Toolbox for MATLAB viawarping.

    2. For each level of decomposition take the average of the various angles.3. Calculate the mean and STD for this average.

    Gabor Filter Bank

    Procedure

    1. Filter the image using various scales, orientations and frequencies using MATLAB fileexchange central implementation.

    2. For each scale and frequency average over all orientations.3. For each of the above averages calculate the mean and STD.

    Singular Value Decomposition

    Procedure

    1. Split the image into a 5x5 cell.2. For each cell calculate the SVD.3. From each cell take the largest 5 singular values.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    25/37

    Classifiers

    Classification is done using neural networks trained on the extracted features using the MATLAB

    nprtool.

    Classifier Fusion [9]

    Each trained classifier has different knowledge of the dataset.

    Fusion helps combine these differences to achieve a higher recognition rate.

    There are various techniques. But we implemented only three for comparison; Confidence,

    Voting and Decision templates.

    Confidence

    Take the decision of the classifier that has the highest soft output.

    Procedure:

    For each test sample generate a vector containing the highest output value form all classifiersfor each class.

    Voting

    Majority count leads to ties. Use the soft outputs to vote.

    Procedure:

    Sum the outputs of all classifiers for a given test sample.

    Decision Templates

    Its idea is based on the fact that the classifier outputs can be regarded as a second layer of

    features.

    Procedure:

    1- For each class prepare a matrix containing the average of the outputs of each classifierwhen this class is introduced for classification. This matrix is called the decision template

    for this class.

    2- When taking the decision, prepare a matrix containing the outputs of all classifiers forthe test sample. This matrix is called the decision profile for the test sample.

    3- Calculate the Frobenius norm for the difference between the decision profile and thedecision templates of all classes and then decide on the minimum.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    26/37

    Diagram for Decision Template Decision Fusion:

    Figure 12 Decision template fusion

    Note:

    Although the above techniques enhance the recognition rate as will be shown in the results

    chapter, they are computationally expensive, especially the decision templates because it acts

    as a second training/classification phase.

    So using any of the mentioned techniques is actually a compromise between the required

    accuracy and the expense of lengthy calculations.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    27/37

    Chapter 5: Results

    In this section we will be discussing the results of the previously mentioned techniques,

    highlighting the main classification errors that each feature causes.

    Histogram and GLCM Statistics

    Feature vector size: 12

    Recognition Rate

    The various distances for take for the neighboring pixels showed different recognition rates

    Neighbor Distance:

    1-pixel: 69%

    4-pixels: 80%

    8-pixels: 67%

    Confusion

    The following three classes cause the main confusion. It is very obvious that the Granite and

    Bark have almost the same Histogram and GLCM distributions. But pebbles confuse with them

    as a result of the fact that we use neither the whole GLCM nor the Histogram for classification

    but rather statistics of each of them.

    Granite Bark Pebbles

  • 7/30/2019 CMP605 Texture Recognition Report Final

    28/37

    Laws Masks

    Feature vector size: 70

    Recognition rate

    79 %

    Confusion

    The main confusion is the Granite and Bark, the same as the GLCM and Histogram confusion.

    This also makes sense since both of these techniques belong to the same category.

    Wavelet Decomposition

    Feature vector size: 20.

    Recognition Rate

    82 %

    Confusion

    Also, Granite and Bark are the main confusing classes, same as Statistical. But here the reasons

    differ; the high frequencies along the vertical and horizontal directions along with the blur of

    both classes are quite similar, not to mention their statistics of course.

    But the fact that wavelet feature shows better performance than the statistical methods is that

    the wavelet decompositions provide a better representation for the images information than

    the statistical features.

    Note:

    Although the wavelet feature shows better performance, yet it has higher dimensionality than

    the statistical feature. The feature extraction phase of the WD is almost the same as the

    statistical methods, but in the classification phase the WD requires more calculations due to the

    higher dimensionality.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    29/37

    Curvelet Decomposition

    Feature vector size: 20

    Recognition Rate73%

    Confusion

    Curvelets have an orientation control parameter that differs from the regular wavelets.

    To overcome the variation in scene rotations during feature extraction averaging is done on the

    various orientations at a certain level of decomposition.

    This averaging causes some sort of blurring or brushing in a curved way. This confuses the

    classifier between the Granite and Carpet classes mainly.

    Gabor Filter Feature

    Feature vector size: 18

    Recognition Rate

    75%

    Confusion

    The same as curvelet. This is due to averaging along the various orientations.

    The higher recognition rate is due to the fact that Gabor filter has a control on the frequency of

    the complex sinusoid of the filter which in turn gives more information.

    Granite Carpet

  • 7/30/2019 CMP605 Texture Recognition Report Final

    30/37

    Singular Value Decomposition

    Feature vector size: 125

    Recognition Rate65%

    Confusion

    Due to the fact that some textures have very close basis for their vector spaces. The SVD causes

    confusion such as shown below. Although this feature has poor recognition rate, yet it improves

    the recognition rate of the fused decision, because its confusion is unquestionable for the other

    features while it enhances their other decisions.

    Marble Floor

    Wood 1 Wood2

  • 7/30/2019 CMP605 Texture Recognition Report Final

    31/37

    Fusion Results

    Used Classifiers:

    Laws, Statistical with 1,4 pixel distances Wavelets, Curvelets and Gabor. SVD.

    Recognition Rate for the Different Techniques

    Confidence: 84% Voting: 91.5% Decision templates: 93%

    The above results may vary when different combinations of the implemented classifiers are

    used.

    And as mentioned before these fusion techniques are computationally expensive, yet the

    increase in the recognition rate over the single classifier accuracy ranges from 2 - 11%.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    32/37

    Chapter 6: Conclusion and future work.

    Conclusions

    Implementing texture recognition system with the mentioned methods is fullyfunctional.

    The best performance achieved out of the chosen categories was very close, whichmeans that data representation and compression is similar to some extent.

    Methods performance was determined with 3 main factors: Recognition rate (directresult), Vector size (cost) and Confusion (drawback).

    To improve those factors and to get the most accurate results, a new stage was addedto the system (Multiple Decision classifier) that leads to significant improvement of the

    results.

    Future Work

    Searching for the optimum parameters (e.g. neighbor distance and orientation) for eachanalysis technique. As using the same parameters for all types of textures might not be

    the optimum solution.

    Decision fusion using different types of classifiers like K-Nearest Neighbor andDiscriminant Function Analysis.

    Exploring texture analysis techniques when used with colored images. Expanding the analysis to motion textures.

  • 7/30/2019 CMP605 Texture Recognition Report Final

    33/37

    References

    [1] A Sparse Texture Representation Using Local Affine Regions, Svetlana Lazebnik, CordeliaSchmid, and Jean Ponce, IEEE Transactions on Pattern Analysis and Machine Intelligence.

    [2] Introduction to texture analysis, Machine vision group, physics dept. Royal Holloway,London.

    [3] Texture Analysis Methods A Review, Andrzej Materka and Michal Strzelecki, TechnicalUniversity of Lodz, Institute of Electronics.

    [4] Improving Texture Recognition using Combined GLCM and Wavelet Features, RanjanParekh, School of Education Technology, Jadavpur University, Kolkata, India.

    [5] Brief review of invariant texture analysis methods, Jianguo Zhang, Tieniu Tan, NationalLaboratory of Pattern Recognition (NLPR), Institute of Automation, Chinese Academy of

    Sciences.

    [6] Content Based Image Retrieval Using Curvelet Transform, Ishrat Jahan Sumana, Md.Monirul Islam, Dengsheng Zhang and Guojun Lu, Gippsland School of Information

    Technology, Monash University, Churchill, Victoria 3842, Australia.

    [7] Texture Analysis, Mihran Tuceryan, Department of Computer and Information Science,Indiana University -Purdue University at Indianapolis, 723 W. Michigan St. Indianapolis, IN

    46202-5132.

    [8] Laws masks descriptors applied to bone texture analysis: an innovative and discriminanttool in osteoporosis, M. Rachidi & A. Marchadier & C. Gadois & E. Lespessailles & C.

    Chappard & C. L. Benhamou.

    [9] Switching Between Selection and Fusion in Combining Classifiers: An Experiment, Ludmila I.Kuncheva.

    [10]Introduction to Texture Analysis, E. R. Davies, Machine Vision Group, Department of PhysicsRoyal Holloway, University of London.

    [11]Chapter 5 Texture recognition, x Llad Bardera , Universitat de Girona. Departamentd'Electrnica, Informtica i Automtica.

    [12]A comparative study of texture analysis algorithms in textile inspection applications, IbarraPico, Cuenca Asensi, Garca Crespi, Lorenzo Quintanilla, Morales Benavente, Universidad de

    Alicante, Departamento de Tecnologa Informtica y Computacin, Campus de San Vicente

    [13]A regularized simultaneous autoregressive model for texture classification, Yao-wei ,Yan-fei, Wen Yong ; 3 Institute of Computing Technology, Graduate School of Chinese Academy of

    Science.

    [14]Texture description using fractal energy features and energy features, t. kasparis, n. s.tzannes, m. ba~~iouni* and q. chen department of electrical and computer engineering

    and 2department of computer science, university of central florida, orlando, fl 32816, u.s.a.

    [15]Brief review of invariant texture analysis methods, Jianguo Zhang, Tieniu Tan, NationalLaboratory of Pattern Recognition (NLPR), Institute of Automation, Chinese Academy of

    Sciences, Beijing, Peoples Republic of China

  • 7/30/2019 CMP605 Texture Recognition Report Final

    34/37

    Appendix A. Development Tools and Environment

    The project is implemented completely using MATLAB.

    Used Toolboxes and Functions

    1- Wavelet ToolboxUsed for calculating the 2D decomposition of the images using Haar wavelets.

    2- CurveLab ToolboxIt is a free Toolbox for academic use only obtained from:

    http://www.curvelet.org/software.html

    This is used to calculate the Curvelet decomposition for the given images.

    3- Gabor Filter FunctionsA function shared at the MATLAB file exchange central. It can be obtained from the following

    thread:

    http://www.mathworks.com/matlabcentral/fileexchange/5237

    4- Statistics ToolboxUsed for calculating the various statistics as the 2d mean and STD. Also, higher order statistics

    such as skewness, kurtosis and entropy.

    5- Neural Network ToolboxUsed for training feed-forward neural networks used for classification.

    http://www.curvelet.org/software.htmlhttp://www.curvelet.org/software.htmlhttp://www.mathworks.com/matlabcentral/fileexchange/5237http://www.mathworks.com/matlabcentral/fileexchange/5237http://www.mathworks.com/matlabcentral/fileexchange/5237http://www.curvelet.org/software.html
  • 7/30/2019 CMP605 Texture Recognition Report Final

    35/37

    Appendix B. Sample MATLAB Functions and Scripts

    FeatureExtract Function

    This function takes a function handle to the desired function for feature extraction, which

    returns a feature vector for a given image, and outputs a mat file containing easily accessed

    matrices and corresponding target matrices which are ready for training and testing.

    Functions Code

    function FeatureExtract(VectorSize, TrainSamples, FeatureFunction,OutFileName)%% Data Container InitializationNumberOfTextures = 20;TrainCell = cell(NumberOfTextures,1); % Number of TexturesTestCell = cell(NumberOfTextures,1); % Number of Textures[ TrainCell{:} ] = deal( zeros(VectorSize, TrainSamples) );[ TestCell{:} ] = deal( zeros(VectorSize, 40 - TrainSamples) );

    TrainTargets = zeros(NumberOfTextures, TrainSamples *NumberOfTextures);TestTargets = zeros(NumberOfTextures, (40 - TrainSamples) *NumberOfTextures);FHandle = str2func(FeatureFunction);%% Feature ExtractionExclude = [15 7 4 3 21];counter = 1;for t = 1:25%NumberOfTextures

    if ~isempty(Exclude(Exclude == t)), continue; end;%% Train Samplesfor i = 1:TrainSamples

    Tno = num2str(t,'%02d');I = imread(['Images/T' Tno '/T' Tno '_' num2str(i,'%02d')

    '.jpg']);TrainCell{counter}(:,i) = FHandle(I); % Feature Extracting

    FucntionendLoc = (counter-1)*TrainSamples + 1;Target = zeros(NumberOfTextures,1);Target(counter) = 1;TrainTargets(:, Loc : Loc + TrainSamples - 1) = repmat( Target, 1,

    TrainSamples);%% Test Samplesfor j = TrainSamples + 1: 40

    Tno = num2str(t,'%02d');I = imread(['Images/T' Tno '/T' Tno '_' num2str(j,'%02d')

    '.jpg']);TestCell{counter}(:,j-TrainSamples) = FHandle(I); % FeatureExtracting Fucntion

    endLoc = (counter-1) * (40 - TrainSamples) + 1;Target = zeros(NumberOfTextures, 1);Target(counter) = 1;TestTargets(:, Loc : Loc + 40 - TrainSamples - 1) = repmat( Target,

    1, 40 - TrainSamples);disp(['Texture number ' Tno ' is done']);

  • 7/30/2019 CMP605 Texture Recognition Report Final

    36/37

    counter = counter + 1;end%% Saving The DataTrainMat = [TrainCell{:}];TestMat = [TestCell{:}];save(OutFileName, 'TrainCell', 'TrainMat', 'TrainTargets', 'TestCell','TestMat', 'TestTargets'); % Feature Name of Saved Dataend

    Wavelet Feature Function

    This function takes an image and returns a feature vector of size 20.

    Functions codefunction v = WaveletFeature(I)%Vector Size is 20V = cell(3,1);H = cell(3,1);D = cell(3,1);B = cell(3,1);

    [B{1}, H{1}, V{1}, D{1}] = dwt2(I,'haar');[B{2}, H{2}, V{2}, D{2}] = dwt2(B{1},'haar');[B{3}, H{3}, V{3}, D{3}] = dwt2(B{2},'haar');

    v = [mean2(B{3}); std2(B{3})];

    for i = 1:3CD = cov(D{i});CH = cov(H{i});CV = cov(V{i});

    DD = diag(CD);DH = diag(CH);DV = diag(CV);

    RD = CD./sqrt(DD*DD');RH = CH./sqrt(DH*DH');RV = CV./sqrt(DV*DV');

    v = [v; mean2(RH); std2(H{i}); mean2(RV); std2(V{i}); mean2(RD);std2(D{i})];end

    end

  • 7/30/2019 CMP605 Texture Recognition Report Final

    37/37

    SVD Feature

    This function takes an image and returns a feature vector of size 125.

    Functions code

    function v = SVDFeature(I)

    Id = double(I);ColDiv = 5;RowDiv = 5;[Row Col] = size(I);C = mat2cell(Id, Row/RowDiv*ones(1,RowDiv), Col/ColDiv*ones(1,RowDiv));v = [];

    for i = 1:ColDivfor j = 1: RowDiv

    d = svd(C{i,j});v = [ v; d(1:5) ];

    endend

    end