General Design
The project was broken down into four
main tasks. The four tasks will work in a sequential way.
The system will start with the video camera
on a Sun Sparc 5. The subject has to be in a similar position at
all times in order for this initial step to be successful. Also the
lighting and background will have a large impact on the subject.
A determination of lighting is a
major factor. We must determine which light best suits the quality
of the picture that will be taken. If the light differs or produces
shadows, features will not be visible enough to perform the edge detection.
The light must be placed so that the face is lit sufficiently and the subject
is not blinded. So the lighting must be kept stable and secure.
Once the lighting is taken care
of, the background of the picture will be needed to be determined also.
We need to find an attractive background that will produce the best contrast
between the subject and the camera. For instance if the person's
hair is black, the picture will not produce a sufficient picture if the
background is black. The hair will not be able to detect and edge.
Again, if the person has pale skin, the contrast against a white or off-white
background will not produce sufficient results. So that determination
will have to be made.
After the stable environment has
been established, the camera will take the pictures and save them to the
hard drive. This process will have to be automated so the camera
will only take pictures once there is a person in position. If the
camera takes pictures constantly, at some interval, the hard drive will
fill up with useless pictures. So this will have to be determined.
Also some sort of naming convention will have to be applied to the pictures
so a record can be kept.
After capturing the image using
the video camera, and saving it as a .GIF file, the image needs to be interpreted.
To start, we will import the image into MatLab. MatLab converts the image
into two matrices. The positions in the first matrix represent the position
of the pixels in the image. The value of each of these numbers references
the colormap, the second matrix. The colormap gives the RGB value for the
given reference number.
After importing the image into MatLab,
we will use the edge detection algorithm that we found works best with
grabbing the edges from a face. The one that works best will be able to
trace the outline of the head, in addition to the nose, mouth, and eyes,
while not containing too much noise from other parts of the face. Clearly,
the more defined our edges are, the easier it is for us to segment out
the necessary features.
After the picture has been segmented
and connectivity has been determined, the next step in the process is to
classify the face pattern. The algorithm implemented for this
part is going to take an n-dimension vector, store it and "remember" it
later.
The vector supplied is to contain
values that will represent unique features of different faces.
Among the characteristic features one can pull out someone's face we have
the eye color, hair color, skin color and other parameters that are constant
in a person's face. One has to realize that each element of the vector
is not unique to each individual. We can have more than two people
with red hair and green eyes. However the n-vector, or vector dimension
n, generated containing those mentioned features will be unique to
each individual.
After this step, the pattern classification
algorithm will "remember" an individual's face every time he steps in front
of the camera, a photo is taken, features vector is calculated and fed
to the program. If the person is not stored in the database the program
will find no match and the person won't be recognized.
Final
Design