0% found this document useful (0 votes)
65 views43 pages

John Paul

The document discusses implementing facial recognition technology for student identity verification in schools and universities. It covers background information on facial biometrics, problems with current verification methods, the aims and objectives of the project, as well as limitations and the proposed methodology.

Uploaded by

okoyejohnpaul48
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views43 pages

John Paul

The document discusses implementing facial recognition technology for student identity verification in schools and universities. It covers background information on facial biometrics, problems with current verification methods, the aims and objectives of the project, as well as limitations and the proposed methodology.

Uploaded by

okoyejohnpaul48
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 43

CHAPTER ONE

INTRODUCTION

Biometrics involves using unique physical or behavioral characteristics to identify


individuals. Facial biometrics, specifically, utilizes facial features like the distance between
the eyes or the shape of the nose to confirm someone's identity. This technology is
convenient, accurate, and commonly used in various sectors, including education for
verifying student identities.

1.1 Background Study

Traditionally, schools and universities relied on methods like ID cards or passwords for
student identification. However, these methods can be slow and prone to errors. Facial
recognition technology offers a faster and more accurate alternative. It works by comparing a
student's face to a database of known faces using cameras and software. While it enhances
safety and saves time and money, it's crucial to address privacy, security, and fairness
concerns.

1.2 Statement of the Problem

Verifying student identities in educational institutions can be challenging and time-


consuming. Current methods like showing ID cards or memorizing passwords may not
ensure student safety. A better solution is needed to verify student identities quickly and
securely. This project proposes using facial recognition technology to eliminate the need for
physical ID cards or passwords, making identity verification easier and more convenient.
Additionally, it aims to enhance security by preventing fraudulent activities.

1.3 Aim of the Project

The project aims to implement a facial recognition system to accurately and efficiently verify
student identities in schools and universities. This modern and secure alternative to
traditional methods will improve the convenience and reliability of identity verification for
students. It also seeks to enhance student safety by preventing unauthorized access to
restricted areas.

1
1.4 Objectives of the Project

 Develop and implement a facial recognition system for real-time student identification.

 Integrate the system with existing school or university systems for seamless operation.

 Ensure user-friendly instructions and minimal disruption to daily routines.

 Conduct comprehensive testing to ensure accuracy, reliability, and security.

 Provide training and support for staff and ensure compliance with relevant laws and
regulations.

1.5 Significance

Implementing facial recognition for student identity verification offers several benefits:

1. Modern and secure alternative to traditional methods.


2. Improved safety and security for students.
3. Time and resource savings for staff through automation.

Overall, the implementation of a facial recognition system can enhance the efficiency,
security, and convenience of identity verification in schools and universities, providing a
safer and more modern learning environment for students.

1.6 Limitations of the Project

There are some limitations to consider when implementing a facial recognition system for
student identity verification in schools and universities.

1. Firstly, the accuracy of facial recognition technology can be affected by factors such as
lighting conditions and changes in appearance, such as wearing glasses or growing a
beard. This may result in false negatives or false positives, which could cause
inconvenience and delays for students and staff.

2
2. Secondly, the cost of implementing a facial recognition system can be high, especially
for smaller schools or universities with limited budgets. This may make it difficult for
some institutions to justify the expense of implementing such a system.
3. Thirdly, some students and staff may have concerns about data privacy and security
when using a facial recognition system. It is important to address these concerns and
ensure that the system is compliant with all relevant laws and regulations regarding data
privacy and security.
4. Lastly, there may be cultural or social factors that make some students uncomfortable
with the use of facial recognition technology
5. It is important to consider these factors and ensure that the implementation of the
system is respectful and culturally sensitive.

1.7 Methodology

Agile Methodology is the methodology we intend to use, as it more flexible and iterative,
allowing for quick adaptation to changing requirements and feedback. It also emphasizes
collaboration and communication, which is essential in a project where multiple stakeholders
are involved, such as students, teachers, and administrators.

3
CHAPTER TWO
LITERATURE REVIEW

2.1 Introduction
Facial biometrics, hailed for its convenience and security, faces several challenges that
necessitate ongoing technological advancements and innovative solutions. This literature
review delves into the primary security challenges in facial biometrics, including spoofing
attacks, forced authentication, stealing numerical codes, data breaches, privacy concerns, and
biometric data theft. Each challenge is scrutinized, and strategies for addressing them are
discussed. The review draws upon reputable sources, incorporating insights from industry
experts and relevant conversations.

2.2 Spoofing Attacks


Spoofing attacks in facial biometrics involve fraudulent attempts to bypass recognition
systems using photos, masks, or video clips. Traditional methods, such as static 2D and 3D
attacks, are countered by advancements in anti-spoofing technologies. Liveliness detection,
incorporating features like eye blink detection, interactive live face detection, 3D cameras,
and hybrid methods, has been introduced to enhance system robustness against sophisticated
presentation attacks. Despite these advancements, no single method guarantees complete
elimination of the risk, emphasizing the need for tailored solutions based on specific use
cases (Thales Group, n.d.).

2.3 Forced Authentication

Forced authentication in facial recognition occurs when attackers coerce individuals


into authenticating against their will, often involving holding a device with facial recognition
capabilities in front of the user's face. Countermeasures include liveness detection, multi-
factor authentication, user awareness, and the option to disable facial recognition. However,
complete elimination of forced authentication remains a challenge, necessitating ongoing
research and development to enhance system resilience(Thales Group, n.d.).

4
2.4 Stealing Numerical Codes

The theft of numerical codes representing facial features poses a significant threat in
facial recognition. Prevention strategies encompass liveness detection, 3D scanning, multi-
factor authentication, user interface design improvements, and the option to disable facial
recognition. A nuanced approach, considering the specific use case, is crucial in
implementing effective preventive measures against numerical code theft(Thales Group,
n.d.).

2.5 Data Breaches


Unauthorized access to facial recognition databases, leading to data breaches, is a
critical concern. Mitigation strategies involve data encryption, secure data storage, regular
security audits, limiting data collection, user consent, and multi-factor authentication. While
these measures reduce the risk of data breaches, the challenge persists, highlighting the need
for continual vigilance and advancements in security protocols(Thales Group, n.d.).

2.5 Privacy concerns


