You are on page 1of 69

1.

0 Introduction
1.1 Background Introduction
The current method that institutions uses is the faculty passes an attendance sheet or make
roll calls and mark the attendance of the students, which sometimes disturbs the discipline of the
class and this sheet further goes to the admin department, which is then updated to an excel
sheet. This process is quite hectic and time-consuming. Also, for professors or employees at
institutes or organizations, the biometric system serves one at a time. So, why not shift t o an
automated attendance system which works on face recognition technique? Be it a classroom or
entry gates it will mark the attendance of the students, professors, employees, etc.

1.2 Current Systems


At present, attendance, marking involves manual attendance on the paper sheet by
professors and teachers, but it is a very time-consuming process and chances of proxy are also
an issue that arises in such type of attendance marking. Also, there is an attendance marking
system such as RFID (Radio Frequency Identification), Biometrics etc. But these systems are
currently not that popular in schools and classrooms for students.

1.3 Drawbacks in existing system


Manual systems put pressure on people to be correct in all details of their work at all
times, the problem being that people aren’t perfect, however, each of us wishes we were.

¬ These attendance systems are manual.

¬ There is always a chance of forgery (one person signing the presence of the other
one) Since these are manually so there is a great risk of error.

¬ More manpower is required.

¬ Calculations related to attendance are done manually (total classes attended in a


month) which is prone to error.

¬ It is difficult to maintain a database or register in manual systems.

Department of Computer Application , The M.S. University , Vadodara 1


¬ It is difficult to search for a particular data from this system (especially if that data,
we are asking for, is of very long ago).

¬ The ability to compute the attendance percentage becomes a major task as manual
computation produces errors, and also wastes a lot of time.

¬ This method could easily allow for impersonation and the attendance sheet could
be stolen or lost.

1.4 Using Biometrics


Biometric Identification Systems are widely used for unique identification of humans mainly for
verification and identification. Biometrics is used as a form of identity access management and
access control. So the use of biometrics in the student attendance management system is a secure
approach. There are many types of biometric systems like fingerprint recognition, face
recognition, voice recognition, iris recognition, palm recognition etc. In this project, we have
used face recognition system.

1.5 Motivation
The main motivation for this project was the slow and inefficient traditional manual attendance
system. So, why not make it automated fast and much efficiently. Also, such face detection
techniques are in use by the department of a criminal investigation where the usage of CCTV
footages and detecting the faces from the crime scene and comparing them with criminal
database to recognize them. It is also becoming as a feature of daily life in China, where
authorities are using it on the streets, in subway stations, and at airports.

Department of Computer Application , The M.S. University , Vadodara 2


2.0 Review of the Literature

Face recognition is such a challenging yet interesting problem that it has attracted researchers
from different backgrounds. It is due to this fact that the literature on face recognition is vast and
diverse. The earliest work on face recognition can be traced back at least to the 1950s
additionally; the research on automatic machine recognition of faces really started in the 1970s,
but a fully automatic face recognition system based on a neural network was reported back in
1997.

The aim of all the researches was to make face recognition as automated and accurate as
possible through various types of inputs such as static images, video clips, etc. so as to increase
its applications in real world. Computational methods of face recognition need to address
numerous challenges. These type of difficulties appear because faces are need to be represented
in such a way that best utilizes the available face information to define a specific face from all
the other faces in the database. Also, extracting such detailed facial features can be used in
slandering the search and enhancing recognition.

The problem of automatic face recognition involves three key steps:


(1) Face Detection
(2) Feature extraction
(3) Recognition

Department of Computer Application , The M.S. University , Vadodara 3


Sometimes, the steps are not totally separated. For example, the facial features used for
face recognition are often used in face detection. Face detection and feature extraction can be
achieved simultaneously. Other than that accuracy depends on various factors such as, the nature
of the application, size of the training and testing database, clutter and variability of t he
background, noise, occlusion, and computing requirements, etc. and a fully automatic face
recognition system needs to perform all the three steps accurately.

It’s evident that after more than 30 years of research and development, basic 2D face
recognition and other image processing applications have reached a mature level and many
commercial systems are available for various applications. Some of the major reasons for this
success are faster computers, algorithmic improvements, access to large amounts of research
tools and datasets, advances in machine learning and perception, the increase in affordable
neural networks and now the data-hungry deep learning methods; which have started to
dominate accuracy benchmarks around 2011. Various surveys also present factual data
indicating that error rates in image processing tasks have fallen significantly since 2012 and are
expected to for fall further in near future.

Department of Computer Application , The M.S. University , Vadodara 4


3.0 Proposed Solution
To overcome the problems in the existing attendance system we shall develop a
Biometric based attendance system over simple attendance system. There are many solutions to
automate the attendance management system like thumb based system, simple computerized
attendance system, Iris scanner, but all these systems have limitations overwork and security
point of view. Our proposed system shall be a “Face Recognition Attendance System” which
uses the basic idea of image processing which is used in many security applications like banks,
airports, Intelligence agencies etc.

Department of Computer Application , The M.S. University , Vadodara 5


3.1 Proposed System Components
Following are the main components of the proposed system

1. Student Registration

2. Face Detection

3. Face Recognition

- Feature Extraction

- Feature Classification

4. Attendance management system.

Attendance management will handle:

- Automated Attendance marking

- Manual Attendance marking

- Attendance details of users.

- Email notification for absentees.

3.2 Proposed System Outcome

¬ It will mark attendance of the students via face Id.

¬ It will detect the faces via wireless camera (IP camera)/webcam and then recognize the
faces.

¬ After recognition, it will mark the attendance of the recognized student and update the
attendance record.

¬ The admin will be able to print these record details afterward.

¬ The students will also receive an email on low attendance rate.

Department of Computer Application , The M.S. University , Vadodara 6


3.3 What contribution would the project make?
Face recognition is the most natural biological features recognition technology, according
to the cognitive rule of human beings; its algorithm is ten times more complex than a fingerprint
algorithm. The system will do its work even if one is not in touch with it or forget about it.

Face recognition is featured by the following advantages compared to fingerprint:


1. Accurate and Fast Identification
Industrial Leading Facial Recognition Algorithm, matches more data than a fingerprint,
FAR<0.0001%.

2. High Usability and Security


Failure to enrol and acquire rate is less than 0.0001%, fingerprint technology will have problems
for enrolment with cold, wet, desquamation, elder, and around 5% people cannot get enrolled
with a photo which is captured by the camera, there is no evidence with fingerprint technology
to track the incident.

3. User friendly design


Contactless authentication for ultimate hygiene.

4.0 Methodology
Research Methodology

What Is Research?

Research is a logical and systematic search for new and useful information on a particular
topic. It is an investigation of finding solutions or problems of scientific and social platforms
through objective and systematic analysis. The information might be collected from different
sources like experiences, books, journals, nature, etc.

