|
|
An
Application of a Genetic Algorithm
to a Computer Vision Problem |
|
(Object
Identification by a Neural Network
trained with a Genetic Algorithm) |
|
This
neural network is trained to observe various objects within a 3-dimensional
matrix, so that at a later time it can identify a particular object
when presented with that object at its input matrix.
The
neural net is composed of layers of neurons; the input layer, the hidden
layer, and the output layer. For this project the input layer is configured
to match a 3-dimensional matrix of a 3 by 3 cube, that is, 27 input
neurons make up its "visual" cortex.
Each of these input neurons
is connected to the hidden layer neurons, the so called "processing"
neurons. And finally, the hidden layer neurons are connected to the
output neurons. These output neurons are used to determine an identification
for the object placed at the input of the neural network. |
|
The
images below are views of the five objects presented to the neural network
for identification. The object, or shape, is defined by the brightly
lit spheres, which have been set to a value of one, the darker spheres
have a value of zero.
(click on the images to enlarge) |
|
|
The
images below are views of a successfully trained
neural network being
tested with the five different
objects applied to the input neurons.
The white bounding box signifies the neural network's
choice, what it thinks it sees at the input.
(click on the images to enlarge) |
|
|
The
input neurons for the network are the spheres that are positioned in the
cube shaped lattice. The hidden layer of neurons are the dodecahedrons
lying horizontally. And, the output layer of neurons are the dodecahedrons
in the vertical column. The purple colored neurons are those which
have been disabled, that is, the ones which are not being used by the
network.
The level of intensity of color given to each neuron represents
the value of its output or input, dark being a low value, bright intensity
being a high value. The brightest output neuron represents the id
of the object which the network has chosen as the object it has been shown.
I've drawn a bounding box next to the brightest output neuron to facilitate
visualization. Thus, the bounding box is drawn around the object
the network has recognized. |
|
Conclusions
and References |
|
Pattern
recognition is a natural application for this type of system. It can be
seen from these preliminary results that it is relatively easy to create
neural networks that have the capability of target identification. The
inherent properties of the genetic algorithm may have made this type of
training effortless.. |
|
The
computer code was written in C++ with OpenGL. The 3-d graphics allowed
for visualization of the internal operations of the neural network. |
|
The
genetic algorithm, or rather the evolutionary programming algorithm
was mostly taken from a paper titled: A New Evolutionary System for
Evolving Artificial Neural Networks, by Xin Xao and Yong Liu, IEEE
Transactions on Neural networks, vol. 8, No. 3, May 1997. |
|
This
project was completed for a class at the University of Illinois at Chicago,
titled: Advanced Computer Vision, EECS 587, conducted by: Dr. Boaz
Super, May 1999. |
|
back |
|
home |