Vision Based Biometric

highpitchedteamΑσφάλεια

30 Νοε 2013 (πριν από 3 χρόνια και 6 μήνες)

102 εμφανίσεις

Vision Based Biometric
Authentication System


Padraic o hIarnain

03032752

4ECE



Project Supervisor: Frank Callaly






Table of Contents

Project Overview

................................
................................
................................
..........

3

Project Milestones

................................
................................
................................
......

3

Software

................................
................................
................................
........................

5

Operating system


Linux

................................
................................
..........................

5

OpenCV

................................
................................
................................
.....................

5

Hardware

................................
................................
................................
......................

6

Face Detection

................................
................................
................................
..............

7

The metho
d of detecting face objects

................................
................................
........

7

Adjustments

................................
................................
................................
...............

8

Authentication system

................................
................................
...............................

10

Face recognition

................................
................................
................................
.........

11

PCA (Principal Component Analysis)

................................
................................
.....

12

Progress to date

................................
................................
................................
..........

13

References

................................
................................
................................
...................

13









Project Overview

The purpose of this project is to create a vision based biometric authentication system
for PCs. Nowadays, most PCs use a password based authentication system to
dete
rmine access rights. The reason for creating a vision based authentication system
is because the password based system:



Less secure


Anybody may enter anybody else’s password



Remembering passwords


This may become a problem when a user is
accessing a num
ber of different systems



Tedious


A user has to enter his/her passwords every time the workstation
needs to be locked


Because of the advances in image processing techniques, particularly in the areas of
face detection and face recognition, coupled with t
he low cost of digital imaging
hardware, make a vision based authentication system quite practical.

The aim of this project is to build a system that:



Retrieves images from a camera in real
-
time



Detects the presence of a face in the image



Identifies the fa
ce against some enrolled images



Through integration with the PCs authentication system, logs on the user
corresponding to the identified face


Project Milestones

Pass


Implementation of a face detection system which can identify the existence and
location

of a face in an image. Integrating the face detection system with a USB
camera so the process is done in real
-
time.


Average


Integrating the real
-
time face detection system with a PCs authentication
system. The system should unlock a terminal when any f
ace is detected.


Good


Selection of an existing face recognition technique to use and implementing it
with the system.


Very Good


Implementation of a user interface to allow new users to enrolled in the
system.


Exceptional


Full implementation of the

working prototype. Enhancements to the
system and improvements to the face recognition algorithm.

Software


Operating system


Linux

In this project, the
Linux

operating system was chosen over the more conventional
windows operating system
. The reason fo
r this is that the Linux operating system’s
source code is open source and is available for anyone to use, modify and redistribute
freely where windows is not. It would be necessary to edit the operating system’s
source code in order to integrate the proje
ct with the PCs authentication system.


OpenCV

OpenCV is an open source computer vision library developed by Intel. The library
can be implemented on a windows or Linux system. It focuses mainly towards real
-
time image processing.

The application areas inc
lude:




Human
-
computer interface



Object identification



Segmentation and recognition



Face recognition



Motion tracking



Ego
-
motion



Motion understanding



Structure from motion



Mobile robotics



Gesture recognition


The areas that I would be most interested in are:



Object identification


There are specific functions in OpenCV for the
detection of face objects.



Face recognition


OpenCV uses Eigen
-
faces or Principal Component
Analysis to recognise faces.

Hardware

The only hardware that I required for this project (
apart from the workstation) was a
USB camera. This camera was needed to capture images in front of the monitor in
real
-
time. My project supervisor gave me a Labtec quickcam that he already had and
it was very suitable for the following reasons:




In order f
or this project to be a practical means of user authentication then the
price of the additional hardware should not be expensive. And this camera was
not expensive.



The camera is small so it does not get in the way of the user while he/she is
working. It c
an easily sit on top of the monitor or
behind the keyboard.



The image resolution is just right. There is enough information in the image to
perform a reasonably accurate face recognition but there isn’t too m
any

pixels

that would cause the computer to slow

down or take too long while analysing
the image.



In order to get this camera working with the Linux operating system I had to install a
universal webcam driver. This driver is called the Spca5xx webcam driver and can be
obtained for free from the websit
e,
http://mxhaard.free.fr/spca5xx.html
. After this
driver was installed the camera was detected by the system and could start capturing
images.

Face Detection

Face detection is the process of detecting
faces in images or videos. Face detection in
this project is carried out using

the OpenCV library.


The method of
detecting face objects

First, a classifier