Privacy concerns associated with facial recognition include lack of consent,
unencrypted faces, lack of transparency, and technical vulnerabilities. Remedial actions
include regulatory measures, enhanced data security, individual privacy rights, opt-out
mechanisms, limiting social media exposure, and the use of privacy-enhancing tools like
Fawkes. Despite these efforts, achieving complete privacy protection remains an ongoing
challenge(Thales Group, n.d.).

2.5 Biometric Data theft


Biometric data theft involves unauthorized access to databases containing facial
recognition data, leading to identity theft and other malicious activities. Prevention strategies
mirror those for data breaches and emphasize data encryption, secure storage, security audits,
limited data collection, user consent, multi-factor authentication, and user awareness. As with
other challenges, eliminating the risk of biometric data theft requires a multifaceted and
context-specific approach(Thales Group, n.d.).

5
CHAPTER THREE
SYSTEM ANALYSIS AND DESIGN

1.1. INTRODUCTION
In this chapter, we embark on a detailed analysis and design of the attendance system
using facial recognition. The goal is to create an efficient and user-friendly solution for
attendance tracking in educational institutions.

The integration of facial recognition technology aims to address the shortcomings of


traditional attendance processes, introducing automation and accuracy. This section focuses
on user requirements, functionalities, and the overarching system architecture.

1.2. REQUIREMENTS GATHERING


Requirement gathering is a critical phase in the development of a facial biometric
authentication system for student attendance management. This process involves identifying,
analyzing, and documenting the needs and constraints of the system to establish a clear
roadmap for its design and implementation.
The primary objective is to define the key features and functionalities that the system
should possess. In the context of facial biometric authentication, this entails understanding
the roles and responsibilities of various users and delineating the core capabilities required
for efficient attendance tracking.

1.2.1. User Roles and Responsibilities


Administrators, as key stakeholders, should have the ability to configure and manage
the system. This involves customization features such as setting recognition thresholds and
managing user roles. Teachers, on the other hand, play a crucial role in the attendance capture
process. They need functionalities to capture and store facial images of students, access
attendance reports, and monitor real-time attendance data. Students, as end-users, should
experience a user-friendly interface during attendance capture while ensuring their privacy
and data security.

6
1.2.2. System Functionalities
The system must encompass essential functionalities to fulfill its objectives. Facial
image capture and secure storage are fundamental, requiring compatibility with technologies
like OpenCV and Insightful Face. Recognition and authentication capabilities are pivotal,
demanding accuracy and efficiency. Automatic attendance marking based on successful
recognition ensures real-time data updates. Integration with existing Student Information
Systems (SIS) is paramount for data consistency. Reporting features should be robust,
allowing for customizable and detailed attendance reports. Privacy and security
considerations are critical, emphasizing adherence to regulations and the implementation of
robust measures to safeguard facial biometric data.

3.3 FEASIBILITY STUDY


The feasibility study is a crucial phase in the system analysis process, assessing the
practicality and viability of implementing the facial biometric authentication system for
student attendance management. This section delves into the three key dimensions of
feasibility: technical, operational, and economic.

3.3.1 Operational Feasibility


Operational feasibility assesses the practical aspects of implementing the facial
biometric authentication system within the educational environment. This involves
considering how well the system aligns with existing operational processes and how easily
users, including administrators, teachers, and students, can adapt to the new system. User
training requirements, system usability, and potential disruptions to daily operations are
crucial factors. The system should not only streamline attendance management but also
enhance overall operational efficiency without causing undue disruptions.

3.3.2 Economic Feasibility


The economic feasibility of implementing the facial biometric authentication system for
student attendance management leans heavily towards cost-effectiveness, given the strategic
use of open-source technologies. The primary cost considerations revolve around hosting,

7
infrastructure, and potential ancillary expenses. Here's a breakdown of the economic
feasibility:
3.3.2.1 Open-Source Technologies
Cost Implication: Minimal
Rationale: The utilization of open-source technologies, such as OpenCV, InsightFace, Redis,
and Streamlit, significantly reduces software licensing costs. These technologies offer robust
functionalities without incurring direct expenses.

3.3.2.2 Hosting and Cloud Infrastructure


Cost Implication: Moderate
Rationale: While the core technologies are open-source, hosting the system on a cloud
platform incurs hosting costs. Popular cloud providers, such as AWS, Azure, or Google
Cloud, offer scalable infrastructure with pay-as-you-go pricing models. The hosting cost will
depend on factors like data storage, computational resources, and network usage.

3.3.2.3 Development and Maintenance


Cost Implication: Moderate
Rationale: While the development itself may involve some labor costs, the use of open-
source libraries and frameworks streamlines the development process. Continuous
maintenance costs are generally lower for open-source solutions due to active community
support and updates.

3.3.2.4 Training and Support


Cost Implication: Minimal
Rationale: Open-source communities often provide extensive documentation, tutorials, and
forums for support. Training costs are minimized as developers can leverage these resources
to familiarize themselves with the technologies.

3.3.2.5 Security Measures


Cost Implication: Moderate
Rationale: Investment in security measures, such as encryption protocols and secure hosting,
may be necessary to ensure the privacy and protection of student data. While some open-
source tools offer security features, additional measures may require financial allocation.

8
3.3.2.6 Scalability
Cost Implication: Potentially Moderate
Rationale: Scalability costs may be incurred if there is a need to scale up resources to
accommodate a growing user base. However, the pay-as-you-go model of cloud hosting
allows for cost-effective scaling based on demand.

The economic feasibility of the system is favorable due to the strategic use of open-
source technologies. The primary cost considerations lie in hosting and cloud infrastructure,
with potential additional expenses for security measures and scalability. The overall cost-
effectiveness is enhanced by the community-driven support for open-source tools,
minimizing licensing and development costs.

3.4 ANALYSIS OF EXISTING ATTENDANCE SYSTEM


In order to appreciate the significance and impact of the automated attendance system,
it is imperative to conduct a thorough analysis of the current attendance system in place,
which operates without any automation. This section delves into the processes, challenges,
and limitations associated with the existing manual attendance system.

3.4.1 Manual Attendance Processes


The current attendance system relies on manual processes for capturing and recording
attendance data. Key aspects of the manual attendance process include:

 Paper-based Registers: Attendance is typically recorded using paper-based registers


where students or staff sign in during designated periods.
 Roll Call: In educational institutions, roll call may be conducted verbally, with