A research can lead to new contributions to the existing knowledge. Research is done
with the help of study, experiment, observation, analysis, comparison and reasoning. Research is
in fact ubiquitous. For example, we know that cigarette smoking is injurious to health; heroine is
Department of Computer Application , The M.S. University , Vadodara 7
addictive; cow dung is a useful source of biogas, etc. We became aware of all these information
only through research. More precisely, it seeks predictions of events, explanations, relationships
and theories for them.

Research Methods and Research Methodology

Research methods:

Refers to various procedures and schemes researches use in performing research operations.

Research methodology

It is a systematic way to solve a problem. It is a science of studying how research is to be


carried out. Essentially, the procedures by which researchers go about their work of describing,
explaining and predicting phenomena are called research methodology. It is also defined as the
study of methods by which knowledge is gained. Its aim is to give the work plan of research.

What are the Objectives of Research?

The prime objectives of research are:

1. To discover, verify and test new and important facts

2. To analyse an event or process or phenomenon to identify the cause and effect relationship

3. To develop new scientific tools, concepts and theories to understand scientific and non-
scientific problems

4. To find solutions to scientific, non-scientific and social problems and

Department of Computer Application , The M.S. University , Vadodara 8


Various Stages of a Research

A general set of sequential components of research is the following:

¬ Selection of topic

¬ Definition of problem

¬ Literature survey and reference collection

¬ Assessment of current status of the topic chosen

¬ Actual investigation

¬ Data analysis

¬ Interpretation of result

¬ Report

5.0 Project Charter

5.1 Project Definition

Asistencia is face recognition, attendance biometric system which enrols the unique and
permanent facial fine points of people and records them in the database as stencils. Once the
enrolment process is complete, a look at the camera is required to verify the identity and the face
recognition attendance system automatically marks the attendance.

Department of Computer Application , The M.S. University , Vadodara 9


The face recognition, attendance system is an accurate technology for managing
attendance as it hardly gives errors in proper environment with good quality of dataset.

5.2 Project Scope


¬ Provides facility for the automated attendance of students.

¬ Uses live face recognition to recognize each individual and mark their attendance
automatically.

¬ Utilizes video and image processing to provide inputs to the system.

¬ Facility of marking manual attendance.

¬ Notification via email if there is a lack of attendance .

6.0 Project Plan

6.1 Objectives

- Detection of unique face image amidst the other natural component such as walls and other
backgrounds.

Department of Computer Application , The M.S. University , Vadodara 10


- Detection of faces amongst other face characters such as beard, spectacles etc.

- Extraction of unique characteristic features of a face useful in face recognition.

- Effective recognition of unique faces in a class (individual recognition).

- Automated update in the attendance sheet without human intervention.

- To keep the student updated with their attendance ratio.

6.2 Goals

- To help the lecturers, improve and organize the process of tracking and managing student
attendance.

- Provides a valuable attentive service for both teachers and students.

- Reduce manual process errors by providing automated and a reliable attendance system.

- Increase privacy and security which, student cannot present him or his friend while they are
not.

- Produce monthly reports for lecturers.

- Flexibility, lectures capability of editing attendance records.

-Reduce time loss as time is a very valuable resource.

6.3 Strategies
1. Recruited the Right Resources:
Recruited talent with the right skills and relevant experience as it is vital to ensure the
project’s success. We allocated the right work to the appropriate person. Si milarly,
invested in tools that enhances efficiency and increases the team’s productivity. The latest
PCs, appropriate updated hardware, development and testing software and platforms, as

Department of Computer Application , The M.S. University , Vadodara 11


well as automated tools has aided team into putting their expertise to the right use and
ensure a robust product.

2. Selected the Right Development Process:


The development life-cycle depends heavily on the process adopted. The research
methodology, waterfall model, agile methodology, iterative spiral approach are all proven
ways of achieving success. Selected the one that suits our project was of utmost
importance. The actual adherence to and the application of the selected process is what
played out in the success of the project. Made a small prototype to study feasibility and
explored a new technology.

3. Made Sound Estimations:


Many projects fail or overshoot deadlines due to poor estimations. Made sound planning
on estimates like schedule, budget, resources and efforts. It proved out to be the best
estimation techniques.

4. Defined Smaller Milestones:


Bigger projects and major milestones was complemented with mini-milestones as it offers
better tractability, improved-control, and better risk mitigation. Team members sat side by
side to discuss and align these mini-milestones with the bigger milestones to meet the
overall schedule and reduce inter-dependency delays.

5. Defined Requirements:
Effective requirement gathered, formed the basis of aligning the finished product with the
business objectives. Defined primary, derived and implicit requirements, both functional
and non-functional. Functionality was captured via the data-flow scenarios. Performance,
fault tolerance, system, design and architectural requirements was well-addressed.
6. Defined System Architecture:
Ensured that the suitable architecture is selected, keeping in mind the requirements as well
as the limitations and constraints, if any. Best practices such as identifying the threats and
anti-patterns in the system proved out to be very helpful.

7. Optimized Design:

Department of Computer Application , The M.S. University , Vadodara 12


Design turns out to be modular and optimal. Balancing and distributing functionality over
modules can make or break a project. Object oriented approach is one such technique that
ensured modularity. Ensured that the selected approach is applied well so as to ac hieve
“maximum cohesion, minimal coupling”. Code re usability is often an under-utilized
aspect in design, as it was leveraged well, it saved a lot of effort and reduced costs in the
long run.

8. Effective Code Implementation:


Used smaller modules that are coded, self-tested, unit tested and continuously integrated.
Automating build tools and automated running of regression test suited for each included
functionality, ensured that existing functionality is not broken.

9. Rigorous Testing and Validation:


Test planning, test set creation and testing are very important to validate the developed
functionality. In fact, test planning was independent of coding and was done in parallel to
the coding stage. Equally important are test reporting, effective defect reporting, defect
tracking and defect resolution. Use of automated tools as well as well-established
processes for these ensured that bugs were caught at the earliest possible stage and
resolved cost effectively. Unit testing, integration testing, functionality te sting, system
testing and performance testing are some of the levels of testing which was performed at
its time. Each level required its own expertise, planning and execution.
10. Complete Documentation:
As important as the actual software itself, are the documents that support it –project plan,
requirement specifications, test plans, test reports, status reports and user documentation.
Many a time, these documents are a part of the deliverables specified by the customer or
stakeholders as well. These documents help to maintain understanding of the software,
ensure traceability, and remove dependency upon the core development team. They can be
used as a reference in future by someone else, who might work on or use the software.

11. Plan Reviews:


Reviews are found to be as effective and, in fact, much cheaper in catching defects than
testing. Reviews of all deliverables, code and documents was done. Peer reviews as well as
expert reviews were very useful.