is trained with a few hundred sample views of a particular object, in
this case a face, these are c
alled positive examples. The classifier is also trained with
arbitrary images that are called negative examples. The classifier is better described as
a cascade of boosted classifiers working with haar
-
like features.




Cascade


meaning the classifier con
sists of several simpler classifiers, called
stages that

are applied to a region of the image until the region is rejected
by

classifiers or passes all stages.



Boosted


this means that the classifiers themselves at every stage are
complex and are built fr
om basic classifiers using different boosting
techniques.



Haar
-
like features


Haar is a wavelet transform that detects certain types of
features. The OpenCV face object detection algorithm uses these haar
-
like
features:



Figure 1


Haar
-
like features used by OpenCV algorithm.


After a classifier is trained it can then be applied to a

region o
f the

input image.

The
classifier returns a “1” if the image is likely to contain a face object or it returns a “0”
if the image doesn’t show any indication of a face. The search window moves across
the image and scans every location using the classifier.
The classifier can be resized
so the search window can locate face objects of different size.

Using this technique
OpenCV can detect images that contain faces.



Figure 2


Example of face detection using an image.


Adjustments

In order for the face detection to work more practically with the aim of this project the
following adjustments could be made:




The object detection function was changed to detect only face objects that took
up at least half of the image. Because the camer
a would be capturing images
of faces relatively close to it, then it would seem more practical to discard all
face objects that would seem too small to be faces.



The function could also be changed to only detect 1 object per image. Taking
into account

that

small size face objects are discarded, the function would only
detect one object per image anyways. This way the program doesn’t spend
needless time searching through the rest of the image after detecting an object.



The face detection

code can easily be i
ntegrated with a camera. Instead of
passing an image into the face detection program, you can pass a device, in
this case a USB camera.

The frames captured by the camera are copied to
images by the program and are then transferred to the object detection
f
unction.


By making these slight alterations the program works more towards the practical aims
of this project.



Figure 3


Example of face detection using the USB camera.


Authentication system

Linux security

can use Pluggabl
e Authentication Modules (PAM) to authenticate
users. Pam provides a layer between applications and the actual authentication
mechanism. PAM is a library of loadable modules that are called by
applications;

these modules are used for security requirements
in the application. These modules
allow the system administrator to control how and when a user can login and contain
many other customizable features.


In order for the authentication system to be integrated with the face recognition, a new
PAM module mus
t be created that uses files that are linked with the face detection
and face recognition programs.

This way when a user’s face is identified it can be
written in a file used by the authentication module and then that particular user can be
logged in.

Fac
e recognition

Face recognition is the process of matching a face detected by the face detection
program with one of the many faces known to the system.

There are many algorithms to perform face recognition including:




Eigen faces

or Principal Component An
alysis method (PCA)



Fisher faces

or Linear Discriminant Analysis method



Kernel Methods



3D face recognition methods



Gabor Wavelets method



Hidden Markov Models


OpenCV supports the PCA method of face recognition. It’s a fast and easy method
that requires sma
ll amounts of memory to run. But i
t has its disadvantages. PCA is:




Translation variant



Scale variant



Background variant



Lighting variant


Most of these wont be a problem with this project because the faces that are to be
enrolled in the database
(users)
a
re to be captured in the same place
and way as the
images that are to be subjected to face detection and recognition

(i.e. in a computer
using the quickcam)
.

Before the image is passed on to the face recognition process it must first pass
through face dete
ction and the face must be extracted. Then illumination
normalization must be performed on it. Thus reducing the negative effect lighting has
on the process.

After these steps are taken the face image is ready for face
recognition.


PCA (Principal Componen
t Analysis)

PCA is best described as a process that obtains a computational model that best
describes a face by extracting the most relevant information contained in that face.
The
Eigen faces

approach is a PCA method. The aim of this approach is to find t
he
eigenvectors (
Eigen faces
) of the covariance matrix of the distribution; this is done by
training a set of face images. Now, every face can be represented by a linear
combination of these eigenvectors.

Recognition is performed by comparing the
position
of the new image’s eigenvectors within the face space with the positions of
known users, hence identifying the face.

Progress to date

To date
I have made the following progress
:



Face detection working


capturing face objects in images.



Face detection int
egrated with the USB camera


capturing faces in real
-
time.



Currently working on integrating that system with the authentication process.



References

The OpenCV library Wiki

http://opencvlibrary.source
forge.net/


The universal
L
inux webcam driver download site

http://mxhaard.free.fr/spca5xx.html


The face recognition homepage

http://www.face
-
rec.org/


A L
inux

information website

http://www.comptechdoc.org/os/linux/howlinuxworks/