instructors calling out names and students responding to indicate their presence.
 Time-Consuming Verification: Verifying attendance records often requires significant
time and effort, especially in larger institutions, leading to potential inaccuracies.

3.4.2 Challenges and Limitations


Despite being a traditional method, the manual attendance system is not without its
challenges and limitations:

9
 Prone to Errors: Manual recording is susceptible to errors, including accidental
omissions, duplicate entries, and illegible handwriting, leading to inaccuracies in
attendance data.
 Time-Intensive: Verifying and managing manual attendance records is a time-
consuming process, diverting resources that could be better utilized elsewhere.
 Limited Accessibility: Retrieving historical attendance data for analysis or auditing
purposes can be challenging due to the physical nature of paper registers.

3.4.3 Data Flow in Manual Attendance System


To visually represent the flow of data within the existing manual attendance system, the
following high-level Data Flow Diagram (DFD) is provided:

10
Fig 3.1 Manual Attendance Data Flow Diagram

Description:
1. Manual Attendance Recording Process: The manual attendance process involves
recording attendance through paper-based registers and roll call.
2. Attendance Records Collection: The recorded attendance data is collected and
compiled, often manually, into a centralized record.
3. Verification and Record Management: The attendance records undergo verification
and are managed manually, involving cross-checking for errors and maintaining
physical records.
4. Accessing Historical Attendance Data: Historical attendance data is accessed as
needed, typically involving the retrieval of physical records for analysis or compliance
purposes.

11
3.4.4 Impact on Educational Institutions
 The reliance on a manual attendance system affects educational institutions in several
ways:
 Resource Intensity: Educational staff spend considerable time managing attendance-
related tasks that could be more efficiently handled through automation.
 Accuracy Concerns: Inaccurate attendance records may lead to discrepancies in
student or staff attendance, impacting the overall reliability of institutional data.
 Audit and Compliance Challenges: Meeting audit and compliance requirements
becomes more challenging when relying on manual processes for attendance tracking.

3.4.5 Opportunities for Improvement


The analysis of the existing attendance system lays the groundwork for identifying
opportunities for improvement:
 Efficiency Gains: Automation of attendance processes could significantly reduce the
time and effort expended on manual record-keeping.
 Enhanced Accuracy: Automation minimizes the risk of errors associated with manual
data entry, ensuring more accurate attendance records.
 Improved Data Accessibility: An automated system enables real-time access to
attendance data, facilitating quicker verification and analysis.

As we transition to the analysis of the automated attendance system in the following


section, the insights gained from evaluating the current manual system will serve as a
valuable reference point for highlighting the advantages and potential impact of the solution.

3.5 ANALYSIS OF ATTENDANCE SYSTEM WITH DATA FLOW DIAGRAM


The attendance system introduces automation to address the limitations and challenges
inherent in the existing manual attendance processes. This section provides an in-depth
analysis of the features, functionalities, and potential advantages of the automated attendance
system, complemented by a high-level Data Flow Diagram (DFD) illustrating the flow of
data within the system.

12
3.5.1 Automated Attendance Processes
The system leverages automation to streamline the attendance recording process:
 Facial Recognition Technology: Utilizing facial recognition technology, the system
captures and verifies attendance without the need for manual input.
 Real-Time Data Updates: Attendance data is updated in real-time, providing instant
access to current attendance information.
 Efficient Record Keeping: Automated systems maintain a digital record of attendance,
eliminating the need for paper-based registers.

3.5.2 Advantages of the System


The automated attendance system offers several advantages over the manual
counterpart:

 Error Reduction: Automation minimizes the risk of errors associated with manual data
entry, ensuring more accurate attendance records.
 Time Efficiency: The system significantly reduces the time and effort expended on
attendance-related tasks, allowing staff to focus on more value-added activities.
 Real-Time Accessibility: Instant access to real-time attendance data facilitates quicker
verification and analysis, enhancing overall operational efficiency.
 Improved Audit Trail: The digital nature of the system provides a comprehensive audit
trail, simplifying compliance with audit and regulatory requirements.

3.5.3 Technological Aspects


The technological aspects of the automated attendance system encompass a set of key
components and technologies, each playing a crucial role in the system's functionality and
efficiency. Below is a detailed overview of the technologies used in the code and their
specific roles:

13
3.5.3.1 InsightFace Integration: Facial Recognition Technology
InsightFace is a deep learning-based facial recognition framework that has been
integrated into the system. Its role includes:

 Facial Feature Extraction: InsightFace is utilized to extract facial features from input
images, enabling the system to uniquely identify individuals based on their facial
characteristics.
 Verification and Matching: The facial embeddings obtained from InsightFace are used
for real-time verification and matching against the pre-registered facial features,
allowing the system to accurately identify individuals.

3.5.3.2 Redis Database: Storage and Retrieval


Redis is employed as a fast and efficient in-memory data store. Its functions within the
system include:

 Storage of Facial Features: Redis serves as the storage backend for the facial features
of registered individuals. The system utilizes Redis hashes to store and retrieve these
features.
 Real-Time Data Updates: Attendance records and related information are updated in
real-time within the Redis database, ensuring instant access to the latest attendance
data.

3.5.3.3 Streamlit User Interface: User Interaction and Visualization


Streamlit is a Python library used for creating interactive and user-friendly web
applications. In the system:

 User Interface Development: Streamlit is employed to design the user interface of the
application. It provides a simple and intuitive interface for administrators to interact
with the attendance system.
 Real-Time Data Display: Streamlit facilitates the real-time display of attendance data,
making it accessible and comprehensible for users.

14
3.5.3.4 WebRTC Streamer: Real-Time Video Streaming
WebRTC Streamer is utilized for real-time video streaming within the application. Its roles
include:

 Video Frame Callbacks: WebRTC Streamer enables the capture and processing of
video frames from the webcam or other video sources. This is essential for real-time
facial recognition during attendance verification.
 Integration with Streamlit: The real-time video stream is seamlessly integrated into the
Streamlit user interface, enhancing the user experience.

3.5.3.5 OpenCV: Computer Vision Functions


OpenCV (Open Source Computer Vision Library) is used for various computer vision
tasks within the system:

 Image Processing: OpenCV functions are employed for image manipulation, including
tasks such as drawing rectangles around detected faces, displaying text, and
processing video frames.
 Real-Time Prediction: OpenCV is crucial for real-time prediction, where it processes
