Java Face Recognition
Introduction
Java Face Recognition is a small part of a larger project called
CyberFridge.
Two other parts are an electronic message board and
a photo gallery. Face recogition will be used with the message
board to provide a means of receiving private messages by the intended
recipient.
Java Face Recognition is a Java application, once it's given a training set of images, that will perform
face recognition to try to identify an individual in front of the camera. Once the identification
is made, the program passes the identity to a script which enables the Message Board
program to display messages to that particular user. At the same time, messages to other
individuals are kept hidden, providing some measure of privacy of message content.
Background
The recognition process uses eigenfaces to help decide the identity of the mystery person.
The premise of using eigenfaces is the ability to create a mathematical model of a person's
face. This model is compared to other models the program currently knows based on its
training set. If the differences between two models falls within acceptable limits, the program
outputs that a match has been made. Otherwise, the models are of two different people.
Platform Requirements
Web Server
Machine needs to be able run cgi scripts and the java interpreter. The
cgi scripts are written in C and Perl.
Client
For the messageboard, a web browser such as Netscape provides an interface
for interaction with user.
For face recognition, a PC with an ISA slot for the video capture card. Also,
a video camera and software to capture images.
Installation
There are two parts to installing Java Face Recoginition, installing the
message board and the face recognition software.
Part I
Step 1. Download Source
The source for Java Face Recognition is available at:
http://www.prism.gatech.edu/~gt9922a/jfr.tar.
Once the file is downloaded, untar the file using the tar command:
tar -xf jfr.tar
Step 2. Compiling Source Files
The Java class files are included in the tar file, however if you wish to compile the code
enter the following:
javac eigenface.java
javac frontend.java (optional)
javac jfr.java
This will produce all necessary class files. The frontend.java file is a graphical interface to the
program that shows the processing of images. At the moment, it is commented out in the eigenface.java
file.
The class files need to reside in a single directory. Within this directory, there should be at least two other
subdirectories. One called "recog" and the other "training". Java Face Recognition supports classification
of images as well. For example, if a group of students, faculty, and visitors need to be stored, use the following
directory structure:
remove the training directory
create a directory for students labelled "students",
one for faculty labelled "faculty", and so forth.
Java Face Recognition will recurse into these directories and load any images there automatically.
Part II
Step 1. Download the source
The Message Board is located at http://www.cc.gatech.edu/computing/classes/cs3302_96_spring/projects/Team6/messageboard.proto.01.tar.gz.
Move the tar file to the location where it will be unpacked. Root access is notrequired to install the Message Board.
Step 2. Unpacking the file
First, you must gunzip the file by entering:
gunzip messageboard.proto.01.tar.gz
Followed by untarring the file using the tar command:
tar messageboard.proto.01.tar
Once the file has been unpacked, there will be a messageboard directory created
in the current directory. Inside of that directory will be an install program,
a configuration file, and a directory containing sources.
Step 3. Editting the config file
Edit the config file to reflect information about your system. Items that
will need to be changed are:
- base directory of message board system
- base URL of where the system is installed
- cgi bin directory that you have access to
- URL of the cgi bin directory
- location of the java interpreter and java classes
Step 4. Run the installation program
When the config file has been modified, type in
./install
The modified Message Board files will be copied to new directories within
the messageboard directory. The files are updated to contain the proper
paths.
Putting the Pieces Together
To incorporate Java Face Recognition with the Message Board, a modified
version of addmsg.cgi is included within the Java Face Recognition
archive. To facilitate ease of installation, place all Java class files within
the cgi-bin directory of the Message Board directory structure.
Here is a diagram showing how the pieces interact:
From Image Capture to Receiving Messages
By using a video camera and a video capture card, frames are captured to
produce images for recognition. The images are captured are placed within
the messageboard/cgi-bin/recog directory.
To start the Message Board system, on the server type in:
java server&
At the client, click on Start Applet from the Message Board web page.
Whenever the user adds a message, the Java Face Recognition program
is started. It will check the recognition directory for images and
load them. It will also load images from its training set of people that
are known to the program. Then the recognition process starts. In the
instance of a match, the classification and name of the person are stored.
The person's name is passed to a script to determine which of the messages
stored is for them. A search is performed on the messages based on the
recipient's name and the person identified by Java Face Recognition. Any
messages found are sent the Message Board server. The server then passes the
message on to the client's screen and the user can read their messages.
To start the program type java jfr. This starts a thread that polls the
"recog" directory.
an image. Images can be in either GIF or JPEG formats. At the moment, the
filenames for images should incorporate the individual's name or login id. For example, one has ten images
of Bob. They can be called bob1 up to bob10.
Once an image is loaded, the program then
processes the image, and produces a response. If a match is found, the program will classify the
image and return the name of the image. The name of the image is passed to a script which searches
for all messages to that individual. Then, those messages are sent to the Message Board so that
they may be displayed to the user. All other messages are blocked.
Any questions or suggestions can be sent to Scott Campbell.
E-mail: scamp@avana.net
Phone: 770-522-0677