You are here: Home > Methodology

Methodology

The training and testing datasets for this project were created by adding a percentage of impulsive noise to an existing image. For each set of variables to be evaluated, an array of ten noise-corrupted images was generated in which each image contained an equal level of impulsive noise. The first two images in each set were used to train two Support Vector Machine classifiers independently, while the remaining eight images were used to evaluate the performance of the trained classifiers.

The variables that were examined in this project are described below.

Class Separation

This project investigated the detection of impulsive noise, in which noise corruption takes on a random value. Therefore, there is a probability that the value of noise will be the same (or very similar) to the value of the pixel that it replaces. This leads to a dataset that cannot be correctly classified, since the training data may contain an example that is labelled as both "noise" and "uncorrupt". To reduce the overlap between the "noise" and "uncorrupt" classes, pixels were only labelled as noise if the difference between the value of the noise and the pixel that it replaced was greater than a certain threshold.
[more]

Image Preprocessing

Training a Support Vector Machine to learn the class of uncorrupt pixels is difficult due to the size of this class: the uncorrupt pixel class contains every group of pixels from every location in every image that does not contain noise. To reduce the size of this class, various image filters were used to suppress the variation within the uncorrupt pixels of each image, while retaining the impulsive noise in the image. A class of background-suppression filters were developed for this project based on the difference of the median filter.
[more]

Pixel Representation

The individual training and testing examples that a Support Vector Machine classifies are each represented by a multidimensional vector. Various representations of pixels were evaluated in this project, including a nine-dimensional vector containing the pixel's value, and the values of its eight neighbouring pixels.

Support Vector Machine Parameters

Parameters that affect the way that a Support Vector Machine constructs the classification function were varied, to find the optimum values for the pixel data being classified in this project.