Federated Learning Based Face and Eye Blink Recognition: Mini Project Report
Federated Learning Based Face and Eye Blink Recognition: Mini Project Report
BACHELOR OF TECHNOLOGY
in
2024-2025
This is to certify that the Mini Project report on “FEDERATED LEARNING BASED
FACE AND EYE BLINK RECOGNITION” is successfully done by the following students of
Department of Computer Science & Engineering of our college in partial fulfilment of the
requirement for the award of [Link] degree in the year 2024-2025. The results embodied in this
report have not been submitted to any other University for the award of any diploma or degree.
PARVATH REDDY AKSHITH REDDY : 21Q91A05A6
I
DECLARATION
We are the final year students are hereby declaring that the mini project report entitled
“federated learning based face and eye blink recognition” has done by us under the guidance of
Mrs. Sashwati Acharya Assistant Professor, Department of CSE is submitted in the partial
fulfillment of the requirements for the award of the degree of BACHELOR OF TECHNOLOGY
in COMPUTER SCIENCE AND ENGINEERING.
The Results embedded in this project report have not been submitted to any other University or
institute for the award of any degree or diploma.
DATE:
PLACE: Maisammaguda
II
ACKNOWLEDGEMENT
First and foremost, we would like to express our immense gratitude towards our institution
Malla Reddy College of Engineering, which helped us to attain profound technical skills in the
field of Computer Science & Engineering, there by fulfilling our most cherished goal.
We are pleased to thank Sri Ch. Malla Reddy, our Founder, Chairman MRGI, Sri Ch.
Mahender Reddy, Secretary, MRGI for providing this opportunity and support throughout the
course.
It gives us immense pleasure to acknowledge the perennial inspiration of Dr. M. Ashok our
beloved principal for his kind co-operation and encouragement in bringing out this task.
We would like to thank Dr. T. V. Reddy our vice principal, Dr. G. Manjunath HOD, CSE
Department for their inspiration adroit guidance and constructive criticism for successful
completion of our degree.
We would like to thank Mrs. Sashwati Acharya, Assistant Professor our internal guide, for her
valuable suggestions and guidance during the exhibition and completion of this project.
Finally, we avail this opportunity to express our deep gratitude to all staff who have contribute
their valuable assistance and support making our project success.
III
ABSTRACT
In the era of rapidly advancing technology, the need for robust and privacy-
preserving biometric authentication systems has become paramount. Federated
Learning (FL) offers a promising solution by enabling machine learning models
to be trained across multiple decentralized devices while keeping data localized.
This paper presents a novel approach to face and eye blink recognition using
Federated Learning, aimed at enhancing security and privacy in biometric
authentication systems.
Our proposed system leverages the decentralized nature of Federated Learning to
train face and eye blink recognition models across a network of devices without
transferring raw data to a central server. By doing so, it ensures that sensitive
biometric data remains on the user's device, significantly reducing the risk of data
breaches and enhancing user privacy.
The face and eye blink recognition models are trained using convolutional neural
networks (CNNs) that can effectively capture and analyze facial features and
blinking patterns.
IV
TABLE OF CONTENTS
CERTIFICATE i
DECLARATION ii
ACKNOWLEDGEMENT iii
ABSTRACT iv
TABLE OF CONTENTS v
LIST OF ABBREVATIONS ix
CHAPTER 1: INTRODUCTION
1.1 Introduction 2
1.2 Objective 3
1.3 Methodology Adopted 3
CHAPTER 2: LITERATURE SURVEY
2.1 Literature survey 6
CHAPTER 3: SYSTEM ANALYSIS
3.1 Existing System 10
3.2 Drawbacks 10
3.3 Proposed system 11
3.4 Advantages 12
3.5 System Requirements 12
3.6 Feasibility study 13
CHAPTER 4: SYSTEM DESIGN
4.1 System Architecture 16
4.2 Modules 17
4.3 UML Diagrams 17
CHAPTER 5: SYSTEM IMPLEMENTATION
5.1 Python 24
V
5.2 History of python 27
5.3 What is Machine Learning 28
5.4 Modules used in Python 32
CHAPTER 6: TESTING
6.1 Testing 43
6.2 Testing Methodologies 45
CHAPTER 7: RESULTS
7. Screenshots 47
CHAPTER 8: CONCLUSION
8. Conclusion 54
CHAPTER 9: FUTURE ENHANCEMENTS
9. Future Enhancements 56
REFERENCES 57
VI
LIST OF FIGURES
VII
LIST OF SCREENSHOTS
5.5.1 Python 35
7.1 Command prompt 47
7.2 Train model with given face and username 47
7.3 Press ‘face Detection’ button to get below output 48
VIII
LIST OF ABBREVIATIONS
IX
FEDERATED LEARNING BASED FACE AND EYE BLINK RECOGNITION
CHAPTER 1
INTRODUCTION
1.1 INTRODUCTION
proposed approach. The goal of this research is to develop a secure and privacy
preserving face and eye blink recognition system that maintains high accuracy
and reliability.
1.2 OBJECTIVE
The primary objective is to identify and flag fake or fraudulent profiles on the social network.
This includes accounts created with deceptive intentions, such as spreading misinformation,
engaging in scams, or impersonating others. Enhance the safety and security of legitimate
users by reducing their exposure to potentially harmful or malicious fake profiles. This helps
protect users from various risks, including fraud, harassment, and privacy breaches. Trust and
Credibility: Improve the trustworthiness and credibility of the social platform by minimizing
the presence of fake profiles. This fosters a more reliable and trustworthy environment for
users and can lead to increased user satisfaction and engagement. Enhance the quality of
content and interactions on the platform by reducing the influence of fake profiles that may
engage in spam, the dissemination of false information, or the promotion of low-quality
content.
• Data Collection: Gather a diverse and representative dataset that includes both genuine
and fake profiles. Collect information such as user profiles, posts, comments,
connections, and other relevant data from the social network.
• Data Preprocessing: Clean and preprocess the collected data to handle missing values,
remove noise, and standardize formats. Tokenize and vectorize text data for NLP tasks.
Extract relevant features from user profiles, posts, and other relevant information.
• Feature Engineering: Identify and create meaningful features that can help distinguish
between genuine and fake profiles. Features may include linguistic patterns, posting
frequency, connection networks, and other behavioural attributesmjkn.
• Labelling: Annotate the dataset with labels indicating whether each profile is genuine or
fake.
• Model Selection: Choose appropriate machine learning algorithms for the classification
task.
• Training the Model: Train the selected machine learning model on the labelled dataset
using the identified features. Use a portion of the data for training and reserve another
portion for validation and testing.
• NLP Analysis: Apply NLP techniques to analyse textual data associated with profiles,
posts, and comments. Identify linguistic patterns, sentiment analysis, and other relevant
NLP features that can contribute to the model's accuracy.
• Model Evaluation: Evaluate the performance of the trained model using metrics such as
accuracy, precision, recall, F1 score, and area under the ROC curve. Fine-tune the model
based on the evaluation results to improve its performance.
• Cross-Validation: Perform cross-validation to ensure the model's robustness and
generalization to unseen data. Adjust hyperparameters and features based on cross
validation results.
• Deployment: Integrate the trained model into the social network platform for real time or
periodic monitoring. Implement an alert system to notify administrators of potential fake
profiles.
• Continuous Monitoring and Updating: Regularly update the model to adapt to changing
patterns of fake profile creation. Monitor the system's performance over time and make
adjustments as needed.
• Documentation and Reporting: Document the entire methodology, including data sources,
preprocessing steps, feature engineering, model selection, and evaluation metrics. Provide
regular reports on the performance and effectiveness of the fake profile identification
system.
CHAPTER 2
LITERATURE SURVEY
changes in the eye region over time. Recent advances leverage machine learning
and deep learning techniques, such as recurrent neural networks (RNNs) and
CNNs, to accurately model and detect blinking patterns in real-time video
streams.
Federated Learning
Federated Learning (FL) is an emerging machine learning paradigm designed to
address privacy concerns by enabling the training of models across decentralized
devices. In FL, data remains on the user’s device, and only model updates are
shared and aggregated on a central server. This approach significantly reduces the
risk of data breaches and aligns with privacy regulations by ensuring that raw data
never leaves the local device. Federated Learning has been successfully applied
in various domains, including natural language processing, healthcare, and
mobile applications, demonstrating its potential to balance privacy and
performance.
Conclusion
The literature survey underscores the evolution of face and eye blink recognition
technologies, the privacy challenges of centralized biometric systems, and the
promising potential of Federated Learning to address these challenges. By
leveraging FL, the proposed system aims to enhance the security and privacy of
biometric authentication, paving the way for more secure and privacy-preserving
applications in various domains. This survey sets the foundation for the proposed
research, highlighting the need for innovative solutions that balance accuracy,
security, and privacy in biometric authentication systems.
CHAPTER 3
SYSTEM ANALYSIS
Our proposed system aims to address the drawbacks of existing centralized face
and eye blink recognition systems by leveraging Federated Learning (FL) to
ensure data privacy and security. In our system, instead of collecting and storing
biometric data on a central server, we distribute the machine learning model
across multiple decentralized devices, such as smartphones, laptops, and IoT
devices. Each device trains the model locally using its own data and only shares
model updates with a central server, which aggregates these updates to create a
global model. For face recognition, we propose the use of convolutional neural
networks (CNNs) to extract facial features and identify individuals. These CNN
models can be trained locally on each device using images captured by the
device's camera. Similarly, for eye blink recognition, we propose the use of
recurrent neural networks (RNNs) to detect blinking patterns. These RNN
models can also be trained locally on each device using video streams captured
by the device's camera. The Federated Learning framework ensures that
sensitive biometric data, such as facial images and eye blink patterns, never
leaves the user's device, thereby mitigating privacy and security risks. Only
model updates, which are small in size and do not contain raw data, are shared
with the central server. This decentralized approach not only enhances data
privacy but also leverages the computational power of edge devices, leading to
faster and more efficient model training. To evaluate the performance of our
proposed system, we plan to conduct experiments using benchmark datasets for
face and eye blink recognition. We will compare the accuracy and efficiency of
our Federated Learning approach with traditional centralized methods to
demonstrate its effectiveness in maintaining privacy while achieving
comparable or superior performance.
• Monitor - SVGA
• Back-End : Django-ORM
The feasibility of the project is analysed in this phase and business proposal is put forth with
a very general plan for the project and some cost estimates. During system analysis the
feasibility study of the proposed system is to be carried out. This is to ensure that the proposed
system is not a burden to the company. For feasibility analysis, some understanding of the
major requirements for the system is essential.
• ECONOMICAL FEASIBILITY
• TECHNICAL FEASIBILITY
• SOCIAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical requirements
of the system. Any system developed must not have a high demand on the available technical
resources. This will lead to high demands on the available technical resources. This will lead
to high demands being placed on the client. The developed system must have a modest
requirement, as only minimal or null changes are required for implementing this system.
The aspect of study is to check the level of acceptance of the system by the user. This includes
the process of training the user to use the system efficiently. The user must not feel threatened
by the system, instead must accept it as a necessity. The level of acceptance by the users solely
depends on the methods that are employed to educate the user about the system and to make
him familiar with it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
CHAPTER 4
SYSTEM DESIGN
4.2 MODULES
We have implemented this project as REST based web services which consists
of following modules
1) User Login: user can login to system using username and password as
‘admin and admin’.
2) Load Design Patterns Code: after login user will run this module to upload
dataset to application
3) Code to Numeric Vector: all codes will be converted to numeric vector
which will replace each word occurrence with its average frequency.
4) Train ML Algorithms: processed numeric vector will be split into train and
test with a ratio of 80:20. 80% dataset will be input to training algorithms
to train a model and this model will be applied on 20% test data to calculate
accuracy
5) Predict Design Patterns: user will upload test source code files and then
ML algorithms will rank test file to predict accurate design patterns.
The UML is a very important part of developing objects oriented software and the software
development process. The UML uses mostly graphical notations to express the design of
software projects.
A use case diagram in the Unified Modelling Language (UML) is a type of behavioural
diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical
overview of the functionality provided by a system in terms of actors, their goals (represented
as use cases), and any dependencies between those use cases. The main purpose of a use case
diagram is to show what system functions are performed for which actor. Roles of the actors
in the system can be depicted.
A Data Flow Diagram (DFD) is a graphical representation of how data flows within a system
or a process. It is a powerful tool used in systems analysis and design to model and describe
the flow of data through various processes, data stores, and data sources in a structured and
visual way. DFDs provide a clear and concise way to illustrate the inputs, outputs, and the
transformations of data as it moves through the system.
CHAPTER 5
SYSTEM IMPLEMENTATION
5. 1 Python
Below are some facts about Python.
Python is currently the most widely used multi-purpose, high-level programming language.
Python allows programming in Object-Oriented and Procedural paradigms. Python
programs generally are smaller than other programming languages like Java. Programmers
have to type relatively less and indentation requirement of the language, makes them
readable all the time.
Python language is being used by almost all tech-giant companies like – Google, Amazon,
Facebook, Instagram, Dropbox, Uber… etc.
The biggest strength of Python is huge collection of standard library which can be used for
the following –
• Machine Learning
• GUI Applications (like Kivy, Tkinter, PyQt etc. )
• Web frameworks like Django (used by YouTube, Instagram, Dropbox)
• Image processing (like Opencv, Pillow)
• Web scraping (like Scrapy, BeautifulSoup, Selenium)
• Test frameworks
• Multimedia
Advantages of Python
Python downloads with an extensive library and it contain code for various purposes like
regular expressions, documentation-generation, unit-testing, web browsers, threading,
databases, CGI, email, image manipulation, and more. So, we don’t have to write the
complete code for that manually.
2. Extensible
As we have seen earlier, Python can be extended to other languages. You can write some of
your code in languages like C++ or C. This comes in handy, especially in projects.
3. Embeddable
Complimentary to extensibility, Python is embeddable as well. You can put your Python
code in your source code of a different language, like C++. This lets us add scripting
capabilities to our code in the other language.
4. Improved Productivity
The language’s simplicity and extensive libraries rende programmers more productive than
languages like Java and C++ do. Also, the fact that you need to write less and get more
things done.
5. IOT Opportunities
Since Python forms the basis of new platforms like Raspberry Pi, it finds the future bright for
the Internet Of Things. This is a way to connect the language with the real world.
When working with Java, you may have to create a class to print ‘Hello World’. But in
Python, just a print statement will do. It is also quite easy to learn, understand, and code.
This is why when people pick up Python, they have a hard time adjusting to other more
verbose languages like Java.
7. Readable
Because it is not such a verbose language, reading Python is much like reading English.
This is the reason why it is so easy to learn, understand, and code. It also does not need
curly braces to define blocks, and indentation is mandatory. This further aids the readability
of the code.
8. Object-Oriented
This language supports both the procedural and object-oriented programming paradigms.
While functions help us with code reusability, classes and objects let us model the real
world. A class allows the encapsulation of data and functions into one.
Like we said earlier, Python is freely available. But not only can you download Python for
free, but you can also download its source code, make changes to it, and even distribute
it. It downloads with an extensive collection of libraries to help you with your tasks.
10. Portable
When you code your project in a language like C++, you may need to make some changes
to it if you want to run it on another platform. But it isn’t the same with Python. Here, you
need to code only once, and you can run it anywhere. This is called Write Once Run
Anywhere (WORA). However, you need to be careful enough not to include any system
dependent features.
11. Interpreted
Lastly, we will say that it is an interpreted language. Since statements are executed one by
one, debugging is easier than in compiled languages.
Disadvantages of Python
So far, we’ve seen why Python is a great choice for your project. But if you choose it, you
should be aware of its consequences as well. Let’s now see the downsides of choosing
Python over another language.
1. Speed Limitations
We have seen that Python code is executed line by line. But since Python is interpreted, it
often results in slow execution. This, however, isn’t a problem unless speed is a focal point
for the project. In other words, unless high speed is a requirement, the benefits offered by
Python are enough to distract us from its speed limitations.
2. Weak in Mobile Computing and Browsers
While it serves as an excellent server-side language, Python is much rarely seen on the
client-side. Besides that, it is rarely ever used to implement smartphone-based applications.
One such application is called Carbonnelle.
The reason it is not so famous despite the existence python is that it isn’t that secure.
3. Design Restrictions
As you know, Python is dynamically-typed. This means that you don’t need to declare the
type of variable while writing the code. It uses duck-typing. But wait, what’s that? Well, it
just means that if it looks like a duck, it must be a duck. While this is easy on the
programmers during coding, it can raise run-time errors.
4. Underdeveloped Database Access Layers
No, we’re not kidding. Python’s simplicity can indeed be a problem. Take my example. I
don’t do Java, I’m more of a Python person. To me, its syntax is so simple that the verbosity
of Java code seems unnecessary.
This was all about the Advantages and Disadvantages of Python Programming Language.
What do the alphabet and the programming language Python have in common? Right, both
start with ABC. If we are talking about ABC in the Python context, it's clear that the
programming language ABC is meant. ABC is a general-purpose programming language
and programming environment, which had been developed in the Netherlands, Amsterdam,
at the CWI (Centrum Wiskunde &Informatica). The greatest achievement of ABC was to
influence the design of [Link] was conceptualized in the late 1980s. Guido van
Rossum worked that time in a project at the CWI, called Amoeba, a distributed operating
system. In an interview with Bill Venners1, Guido van Rossum said: "In the early 1980s, I
worked as an implementer on a team building a language called ABC at Centrum voor
Wiskunde en Informatica (CWI). I don't know how well people know ABC's influence on
Python. I try to mention ABC's influence because I'm indebted to everything I learned
during that project and to the people who worked on it."Later on in the same Interview,
Guido van Rossum continued: "I remembered all my experience and some of my frustration
with ABC. I decided to try to design a simple scripting language that possessed some of
ABC's better properties, but without its problems. So I started typing. I created a simple
virtual machine, a simple parser, and a simple runtime. I made my own version of the
various ABC parts that I liked. I created a basic syntax, used indentation for statement
grouping instead of curly braces or begin-end blocks, and developed a small number of
powerful data types: a hash table (or dictionary, as we call it), a list, strings, and numbers."
Machine Learning is the most rapidly growing technology and according to researchers we
are in the golden year of AI and ML. It is used to solve many real-world complex problems
which cannot be solved with traditional approach. Following are some real-world
applications of ML −
• Emotion analysis
• Sentiment analysis
• Speech synthesis
• Speech recognition
• Customer segmentation
• Object recognition
• Fraud detection
• Fraud prevention
Purpose
We demonstrated that our approach enables successful segmentation of intra-retinal
layers—even with low-quality images containing speckle noise, low contrast, and different
intensity ranges throughout—with the assistance of the ANIS feature.
Python
Python is an interpreted high-level programming language for general-purpose
programming. Created by Guido van Rossum and first released in 1991, Python has a
design philosophy that emphasizes code readability, notably using significant whitespace.
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to
compile your program before executing it. This is similar to PERL and PHP.
Python is Interactive − you can actually sit at a Python prompt and interact with the interpreter
directly to write your programs.
Python also acknowledges that speed of development is important. Readable and terse code
is part of this, and so is access to powerful constructs that avoid tedious repetition of code.
Maintainability also ties into this may be an all but useless metric, but it does say something
about how much code you have to scan, read and/or understand to troubleshoot problems
or tweak behaviors. This speed of development, the ease with which a programmer of other
languages can pick up basic Python skills and the huge standard library is key to another
area where Python excels. All its tools have been quick to implement, saved a lot of time,
and several of them have later been patched and updated by people with no Python
background - without breaking.
Tensor flow
TensorFlow is a free and open-source software library for dataflow and differentiable
programming across a range of tasks. It is a symbolic math library, and is also used for
machine learning applications such as neural networks. It is used for both research and
production at Google.
TensorFlow was developed by the Google Brain team for internal Google use. It was released
under the Apache 2.0 open-source license on November 9, 2015.
Numpy
Numpy is a general-purpose array-processing package. It provides a high-performance
multidimensional array object, and tools for working with these arrays.
It is the fundamental package for scientific computing with Python. It contains various
features including these important ones:
Besides its obvious scientific uses, Numpy can also be used as an efficient
multidimensional container of generic data. Arbitrary data-types can be defined using
Numpy which allows Numpy to seamlessly and speedily integrate with a wide variety of
databases.
Pandas
Pandas is an open-source Python Library providing high-performance data manipulation
and analysis tool using its powerful data structures. Python was majorly used for data
munging and preparation. It had very little contribution towards data analysis. Pandas
solved this problem. Using Pandas, we can accomplish five typical steps in the processing
and analysis of data, regardless of the origin of data load, prepare, manipulate, model, and
analyze. Python with Pandas is used in a wide range of fields including academic and
commercial domains including finance, economics, Statistics, analytics, etc.
Matplotlib
Matplotlib is a Python 2D plotting library which produces publication quality figures in a
variety of hardcopy formats and interactive environments across platforms. Matplotlib can
be used in Python scripts, the Python and IPython shells, the Jupyter Notebook, web
application servers, and four graphical user interface toolkits. Matplotlib tries to make easy
things easy and hard things possible. You can generate plots, histograms, power spectra,
bar charts, error charts, scatter plots, etc., with just a few lines of code. For examples, see
the sample plots and thumbnail gallery.
For simple plotting the pyplot module provides a MATLAB-like interface, particularly when
combined with IPython. For the power user, you have full control of line styles, font
properties, axes properties, etc, via an object oriented interface or via a set of functions
familiar to MATLAB users.
Scikit – learn
Scikit-learn provides a range of supervised and unsupervised learning algorithms via a
consistent interface in Python. It is licensed under a permissive simplified BSD license and
is distributed under many Linux distributions, encouraging academic and commercial use.
Python
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to
compile your program before executing it. This is similar to PERL and PHP.
Python is Interactive − you can actually sit at a Python prompt and interact with the interpreter
directly to write your programs.
Python also acknowledges that speed of development is important. Readable and terse code
is part of this, and so is access to powerful constructs that avoid tedious repetition of code.
Maintainability also ties into this may be an all but useless metric, but it does say something
about how much code you have to scan, read and/or understand to troubleshoot problems
or tweak behaviors. This speed of development, the ease with which a programmer of other
languages can pick up basic Python skills and the huge standard library is key to another
area where Python excels. All its tools have been quick to implement, saved a lot of time,
and several of them have later been patched and updated by people with no Python
background - without breaking.
There have been several updates in the Python version over the years. The question is
how to install Python? It might be confusing for the beginner who is willing to start
learning Python but this tutorial will solve your query. The latest or the newest version of
Python is version
3.7.4 or in other words, it is Python 3.
Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices. Before
you start with the installation process of Python. First, you need to know about your
System Requirements. Based on your system type i.e. operating system and based
processor, you must download the python version. My system type is a Windows 64-bit
operating system. So the steps below are to install python version 3.7.4 on Windows 7
device or to install Python 3. Download the Python Cheatsheet [Link] steps on how to
install Python on Windows 10, 8 and 7 are divided into 4 parts to help understand better.
Download the Correct version into the system
Step 1: Go to the official site to download and install python using Google Chrome or any
other web browser. OR Click on the following link: [Link]
(a)
Now, check for the latest and the correct version for your operating system.
(b)
Step 3: You can either select the Download Python for windows 3.7.4 button in Yellow
Color or you can scroll further down and click on download withrespective to their
version. Here, we are downloading the most recent python version for windows 3.7.4
(c)
Step 4: Scroll down the page until you find the Files option.
Step 5: Here you see a different version of python along with the operating system.
(d)
To download Windows 32-bit python, you can select any one from the three options:
Windows x86 embeddable zip file, Windows x86 executable installer or Windows x86
web based installer.
To download Windows 64-bit python, you can select any one from the three options:
Windows x86-64 embeddable zip file, Windows x86-64 executable installer or Windows
x86- 64 web based installer.
Here we will install Windows x86-64 web-based installer. Here your first part regarding
which version of python is to be downloaded is completed. Now we move ahead with the
second part in installing python i.e. Installation
Note: To know the changes or updates that are made in the version you can click on the
Release Note Option.
Installation of Python
Step 1: Go to Download and Open the downloaded python version to carry out the installation
process.
(e)
Step 2: Before you click on Install Now, Make sure to put a tick on Add Python 3.7 to PATH.
(f)
Step 3: Click on Install NOW After the installation is successful. Click on Close.
(g)
With these above three steps on python installation, you have successfully and correctly
installed Python. Now is the time to verify the installation. Note: The installation
process might take a couple of minutes.
(h)
(i)
(j)
Step 3: Click on IDLE (Python 3.7 64-bit) and launch the program
Step 4: To go ahead with working in IDLE you must first save the file. Click on File > Click
on Save
(k)
Step 5: Name the file and save as type should be Python files. Click on SAVE. Here I have
named the files as Hey World. Step 6: Now for e.g. enter print.
CHAPTER 6
TESTING
6.1 TESTING
The purpose of testing is to discover errors. Testing is the process of trying to discover
every conceivable fault or weakness in a work product. It provides a way to check the
functionality of components, sub assemblies, assemblies and/or a finished product It is the
process of exercising software with the intent of ensuring that the Software system meets
its requirements and user expectations and does not fail in an unacceptable manner. There
are various types of test. Each test type addresses a specific testing requirement.
TYPES OF TESTS
Unit testing
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual software
units of the application .it is done after the completion of an individual unit before
integration. This is a structural testing, that relies on knowledge of its construction and is
invasive. Unit tests perform basic tests at component level and test a specific business
process, application, and/or system configuration. Unit tests ensure that each unique path
of a business process performs accurately to the documented specifications and contains
clearly defined inputs and expected results.
Integration testing
Integration tests are designed to test integrated software components to determine if they
actually run as one program. Testing is event driven and is more concerned with the basic
outcome of screens or fields. Integration tests demonstrate that although the components
were individually satisfaction, as shown by successfully unit testing, the combination of
components is correct and consistent. Integration testing is specifically aimed at exposing
the problems that arise from the combination of components.
Functional testing
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user
manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures: interfacing systems or procedures must be invoked.
the software under test is treated, as a black box . you cannot “see” into it. The test provides inputs
and responds to outputs without considering how the software works.
Unit testing is usually conducted as part of a combined code and unit test phase
of the software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.
Test objectives
Integration Testing
Software integration testing is the incremental integration testing of two or more
integrated software components on a single platform to produce failures caused by interface
defects.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
CHAPTER 7
RESULTS
SCREENSHOTS
Fig 7.5: Face registration completed and now click on Eye blink
Fig 7.7: Eye blink training completed and click on Federated update model
to server button
Fig 7.12: U can see both face and eye blink pattern recognized
CHAPTER 8
CONCLUSION
CONCLUSION
In conclusion, the study on Federated Learning (FL) based face and eye blink recognition
demonstrates the effectiveness of FL in maintaining high recognition accuracy while preserving
user privacy. The decentralized nature of FL allows for training robust models without
centralizing sensitive biometric data, significantly reducing privacy risks and ensuring
compliance with privacy regulations. The study shows that FL can achieve competitive
performance metrics comparable to traditional methods, highlighting its potential for largescale
deployment across various devices. However, challenges such as communication overhead,
device heterogeneity, and security vulnerabilities remain. Future research should focus on
optimizing communication protocols, addressing device variability, and developing advanced
security measures to protect against attacks. Additionally, extending FL to incorporate other
biometric modalities and conducting real-world deployments will be crucial in fully realizing
its benefits. Overall, this research underscores the promising potential of FL in creating secure
and efficient biometric recognition systems.
CHAPTER 9
FUTURE ENHANCEMENTS
FUTURE ENHANCEMENTS
Here are some potential future enhancements for federated-based face and eye blink
recognition:
2. Edge AI and IoT integration: Expand federated learning to edge devices, like
smart glasses or wearables, for real-time face and eye blink recognition.
3. Multi-modal fusion: Combine face and eye blink data with other modalities, like
voice or gesture recognition, for enhanced biometric verification.
These enhancements will further improve the accuracy, security, and applicability of
federated-based face and eye blink recognition systems.
REFERENCES
[1] McMahan, B., Moore, E., Ramage, D., Hampson, S., & Arcas, B. A. y. (2017).
Communication-efficient learning of deep networks from decentralized data. In Artificial
Intelligence and Statistics (pp. 1273-1282). PMLR.
[2] Kairouz, P., McMahan, H. B., Alistarh, D., et al. (2021). Advances and open problems
in federated learning. Foundations and Trends® in Machine Learning, 14(1–2), 1-210.
[3] Bonawitz, K., Eichner, H., Grieskamp, W., Huba, D., Ingerman, A., Ivanov, V., Kiddon,
C., Konečný, J., Mazzocchi, S., McMahan, H. B., Van Overveldt, T., Petrou, D., Ramage, D.,
& Roselander, J. (2019). Towards federated learning at scale: System design. Proceedings of
the 2nd SysML Conference.
[4] Rieke, N., Hancox, J., Li, W., Milletari, F., Roth, H. R., Albarqouni, S., Bakas, S., Galtier,
M. N., Landman, B. A., Maier-Hein, K., Ourselin, S., Sheller, M., Summers, R. M., Trask,
A., Xu, D., & Cardoso, M. J. (2020). The future of digital health with federated learning. npj
Digital Medicine, 3(1), 1-7.
[5] Mohammadi, M., Al-Fuqaha, A., Sorour, S., & Guizani, M. (2018). Deep learning for
IoT big data and streaming analytics: A survey. IEEE Communications Surveys & Tutorials,
20(4),
2923-2960.
[6] Zhao, Y., Li, M., Lai, T., Suda, N., Civin, D., & Chandra, V. (2018). Federated learning
with non-IID data. arXiv preprint arXiv:1806.00582.
[7] Acar, D. A., Zhao, J., Matas, R., Mattina, M., Whatmough, P., & Saligrama, V. (2021).
Federated learning based on dynamic regularization. In International Conference on Learning
Representations.
[8] Kaissis, G., Makowski, M. R., Rückert, D., & Braren, R. F. (2020). Secure, privacy
preserving and federated machine learning in medical imaging. Nature Machine Intelligence,
2(6), 305-311.
[9] He, C., Anwar, S., & Hong, D. S. (2020). Federated deep reinforcement learning for
Internet of Things with decentralized cooperative edge caching. IEEE Internet of Things
Journal, 7(10),
9441-9455.
[10] Nguyen, D. C., Ding, M., Pathirana, P. N., & Seneviratne, A. (2021). Federated learning
for Internet of Things: A comprehensive survey. IEEE Communications Surveys & Tutorials,
23(2), 1622-1658.
[11] Rawls, S., & MacMahan, B. (2020). Federated learning systems: Design and engineering
challenges. arXiv preprint arXiv:2011.02135.
[12] Lu, Z., Li, H., Liu, D., & Yang, Y. (2020). Privacy-preserving asynchronous federated
learning mechanisms for edge network computing. IEEE Access, 8, 48970-48981.
[13] Bonomi, S., Horne, B., Zhang, Y., & Montgomery, J. (2019). A comparison of face
recognition algorithms in unconstrained environments. arXiv preprint arXiv:1904.03156.
[14] Soukupová, T., & Čech, J. (2016). Real-time eye blink detection using facial landmarks.
21st Computer Vision Winter Workshop.