Professional Documents
Culture Documents
Minor Project Report Main
Minor Project Report Main
A PROJECT REPORT
submitted by
to
KIIT Deemed to be University
April 2023
Attendance System based on Face Recognition
A PROJECT REPORT
submitted by
to
KIIT Deemed to be University
ACKNOWLEDGEMENT i
ABSTRACT ii
Chapter 1 : Introduction 1
Chapter 4 : Implementation 10
4.1 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Testing Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 Quality Assurance . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
i
ABSTRACT
ii
CHAPTER 1
INTRODUCTION
Face recognition technology has become prevalent in daily life, with airports, the
FBI, and social networking websites like Facebook using it for criminal inves-
tigations, missing children cases, and photo tagging, respectively. In addition,
companies like Intel and Apple have implemented face recognition for account
access and unlocking mobile phones.
The development of face recognition technology dates back to the 1960s, with
Woody Bledsoe, Helen Chan Wolf, and Charles Bisson introducing a system that
required administrators to locate eyes, ears, nose, and mouth in images. The
distance and ratios between the located features and common reference points are
then calculated and compared. The use of other features, such as hair color and
lip thickness, was later introduced by Goldstein, Harmon, and Lesk in 1970. Kirby
1
and Sirovich then suggested principle component analysis (PCA) in 1988 to solve
the face recognition problem.
2
CHAPTER 2
BASIC CONCEPTS
In this section, we will introduce the basic concepts related to the tools and tech-
niques used in this project. These concepts are essential for understanding the
implementation and functioning of the application. Each subsection provides a
description of a specific technology.
2.1 OpenCV
OpenCV (Open Source Computer Vision) is a popular open source library used
for real-time computer vision and image processing. It offers many useful features
including image and video capture, image filtering and manipulation, feature de-
tection, object detection and more. OpenCV Contrib is a collection of additional
modules and algorithms that are not included in the main OpenCV library. These
modules are contributed by the OpenCV community and provide additional func-
tionality for tasks such as stereo vision, 3D reconstruction, text recognition and
more.
2.2 TkInter
The tkinter package is a thin object-oriented layer on top of Tcl/Tk. To use
tkinter, you don’t need to write Tcl code, but you will need to consult the Tk
documentation and occasional Tcl documentation. tkinter is a set of wrappers
that implement Tk widgets as Python classes. The main advantages of tkinter
are that it is fast, and it usually comes with Python. Although its standard
documentation is poor, good content is available, including: references, tutorials,
books and others.
3
2.3 Flask
Flask is a popular web framework for Python, used for building web applications
and APIs. It is a lightweight and flexible framework, with minimalistic design and
easy-to-use APIs. Flask follows the Model-View-Controller (MVC) architectural
pattern, but does not enforce any particular database, template engine, or other
components. Flask is known for its simplicity and ease of use, making it a popular
choice for small to medium-sized projects. It has a modular structure, which
means you can add extensions and libraries to enhance its functionality. Flask
supports various plugins and extensions, which can be used for tasks like handling
user authentication, database management, and caching. Flask is also highly
customizable, allowing developers to tailor their web applications to specific needs.
Its minimalist approach allows developers to focus on writing clean, efficient code,
without getting bogged down by unnecessary features.
2.4 Pandas
Pandas is an open-source library primarily designed to work easily and intuitively
with relational or labeled data. It provides various data structures and operations
for manipulating numerical data and time series. This library is built on top of
the NumPy library. Pandas is fast and has high performance and productivity for
users.
2.5 NumPy
NumPy provides a convenient and efficient way to handle large amounts of data.
NumPy is also very comfortable with matrix multiplication and data reshaping.
NumPy is fast which makes it reasonable to work with large sets of data. NumPy
performs array-oriented computing. It efficiently implements multidimensional
arrays.It performs scientific calculations.It is capable of Fourier transforming and
reshaping data stored in multidimensional arrays.
2.6 Pillow
PIL is a display library for the Python programming language. A script is a
piece of code that is used to automate system-oriented tasks. When you write
code that performs a practical task without the need for compilation, it can be
called scripting. PIL has very powerful image processing capabilities and can
4
process many image types (BMP, DIB, EPS, GIF, ICO, IM, JPEG, JPG, JPEG
2000, MSP, PCX, PNG, PPM, SGI, TGA, TIFF, WebP , XBM , to name a few
formats) and image modes such as RGB, RGBA, BW and monochrome.
By understanding these basic concepts, readers will gain a solid foundation for
comprehending the implementation and functionality of the application. These
concepts play a crucial role in the successful development of the project and enable
users to appreciate the technical aspects behind its design and functionality.
Understanding these basic concepts is essential for readers to grasp the technical
foundation of the project. They provide insights into the utilization of the chosen
technologies and highlight their importance in addressing the challenges faced by
existing solutions in the market.
In the subsequent sections of this report, we will delve into the implementation de-
tails of the application, including the architecture, database design, user interface,
and functionality. By examining these aspects, readers will gain a comprehensive
understanding of the project’s development process and its contribution to the
field of online property rentals.
5
CHAPTER 3
PROBLEM STATEMENT
6
3.1 Project Planning
The planning phase of the project involves defining the steps to be followed for
successful execution of the development process. The following list of requirements
and features outline the key aspects to be developed in the application:
7
3.3 System Design
2. Flask: Flask should be used for building web applications and APIs. Flask
can be used for tasks like handling user authentication, database manage-
ment, and caching.
4. Haar Cascade: This algorithm is should be used for our main function to
be fast in recognising faces, and give high accuracy.
5. CSV: Using CSV module of python to manage local database for now, where
data authentication should be implemented to ensure correct data stream.
6. Insomnia: This should be used to test the server-side APIs developed using
Flask. Doing an end-to-end test can ensure robust and flexible application.
8
2. OpenCV: Facilitates models training, and running effectively in real-time.
The proper planning, analysis, and system design ensure a structured approach
to the development process, laying a strong foundation for the successful imple-
mentation of the application. By defining the project requirements and features,
the planning phase provides a clear roadmap for the development team, ensuring
that all necessary functionalities are addressed.
The analysis phase is crucial for identifying any potential issues or inconsistencies
in the requirements. By thoroughly analyzing the problem statement, the develop-
ment team can address ambiguities, refine the scope, and ensure a comprehensive
understanding of the project. This analysis minimizes risks and ensures that the
final application meets the desired objectives.
The system architecture for the attendance system based on face recognition
should be modular and scalable, allowing for easy maintenance and future enhance-
ments. Key components of the system architecture include TkInter, OpenCV, and
the Raspberry + Arduino hardware setup for efficient and effective implementa-
tion of the technology. The combination of proper planning, detailed analysis, and
well-defined system design sets the stage for a successful implementation of the
attendance system based on face recognition.
9
CHAPTER 4
IMPLEMENTATION
This section presents the implementation details of the full stack application de-
veloped during the project. It includes the methodology or proposal followed, the
testing or verification plan, screenshots showcasing the output, and any relevant
quality assurance measures taken.
4.1 Methodology
For the development of this project, a structured approach was adopted, which
involved the following steps:
2. System Design: After gathering and analyzing the requirements for the
full stack application, a system design was developed. This included creating
an architectural design, database schema design, and UI/UX wireframing.
The design phase emphasized ensuring modularity, scalability, and a user-
friendly experience.
10
required to stand in front of the camera at a minimum distance of 50cm, and
their image is captured as an input. The captured image is then processed
to extract the frontal face, which is converted to grayscale and stored. The
Principal Component Analysis (PCA) algorithm is used to perform compu-
tations on the images, and the resulting eigenvalues are saved in an XML
file. When a user requests face recognition, the system extracts the frontal
face from the captured video frame via the camera. The eigenvalue is recal-
culated for the test face, and the system matches it with the stored data for
the closest match. This approach enables the system to identify users with
high accuracy and efficiency.
2. User Interface Testing: The user interface was evaluated for responsive-
ness and visual consistency across various devices and screen sizes.
11
that the application could manage a significant number of concurrent users
without experiencing performance degradation.
During the implementation phase, there was no dedicated team for unit testing
and integration testing. However, manual testing was conducted to identify and
address any issues or bugs that arose during the process.
4.3 Screenshots
To provide a visual representation of the implemented application, we have in-
cluded the following screenshots of its output and user interface:
12
CHAPTER 5
STANDARDS ADOPTED
In this section, we will discuss the standards that were adopted during the devel-
opment of the application, which includes design, coding, and testing standards.
13
following coding standards and best practices were observed:
This project implemented various measures to maintain code quality and consis-
tency, such as integrating ESLint to enforce coding standards and identify poten-
tial issues. While no explicit testing was conducted, the project aimed to adhere to
design standards and recognize the importance of testing in software development.
By incorporating these practices, the project aimed to deliver a high-quality and
reliable application.
14
CHAPTER 6
6.1 Conclusion
In conclusion, the implementation of a face recognition attendance system pro-
vides a more efficient and automated way of recording attendance in educational
institutions. The reference project discussed in the text highlights the importance
of attendance records and the challenges associated with traditional attendance
processes. The project proposes an automatic attendance system that uses face
detection and recognition to label student attendance without disrupting the nor-
mal teaching process.
The work done on the system involved implementing a GUI and an API to provide
a simple and efficient way to interact with the system, improving the existing
codebase to optimize its performance and enhance its quality. The implementation
of a GUI using Tkinter and an API using Flask demonstrates how to create a user-
friendly interface and integrate the system with an organization’s system.
Overall, the implementation of a face recognition attendance system has the po-
tential to improve attendance records, save time and energy, and enhance the
learning experience for both teachers and students.
15
and defend DDoS, IP attacks.
2. Use Neural Network for high accuracy: The benefits of using neural
networks include improved accuracy, especially in complex and ambiguous
scenarios, as well as the ability to learn and adapt to new data. Neural
networks can also reduce the need for manual feature engineering, as they
can automatically learn useful features from data.
The chapter discusses the conclusion and future scope of the implementation of
a face recognition attendance system. The project aims to improve attendance
records, save time and energy, and enhance the learning experience for both teach-
ers and students. The project involves implementing a GUI and an API to pro-
vide a simple and efficient way to interact with the system, improving the existing
codebase to optimize its performance and enhance its quality. The future scope
includes improving security, using neural networks for higher accuracy, and build-
ing an end-to-end SaaS platform for administrations to register themselves and
use the technology for attendance management.
16