video frames, applies facial recognition, and overlays relevant information.

3.5.3.6 av: Video Frame Processing


The `av` library is used for processing video frames, particularly within the WebRTC
streamer:

 Video Frame Conversion: `av` facilitates the conversion of video frames to and from
the necessary formats, ensuring compatibility with different components of the
system.

3.5.3.7 Numpy and Pandas: Data Manipulation


Numpy and Pandas are fundamental libraries for numerical and data manipulation
tasks:
 Array Operations:Numpy is used for array operations, particularly in the manipulation
of facial embeddings and mathematical operations.

15
 Dataframe Operations: Pandas is employed for creating and manipulating dataframes,
facilitating the organization and analysis of attendance-related data.

These technologies collectively contribute to the robustness, efficiency, and user-


friendliness of the automated attendance system. Each component plays a specialized role in
ensuring accurate attendance verification, real-time data updates, and a seamless user
experience.

3.6 Impact on Educational Institutions


The adoption of the automated attendance system is anticipated to bring about positive
changes within educational institutions:
 Resource Optimization: Automated attendance processes reduce the time and human
resources required for manual record-keeping, allowing for more efficient resource
allocation.
 Enhanced Data Accuracy: Automation minimizes the potential for human errors,
leading to more accurate and reliable attendance records.
 Strategic Decision-Making: Real-time access to attendance data empowers
educational institutions to make informed decisions based on up-to-date information.
 Adaptability to Scalability: The automated system is designed to scale with the
institution's needs, accommodating growth without compromising performance.

3.6.1 Integration with Existing Systems


Consideration has been given to integrating the attendance system with existing
institutional systems, ensuring a seamless transition and interoperability.

3.6.2 Data Flow in Automated Attendance System


To visually represent the flow of data within the automated attendance system, the
following high-level Data Flow Diagram (DFD) is provided:

16
Fig 3.2 Manual Attendance Data Flow Diagram
1.1. Merits and Demerits
In evaluating the automated attendance system against the traditional manual approach,
a nuanced examination of their respective merits and demerits unveils critical insights.

1.1.1. Merits of Manual System


Simplicity:
The manual attendance system boasts simplicity, making it accessible to users with varying
levels of technical proficiency. Its straightforward processes contribute to ease of
implementation.
Cost-Effective:
With lower implementation and maintenance costs, the manual system proves cost-effective,
particularly beneficial for smaller institutions operating within limited budgets.

Limited Technical Dependencies:


The manual system operates independently of technology, eliminating the need for complex
infrastructure. This attribute is advantageous in environments with unreliable or limited
access to technology.

1.1.2. Demerits of Manual System


Time-Consuming:
Despite its simplicity, the manual system can be time-consuming, especially in large
gatherings. This time inefficiency may result in delays and reduced effectiveness in time-
sensitive situations.

Error-Prone:
Human errors in data entry and calculations pose a significant challenge for the manual
system. Inaccuracies in attendance records may compromise the reliability of the data.

Lack of Real-Time Insights:


The manual system lacks the ability to provide real-time attendance insights, hindering the
availability of timely data for monitoring and decision-making.

17
1.1.3. Merits of Automated System
Efficiency and Accuracy:
The automated attendance system excels in efficiency and accuracy, streamlining attendance
processes and minimizing the likelihood of errors. This contributes to the production of
reliable attendance records.

Real-Time Tracking:
One of the standout features is the capability for real-time tracking of attendance during
events. This functionality enables prompt decision-making based on current attendance data.

Enhanced Reporting:
Automated systems offer enhanced reporting capabilities, facilitating the generation of
comprehensive attendance reports. This provides administrators with valuable insights for
analysis and strategic planning.

1.1.4. Demerits of Automated System


Implementation Cost:
Setting up an automated system may involve initial high costs for hardware, software, and
training. While the long-term benefits may outweigh these costs, the initial financial
investment can be a limiting factor for institutions with tight budgets.

Technical Dependencies:
The reliance on technology introduces a vulnerability to interruptions. Technical issues, such
as power outages or system failures, may disrupt operations and impact the system's
immediate effectiveness.

Learning Curve:
The introduction of new technology brings with it a learning curve. Users may require time
to adapt to the automated system, especially if unfamiliar with such technologies.
Overcoming initial resistance and ensuring a smooth transition become crucial aspects of
implementation.

18
This comprehensive analysis tell us the nuanced aspects of both the traditional manual
system and the automated attendance system. Decision-makers can now navigate the trade-
offs, considering factors such as simplicity, cost-effectiveness, accuracy, real-time
capabilities, and the challenges associated with each approach.

19
CHAPTER FOUR
SYSTEM IMPLEMENTATION
1.2. INTRODUCTION
The journey from conceptualization to a tangible system begins with the system
design phase. In this pivotal stage, the agile methodology, known for its adaptability and
iterative approach, guides the translation of requirements into a detailed blueprint. The
proposed attendance system, conceived for efficient tracking and management, undergoes
meticulous design to ensure cohesion, scalability, and user-friendliness.

1.2.1. Agile Methodology Adoption:


The system design process aligns with the principles of agile methodology. Iterative
cycles, regular feedback loops, and adaptability characterize the development approach. This
enables flexibility in responding to changing requirements and promotes continuous
improvement throughout the design phase.

Fig 4.1 Dynamic System Development Method (DSDM)

20
1.2.2. Alignment with Code Implementation
The design closely mirrors the code implementation, acknowledging the journey that
began with exploration in Jupyter Notebook and evolved into the more collaborative and
scalable environment of VS Code. This alignment ensures that the theoretical design is not
detached from the practical implementation, fostering a seamless transition from concept to
execution.

1.2.3. Modular System Architecture


Central to the design philosophy is the adoption of a modular system architecture,
reflecting the code's organization into distinct components. User registration, real-time face
recognition, and reporting modules form the core building blocks, facilitating better
maintenance, scalability, and understanding of the system's structure.

4.2 Architectural Blueprint


The architectural blueprint of the attendance system is a carefully orchestrated design
that delineates the roles and interactions of distinct modules. Let's delve into a detailed
narrative of each system component and explore the intricate interconnectivity that forms the
backbone of the proposed system.

4.2.1 User Registration Module


