![]() ![]() |
|
TEXTURE CLASSIFICATION GENERAL
The main goal of the work is to implement a widely used
classification method and test it with fairly simple data. The work is
carried out with Matlab software. In this work, the data consist of
images of textures.
FILES
As the main purpose of the work is not to learn how to use Matlab but
to get more familiar with pattern recognition methods, some of the
Matlab code is provided. Your task is to code the recognizer.
Data The texture
images
are available here
as matrices of the size 257*256. The images have 256
grey levels (eight bits) per pixel.
You can have a look on the textures at here.
Matlab functions
You can perform the preprocessing of the images and feature extraction
with the following functions: hg, hgeq2, cooc, and
cofea. The first function calculates the histogram and
the cumulative histogram of the colors used in an image. The second
function performs the histogram equalization to an image. The thrid
function calculates the co-occurrence matrix of the input image. The
last function calculates four features based on a
co-occurence matrix, namely energy, inertia, entropy and homogentity.
You can get the functions from here: hg.m, hgeq2.m, cooc.m, and cofea.m.
EXERCISES
Preprocessing methods
Perform a histogram equalization in order to reduce the number of grey
levels in the picture. Four grey levels should be enough.
Feature selection
You can either use the values of the co-occurrence matrix calculated
for the image as features as such or futher calculate features
from it such as energy, inertia, entropy and homogentity. What do
these features of the co-occurrence matrix tell about the texture image
itself? How should the comparisons involved in the calculation of
the the co-occurrence matrix be defined?
Recognition methods
Implement one of the following recognition methods: 1) the k Nearest
Neighbors (knn) classifier, 2) Learning Vector Quantization (LVQ) classifier, 3)
Bayesian classifier, or 4) Multi-layer perceptron (MLP). In the first two cases,
use Euclidean metric. Experiment with different values of k and
prototype set sizes. Use linearly decaying learning coefficient for
LVQ. In case of Bayesian classifier, assume that the probability
distributions are Gaussian. In case MLP, use functions from Matlab
Neural Network Toolbox, keep the size of the network reasonable, and
start experimenting by using default settings.
As there is only one image presenting each texture, you have to sample the images by using randomly positioned findows. Divide the texture images into two parts and take the learning samples from the other side than the test samples. This is a very unrealistic approach to the classification problem as all the samples of a particular class are taken from the same image. What are the problems which would be present in some realworld classification task? What is a suitable size for a sampling window? Reporting
In the report, give a brief description of the recognition method
applied, justify all the selection you have made, and give the
recognition results of the best recognizer (calculate the total error
rate and occurrences of all error types). Also, include your Matlab
code with comments.
| |
![]() This page is maintained by elia.liitiainen@hut.fi. |