Department of Computer Application , The M.S. University , Vadodara 13


12. Effective Project Management:
Effective project management and leadership leaded to accountability and support of the
team. The project team members facilitated effective planning, tracking, budgeting for the
project and also ensured that appropriate resources are made available to all members.
Risk management and process adherence was achieved through good project management.

13. Track Efforts:


Track man-hours of every individual within the team which mapped to the estimated and
planned hours and then used for fine-tuning and better risk management. The mini-
milestone planning along with effort tracking provided good feedback and status track for
current as well as future projects.

14. Change is Inevitable:


It is almost certain that requirements may change while the project is in development or is
deployed. This could be due to a change in user/customer’s expectation, change in
business needs or simply failing to predict a problem at the right time. Instead of resisting
the change, we allowed for a control mechanism to accommodate the necessary changes
without impacting the existing functionality adversely. Having a CCB (Change Control
Board) was one such successful method to accept or reject changes and facilitate the
smooth inclusion of the change into the schedule and plan.

6.4 Work Division (w.r.t time)

Sr Task achieved w.r.t Time Time Taken


No.
1. Comparison : Matlab vs. Python 26/01/18 – 27/01/18
2. Python Learning 27/01/18 – 30/01/18
3. Comparison : Python vs. Anaconda 01/02/18 – 02/02/18
4. Python IDE + Python Installation 04/02/18 – 08/02/18
5. Library identification for Face Detection 08/02/18 – 09/02/18

Department of Computer Application , The M.S. University , Vadodara 14


6. Comparison : Compatibility of Pycharm – Python 12/02/18 – 14/02/18
7. Face Detection ( OpenCV Haar Cascades vs. Viola Jones) 14/02/18 – 17/02/18
8. Static image Face Detection using OpenCV 20/02/18 – 21/02/18
9. Real-Time Face Detection with Web Camera 22/02/18 – 26/02/18
( gray-scaled face images )
(a) Normal Screen
(b) Gray-Scaled Screen

10. Real-Time Face Detection with IP Camera ( gray-scaled face images ) 27/02/18 – 28/02/18
11. Database Storage 03/03/18 –
(a) MySQL 08/03/2018
(b) SQLite

12. Comparison : Face Dataset concepts 12/03/18 – 14/03/18


(a) AR Face Database
(b) AT & T Face Database
(c) BioID Face Database
(d) Caltech Face Database
(e) CAS-PEAL Face Database
(f) CMU Multi-PIE Face Database
(g) CVRL Biometrics Face Database
(h) FaceScrub Database
(i) Indian Movie Face Database
(j) JAFFE Database
(k) Labeled Faces in the Wild Database
(l) PUT Face Database
13. Multiclass database face storage into secondary memory 14/03/18 – 15/03/18
14. Learning : Neural Network , Tensorflow , Theano , TFLearn , Keras 15/03/18 – 17/03/18
15. Issue Solved : Libraries Compatibility with 17/03/18 – 19/03/18
(a) Pycharm versions
(b) Python versions

16. Formation of Neural Network ( creating neurons for layers ) 19/03/18 – 20/03/18

17. Learning : Neurons Activation Function 20/03/18 – 21/03/18


(a) Binary Step Function
(b) Linear Function
(c) Sigmoid/ Logistic Function
(d) Tanh – Hyperbolic Tangent Function
(e) ReLu – Rectified Linear Units Function
(f) Leaky ReLu Function
(g) Maxout Function
(h) SoftMax Function
18. Comparison : ANN vs. CNN 21/03/18 – 21/03/18
19. Comparison : CNN vs. Capsule Networks 21/03/18 – 21/03/18

Department of Computer Application , The M.S. University , Vadodara 15


20. Learning : Face Recognition Models 21/03/18 – 22/03/18
(a) LeNet
(b) AlexNet
(c) ZFNet
(d) GoogleLeNet
(e) VGG Net
(f) Inception-v3
(g) ResNet
21. Pre-processing Face Dataset 22/03/18 – 23/03/18
22. Issue Solved : Overwriting data in Excel Sheet 23/03/18 – 24/03/18
23. Automatic entry of registered student’s detail in Excel Sheet 24/03/18 – 24/03/18
24. Automatic current date incremented column in existing Excel Sheet 26/03/18 – 27/03/18
25. Learning : Feature Extraction and Classification 27/03/18 – 27/03/18
26. Learning : Methods for training pre-processed face dataset 27/03/18 – 27/03/18
27. Graphical User Interface using PyQT4 and PyQT5 28/03/18 – 30/03/18
28. Issue Solved : conversion of .ui to .py files 30/03/18 – 31/03/18
29. Facial Landmark Detection 31/03/18 – 02/04/18
30. Eye Blink Detection 02/04/18 – 05/04/18
31. Static Face Recognition 07/04/18 – 06/04/18
32. Real-Time Face Classification : 07/04/18 – 10/04/18
(a) Support Vector Machine
(b) K - Nearest Neighbors
33. Real-Time Face Recognition – Residual Network 10/04/18 – 13/04/18
34. Graphical User Interface creation using KIVY 13/04/18 – 19/04/18
35. Automated attendance marking with Identified Label 19/04/18 – 21/04/18
36. E-mail Notification to absentees 23/04/18 – 25/04/18
37. Attendance Report Generation 25/04/18 – 06/04/18
38. Integration of System 26/04/18 – 01/05/18
49. Testing of the System 01/05/18 – 05/05/18

6.5 Work Division (w.r.t team members)

Amey Mohite -Integration of Web camera/IP Camera


-Training .csv and .pkl files
-Automated attendance entry in Excel sheet
-Email-notification
-Live prediction
Jigar Patel -Graphical User Interface
-Face Detection using CNN

Department of Computer Application , The M.S. University , Vadodara 16


-Training .csv and .pkl files
-Automated date increment
-Testing
Naomi Kulkarni -Face detection using CNN
-Encoding registered images
-Live prediction
-Unknown face identification
-Testing
Shivani Sharma -Graphical user interface
-Face detection CNN
-Live prediction
-Creation of automatic Excel sheet and registration of student
information
-Integration
Shreya Dandavate -Face detection using OpenCV
-Capturing 100 images automatically and storage in database
-Face detection using CNN
-Encoding registered images
-Reports generated

6.6 Tools and Technologies


 Tools

¬ Software Components
 PyCharm
 Microsoft Excel

¬ Hardware Components
 IP camera/Web Camera
 Computer

 Technologies
Department of Computer Application , The M.S. University , Vadodara 17
¬ Python

¬ Kivy

¬ PyCharm libraries
 Pandas: A Python package which provides fast, flexible and expressive data