The User Registration Module plays a pivotal role in capturing and managing user
information within the attendance system. When a user initiates the registration process, this
module collects relevant details such as name and role. The captured data is then securely
stored, forming the foundation for attendance tracking.

Responsibilities:
 Capture user details during the registration process.
 Validate and store user information securely.
 Serve as the entry point for user-related data within the system.
Interconnectivity:
 Initiates communication with the Real-time Face Recognition Module upon user
registration.
 Facilitates the transfer of user data for real-time face recognition.
21
4.2.2 Real-time Face Recognition Module:
The Real-time Face Recognition Module is the technological powerhouse responsible for
processing live video streams, recognizing faces, and updating attendance records in real
time. Leveraging sophisticated facial recognition algorithms, this module ensures accurate
and prompt identification.

Responsibilities:
 Process live video streams to detect and recognize faces.
 Interface with the User Registration Module to update attendance records.
 Utilize facial recognition algorithms for accurate identification.

Interconnectivity:
 Receives user data from the User Registration Module for real-time recognition.
 Communicates attendance updates back to the User Registration Module.

4.2.3 Reporting Module:


The Reporting Module serves as the data hub for generating comprehensive reports
based on attendance records. By accessing information stored in both the User Registration
and Real-time Face Recognition Modules, this component provides administrators with
valuable insights for analysis and decision-making.

Responsibilities:
 Generate detailed reports based on attendance data.
 Access stored information from the User Registration and Face Recognition Modules.
 Provide a user-friendly interface for report generation.

Interconnectivity:
 Retrieves user and attendance data from the User Registration and Face Recognition
Modules.
 Utilizes stored information to generate meaningful reports for administrators.

22
4.2.4 Interconnectivity Dynamics:
User Registration to Real-time Face Recognition:
1. User initiates registration, providing personal details.
2. User Registration Module securely stores the data.
3. Real-time Face Recognition Module is notified of new registrations.
4. Face recognition algorithms process live video streams, updating attendance records.

Reporting Module Accessing Data:


1. Reporting Module accesses stored user information from the User Registration
Module.
2. Attendance data, updated by the Real-time Face Recognition Module, is also
retrieved.
3. Comprehensive reports are generated based on the amalgamation of these datasets.

4.3 Technology Stack


The technology stack forms the bedrock of the proposed attendance system, influencing its
functionality, scalability, and overall performance. This section provides an in-depth
exploration of the chosen programming languages, frameworks, tools, and libraries that
collectively shape the system's architecture.

4.3.1 Programming Languages


Python:
Python emerges as the language of choice for its versatility and seamless integration with
machine learning libraries. Leveraging Python streamlines the development process, enabling
the incorporation of advanced algorithms for facial recognition within the system.

4.3.2 Frameworks
Streamlit:
Streamlit stands as the primary framework for web application development. Its simplicity
and rapid prototyping capabilities make it an ideal choice for creating interactive user
interfaces. The system's user-friendly registration forms, real-time face recognition display,
and report generation interfaces are all powered by Streamlit.

23
4.3.3 Tools and Libraries:
OpenCV:
OpenCV, a robust computer vision library, is strategically employed for image processing
tasks within the attendance system. From capturing video streams to implementing facial
recognition algorithms, OpenCV enhances the system's capabilities.

Redis:
The choice of Redis as the database solution stems from its fast data retrieval and storage
capabilities. Acting as the data repository, Redis efficiently manages user registrations and
attendance logs. The structured data storage within Redis aligns with the system's
requirements for quick and reliable access.

24
NOTE:
The technology stack's cohesive integration ensures a harmonious blend of languages,
frameworks, and tools, facilitating a development environment that is both effective and
efficient.
importstreamlitasst
import base64
from Home importface_rec
fromstreamlit_webrtcimportwebrtc_streamer
importav
import time
import threading

st.set_page_config(page_title='Predictions')
st.subheader('Real-Time Attendance System')

# Retrive the data from Redis Database


withst.spinner('Retriving Data from Redis DB ...'):
redis_face_db=face_rec.retrive_data(name='academy:register')
st.dataframe(redis_face_db)

st.success("Data sucessfullyretrived from Redis")

# time
waitTime=30# time in sec
setTime=time.time()
realtimepred=face_rec.RealTimePred() # real time prediction class

# Real Time Prediction


# streamlitwebrtc
# callback function
defvideo_frame_callback(frame):
globalsetTime

img=frame.to_ndarray(format="bgr24") # 3 dimension numpy array


# operation that you can perform on the array
pred_img=realtimepred.face_prediction(img,redis_face_db,
'facial_features',['Name','Role'],thresh=0.5)

timenow=time.time()
difftime=timenow-setTime
ifdifftime>=waitTime:
setTime=time.time() # reset time
print('Save Data to redis database')

Fig 5.1 The integration of Python, Streamlit, OpenCV, and Redis within the VS Code development
environment.
25
4.3.4 Development Environment:
Jupyter Notebook to VS Code Transition:
The initial exploration and prototyping phase took place in Jupyter Notebook, providing a
dynamic and interactive environment for code experimentation. However, recognizing the
need for a more collaborative and scalable development approach, the transition to Visual
Studio Code (VS Code) was made. VS Code's versatility and extensive support for Python
development enhance the system's scalability and collaborative potential.

Fig 5.2 Jupyter Notebook

This illuminates the technological underpinnings of the attendance system, showcasing a


well-integrated stack that empowers the system's functionalities. The selected tools and
frameworks synergize to create a robust and adaptable environment, aligning with the
system's goals and requirements.

26
4.4 Database Design
A robust and efficient database design is integral to the seamless functioning of the
attendance system. This section delves into the structure of the chosen database, Redis, and
how it accommodates the storage and retrieval of user registrations and attendance logs.

4.4.1 Redis Database Schema


Key: academy: register
The 'academy:register' key serves as the primary storage for user registrations within the
system.
Each user registration is uniquely identified by a combination of the person's name
and role. The corresponding value associated with each key is the serialized facial features or
embeddings of the registered user.

Key: attendance: logs


The 'attendance: logs' key is dedicated to storing attendance logs.
Attendance logs are pushed onto the list in a concatenated string format, including the
person's name, role, and timestamp. This key facilitates the retrieval of historical attendance
records.

4.4.2 Redis Data Storage


User Registrations:
The 'academy:register' key maintains a mapping of user names and roles to their respective
facial features. The structured storage allows for quick and efficient retrieval during the real-
time face recognition process.

