FINAL REPORT (1) - Organized
FINAL REPORT (1) - Organized
Face Recognition
By
1
A PROJECT REPORT ON
BACHELOR OF TECHNOLOGY
IN
By
2
GREATER NOIDA INSTITUTE OF TECHNOLOGY PLOT
NO. 7, K.P.II, GREATER NOIDA, UP-201310 Affiliated to
Dr. A.P.J. Abdul Kalam Technical University, Lucknow, UP
(Formerly known as Uttar Pradesh Technical University,
Lucknow)
CERTIFICATION
This is to certify that the project report entitled “SMART ATTENDANCE SYSTEM
USING FACE RECOGNITION” submitted by Satyam Kumar-2001320100122,
Sachin Prajapati-2001320100115 , Suraj Kumar Sharma-2001320100145 and Sachin
Kumar-2001320100114 to the Greater Noida Institute of Technology, affiliated to Dr.
A.P.J. Abdul Kalam Technical University, Lucknow, in partial fulfillment for the award of
the degree of Bachelor of Technology (B.Tech) in Computer Science and Engineering is a
record of the project work carried out by them under my supervision. The content of this
report, in full or in parts, has not been submitted to any other Institution or University for
the award or any degree or diploma.
3
CANDIDATE’S DECLARATION
We hereby certify that the work which is being presented in the project, entitled "SMART
ATTENDANCE SYSTEM USING FACE RECOGNITION" in partial fulfillment of the
requirements for the award of the Bachelor of Technology in Computer Science and
Engineering is an original work carried out during the period of FEB-2024 to MAY-2024,
under the supervision of Dr. Arun Kumar Singh, Professor, Department of Computer
Science and Engineering, Greater Noida Institute of Technology, Greater Noida. The matter
presented in the project has not been submitted by me/us for the award of any other places.
2001320100122 – Satyam Kumar
2001320100115 – Sachin Prajapati
2001320100145 – Suraj Kumar Sharma
2001320100114 – Sachin Kumar
This is to certify that the above statement made by the candidates is correct to the best of my
knowledge.
Supervisor
Imran Ansari
(Asst. Professor in the department of CSE)
4
ACKNOWLEDGEMENT
It gives us a great sense of pleasure to present the project report undertaken during
B.Tech. Fourth year. We owe a particular debt of gratitude to Imran Ansari, Asst.
Professor of the Computer Science and Engineering department, Greater Noida Institute
of Technology (Engg. Institute) for his continuous and constant support and guidance
throughout our project work. His sincerity, thoroughness, and perseverance have been a
continuous source of inspiration for us. It is only through his conscious efforts that our
endeavours have seen the light of the day.
We also take the opportunity to acknowledge the contribution of Dr. Sandeep Saxena,
Head of the Department of Computer Science & Engineering, Greater Noida Institute of
Technology (Engg. Institute) for his full support and assistance during the project. We
also do not like to miss the opportunity to acknowledge the contribution of all the faculty
members of the department for their kind assistance and cooperation in our project. Last,
but not least, we acknowledge our friends for their contribution to the completion of the
project successfully.
5
ABSTRACT
In today's dynamic technological landscape, the need for efficient and secure attendance
tracking systems has become increasingly paramount. This research presents a pioneering
solution - a "Smart Attendance System Using Face Recognition" designed to streamline the
attendance management process in various domains. The proposed system leverages cutting-
edge facial recognition technology to accurately and non-intrusively identify individuals,
allowing for swift and automated attendance capture. By employing sophisticated algorithms
and machine learning techniques, the system ensures high accuracy and reliability in the
identification process, even in diverse environmental conditions. Key features of the system
include real-time face detection, facial feature extraction, and matching against a pre-existing
database of enrolled individuals. The integration of a user-friendly interface facilitates easy
enrolment and management of individuals within the system.
Moreover, the Smart Attendance System enhances security and minimizes the possibility of
unauthorized attendance by implementing robust anti-spoofing measures. The system's
adaptability to various environments and lighting conditions makes it a versatile solution for
educational institutions, corporate settings, and other organizations seeking a modern and
efficient attendance tracking system. This research contributes to the ongoing discourse on
biometric-based attendance systems, providing insights into the practical implementation and
advantages of face recognition technology. The outcomes of this study demonstrate the
feasibility and efficacy of the proposed Smart Attendance System, offering a glimpse into the
future of attendance management by seamlessly integrating technology and convenience. A
biometric is a study of human features and characteristics. Despite the fact that no faces can be
prevented as a security solution, face recognition is a rising field of biometrics for security.
Manual attendance systems have various drawbacks, such as being less accurate and difficult
to maintain, hence attendance systems are vitally important in schools and universities. So, in
this day and age, we see several systems such as IoT and PIR sensor bases, as well as various
models. So, for the sensor, we want to keep it in good condition so that it doesn't become
damaged. In diverse models, we confront problems such as selecting which feature to use or,
more importantly, managing variance in lighting, postures, and size. As a result, we are
attempting to construct an "In Class" solution to address the aforementioned issue and provide
a valid attendance sheet digitally.
The Attendance system will always be important for educational and business sectors. The
traditional calling out name kind of system is losing its value because there is always a chance
of proxy attendance. We developed a method to take attendance of students by using a camera
to detect the student’s face and storing them in the database and maintaining the attendance
records which are way better than paper records and they will not be any flaws in collection of
data as we maintain the records of collected data through network it will benefit the business
and educational sector when we go for individual tracking. In this system an overview of
system that can achieve real time face detection and provide systematic attendance is provided.
Here we used machine learning techniques for building the system, Using LBPH operations
we created transactional images and this LBP image is used to extract histograms. This system
saves time, it reduces the amount of work the administration should do and will replace the
paperwork with electronic records.
6
TABLE OF CONTENTS
CERTIFICATION III
CANDIDATE’S DECLARATION IV
ACKNOWLEDGEMENT V
ABSTARCT VI
Chapter 1: Introduction
1.1 Introduction 08
1.1.1 Features of Smart Attendance
System
1.2 Project Objective 10
1.3 Problem Statement 11
1.4 Scope of the Project 12
1.5 Background 12
1.6 Language and Software 12
Requirement
1.7 Hardware Requirement 12
1.8 Flowchart 13
Chapter 5: References
7
LIST OF FIGURES
Figure 03 Dataset
8
9
CHAPTER-1
INTRODUCTION
This is an introductory chapter which will cover all about the project including the
context, motivation, objectives, proposed approach, contribution and the structure of
the report.
12
An involuntary attendance marking system is introduced in this project, without interfering
in any way with the standard teaching process. The approach can also be used in other
teaching or exam contexts activities for which presence is absolutely necessary. This system
does away with traditional methods of identifying pupils, such calling names or examining
individual identification cards. These methods can cause anxiety in students during exam
periods in addition to interfering with the continuous teaching process. Furthermore, in order
for the pupils to be identified, they must register in the database. The user-friendly interface
allows for immediate enrolment.
13
1 The manual signing of students' presence, which is tedious and distracts them from signing
for their attendance, is thus intended to be replaced with a facial recognition attendance
system. Additionally, the automated facial recognition student attendance system eliminates
the need for lecturers to repeatedly count the number of students in order to verify that they
are present. It also overcomes the issue of fraudulent approaches.
2 The traditional method of taking attendance has a major drawback in that it necessitates a
lot of time-consuming, ineffective human interaction. The solution to these problems lies in
the creation of intelligent and autonomous systems that can efficiently record, manage, and
report attendance without the need for human intervention.
3 Recent technological advancements in areas like cloud computing, the internet of things,
biometric sensors, and extremely effective near field communication devices have paved
the way for the creation of systems that can operate with little human error and interference
seven days a week.
4 For ensuring that both students and staff in various organizations maintain discipline, an
attendance system is both a valuable and crucial tool. 7 The amount of work that employees
perform is directly correlated with the length of time they spend at the office. in order for
you to be aware of how they perform within the company Monitor employee attendance at
work to determine billing hours.
5 You need to be aware of employee work hours. It aids in the computation of your employees'
workdays. This will help you know what salary you should give him/her.
6 Direct Costs – These are costs incurred directly as a result of employee absences. These
costs include paid vacation, overtime, and replacement-worker costs.
7 Overhead Costs – These are costs incurred indirectly as a result of employee absences.
Overhead costs include lost productivity and work delays due to employee absenteeism.
8 Businesses that use shift work typically need to know their absence rates. You can determine
your employees' absenteeism rate by monitoring employee attendance. This enables
management to plan when to hire a replacement for the position and determine any
additional expenditures that might be required later.
9 Time and Attendance keeps track of absences and time spent in the office. Both managers
and employees have access to this information, which is openly disclosed. Employees are
able to see how many vacation days they have left thanks to this. Additionally, it assists
management in determining how much paid and unpaid time off to provide workers
depending on their present attendance.
1.3 Methodology
The manual and time-consuming process of recording attendance is the key issue that has
to be addressed in this project. Traditional methods, such as paper-based or card-based
systems, are prone to errors and require significant effort to maintain. The objective is to
develop an automated attendance management system using face detection and face
recognition functionalities to streamline the attendance process and improve accuracy.
The system needs to capture video input from a camera, detect and recognize faces in
realtime, store attendance records securely, and provide za user-friendly interface for
interaction. It should accurately identify individuals and record their attendance with
14
timestamps. The system should also be scalable to handle many users and maintain high
accuracy even in varying lighting conditions.
The system architecture involves integrating different components. It includes a video
capture module to obtain live video input, a face detection module to identify faces in the
video stream, a face recognition module to match faces with known identities, and a data
storage module to store attendance records.
The user interface should provide options to start the attendance recording process and view
attendance records. The implementation phase involves developing and integrating the
different modules. It includes writing code to capture video using OpenCV, implementing
face detection and recognition algorithms using libraries like dlib or OpenCV, and designing
a database or filebased storage system to store attendance records. The implementation
should ensure high accuracy, real-time performance, and robustness against various
environmental factors.
Attendance system needs to undergo rigorous testing to ensure its functionality, accuracy,
and reliability. Various test scenarios should be executed to evaluate its performance under
different conditions, such as different lighting, angles, and facial variations. The system
should be evaluated against a ground truth to measure its accuracy in identifying individuals
and recording attendance correctly.
Once the system is thoroughly tested and evaluated, it can be deployed in the intended
environment. Adequate documentation and user manuals should be provided to facilitate 9
easy usages. Regular maintenance and updates should be carried out to address any bugs,
security vulnerabilities, or performance improvements.
Training sessions should be conducted to familiarize users with the attendance system and
its features. User support channels, such as documentation, FAQs, and a helpdesk, should
be established to assist users in case of any issues or queries.
15
1.5 Hardware and software required:
I3 processor Opens
16
1.6 Flowchart :-
Start
Images Stored in
System Database
Recognition Process
Start
Compare with
database image
Match
17
CHAPTER-2
LITERATURE SURVEY
2.1 Literature Survey
Automatic face recognition (AFR) technologies: - According to research journals
[1][2] “Automatic face recognition (AFR) technologies” (Nandhini R, Duraimurugan N,
S.P.Chokkalingam, Feb 2019) Smart Attendance using Real-Time Face Recognition is a
real-world solution which comes with day to day activities of handling student attendance
system. Face recognition-based attendance system is a process of recognizing the
students face for taking attendance by using face biometrics based on high - definition
monitor video and other information technology. In my face recognition project, a
computer system will be able to find and recognize human faces fast and precisely in
images or videos that are being captured through a surveillance camera. [3] Numerous
algorithms and techniques have been developed for improving the performance of face
recognition but the concept to be implemented here is [4] Deep Learning. It helps in
conversion of the frames of the video into images so that the face of the student can be
easily recognized for their attendance so that the attendance database can be easily
reflected automatically.
Face Recognition Based Attendance Marking System: -Another research journals [9]
“Face Recognition Based Attendance Marking System” (Nandhini R, Duraimurugan N,
S.P.Chokkalingam 2014) is based on the identification of face recognition to solve the
previous attendance system‟s issues. This system uses camera to capture the images of
the employee to do face detection and recognition. The captured image is compared one
by one with the face database to search for the worker’s face where attendance will be
marked when a result is found in the face database. The main advantage of this system is
where attendance is marked on the server which is highly secure where no one can mark
the attendance of other. Moreover, in this proposed system, the face detection algorithm
is improved by using the skin classification technique to increase the accuracy of the
detection process. Although more efforts are invested in the accuracy of the [7][6] face
detection algorithm, the system is yet not portable. Thissystem requires a standalone
computer which will need a constant power supply that makes it not portable. This type
of system is only suitable for marking staff’s attendance as they only need to report their
presence once a day, unlike students which require reporting their attendance at every
class on a particular day, it will be inconvenient if the attendance marking system is not
portable. Thus, to solve this issue, the whole attendance management system can be
developed on a portable module so that it can be work just by executing the python
program.
Fingerprint Based Attendance System Using Microcontroller and Lab View: -
Another research journal [10] “Fingerprint Based Attendance System Using
Microcontroller and Lab View” (Kumar Yadav, Singh, Pujari, Mishra, 2015) proposed a
solution of using fingerprint to mark the attendance. This system is using 2
microcontrollers to deal with the fingerprint recognition process. Firstly, the fingerprint
pattern will be obtained through a fingerprint sensor, and then the information will be
18
transmitted to microcontroller 1. Next microcontroller 1 will pass the information to
microcontroller 2 to do the checking with the database that resides in it. After finding a
student’s match, the details are sent to the PC through serial communication to be
displayed. This design is good as it accelerates development while maintaining design
flexibility and simplifies testing. But again, this system is attached to a PC which makes
it not portable. Other than that, the database information cannot be accessible easily.
Meaning that, for the parents whom are interested in knowing their child’s attendance
cannot easily or conveniently access the information. Therefore, to provide accessibility
of the student’s information to the legitimate concerned party, the information can be
uploaded to a web server for easy access. While the authentication for the appropriate
access can be enforced through a login screen.
RFID based Student Attendance System: -According to the Another research journal
“RFID based Student Attendance System” (Husain, Dugar, Deka, Hannan, 2014), [11]
the proposed solution is almost similar to the first research journal where RFID
technology is used to improve the older attendance system. In this system, a tag and a
reader are again used as a method of tracking the attendance of the students. The
difference between the first journals with this is where attendance’s information can be
accessed through a web portal. It provides more convenient for information retrieval.
Again, this system is imperfect in the sense that, firstly, it is not portable, as the RFID
reader can only work when it is connected to a PC. Secondly, the RFID tag is not guanine
information that can uniquely identify a student, thus, resulting in the inaccuracy of the
collected attendance information.
[1]A 3D face recognition technique is used to determine whether the student image
matches. If a match is identified, this image is processed for attendance management.
Doing this I can recognise the knowledge gaps between the work that has been done by
the researchers previously and doing this would help us justify our work and our research
questions and have a set of direction for our future work. The attendance will be labelled
for the student picture matched for participation management and the details will be
submitted to the server that manages the student's overall database. When the server
receives the message of a student who is missing on that specific day it will send an SMS
to the parent of that particular student. The app is installed in a mobile phone to help
boost the report functionality.
19
2.2 Problem Formulation :-
At the moment, most of the attendance systems that are being used in universities still
are written a piece of paper. For classes, tutorial and laboratory session the student still
has to sign the signature on the attendance sheet. This method is not flexible because the
risk of losing the attendance data is very high. If the attendance sheet is missing, the
attendance data will be lost. Other also than that, unethical problem may be occurring
such as cheating in signature. For example, a student does not attend his class but his
attendance form has been signed by another student. This system is proposed to overcome
these problems. Besides that, since the proposed system record the time, the lecturer can
monitor the punctuality of the students too.
Background subtraction
Processed Extracted
Face Face
Pre-processing
Form Dataset
Training
Dataset
Query Dataset
Perform Training
Query Image
Trained Classifier
Recognition
Result
20
2.3 Student Attendance System:
21
CHAPTER-3
SYSTEM IMPLEMENTATION
3.1 Dateset Used
The dataset used has been formed by using the images of people. For this problem statement
the dataset that I used comprises of the students of my batch wherein the faces of students Ire
marked separately by taking their pictures and along with this the classifier that I chose was
LBPH therefore the dataset also includes side face images of students as this algorithm is
capable enough to take the pictures of students and recognize them even by the side face.
Therefore, for each student a total no of 15 pictures Ire taken which includes normal photos,
photos of right side of their face and the photos of left side of their face. This dataset therefore
helps us to increase the accuracy of the model many folds and with the betterment in this dataset
and introduction of faces of people in this dataset would be used to predict and also over the
period of time increase the accuracy of the developed model. The Dataset being stored is in the
JPG format and the name being assigned is in the manner student name enrolment no. Further
this data is being stored in Student details and.
Figure 3: Dataset
22
Fig 4: Face Recognization Using Smart Attendance System
1. Preprocess the Dataset: Preprocess the images to ensure consistency and improve model
performance. This may involve resizing images to a uniform size, normalizing pixel
values, and potentially augmenting the dataset with techniques like rotation, cropping, or
flipping to increase its variability.
2. Extract Features: Use a pre-trained deep learning model (e.g., VGG, ResNet, or
FaceNet) to extract facial features from the images. This typically involves passing each
image through the model and obtaining a feature vector representing the face.
3. Train a Model: Train a classifier using the extracted features and corresponding labels
(e.g., the identity of the person in the image). You can use algorithms like SVMs (Support
Vector Machines), k-NN (k-Nearest Neighbours), or deep learning-based classifiers such
as CNNs (Convolutional Neural Networks) for this task.
5. Deployment: Deploy your system in the desired environment, ensuring it can handle
real-time processing and integration with existing infrastructure if necessary.
• Privacy: Ensure that your system complies with privacy regulations and guidelines,
especially when dealing with facial data.
• Performance: Optimize your system for speed and accuracy, especially if deploying
in a real-world setting where performance is critical.
Digital Image Processing is the processing of images which are digital in nature by a
digital computer. Digital image processing techniques are motivated by three major
applications mainly:
1. Image Capture:
• Apply face detection algorithms to locate and extract faces from the captured
images.
• Popular face detection methods include Haar cascades, HOG (Histogram of
Oriented Gradients), and deep learning-based detectors like MTCNN (Multi-
Task Cascaded Convolutional Networks).
Training set
4. Feature Extraction:
5. Face Recognition:
25
Fig 7: GUI of the Smart Attendance System
26
6. Attendance Logging:
7. Real-Time Processing:
8. Deployment:
• Test the system thoroughly under various conditions to assess its performance,
accuracy, and robustness.
• Collect feedback from users and iterate on the system to address any issues or
improvements.
27
• Description/feature Selection – extracts the description of image objects
suitable for further computer processing.
• Recognition and Interpretation – Assigning a label to the object based on
the information provided by its descriptor. Interpretation assigns
meaning to a set of labelled objects.
• Knowledge Base – This helps for efficient processing as well as inter
module cooperation
28
Fig 10: Student Details
• Sketch out the layout of your user interface. Consider the features you want to
include, such as:
• Login/authentication for administrators.
• Options for adding, editing, or deleting users (students, employees, etc.).
• Attendance management functionality (viewing, marking attendance).
• Real-time face recognition display.
• Feedback mechanisms (notifications, messages).
5. Database Integration:
30
• Image Classification: In this process, new Image are classified as belonging to
one or more of your training categories by a trained model on a dataset of specific
Image.
31
3.8 Definition of Terms:
Face Detection: Face detection is the process of identifying and locating all the present
faces in a single image or video regardless of their position, scale, orientation, age and
expression. Furthermore, the detection should be irrespective of extraneous illumination
conditions and the image and video content. A face Detector has to tell whether an image
of arbitrary size contains a human face and if so, where it is. Face detection can be
performed based on several cues: skin colour (for faces in colour images and videos,
motion (for faces in videos), facial/head shape, facial appearance or a combination of
these parameters. Most face detection algorithms are appearance based without using
other cues. An input image is scanned at all possible locations and scales by a sub
window. Face detection is posed as classifying the pattern in the sub window either as a
face or a non-face. The face/nonface classifier is learned from face and non-face training
examples using statistical learning methods [9]. Most modern algorithms are based on
the Viola Jones object detection framework, which is based on Haar Cascades.
Face Detection
Method Advantages Disadvantages
Need not to have any prior The result highly depends on the training data
Ada Boost knowledge about face structure. and affected by weak classifiers.
Algorithm
Viola-Jones algorithm which was introduced by P. Viola, M. J. Jones (2001) is the most
popular algorithm to localize the face segment from static images or video frame.
Basically, the concept of Viola-Jones algorithm consists of four parts. The first part is
32
known as Haar feature, second part is where integral image is created, followed by
implementation of Ad boost on the third part and lastly cascading process. Viola-Jones
algorithm analyses a given image using Haar features consisting of multiple rectangles
(Mekha Joseph et al., 2016). In the fig shows several types of Haar features. The features
perform as window function mapping onto the image. A single value result, which
representing each feature can be computed by subtracting the sum of the white
rectangle(s) from the sum of the black rectangle(s). The value of integrating image in a
specific location is the sum of pixels on the left and the top of the respective location. In
order to illustrate clearly, the value of the integral image at location 1 is the sum of the
pixels in rectangle A. The values 16 of integral image at the rest of the locations are
cumulative. For instance, the value at location 2 is summation of A and B, (A + B), at
location 3 is summation of A and C, (A + C), and at location 4 is summation of all the
regions, (A + B + C + D). Therefore, the sum within the D region can be computed with
only addition and subtraction of diagonal at location 4 + 1 − (2 + 3) to eliminate
rectangles A, B and C.
1 0 0 200 50 50
0 1 50 90 100
1 0 1 160 70 210
150 90 80
30 141
33
3.8.2 Difference between Face Detection and Face Recognition
A technology used to identify and locate human A technology capable of identifying a person
faces in digital images and videos. based in certain aspect of their physiology.
The system identifies if there is a human face The system uses biometrics to map facial
present within an image or video. features that are unique to an individual.
The image is automatically processed to The system can isolate a human face from the
identify what is and not a human face. others.
Local Binary Pattern (LBP) is a simple yet very efficient texture operator which labels
the pixels of an image by thresholding the neighbourhood of each pixel and considers the
result as a binary number. It was first described in 1994 (LBP) and has since been found
to be a powerful feature for texture classification. It has further been determined that
when LBP is combined with histograms of oriented gradients (HOG) descriptor, it
improves the detection performance considerably on some datasets. Using the LBP
combined with histograms we can represent the face images with a simple data vector.
1 0 0 200 50 50
0 1 50 90 100
1 0 1 160 70 210
150 90 80
30 141
Based on the image above, let’s break it into several small steps so we can understand it
easily:
• Suppose we have a facial image in grayscale.
• We can get part of this image as a window of 3x3 pixels.
• It can also be represented as a 3x3 matrix containing the intensity of each pixel
(0~255).
• Then, we need to take the central value of the matrix to be used as the threshold.
• This value will be used to define the new values from the 8 neighbors.
• For each neighbor of the central value (threshold), we set a new binary value. We set
1 for values equal or higher than the threshold and 0 for values lower than the
threshold.
• Now, the matrix will contain only binary values (ignoring the central value). We need
to concatenate each binary value from each position from the matrix line by line into a
new binary value (e.g. 10001101). Note: some authors use other approaches to
concatenate the binary values (e.g. clockwise direction), but the final result will be the
same.
35
• Then, we convert this binary value to a decimal value and set it to the central value of
the matrix, which is actually a pixel from the original image.
• At the end of this procedure (LBP procedure), we have a new image which represents
better the characteristics of the original image.
It can be done by using bilinear interpolation. If some data point is between the pixels, it uses
the values from the 4 nearest pixels (2x2) to estimate the 19 values of the new data point.
4. Extracting the Histograms: Now, using the image generated in the last step, we can
use the Grid X and Grid Y parameters to divide the image into multiple grids, as can
be seen in the following image:
Based on the image above, we can extract the histogram of each region as follows:
• As we have an image in grayscale, each histogram (from each grid) will contain only
256 positions (0~255) representing the occurrences of each pixel intensity.
• Then, we need to concatenate each histogram to create a new and bigger histogram.
Supposing we have 8x8 grids, we will have 8x8x256=16.384 positions in the final
histogram. The final histogram represents the characteristics of the image original
image.
5. Performing the face recognition:
In this step, the algorithm is already trained. Each histogram created is used to
represent each image from the training dataset. So, given an input image, we perform
the steps again for this new image and creates a histogram which represents the image.
• So, to find the image that matches the input image we just need to compare two
histograms and return the image with the closest histogram.
36
• We can use various approaches to compare the histograms (calculate the distance
between two histograms), for example: Euclidean distance, chi-square, absolute
value, etc. In this example, we can use the Euclidean distance (which is quite
known) based on the following formula:
• So, the algorithm output is the ID from the image with the closest histogram.
The algorithm should also return the calculated distance, which can be used as
a ‘confidence’ measurement.
• We can then use a threshold and the ‘confidence’ to automatically estimate if the
algorithm has correctly recognized the image. We can assume that the algorithm
has successfully recognized if the confidence is lower than the threshold defined.
37
CHAPTER-4
4.1 OVERVIEW OF TECHNOLOGIES USED:
4.1.1 Python
Python is an interpreted, object-oriented, high-level programming language with dynamic
semantics. Its high-level built in data structures, combined with dynamic typing and dynamic
binding, make it very attractive for Rapid Application Development, as well as for use as a
scripting or glue language to connect existing components together. Python's simple, easy to
learn syntax emphasizes readability and therefore reduces the cost of program maintenance.
Python supports modules and packages, which encourages program modularity and code reuse.
The Python interpreter and the extensive standard library are available in source or binary form
without charge for all major platforms, and can be freely distributed.
Often, programmers fall in love with Python because of the increased productivity it provides.
Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging
Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead,
when the interpreter discovers an error, it raises an exception. When the program doesn't catch
the exception, the interpreter prints a stack trace. A source level debugger allows inspection of
local and global variables, evaluation of arbitrary expressions, setting breakpoints, stepping
through the code a line at a time, and so on. The debugger is written in Python itself, testifying
to Python's introspective power. On the other hand, often the quickest way to debug a program
is to add a few print statements to the source: the fast edit-test-debug cycle makes this simple
approach very effective.
4.1.2 USAGE
Clearly, Python is a popular and in-demand skill to learn. But what is python programming
used for? We’ve already briefly touched on some of the areas it can be applied to, and we’ve
expanded on these and more Python examples below. Python can be used for:
1. AI and machine learning:
Because Python is such a stable, flexible, and simple programming language, it’s perfect for
various machine learning (ML) and artificial intelligence (AI) projects. In fact, Python is
amongthe favourite languages among data scientists, and there are many Python machine
learning and AI libraries and packages available.
If you’re interested in this application of Python, our Deep Learning and Python Programming
for AI with Microsoft Azure ExpertTrack can help you develop your skills in these areas. You
can discover the uses of Python and deep learning while boosting your career in AI.
46
2. Data analytics:
Much like AI and machine learning, data analytics is another rapidly developing field that
utilises Python programming. At a time when we’re creating more data than ever before, there
is a need for those who can collect, manipulate and organise the information.
Python for data science and analytics makes sense. The language is easy-to-learn, flexible, and
well-supported, meaning it’s relatively quick and easy to use for analysing data. When working
with large amounts of information, it’s useful for manipulating data and carrying out repetitive
tasks.
You can learn about data analytics using Python with our ExpertTrack, which will help you
develop practical data analytics skills.
3. Data visualisation:
Data visualisation is another popular and developing area of interest. Again, it plays into many
of the strengths of Python. As well as its flexibility and the fact it’s open-source, Python
provides a variety of graphing libraries with all kinds of features.
Whether you’re looking to create a simple graphical representation or a more interactive plot,
you can find a library to match your needs. Examples include Pandas Visualization and Plotly.
The possibilities are vast, allowing you to transform data into meaningful insights.
If data visualisation with Python sounds appealing, check out our 12-week ExpertTrack on the
subject. You’ll learn how to leverage Python libraries to interpret and analyse data sets.
4. Programming Applications:
You can program all kinds of applications using Python. The general-purpose language can be used to
read and create file directories, create GUIs and APIs, and more. Whether it’s blockchain applications,
audio and video apps, or machine learning applications, you can build them all with Python.
We also have an ExpertTrack on programming applications with Python, which can help to kick-start
your programming career. Over the course of 12 weeks, you’ll gain an introduction on how to use
Python, and start programming your own applications using it.
5. Web Development:
Python is a great choice for web development. This is largely due to the fact that there are many
Python web development frameworks to choose from, such as Django, Pyramid, and Flask.
These frameworks have been used to create sites and services such as Spotify, Reddit and
Mozilla.
Thanks to the extensive libraries and modules that come with Python frameworks, functions
such as database access, content management, and data authorisation are all possible and easily
accessible. Given its versatility, it’s hardly surprising that Python is so widely used in web
development.
47
6. Game Development:
Although far from an industry-standard in game development, Python does have its uses in the
industry. It’s possible to create simple games using the programming language, which means
it can be a useful tool for quickly developing a prototype. Similarly, certain functions (such as
dialogue tree creation) are possible in Python.
If you’re new to either Python or game development, then you can also discover how to make
a text-based game in Python. In doing so, you can work on a variety of skills and improve your
knowledge in various areas.
7. Language Development:
The simple and elegant design of Python and its syntax means that it has inspired the creation
of new programming languages. Languages such as Cobra, CoffeeScript, and Go all use a
similar syntax to Python.
This fact also means that Python is a useful gateway language. So, if you’re totally new to
programming, understanding Python can help you branch out into other areas more easily.
8. Finance:
Python is increasingly being utilised in the world of finance, often in areas such as quantitative
and qualitative analysis. It can be a valuable tool in determining asset price trends and
predictions, as well as in automating workflows across different data sources.
As mentioned already, Python is an ideal tool for working with big data sets, and there are
many libraries available to help with compiling and processing information.
9. SEO:
Another slightly surprising entry on our list of Python uses is in the field of search engine
optimisation (SEO). It’s an area that often benefits from automation, which is certainly possible
through Python. Whether it’s implementing changes across multiple pages or categorising
keywords, Python can help.
Emerging technologies such as natural language processing (NLP) are also likely to be relevant
to those working in SEO. Python can be a powerful tool in developing these NLP skills and
understanding how people search and how search engines return results.
10. Design:
When asking ‘what is Python used for?’ you probably weren’t expecting design to feature on
the list. However, Python can be used to develop graphic design applications. Surprisingly, the
language is used across a range of 2D imaging software, such as Paint Shop Pro and Gimp.
Python is even used in 3D animation software such as Lightwave, Blender, and Cinema 4D,
showing just how versatile the language is.
48
11. Python projects for beginners:
So, if you were wondering what to do with Python and who uses Python, we’ve given plenty
of ideas for how it’s used. But what about if you’re just starting out with the language and want
to become a Python developer?
Below, we’ve outlined some Python project ideas for beginners. These can help you develop
your knowledge and challenge your abilities with the programming language: Build a guessing
game.
Design a text-based adventure game.
Create a simple Python calculator.
Write a simple, interactive quiz.
Build an alarm clock.
Once you’ve mastered the basics of Python, each of these can challenge you and help you hone
the skills you’ve already learned.
4.2. Tkinter
The tkinter package (“Tk interface”) is the standard Python interface to the Tcl/Tk GUI toolkit.
Both Tk and tkinter are available on most Unix platforms, including macOS, as well as on
Windows systems.
Running python -m tkinter from the command line should open a window demonstrating a
simple Tk interface, letting you know that tkinter is properly installed on your system, and also
showing what version of Tcl/Tk is installed, so you can read the Tcl/Tk documentation specific
to that version.
Tkinter supports a range of Tcl/Tk versions, built either with or without thread support. The
official Python binary release bundles Tcl/Tk 8.6 threaded. See the source code for the _tkinter
module for more information about supported versions.
Tkinter is not a thin wrapper, but adds a fair amount of its own logic to make the experience
more pythonic. This documentation will concentrate on these additions and changes, and refer
to the official Tcl/Tk documentation for details that are unchanged.
49
If you want to take advantage of the latest version of Tkinter, you’ll need to install a version of
Python that supports Tcl/Tk 8.5 or greater. This will provide you with the Ttk (Tile extension
integrated into Tk), which is required in order to run the current Tk widget set.
Warning: If you’re working on a system that comes with Python pre-installed, you may need
to upgrade it to at least Python 3.7, which includes everything you need to run Tk out of the
box.
To verify the Tcl version on your computer, enter:
$ tclsh
% info patchlevel
8.6.8
To open a Tcl/Tk shell and verify that it is working, enter a command similar to the
following:
On a Linux system:
$ /opt//bin/wish8.6 On
a Windows system:
C:\Tcl\bin\wish86
A popup window titled wish8.6 will appear.
To verify that Tkinter is properly installed, enter:
$ python -m tkinter
A popup window that states the Tcl/tk version should appear.
50
How To Download Tkinter for Python 3:
As previously stated, the best way to get the latest version of Tkinter is to install Python 3.7 or
later. But Tkinter can also be downloaded and installed as part of any standard Python 3
installation.
How to Install Tkinter:
If you are using a Python 3 version prior to Python 3.7, or a non-standard version of Python 3
that does not include Tkinter, do the following: On a Linux System:
4.3 OpenCV:
OpenCV (Open-Source Computer Vision Library) is an open-source computer vision and
machine learning software library. OpenCV was built to provide a common infrastructure for
computer vision applications and to accelerate the use of machine perception in the commercial
products. Being a BSD-licensed product, OpenCV makes it easy for businesses to utilize and
modify the code.
51
The library has more than 2500 optimized algorithms, which includes a comprehensive set of
both classic and state-of-the-art computer vision and machine learning algorithms. These
algorithms can be used to detect and recognize faces, identify objects, classify human actions
in videos, track camera movements, track moving objects, extract 3D models of objects,
produce 3D point clouds from stereo cameras, stitch images together to produce a high
resolution image of an entire scene, find similar images from an image database, remove red
eyes from images taken using flash, follow eye movements, recognize scenery and establish
markers to overlay it with augmented reality, etc. OpenCV has more than 47 thousand people
of user community and estimated number of downloads exceeding . The library is used
extensively in companies, research groups and by governmental bodies.
Along with well-established companies like Google, Yahoo, Microsoft, Intel, IBM, Sony,
Honda, Toyota that employ the library, there are many startups such as Applied Minds,
VideoSurf, and Zeitera, that make extensive use of OpenCV. OpenCV’s deployed uses span the
range from stitching streetview images together, detecting intrusions in surveillance video in
Israel, monitoring mine equipment in China, helping robots navigate and pick up objects at
Willow Garage, detection of swimming pool drowning accidents in Europe, running interactive
art in Spain and New York, checking runways for debris in Turkey, inspecting labels on
products in factories around the world on to rapid face detection in Japan.
It has C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and
Mac OS. OpenCV leans mostly towards real-time vision applications and takes advantage of
MMX and SSE instructions when available. A full-featured CUDA and OpenCL interfaces are
being actively developed right now. There are over 500 algorithms and about 10 times as many
functions that compose or support those algorithms. OpenCV is written natively in C++ and
has a templated interface that works seamlessly with STL containers.
52
• face recognition
• Automated inspection and surveillance
• number of people – count (foot traffic in a mall, etc)
• Vehicle counting on highways along with their speeds
• Interactive art installations
• Anamoly (defect) detection in the manufacturing process (the odd defective products)
• Street view image stitching
• Video/image search and retrieval
• Robot and driver-less car navigation and control
• object recognition
• Medical image analysis
• Movies – 3D structure from motion
• TV Channels advertisement recognition, OpenCV Functionality
• Image/video I/O, processing, display (core, imgproc, highgui)
• Object/feature detection (objdetect, features2d, nonfree)
• Geometry-based monocular or stereo computer vision (calib3d, stitching, videostab)
• Computational photography (photo, video, superres)
• Machine learning & clustering (ml, flann)
• CUDA acceleration (gpu)
Image-Processing:
Image processing is a method to perform some operations on an image, in order to get an
enhanced image and or to extract some useful information from it.
If we talk about the basic definition of image processing then “Image processing is the analysis
and manipulation of a digitized image, especially in order to improve its quality”.
Digital-Image:
An image may be defined as a two-dimensional function f(x, y), where x and y are
spatial(plane) coordinates, and the amplitude of fat any pair of coordinates (x, y) is called the
intensity or grey level of the image at that point.
In another word An image is nothing more than a two-dimensional matrix (3-D in case of
coloured images) which is defined by the mathematical function f(x, y) at any point is giving
53
the pixel value at that point of an image, the pixel value describes how bright that pixel is, and
what colour it should be.
Image processing is basically signal processing in which input is an image and output is image
or characteristics according to requirement associated with that image. Image processing
basically includes the following three steps:
1. Importing the image
2. Analysing and manipulating the image
3. Output in which result can be altered image or report that is based on image analysis
1. Imports:
Import cv2 import
os
54
)
# Draw a rectangle around the faces for
(x, y, w, h) in faces:
cv2.rectangle(frames, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('Video', frames) if
break
55
Database administrator is the super user of database, he has unrestricted rights and
privileges to access database, grant permission to other database users.
56
CHAPTER-5
5.1 FEASIBILITY STUDY:
Feasibility study is conducted once the problem is clearly understood. Feasibility study is a
high-level capsule version of the entire system analysis and design process. The objective is to
determine quickly at a minimum expense how to solve a problem. The purpose of feasibility is
not to solve the problem but to determine if the problem is worth solving.
The system has been tested for feasibility in the following points.
• Technical Feasibility
• Economic Feasibility
• Operational Feasibility.
5.2 Implementation:
Implementation is the stage where the theoretical design is turned into a working system. The
most crucial stage in achieving a new successful system and in giving confidence on the new
system for the users that it will work efficiently and effectively.
The system can be implemented only after thorough testing is done and if it is found to work
according to the specification.
It involves careful planning, investigation of the current system and its constraints on
implementation, design of methods to achieve the changeover and an evaluation of change over
57
methods a part from planning. Two major tasks of preparing the implementation are education
and training of the users and testing of the system.
The more complex the system being implemented, the more involved will be the systems
analysis and design effort required just for implementation.
The implementation phase comprises of several activities. The required hardware and software
acquisition is carried out. The system may require some software to be developed. For this,
programs are written and tested. The user then changes over to his new fully tested system and
the old system is discontinued.
58
CHAPTER-6
6.1.2 Definition
Proposed definition: preparation of request for proposed applications.
Feasibility assessment: evaluation of feasibility and cost benefit of proposed system.
Information requirement analysis: determination of information needed.
6.1.3 Design
Conceptual design: User-oriented design of application development.
Physical system design: Detailed design of flows and processes in applications processing
system and preparation of program specification.
6.1.4 Development
Program development: coding and testing of computer programs.
Procedure development: design of procedures and preparation of user instructions.
60
CHAPTER- 7
RESULT
7.1 Result:-
1. Increased Accuracy:
Face recognition technology can accurately identify individuals, reducing the chances
of errors in attendance tracking compared to manual methods like paper-based or
barcode systems.
2. Time Efficiency:
Automating the attendance process through face recognition can save time for both
students/employees and administrative staff. There's no need for manual registration or
verification, as the system can quickly recognize and record attendance.
3. Real-time Monitoring:
With a smart attendance system, you can monitor attendance in real-time. This means
you can instantly identify absentees and take necessary actions, such as notifying
supervisors or sending alerts.
Depending on the implementation, you may achieve seamless integration with existing
systems such as student information systems or human resources management
software, streamlining administrative processes further.
Face recognition adds an additional layer of security to the attendance system. It can
help prevent instances of proxy attendance, where one person tries to mark attendance
for another.
Capturing attendance data digitally allows for easier analysis and reporting. You can
generate various reports, including attendance trends, latecomers, absenteeism rates,
etc., to gain insights into attendance patterns.
7. Scalability:
Smart attendance systems can be scalable, meaning they can accommodate a large
number of users without significant performance degradation. This scalability is crucial
for organizations with a growing number of employees or students.
While there may be initial investment costs associated with setting up a face recognition
system, over time, it can result in cost savings by reducing the need for manual labour
and minimizing errors.
Depending on the industry or sector, a smart attendance system can help ensure
compliance with regulatory requirements regarding attendance tracking and reporting.
39
Fig 14 : Register page of Smart attendance System
7.2 Conclusion :-
A Smart attendance system represents a significant advancement in attendance tracking
methods. By leveraging the capabilities of facial recognition algorithms, organizations
can achieve higher accuracy, efficiency, and security in monitoring attendance.
While there may be initial investment costs, the long-term advantages, such as cost
savings and improved user experience, justify the adoption of face recognition-based
attendance systems. Moreover, compliance with regulatory requirements can be
ensured, further enhancing the system's value in various industries and sectors.
40
Fig 15 : Login page of Smart Attendance System
41
7.3 Limitation:-
1. Privacy Concerns:
Facial recognition systems raise privacy concerns as they involve capturing and
storing biometric data, which could be sensitive. Users may have reservations about
their facial data being collected and stored, leading to potential legal and ethical
challenges.
2. Accuracy Issues:
Facial recognition systems have been found to exhibit biases, particularly concerning
race, gender, and age. If not properly addressed, these biases could result in unfair
treatment or discrimination, undermining the system's reliability and trustworthiness.
4. Cost of Implementation:
5. Security Risks:
Some users may feel uncomfortable with the idea of their facial data being used for
attendance tracking purposes. Resistance to adoption may arise due to concerns about
surveillance, loss of anonymity, or distrust in the technology's reliability.
7. Regulatory Compliance:
42
biometric data. Ensuring compliance with these regulations adds complexity and may
require additional resources.
Cultural norms and societal attitudes toward surveillance and privacy vary across
different regions and communities. Implementing facial recognition systems without
considering these factors could lead to cultural backlash or resistance from
stakeholders.
9. Technical Requirements:
43
7.4 Future Work :
1. Enhanced Accuracy:
Future systems will be better equipped to handle variations in biometric features due to
factors like aging, facial hair, or changes in appearance, ensuring reliable attendance
tracking across diverse user populations.
3. Multi-Modal Biometrics:
4. Real-Time Analytics:
Advanced analytics capabilities will enable real-time monitoring and analysis of attendance
data, allowing organizations to identify patterns, trends, and anomalies instantly,
facilitating proactive interventions and decision-making.
5. Edge Computing:
Leveraging edge computing capabilities will enable facial recognition processing to occur
closer to the source (e.g., at the camera or device level), reducing latency and bandwidth
requirements while enhancing privacy and security.
6. Privacy-Preserving Technologies:
Emphasis on ethical AI practices and bias mitigation techniques will help address concerns
regarding fairness, accountability, and transparency in facial recognition systems, ensuring
equitable treatment across diverse user groups.
44
Integration with Internet of Things (IoT) devices and wearable technologies will enable
seamless and frictionless attendance tracking, allowing users to authenticate their identity
using biometric data captured by smart devices or wearables.
Adoption of blockchain technology for secure and decentralized identity management will
enhance the integrity and trustworthiness of facial recognition-based attendance systems,
ensuring tamper-proof audit trails and data provenance.
45
Chapter 8 - Refrences
62