structures and data analysis tools designed to make working with various types of
data both easily and intuitively.

 Pickle: Pickle Module is used for serializing and de-serializing a Python object
structure by pickling being the way to convert it into a character stream for it to be
saved on disk.

 Sklearn: Scikit-learn is a very powerful Python library for machine learning &
predictive modeling.

 NumPy : A library for the Python programming language, adding support for
large, multi-dimensional arrays and matrices, along with a large collection of
high-level mathematical functions to operate with.

 Sip: A tool that has the ability to take existing libraries, written in C or C++ and
making them available as Python extension modules.

 Matplotlib: A plotting library for the Python programming language and its
numerical mathematics extension NumPy.

 Scipy: It is an open-source Python library used for scientific and technical


computing.

 Random: The random module is another library of functions that can extend the
basic features of python.

Department of Computer Application , The M.S. University , Vadodara 18


 Kivy: An open source Python framework for rapid development of applications
that make use of innovative user interfaces, such as multi-touch apps.

 Tensorflow: A Python library for fast numerical computing created and released
by Google. It is a foundation library that can be used to create Neural Network
and Deep Learning models directly or by using wrapper libraries that simplify the
process built on top of Tensorflow.

 Keras: An open source neural network library written in Python. It is capable of


running on top of Tensorflow, Microsoft Cognitive Toolkit, Theano, or MXNet.
Designed to enable fast experimentation with deep neural networks, it focuses on
being user-friendly, modular, and extensible.

 Dlib: Contains a wide range of machine learning algorithms. All designed to be


highly modular, quick to execute, and simple to use. It is used in a wide range of
applications including robotics, embedded devices, mobile phones, and large high
performance computing

 Os: The module provides a portable way of using operating system dependent
functionality.

 OpenCV-Python: A Python wrapper for the original OpenCV C++


implementation. OpenCV-Python makes use of NumPy, which is a highly
optimized library for numerical operations with MATLAB-style syntax. All
the OpenCV array structures are converted to and from NumPy arrays.

 Six: It provides utility functions for smoothing over the differences between
the Python versions with the goal of writing Python code that is compatible on
both Python versions.

Department of Computer Application , The M.S. University , Vadodara 19


 Openpyxl : The Openpyxl module allows your Python programs to read and
modify Excel spreadsheet files.

 Pyexcel : Provides an application programming interface to read, manipulate and


write data in different excel formats and makes information processing involving
excel files less tedious.

7.0 System Requirements Specification

I. Technical Requirement

i. Hardware Requirements

 A standalone computer (i3 5 th Gen, 8gb ram or higher)


 High-quality wireless camera to capture images
 Secondary memory to store all the images and database
Department of Computer Application , The M.S. University , Vadodara 20
ii. Software requirements

 PyCharm professional 2017.2.4 or higher


 Python 3.5 or more
 Windows 8 or higher
 Latest version of all libraries

II. Functional Requirements

System functional requirement describes activities and services that must provide.

¬ A user must be able to manage student records.

¬ An only authorized user must be able to use the system.

¬ A system must be attached to wireless camera and face recognition should be


smooth.

¬ The administrator or the person who will be given the access to the system must
login into the system before using it.

¬ The information must be entered and managed properly.

III. Non-Functional Requirements

Non-functional Requirements are characteristics or attributes of the system that can judge
its operation. The following points clarify them:

a. Accuracy and Precision: the system should perform its process with accuracy
and precision to avoid problems.

b. Flexibility: the system should be easy to modify, any wrong should be correct.

c. Security: the system should be secure and saving student's privacy.


Department of Computer Application , The M.S. University , Vadodara 21
d. Usability: the system should be easy to deal with and simple to understand.

e. Maintainability: the maintenance group should be able to cope up with any


problem when occurs suddenly.

f. Speed and Responsiveness: Execution of operations should be fast.

Non–Functional Requirements are as follow:

¬ The GUI of the system will be user-friendly.

¬ The data that will be shown to the users will be made sure that it is correct and is
available for the time being. The system will be flexible to changes.

¬ The system will be extended for changes and to the latest technologies.

¬ Efficiency and effectiveness of the system will be made sure.

¬ The performance of the system will be made sure.

IV. Student Requirements

¬ A student needs to enter the proper details while registering him/her.

¬ He/ She needs to sit properly and capture 10-15 images of himself/herself in
different directions and expressions.

¬ At the time of taking attendance, students need to sit properly facing the camera.

V. Teaching Staff Requirements

¬ The faculty needs to log into the system at the time of attendance.

¬ The faculty needs to enter lecture details before starting the attendance process.

¬ If the entered lecture details don’t match with the ones in the database (excel
sheet) an error dialog will be displayed.

Department of Computer Application , The M.S. University , Vadodara 22


¬ As the students are recognized by the system, the attendance report will be
generated and shown to the faculty.

VI. Administrator Requirements

¬ The administrator needs to log into the system at the time of registering the
students in the face recognition process.

¬ He / She must make sure that the student enters the details properly.

¬ Only the administrator has the rights to manage any changes in the system.

¬ Only the administrator is allowed to view the Training set and the Testing set.

¬ Only the administrator has the rights to manage any changes in the stored data set.

8.0 System Analysis


8.1 System Flow

Admin logins the system

Department of Computer Application , The M.S. University , Vadodara 23


Student registration interface
provided

Student enters details

The camera is enabled for


capturing face images of the student

On clicking Submit, entered data


is stored in the excel workbook

In real-time the student’s face is


detected and highlighted on the window

The detected faces are cropped

Cropped faces are stored in the


respective student’s name folder

Figure 1 Student Registration Flow

8.1.2 Feature Extraction

Classifier file
Extraction of facial features for comparison is created based on the stored
Department of Computer Application , The M.S. University , Vadodara 24
from training set and test image for face recognition information
The extracted facial features and the student’s folder name are stored in separate files
Figure 2 Feature Extraction

8.1.3 Generating Attendance Flow

Student glances at the


camera for attendance
Student’s face is detected
in real-time

The facial region of interest


is grabbed from the frame

The test image is then classified and the


face is identified by comparing it with the
training face dataset

The attendance is marked ‘Present’ for


recognized student face, rest remains ‘Absent’

An e-mail is sent to the


absentees regarding their absence
8.2 System Description Figure 3 Generating Attendance Flow

Asistencia is face recognition, attendance system which consists of various phases


throughout the completion of the process and is accessed by the administrator. The administrator
must be signed up before accessing the system. Login permission is required for the system to be
used.
For the student to be recognized they need to be registered. For registration, a form must
be filled up with the basic details of a student. Once the form is filled up, 100 images of a

Department of Computer Application , The M.S. University , Vadodara 25