27
Attendance Logs:
The 'attendance: logs' key stores a historical log of attendance records. Each log entry
includes the person's name, role, and the timestamp of the attendance update. The list
structure enables easy appending of new attendance records while maintaining a
chronological order.

# step-4: save this into redis database


# redis hashes
r.hset(name='academy:register', key=key, value=x_mean_bytes)

Fig 5.3 Key “academy: register”

r.lpush('attendance:logs', *encoded_data)

Fig 5.4 Key “attendance: logs”

4.4.3 Advantages of Redis


1. Fast Data Retrieval: Redis excels in quick data retrieval, making it an ideal choice for
real-time applications like the attendance system. The efficient storage and retrieval of facial
features contribute to the system's responsiveness.

2. Scalability: Redis's ability to handle large datasets ensures the system's scalability. As
the number of user registrations and attendance records grows, Redis provides a reliable
foundation for accommodating increased data.

3. Simple Key-Value Structure: The simplicity of Redis's key-value structure aligns with
the straightforward storage requirements of user registrations and attendance logs. This
simplicity enhances both development and maintenance aspects.

28
4.4.4 Integration with Python
The interaction with Redis is seamlessly integrated into the Python codebase using the 'redis'
library. This library facilitates the connection, data manipulation, and retrieval operations
with the Redis database.

importredis

# insight face
frominsightface.appimportFaceAnalysis
fromsklearn.metricsimport pairwise
# time
import time
fromdatetimeimportdatetime

importos

# Connect to Redis Client


hostname='redis-11163.c281.us-east-1-2.ec2.cloud.redislabs.com'
portnumber=11163
password='54SxB3rapfDu4gVxryooE56CdP2dzfm9'

r =redis.StrictRedis(host=hostname,
port=portnumber,
password=password)

# Retrive Data from database

defretrive_data(name):
retrive_dict=r.hgetall(name)
retrive_series=pd.Series(retrive_dict)
retrive_series=retrive_series.apply(
lambdax: np.frombuffer(x, dtype=np.float32))
index=retrive_series.index
index= list(map(lambdax: x.decode(), index))
retrive_series.index= index
retrive_df=retrive_series.to_frame().reset_index()
retrive_df.columns= ['name_role', 'facial_features']
retrive_df[['Name', 'Role']] =retrive_df['name_role'].apply(
lambdax: x.split('@')).apply(pd.Series)
returnretrive_df[['Name', 'Role', 'facial_features']]

Fig. 5.5 Interaction with redis

29
This section elucidates the thoughtful design considerations behind the choice of
Redis as the database solution and outlines how the database schema supports the storage and
retrieval of critical data within the attendance system.

4.5 User Interface Design


The User Interface (UI) design plays a pivotal role in ensuring a seamless and intuitive
user experience within the attendance system. This section provides insights into the UI
components, layout, and functionalities that contribute to an efficient and user-friendly
interface.

4.5.1 Streamlit Framework:


The UI of the attendance system is developed using the Streamlit framework, chosen for
its simplicity, rapid prototyping capabilities, and ease of integration with Python. Streamlit
facilitates the creation of interactive and visually appealing web interfaces without the need
for extensive front-end development.

4.5.2 Registration Form:


The registration form is designed to capture user information, including the person's
name and role. The form provides an intuitive and straightforward input mechanism for users
to register within the system.

Fig 5.6 Registration Form


30
4.5.3 Real-Time Face Recognition Display:
The real-time face recognition display presents a live video stream with overlaid
bounding boxes indicating recognized faces. This dynamic and responsive display keeps
users informed about the system's recognition capabilities in real time.

Fig 5.7 Real-Time face recognition Display

4.5.4 Reporting Interface


The reporting interface offers administrators the ability to generate comprehensive reports
based on attendance records. The interface is designed to be user-friendly, allowing for easy
navigation and customization of reports.

31
Fig 5.8 Reporting Interface (Register data)

Fig 5.8 Reporting Interface (Attendance Logs)

This section outlines the design principles and components of the user interface within
the attendance system. The utilization of Streamlit, coupled with intuitive registration forms,
real-time face recognition displays, and a user-friendly reporting interface, ensures that users
can interact seamlessly with the system while enjoying a visually pleasing experience.

32
CHAPTER FIVE
SUMMARY, CONCLUSION AND RECOMMENDATIONS

5.1 SUMMARY
The Attendance System using Face Recognition is a robust solution designed to
revolutionize attendance tracking within educational institutions. This section provides a
comprehensive summary of the project, emphasizing key components, methodologies, and
expected outcomes.

5.1.1 System Overview


The system addresses the limitations of traditional attendance tracking methods by
implementing real-time face recognition technology. It focuses on simplicity, accuracy, and
accessibility to provide an efficient solution for managing attendance records.

5.1.2 Objectives and Methodology


The project's objectives include the development of a system for proper documentation
of student records, creating a database for managing assignment submissions, and ensuring
equal opportunity and impartial review of student submissions. The object-oriented analysis
and design methodology guided the technical approach, while web programming languages
facilitated the system's platform independence.

5.1.3 Technological Implementation


The utilization of the Streamlit framework, Redis database, and web programming
languages such as HTML, CSS, JavaScript, Python (Django framework), and PostgreSQL
underscores the technological foundation of the system. These technologies contribute to a
user-friendly and accessible interface.

5.1.4 Expected Benefits


The system is expected to benefit students, lecturers, and other researchers by
providing a streamlined and secure approach to attendance tracking. The implementation
contributes to knowledge in the field and can serve as a guide for future studies.

33
5.1.5 System Outcome
The anticipated result is an Online Attendance System that processes student
submissions efficiently. The system will offer timely feedback and assignment reports to
teachers/lecturers for each student who submits an assignment.

The system represents a forward-looking approach to attendance management in educational


settings.

5.2 CONCLUSION
The successful implementation of the Attendance System using Face Recognition
marks the culmination of an innovative approach to attendance tracking within educational
institutions. This section draws conclusions based on the objectives, methodologies, and
outcomes of the project.

5.2.1 Project Objectives Achieved


The primary objectives of the project were realized through the development of a
sophisticated attendance management system. The system effectively addressed challenges
associated with traditional attendance tracking methods, offering real-time face recognition,
user-friendly interfaces, and reliable reporting mechanisms.