student are captured automatically after face being detected as a part of the registration process
and are stored in the training set within the particular student folder.
Encoding of the register images takes place. Followed by training of images inside the
training set which creates .csv and .pkl file for images that are encoded and their labels.
During attendance, webcam is connected, and as students enter the class their faces are
detected and recognized after which, an entry is marked in Excel sheet as a present and other as
absent. Unknown faces are shown as ‘Unknown’.
Reports are generated on the basis of attendance sheet monthly and Email notification is
sent to the students who are absent.

8.5 Module Specification

8.5.1 Face Detection

Detecting facial landmarks is a subset of the shape prediction problem. Facial


landmarks such as eyes, eyebrows, nose, mouth, jaw line were used to localize and
represent salient regions of the face. Given an input image, a shape predictor attempts to
localize key points of interest along the shape. In the context of facial landmarks, our goal
was to detect important facial structures on the face using shape prediction methods.
Detecting facial landmarks is therefore involves localizing the face in the image and
detecting the key facial structures on the face ROI. Dlib and OpenCV were used to detect
facial landmarks in an image.

Face detection has been achieved by us in two ways.


1. Using Opencv’s built-in particular Haar Cascades.
2. Using a model for predicting facial landmarks.

1. Face detection using Opencv’s Haar Cascades


Using the Haar feature-based cascade classifiers is an effective object
detection method proposed by Paul Viola and Michael Jones in their paper, "Rapid
Object Detection using a Boosted Cascade of Simple Features" in 2001. It is a machine

Department of Computer Application , The M.S. University , Vadodara 26


learning based approach where a cascade function is trained from a lot of positive and
negative images. It is then used to detect objects in other images.

Figure 4 Types of Haar Features

Figure 5 Haar features applied on an image

2. Face Detection using a model for predicting facial landmarks.


The algorithm used to detect the face in the image matter less, instead what
matters is given the face region where we can apply facial landmark detector. For
detecting key facial structures in the face region we have used a pre-trained facial
landmark detector which estimates the location of 68 (x, y)-coordinates that map to facial
structures on the face. There are other facial landmark detectors, but all of them try to
localize and label the following facial regions: Mouth, Right eyebrow, Left eyebrow,
Right eye, Left eye, Nose, Jaw, etc.

The indexes of the 68 coordinates can be visualized on the image below:

Department of Computer Application , The M.S. University , Vadodara 27


These annotations are part of the 68 point iBUG 300-W dataset with which the dlib facial
landmark predictor was trained. It’s important to note that other options of facial landmark
detectors exist, including the 194 point model that is trained on the HELEN dataset. Regardless
of which dataset is used, the same dlib framework can be leveraged to train a shape predictor on
the input training data which can be useful if one likes to train facial landmark detectors or
custom shape predictors.

8.5.2 Face Recognition

Department of Computer Application , The M.S. University , Vadodara 28


1. Using the concept of Convolutional Neural Network

CNN is a class of deep, feed-forward artificial neural networks that has successfully been
applied to analysing visual imagery. CNNs have wide applications in image and video
recognition, recommender systems and natural language processing.
Like other neural networks, CNN are made up of neurons with learnable weights and
biases. Each neuron receives several inputs, takes a weighted sum over them, pass it through
an activation function and responds with an output. The whole network has a loss function
and all the tips and tricks developed for neural networks still apply on CNNs.
Unlike neural networks, where the input is a vector, here the input is a multi-channelled
image (3 channelled in this case).

What is a Convolution?

We take the 5*5*3 filter and slide it over the complete image and along the way take the dot
product between the filter and chunks of the input image.

Department of Computer Application , The M.S. University , Vadodara 29


For every dot product taken, the result is a scalar. So, what happens when we convolve the
complete image with the filter?

Department of Computer Application , The M.S. University , Vadodara 30


Now, back to CNNs

The convolution layer is the main building block of a convolutional neural network. Below is an
example of Convolution layer.

The convolution layer comprises of a set of independent filters (6 in the example shown).
Each filter is independently convolved with the image and we end up with 6 feature maps of
shape 28*28*1.CNNs have a couple of concepts called parameter sharing and local connectivity.
Parameter sharing is sharing of weights by all neurons in a particular feature map.

Local connectivity is the concept of each neural connected only to a subset of the input image
(unlike a neural network where all the neurons are fully connected). This helps to reduce the
number of parameters in the whole system and makes the computation more efficient.

Pooling Layers

A pooling layer is another building block of a CNN.

Department of Computer Application , The M.S. University , Vadodara 31


Its function is to progressively reduce the spatial size of the representation to reduce the
amount of parameters and computation in the network. Pooling layer operates on each feature
map independently. The most common approach used in pooling is max pooling.

2. Residual Networks
As per what we have seen so far, increasing the depth should increase the accuracy of the
network, as long as over-fitting is taken care of. But the problem with increased depth is that the
signal required to change the weights, which arises from the end of the network by comparing
ground-truth and prediction becomes very small at the earlier layers, because of increased depth.
It essentially means that earlier layers are almost negligible learned. This is called vanishing
gradient.

The second problem with training the deeper networks is, performing the optimization on
huge parameter space and therefore naively adding the layers leading to higher training error.

Residual networks allow training of such deep networks by constructing the network
through modules called residual models as shown in the figure. This is
called degradation problem.
The plain 34 layer network had higher validation error than the 18 layer plain network.
This is where we realize the degradation problem. And the same 34 layer networ k when
converted into the residual network has much lesser training error than the 18 layer residual
network.

Department of Computer Application , The M.S. University , Vadodara 32


Department of Computer Application , The M.S. University , Vadodara 33
Residual Networks vs. Other Convolutional Neural Network

Top-5 No. of
Year CNN Developed by Place
error rate parameters

1998 LeNet(8) Yann LeCun et al 60 thousand

Alex Krizhevsky,
2012 AlexNet(7) Geoffrey Hinton, IIya 1st 15.3% 60 million
Sutskever

Matthew Zeilerand
2013 ZFNet() 1st 14.8%
Rob Fergus

2014 GoogLeNEet(19) Google 1st 6.67% 4 million

2014 VGG Net(16) Simonyan, Zisserman 2nd 7.3% 138 million

2015 ResNet(152) Kaiming He 1st 3.6%

As we can see that this all started way back in 1998 and the CNN used was LeNet (8).Over a
period of developing phase the least error rate was noticed on ResNet (152) with only 3.6% of
error rate in 2015.

AlexNet: - This architecture was one of the first deep networks to push ImageNet Classification
accuracy by a significant stride in comparison to traditional methodologies. It is composed of 5
convolutional layers followed by 3 fully connected layers.

VGG Net (16):- This architecture is from VGG group, Oxford. It makes the improvement over
AlexNet by replacing large kernel-sized filters (11 and 5 in the first and second convolutional
layer, respectively) with multiple 3X3 kernel-sized filters one after another. With a given
receptive field(the effective area size of input image on which output depends), multiple stacked
smaller size kernel is better than the one with a larger size kernel because multiple non-linear
layers increases the depth of the network which enables it to learn more complex features, and
that too at a lower cost.

Department of Computer Application , The M.S. University , Vadodara 34


GoogLeNet (19):- While VGG achieves a phenomenal accuracy on ImageNet dataset, its
deployment on even the most modest sized GPUs is a problem because of huge computational
requirements, both in terms of memory and time. It becomes inefficient due to large width of
convolutional layers.
For instance, a convolutional layer with 3X3 kernel size which takes 512 channels as input and
outputs 512 channels, the order of calculations is 9X512X512.
AlexNet has parallel two CNN line trained on two GPUs with cross-connections, GoogLeNet
has inception modules, and ResNet has residual connections.

3. Face Recognition using dlib ResNet

Deep metric learning is useful for a lot of things, but the most popular application is face
recognition. The model used is a ResNet network with 29 convolutional layers which is a pre -
trained model. It's essentially a version of the ResNet-34 network from the paper ‘Deep Residual
Learning for Image Recognition’ by He, Zhang, Ren, and Sun with a few layers removed and
the number of filters per layer reduced by half.

The network was trained from scratch on a dataset of about 3 million faces which were
derived from a number of datasets. The face scrub dataset, the VGG dataset, and then a large
number of images scraped from the internet.

This model has an accuracy of 99.38% on the standard labelled Faces in the Wild
benchmark. This is comparable to other state-of-the-art models and means that, given two face
images, it correctly predicts if the images are of the same person 99.38% of the time provided in
good environmental conditions.

The training started by randomly initializing weights and using a structured metric loss that
tries to verify all the identities into non-overlapping balls of radius 0.6. The type loss observed is
a pair-wise hinge loss that runs over all pairs in a mini-batch and includes hard-negative mining
at the mini-batch level.

Department of Computer Application , The M.S. University , Vadodara 35


9.0 Database Design

10.0 Data Flow Diagrams

Figure 6 DFD : Context Level

Department of Computer Application , The M.S. University , Vadodara 36


Figure 7 DFD :
Level 0

Department of Computer Application , The M.S. University , Vadodara 37


Figure 8 DFD : Level 1 ( 1.0 Student Registration )

Figure 9 DFD : Level 1 (2.0 Image


Acquisition )

Figure 10 DFD : Level 1 ( 3.0 Face


Detection )

Department of Computer Application , The M.S. University , Vadodara 38


Figure 11 DFD : Level 1 ( 4.0 Face Recognition )

11.0 System Screenshots and Explanation

Department of Computer Application , The M.S. University , Vadodara 39


Figure 12 System Interface

Figure 13 Sign Up Page

Department of Computer Application , The M.S. University , Vadodara 40


Figure 14 Admin Information in signing up page

Figure 15 Login Page Interface

Department of Computer Application , The M.S. University , Vadodara 41


Figure 16 Unsuccessful Login

Figure 17 Successful Login

Department of Computer Application , The M.S. University , Vadodara 42


Figure 18 Admin Logged in Page

Figure 19 Registration form

Department of Computer Application , The M.S. University , Vadodara 43


Figure 20 Registration form filled

Figure 21 Face Registration

Department of Computer Application , The M.S. University , Vadodara 44


Figure 22 Storage of registered images

Figure 23 Registered student info in Excel sheet

Department of Computer Application , The M.S. University , Vadodara 45


Figure 24 Encoding of registered images

Figure 25 Training of registered images

Department of Computer Application , The M.S. University , Vadodara 46


Figure 26 Attendance time

Figure 27 Unknown face identification

Department of Computer Application , The M.S. University , Vadodara 47


Figure 28 Generation of Attendance in Excel sheet

Figure 29 Email notification to the absentee

Department of Computer Application , The M.S. University , Vadodara 48


12.0 Testing
12.1 Testing Plan
The testing plan includes planning for several functions like:

¬ Login feature

¬ Registration of students

¬ Face detection

¬ Capturing 100 images automatically

¬ Face recognition from registered database

¬ Unknown face detection

¬ Attendance entry in Excel sheet

¬ Reports generation

¬ Email notification

12.2 Testing Methods


Considering the scope of the project and the time limitations, we will be performing
following tests.
a) Unit Test –
This test verifies the program logic and is based on the knowledge of the program
structure.

b) Integration Test –
This test verifies the entire system’s functionality according to the design
specification.

c) Business Requirements –
This test verifies whether specific requirements of the customer are met.

d) Acceptance Testing –
This test verifies whether the system needs to meet the initial objectives and
customer’s expectations.

Department of Computer Application , The M.S. University , Vadodara 49


12.3 Test Cases

ID TC01
TITLE Admin sign up
PREREQUISTE Full Name
Username
Password
TEST ACTION 1. Start Asistencia application
2. Fill in details of sign up page of the admin

EXPECTED RESULT On signing up it should create an admin account.

ID TC02
TITLE Admin log in
PREREQUISTE Username
Password

TEST ACTION 1. Start Asistencia application


2. Log in with the same details which have been
signed up in
EXPECTED RESULT Logging in should check, whether the username is
correct or not and provide access to it or denial warning
message respectively

Department of Computer Application , The M.S. University , Vadodara 50


ID TC03
TITLE Student registration form
PREREQUISTE Roll no
Name
Semester
Email

TEST ACTION 1. Start Asistencia application


2. Admin log in
3. Student registration
EXPECTED Registration form should be filled up according to the
RESULT validation set up and any incorrect detail should be
popped as a warning message to the user.

ID TC04
TITLE Storing details of the Registration form
PREREQUISTE Registered from filled up correctly
TEST ACTION 1. Start Asistencia application
2. Admin log in
Student registration
EXPECTED Should check, whether the excel sheet, the name of a sheet
RESULT according to the semester and subject is present or not and
store information into that specific sheet or create a new
one of that name and store in it respectively.

Department of Computer Application , The M.S. University , Vadodara 51


ID TC05
TITLE IP camera configuration and integration
PREREQUISTE IP camera
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Student registration form
4. Student face registration

EXPECTED IP camera should be connected and turned on after filling


RESULT up the registration form.

ID TC06
TITLE Registration of faces
PREREQUISTE IP camera
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Student registration form
4. Student face registration

EXPECTED After connecting IP camera to the system, the face should be


RESULT detected and automatically capture 100 images of a particular
student and close automatically with a message of
Registration over.

Department of Computer Application , The M.S. University , Vadodara 52


ID TC07
TITLE Storage of registered face in Training set
PREREQUISTE Training set folder
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Student registration form
4. Student face registration