5.2.2 Methodological Approach


The project adopted an agile development approach, emphasizing flexibility and
responsiveness to evolving requirements. The implementation primarily utilized the
following languages and tools:

Languages:
 Python for the core logic and implementation.
Tools:
 Streamlit framework for creating interactive web applications.
 Redis database for efficient data storage and retrieval.

This pragmatic methodology, combined with the selected languages and tools, facilitated
rapid development, ensuring the system's adaptability to changing needs.
34
5.2.3 Technological Impact
The adoption of modern technologies, such as the Streamlit framework and Redis
database, significantly contributed to the system's effectiveness. These technologies
facilitated the rapid development of user interfaces and seamless integration with Python,
enhancing the overall user experience.

5.2.4 Contributions to Knowledge


The outcomes of the project contribute valuable insights to the realm of attendance
management systems. By incorporating real-time face recognition and leveraging
contemporary web development tools, the research presents a practical solution to attendance
tracking challenges, pushing the boundaries of conventional methods.

5.2.5 Areas for Refinement


While the project successfully met its objectives, there are areas for refinement. Future
studies may focus on refining system features, addressing potential security considerations,
and exploring additional functionalities to further elevate the system's utility and robustness.

In conclusion, the Attendance System using Face Recognition represents a significant


advancement in attendance management. The project's outcomes showcase the adaptability
and effectiveness of employing modern technologies, including Python, Streamlit, and Redis,
to address long-standing challenges in attendance tracking within educational institutions.
This research provides a solid foundation for future studies and continuous advancements in
the field of automated attendance systems.

5.3 RECOMMENDATIONS
The culmination of the Attendance System using Face Recognition presents opportunities for
future enhancements and areas of consideration. The following recommendations aim to
guide further studies and improvements in the system:

1. Expand Scope: Future researchers are encouraged to expand the scope of the
attendance system by incorporating additional features or integrations that align with specific

35
institutional requirements. Exploring new functionalities can contribute to a more
comprehensive and adaptable system.

2. Continuous Improvement: It is recommended to prioritize continuous improvement by


incorporating updates and enhancements. Embracing emerging technologies and addressing
evolving challenges in attendance management ensures the system's relevance and
effectiveness over time.

3. User Training: As the system is implemented, providing comprehensive training


sessions for users, including teachers and administrators, is essential. User training ensures
optimal utilization of the system's features and facilitates a smooth transition from traditional
attendance tracking methods.

4. Security Review: While security was not a primary focus of this research, future
iterations should include a thorough security review. Assessing and enhancing data protection
measures will fortify the system against potential vulnerabilities and ensure the
confidentiality of sensitive information.

These recommendations serve as guidelines for future research endeavors, offering


insights into areas for expansion, continuous enhancement, user engagement, and security
considerations. By addressing these recommendations, researchers can contribute to the
ongoing development and effectiveness of automated attendance systems in educational
settings.

36
REFERENCES

1) Thales Group. (n.d.). Top facial recognition issues and concerns. Thales. Retrieved
from https://www.thalesgroup.com/en/markets/digital-identity-and-security/
government/inspired/facial-recognition-issues

2) R Alqudah, M Shawish, HA Shehadeh (2023). [Biometric-based smart attendance


management system using face]
(https://pubs.aip.org/aip/acp/article/2979/1/020004/2917937/Biometric-based-smart-
attendance-management-system).

3) SonamDeo (2023)[Biometric Face Recognition Attendance System for Human


Resource Management](https://www.kentcam.com/camattendance/blog/face-
recognition-attendance-system-for-human-resource-management).

1) Gawande, U., Joshi, P., Ghatwai, S., Nemade, S., Balkothe, S., Shrikhande, N. (2022).
Efficient Attendance Management System Based on Face Recognition. In: Tuba, M.,
Akashe, S., Joshi, A. (eds) ICT Systems and Sustainability. Lecture Notes in Networks
and Systems, vol 321. Springer, Singapore. https://doi.org/10.1007/978-981-16-5987-
4_12

2) KavithaKrishnaswamy Pillai Ranganathan; VijayalakshmiSekar;


MuraliBabuBalasundaram; Sujith Kumar Dhanapal; BharathiPalanisamy. (2023).
[Attendance management system using smart cards and biometric authentication]
(https://pubs.aip.org/aip/acp/article/2857/1/020022/2907238/Attendance-management-
system-using-smartcards-and).

3) Chetty, S., Sharma, N.A. (2023). Attendance Monitoring and Management Using
Facial Recognition. In: Hsu, CH., Xu, M., Cao, H., Baghban, H., Shawkat Ali, A.B.M.
(eds) Big Data Intelligence and Computing. DataCom 2022. Lecture Notes in
Computer Science, vol 13864. Springer, Singapore. https://doi.org/10.1007/978-981-
99-2233-8_27

4) Arthur Piper,(2019). [The Risks and Challenges of Facial Recognition Technology]


(https://www.rmmagazine.com/articles/article/2019/11/01/-About-Face-The-Risks-
and-Challenges-of-Facial-Recognition-Technology-).

37
APPENDIX A

“SOURCE CODE - HOMEPAGE”

 Home.py

import base64
importstreamlitasst

st.set_page_config(page_title='Attendance System', layout='wide')


st.header('Attendance System using Face Recognition')

withst.spinner("Loading Models and Connecting to Redisdb ..."):


importface_rec

st.success('Model loaded successfully')


st.success('Redisdb successfully connected')
defget_base64_of_bin_file(png_file):
withopen(png_file, "rb") as f:
data=f.read()
return base64.b64encode(data).decode()
defbuild_markup_for_logo(
png_file,
background_position="center",
background_size="contain",
):
binary_string=get_base64_of_bin_file(png_file)
returnf"""
<style>
.stApp {{
background-image: url("data:image/png;base64,
{binary_string}");
background-repeat: no-repeat;
background-position: {background_position};
background-size: {background_size};
background-attachment: fixed;
opacity: 1.0; /* Adjust the transparency here */
}}
</style>
"""
defadd_logo(png_file):
logo_markup=build_markup_for_logo(png_file)
st.markdown(logo_markup, unsafe_allow_html=True)

add_logo("img/myimg.png")
38
APPENDIX B

“SOURCE CODE”

 face_rec.py