EXPECTED Check if the Training set folder is available or not if not create
RESULT a new one, in its check whether the name of a student’s folder
is available inside it or not, if not create a new one and store
images into the student’s folder name.

ID TC08
TITLE Encoding registered faces
PREREQUISTE Training set
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Encode Database

EXPECTED Get the folder names in training-dir as labels


RESULT To be encoded in numerical form for Machine learning and if a
file with the same name already exists, backup the old file.

Department of Computer Application , The M.S. University , Vadodara 53


ID TC09
TITLE Training
PREREQUISTE Training set
.csv and .pkl file
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Train Database

EXPECTED Save encoding file with .csv format and labels in .pkl.
RESULT

ID TC10
TITLE Live face recognition
PREREQUISTE Encoding and Training should be done before a live
prediction
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Take Attendance

EXPECTED Camera should be connected and turned on automatically and


RESULT detected face of registered students as well of unknown and

Department of Computer Application , The M.S. University , Vadodara 54


name should be printed on the rectangular bounding box.

ID TC11
TITLE Attendance entry in Excel sheet
PREREQUISTE Live prediction should be on.
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Take Attendance

EXPECTED Check whether today’s date is available or not if not enter


RESULT today’s date in a column next to yesterday’s date and match
name which are already printed at the time of registration with
the matched faces labels and mark present besides the name
and under today’s date.

ID TC12
TITLE View Attendance
PREREQUISTE Excel sheet should be present
TEST ACTION 1. Start Asistencia application
2. Admin log in
3. Email Notification

EXPECTED Notifies absentees through email on that particular date

Department of Computer Application , The M.S. University , Vadodara 55


RESULT

12.4 Testing Reports

TC01

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 On signing up it should create On signing up it should


an admin account. create an admin account.
PASS

TC02

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Logging in should check, Logging in should check,


whether the username is whether the username is
correct or not and provide correct or not and provide
access to it or denial warning access to it or denial
message respectively warning message
respectively PASS

TC03

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Registration form should be Registration form should


filled up according to the be filled up according to
validation set up and any the validation set up and
incorrect detail should be any incorrect detail should
popped as a warning message be popped as a warning
to the user. message to the user.

Department of Computer Application , The M.S. University , Vadodara 56


PASS

TC04

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Should check, whether the Checks whether the excel


excel sheet, the name of a sheet, the name of a sheet
sheet according to the according to the semester
semester and subject is and subject is present or not
present or not and store and store information into
information into that specific that specific sheet or create
sheet or create a new one of a new one of that name and
that name and store in it store in it respectively.
respectively. PASS

TC05

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 IP camera should be IP camera is connected


connected and turned on and turned on after
after filling up the filling up the registration PASS
registration form. form.

TC06

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 After connecting IP After connecting IP


camera to the system, the camera to the system, the
face should be detected face gets detected and
and automatically capture automatically capture’s
100 images of a particular 100 images of a particular
student and close student and closes
Department of Computer Application , The M.S. University , Vadodara 57
automatically with a automatically with a
PASS
message of Registration message of Registration
over. over.

TC07

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Check if the Training set Check if the Training set


folder is available or not if folder is available or not
not create a new one, in its if not create a new one, in
check whether the name of a its check whether the PASS
student’s folder is available name of a student’s
inside it or not, if not create folder is available inside
a new one and store images it or not, if not create a
into the student’s folder new one and store images
name. into the student’s folder
name.

TC08

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Get the folder names in Get the folder names in


training-dir as labels training-dir as labels

To be encoded in numerical Which is encoded in


form for Machine learning numerical form for
and if file with same name Machine learning and if
already exists, backup the file with same name
old file already exists, backup’s PASS
the old file.

Department of Computer Application , The M.S. University , Vadodara 58


TC09

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Save encoding file with .csv Save encoding file with


format and labels in .pkl. .csv format and labels in
.pkl. PASS

TC10

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Camera should be Camera gets connected and


connected and turned on turned on automatically and
automatically and detects the face of
detected face of registered registered students but due
students as well of to light condition unknown
unknown and name faces are mismatched and FAIL
should be printed on the distance up to 1-2foot
Department of Computer Application , The M.S. University , Vadodara 59
rectangular bounding box.

2 Camera should be Camera gets connected and


connected and turned on turned on automatically and
automatically and detects the face of
detected face of registered registered students as well
students as well of of an unknown in proper
unknown and name lighting condition and
should be printed on the name is printed on the
PASS
rectangular bounding box. rectangular bounding box.

TC11

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS

1 Check whether today’s date Check whether today’s


is available or not if not date is available or not if
enter today’s date in a not enter today’s date in a
column next to yesterday’s column next to
date and match name which yesterday’s date and
are already printed at the match name which are
time of registration with the already printed at the time
matched faces labels and of registration with the
mark present besides the matched faces labels and
name and under today’s mark present besides the
date. name and under today’s PASS
date.

Department of Computer Application , The M.S. University , Vadodara 60


TC12

ITERATION EXPECTED RESULT ACTUAL RESULT STATUS


Notifies absentees through Notifies absentees
1
email on that particular through email on that PASS
date particular date

13.0 Conclusion
The anticipated outcome of this project was the identification of condition that affects the
recognition of faces and to what extent. The results have been classified into different
parts.

1. Testing with SVM vs K-Nearest


1.1. General Details
SVM K-Nearest Neighbor

Department of Computer Application , The M.S. University , Vadodara 61


 SVM is a framework very  The k-nearest neighbor is a
interesting from a machine pattern recognition technique for
learning perspective and is mostly classifying objects based on
used for classification and closest training examples in the
regression analysis problem space
 A SVM is a linear or non-linear  In k-nearest neighbor an object is
classifier, which is a mathematical classified by a majority vote of its
function that can distinguish two neighbors, with the object being
different kinds of objects. assigned to the class most
common amongst its k nearest
neighbors.

1.2. Result comparison

Accuracy has been calculated by testing 10 faces of each factor and accurate recognition
rates are mentioned in the table below where rates are derived using the formula:
Accuracy % = (correct prediction/ total supplied values) * 100

Average SVM K-nearest neighbor


1.Accuracy of Recognition 90 % 60 %
2.Processing time for 26.1 22
encoding and training(in
Minutes with 30 classes)

2. Testing with different datasets


2.1. Encoding and training of Images

The raw data i.e. unstructured and individual listings aren't always clean-cut and
complete, this can be problematic. Thus we selected data for experiment purpose in
CSV format. Time mentioned below is in Minutes.

Images Accuracy with i7 4 th Accuracy with i3 5 th Accuracy with i5 4 th

Department of Computer Application , The M.S. University , Vadodara 62


per Generation Generation Generation
person
SVM K-NN SVM K-NN SVM K-NN
50 17.4 Min 15.3 Min 19.3 Min 16.1 Min 17 Min 14.2 Min

Images
100 31.8 Min 28.5 Min 38 Min 34 Min 34.6 Min 25.5 Min

Images

3. Testing with different quality of Images

3.1. According to pixel value

Accuracy rate measured when images varying of their pixel values were tested.

Pixel Range Accuracy


100-150 80 %
150-300 80 %
300 < 90 %

3.2. Webcam vs IP-Camera

Accuracy rate when input devices were switched between Webcam and IP-Camera.

Device Accuracy
Webcam Totally depends on the pre-defined
IP-Camera resolution and fps of the camera.

Department of Computer Application , The M.S. University , Vadodara 63


3.3. Types of Images

Accuracy rates with training dataset containing and without blur images.

Quality Accuracy
With Blur Images 30 %
Without Blur Images 80 %

4. Difference in models

Dlib’s model with 68 land mark OpenCV Haar-Cascade for face


points detection
The pre-trained facial landmark OpenCV comes with a trainer as well
detector inside the Dlib library is used as detector. If the detection window
to estimate the location of 68 (x, y)- fails the first stage, discard it and don't
coordinates that map to facial consider remaining features on it. If it
structures on the face. passes, apply the second stage of
features and continue the process. The
window which passes all stages is a
face region.

5. Memory

Memory used Amount of main memory with is used to execute the algorithm is defined
as memory used which is given in MB.

SVM K-nearest neighbor


Memory Used 191 228

Department of Computer Application , The M.S. University , Vadodara 64


6. Conclusion for future work
 After the experiment our findings were that K-NN is a good classifier but when we
applied our dataset there was sharp fluctuation in the prediction rates which lead to
changing performance parameters constantly for every newer condition.
 K-NN kept performing worst as the size of the dataset increased thus concluding
that it’s a best fit for a small dataset.
 SVM is complex classifier but we found that the accuracy and other performance
parameters do not depend much over the size of the training dataset but instead are
dependent on the no of epochs, so SVM was much better when compared with the
K-NN.

14.0 Features of the System

¬ Authorized by administrator.

¬ Registration of student details and faces.

¬ Automatically captures 100 images at the time of registration

¬ Creation of student’s folder where images are stored is created automatically.

¬ Face are recognized matching with registered image

Department of Computer Application , The M.S. University , Vadodara 65


¬ Unknown persons are identified

¬ Excel sheet and sheet is created automatically if not created

¬ Reports are generated as an when required

¬ E-mail notification

15.0 Security Features


As Asistencia does not consists of any external database or server-based database.
(AT&T database concept is being used to store in the form of training set.)
This database is generated itself in the computer system, it has a hierarchical architec ture of
folders to save the data from our Attendance system.
It can be made secure by giving folders admin rights and locking it with passwords. So,
an unauthorized user would not be able to access the internal data of the system and make any
changes.

16.0 Benefits
¬ Ease of use.

¬ Saves time and efforts

¬ Proxy system is totally eliminated.

¬ Used for security purposes.

¬ Multiple face detection.

Department of Computer Application , The M.S. University , Vadodara 66


¬ Multiple face recognition.

¬ Unknown faces are identified.

¬ As the system stores the faces that are detected during registration and automatically
marks attendance faster. Providing authorized access.

17.0 Limitations
¬ Expensive

¬ Difficulties with big data processing and storing without gpu and RAM below 4GB

¬ Weak camera angle, low-lighting and image quality.

¬ Deluded by identical twins

18.0 Future Enhancement


Asistencia has an immensely boundless scope in future. It can be amended as and when
requirement emerges, as it is versatile in terms of the extension. There are some facets which
can be further modified such as recognized distance can be extended, Graphics processing
unit (GPU) can be used for a large amount of the database and quick processing, data storage
can be made server-based and can be integrated with multiple cameras at the same time.

19.0 Experience and Learning

As the saying goes “The only source of knowledge is experience”. We gained strength, courage
and confidence by every experience, making us ready for facing every challenge ahead of us.

Department of Computer Application , The M.S. University , Vadodara 67


Learning was one of the most fun and challenging part of this project as Artificial Intelligence
was the topic we wanted to explore further. We were offered a chance to strengthen our concepts
regarding varied topics such as Feature Extraction, Face Detection, Face Recognition, Neural
Networks, File Manipulation, Data Security, and substantially many more.

This project helped us getting aware by giving us a brief insight of the challenges that the Tech-
Industry holds and also the ability of handling important projects by applying the most suitable
strategy with considering all the important aspects. The whole experience was similar to reading
a Sherlock Homes book, i.e. upcoming challenges at every step with a touch of uncertainty and
mystery.

It has been such a unique experience where every suffering was worth going through and
without which nothing would have been possible. Furthermore it’s a privilege to have such a
great team where no member is pompous instead is modest and enthusiastic, also the support
that our teachers have shown towards this project by providing us this opportunity is something
we cannot thank them enough for

20.0 Reference and Bibliography

[1] O. M. Parkhi, A. Vedaldi, A. Zisserman Deep Face Recognition British Machine Vision
Conference, 2015.

Department of Computer Application , The M.S. University , Vadodara 68


[2] H.-W. Ng, S. Winkler. A data-driven approach to cleaning large face datasets. Proc. IEEE
International Conference on Image Processing (ICIP), Paris, France, Oct. 27 -30, 2014

Beyeler, M. (2017). Machine Learning for OpenCV: Intelligent image processing with Python.
London: Packt Publishing Ltd.
Bruce, P., & Bruce, A. (2017). Practical Statistics for Data Scientists. California: O’Reilly
Media.
Chollet, F. (2018). Deep Learning with Python. New York: Manning Publications Co.
Géron, A. (2017). Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts,
Tools, and Techniques to Build Intelligent Systems. Brooklyn: O′Reilly.
Grus, J. (2015). Data Science from Scratch: First Principles with Python. California: O’Reilly
Media.
Lutz, M. (2013). Learning Python. California: O’Reilly Media.
Matthes, E. (2015). A Hands-On, Project-Based Introduction to Programming . San Francisco:
William Pollock.
McKinney, W. (2017). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and
IPython. California: O’Reilly Media.
Phillips, D. (2014). Creating Apps in Kivy: Mobile with Python. California: O’Reilly .
Solem, J. E. (2012). Programming Computer Vision with Python: Tools and algorithms for
analyzing images. United States: O'Reilly Media.
Sweigart, A. (2015). Automate the Boring Stuff with Python: Practical Programming for Total
Beginners. San Francisco: William Pollock.
Ulloa, R. (2015). Kivy: Interactive Applications in Python. Birmingham : Packt Publishing Ltd.

Department of Computer Application , The M.S. University , Vadodara 69

You might also like