importnumpyas np
import pandas aspd
import cv2

importredis

# insight face
frominsightface.appimportFaceAnalysis
fromsklearn.metricsimport pairwise
# time
import time
fromdatetimeimportdatetime

importos

# Connect to Redis Client


hostname='redis-11163.c281.us-east-1-2.ec2.cloud.redislabs.com'
portnumber=11163
password='54SxB3rapfDu4gVxryooE56CdP2dzfm9'

r =redis.StrictRedis(host=hostname,
port=portnumber,
password=password)

# Retrive Data from database

defretrive_data(name):
retrive_dict=r.hgetall(name)
retrive_series=pd.Series(retrive_dict)
retrive_series=retrive_series.apply(
lambdax: np.frombuffer(x, dtype=np.float32))
index=retrive_series.index
index= list(map(lambdax: x.decode(), index))
retrive_series.index= index
retrive_df=retrive_series.to_frame().reset_index()
retrive_df.columns= ['name_role', 'facial_features']
retrive_df[['Name', 'Role']] =retrive_df['name_role'].apply(
lambdax: x.split('@')).apply(pd.Series)
returnretrive_df[['Name', 'Role', 'facial_features']]
39
# configure face analysis
faceapp=FaceAnalysis(name='buffalo_sc', root='insightface_model',
providers=[
'CPUExecutionProvider'])
faceapp.prepare(ctx_id=0, det_size=(640, 640), det_thresh=0.5)

# ML Search Algorithm

defml_search_algorithm(dataframe, feature_column, test_vector,


name_role=['Name', 'Role'], thresh=0.5):
"""
cosine similarity base search algorithm
"""
# step-1: take the dataframe (collection of data)
dataframe=dataframe.copy()
# step-2: Index face embeding from the dataframe and convert
into array
X_list=dataframe[feature_column].tolist()
x =np.asarray(X_list)

# step-3: Cal. cosine similarity


similar=pairwise.cosine_similarity(x, test_vector.reshape(1, -
1))
similar_arr=np.array(similar).flatten()
dataframe['cosine'] =similar_arr

# step-4: filter the data


data_filter=dataframe.query(f'cosine>= {thresh}')
iflen(data_filter) >0:
# step-5: get the person name
data_filter.reset_index(drop=True, inplace=True)
argmax=data_filter['cosine'].argmax()
person_name, person_role=data_filter.loc[argmax][name_role]

else:
person_name='Unknown'
person_role='Unknown'

returnperson_name, person_role

# Real Time Prediction


# we need to save logs for every 1 mins
classRealTimePred:
def__init__(self):
40
self.logs=dict(name=[], role=[], current_time=[])

defreset_dict(self):
self.logs=dict(name=[], role=[], current_time=[])

defsaveLogs_redis(self):
# step-1: create a logs dataframe
dataframe=pd.DataFrame(self.logs)
# step-2: drop the duplicate information (distinct name)
dataframe.drop_duplicates('name', inplace=True)
# step-3: push data to redis database (list)
# encode the data
name_list=dataframe['name'].tolist()
role_list=dataframe['role'].tolist()
ctime_list=dataframe['current_time'].tolist()
encoded_data= []
for name, role, ctimeinzip(name_list, role_list,
ctime_list):
if name !='Unknown':
concat_string=f"{name}@{role}@{ctime}"
encoded_data.append(concat_string)

iflen(encoded_data) >0:
r.lpush('attendance:logs', *encoded_data)

self.reset_dict()

defface_prediction(self, test_image, dataframe, feature_column,


name_role=['Name', 'Role'], thresh=0.5):
# step-1: find the time
current_time=str(datetime.now())

# step-1: take the test image and apply to insight face


results=faceapp.get(test_image)
test_copy=test_image.copy()
# step-2: use for loop and extract each embedding and pass
to ml_search_algorithm

for res in results:


x1, y1, x2, y2 = res['bbox'].astype(int)
embeddings= res['embedding']
person_name, person_role=ml_search_algorithm(dataframe,
feature_column,

test_vector=embeddings,
41
name_role=name_role,

thresh=thresh)
ifperson_name=='Unknown':
color= (0, 0, 255) # bgr
else:
color= (0, 255, 0)

cv2.rectangle(test_copy, (x1, y1), (x2, y2), color)

text_gen=person_name
cv2.putText(test_copy, text_gen, (x1, y1),
cv2.FONT_HERSHEY_DUPLEX, 0.7, color, 2)
cv2.putText(test_copy, current_time, (x1, y2+10),
cv2.FONT_HERSHEY_DUPLEX, 0.7, color, 2)
# save info in logs dict
self.logs['name'].append(person_name)
self.logs['role'].append(person_role)
self.logs['current_time'].append(current_time)

returntest_copy

# Registration Form
classRegistrationForm:
def__init__(self):
self.sample=0

defreset(self):
self.sample=0

defget_embedding(self, frame):
# get results from insightface model
results=faceapp.get(frame, max_num=1)
embeddings=None
for res in results:
self.sample+=1
x1, y1, x2, y2 = res['bbox'].astype(int)
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 1)
# put text samples info
text=f"samples = {self.sample}"
cv2.putText(frame, text, (x1, y1),
cv2.FONT_HERSHEY_DUPLEX, 0.6, (255, 255, 0),

42
2)
# facial features
embeddings= res['embedding']

return frame, embeddings

defsave_data_in_redis_db(self, name, role):


# validation name
if name isnotNone:
ifname.strip() !='':
key=f'{name}@{role}'
else:
return'name_false'
else:
return'name_false'

# if face_embedding.txt exists
if'face_embedding.txt'notinos.listdir():
return'file_false'

# step-1: load "face_embedding.txt"


x_array=np.loadtxt('face_embedding.txt',
dtype=np.float32) # flatten array

# step-2: convert into array (proper shape)


received_samples=int(x_array.size/512)
x_array=x_array.reshape(received_samples, 512)
x_array=np.asarray(x_array)

# step-3: cal. mean embeddings


x_mean=x_array.mean(axis=0)
x_mean=x_mean.astype(np.float32)
x_mean_bytes=x_mean.tobytes()

# step-4: save this into redis database


# redis hashes
r.hset(name='academy:register', key=key, value=x_mean_bytes)

#
os.remove('face_embedding.txt')
self.reset()

returnTrue

43

You might also like