Mini Project Report (Main)
Mini Project Report (Main)
Mini Project Report (Main)
REPORT ON
Submitted By:
1. Pravin Rohidas Padul (233236)
2. Vikas Sakhahari Bargal (233347)
Submitted To
At
ASM‟s Institute of Business Management and Research,
Chinchwad, Pune – 19
Audyogik Shikshan Mandal‟s INSTITUE OF BUSINESS MANAGEMENT AND
RESEARCH, MCA, PUNE
(Society Regd. No. Maharashtra/ 1330/ Pune 83; Public Trust No. F-2451/ Pune 83)
Approved by AICTE, Govt. of India & Affiliated to Savitribai Phule Pune University
CERTIFICATE
By
1. Pravin R. Padul (233236)
2. Vikas S. Bargal (233347)
Session 2023-2024
DECLARATION
Date:
(MCA I Semester)
Department of Master of Computer Application,
ASM’s Institute of Business Management and Research, MCA,
Chinchwad
Audyogik Shikshan Mandal‟s INSTITUE OF BUSINESS MANAGEMENT AND
RESEARCH, MCA, PUNE
(Society Regd. No. Maharashtra/ 1330/ Pune 83; Public Trust No. F-2451/ Pune 83)
Approved by AICTE, Govt. of India & Affiliated to Savitribai Phule Pune University
EXAMINER CERTIFICATE
“Project Name”
of MCA, semester - I
is examined by the following examiners on date / /
2023.
HOD
(MCA Department)
this effort. Honestly speaking, this project has turned me into a debtor. First and
foremost, I feel indebted to my guide and all the faculty members of Department of
Finally, I would like to extend my thanks to all those who have contributed, directly
Python, with its extensive libraries and frameworks for machine learning and computer vision,
provides an excellent platform to develop face recognition systems. One such popular library is
OpenCV, which offers powerful tools for image processing and face detection.
2.1. Face Detection: The system will be capable of detecting human faces accurately from images or
video streams captured through connected cameras.
2.2. Face Recognition: Utilizing face recognition algorithms, the system will identify known
individuals based on pre-defined facial features stored in a database.
2.3. Attendance Logging: Upon successful face recognition, the system will log the attendance of
recognized individuals, recording relevant information such as time and date.
2.4. Graphical User Interface (GUI): The system will provide a user-friendly GUI developed using
Python Tkinter, allowing users to interact with the system easily.
2.5. Database Management: Attendance records will be stored in a database for future reference and
analysis, facilitating efficient data management.
2.6. Integration: While the system will primarily function as a standalone application, it will be
designed to integrate with existing attendance management systems or other relevant software if
required.
2.7. Platform Compatibility: The system will be developed to run on platforms supporting Python
and Tkinter, ensuring compatibility with a wide range of operating systems.
2.10. Maintenance and Support: The system will include provisions for maintenance and support to
address any issues, bugs, or updates required post-deployment, ensuring smooth operation over time.
Overall, the scope of the Face Recognition Attendance System encompasses the development of a
robust, user-friendly application that automates the attendance tracking process using face
recognition technology, while providing flexibility, scalability, and ease of use for various
organizational settings.
Refer to user documentation provided in the appendices for instructions on how to interact with the
system to mark attendance.
Pay attention to user interface mockups to understand the visual layout and navigation of the system.
Seek assistance from administrators or instructors if further clarification is needed on using the
system effectively.
Developers:
Dive into the technical details provided in sections discussing system architecture, interfaces, and
implementation constraints.
Explore sample GUI mockups and design considerations to gain insights into developing user-
friendly interfaces with Tkinter.
Review references and external resources cited in the document for further exploration of face
recognition algorithms, Python libraries, and best practices in software development.
System Integrators:
Assess compatibility and integration requirements outlined in the SRS document to understand how
the system can be integrated with existing infrastructure.
Collaborate with developers to ensure seamless integration of the system with other software
solutions and data management systems.
Refer to sections discussing software and hardware interfaces for guidance on interfacing the system
with external components.
By tailoring their reading and exploration based on their roles and responsibilities, the intended
audience can gain valuable insights into the Face Recognition Attendance System and effectively
utilize or contribute to its implementation and deployment.
2.Proposed System
2.1Literature Survey
2. System Overview
Components:
Face Detection: Utilizes OpenCV for detecting human faces in images or video streams.
Face Recognition: Uses the face_recognition library built on top of dlib for recognizing faces based
on pre-stored face encodings.
Database Management: Stores attendance records with timestamps in a local database or CSV file.
3. Functionalities
Automated Face Detection: Detects and locates human faces in real-time or from images.
Face Encoding: Computes facial feature vectors for identified faces.
Face Recognition: Compares computed face encodings with stored encodings to recognize
individuals.
Attendance Logging: Records attendance by capturing timestamps when a recognized face is
detected.
4. Limitations
Performance Issues: The system may experience delays or lag during face detection and recognition,
especially with a large number of users.
Environmental Factors: Performance may be affected by varying lighting conditions, angles, and
facial expressions.
Security Concerns: Potential risks of unauthorized access or spoofing attacks, compromising the
system's integrity.
Scalability: Difficulties in scaling the system to accommodate a growing number of users without
affecting performance.
5. Need for Improvement
Enhanced Performance: Optimize algorithms and hardware resources to improve speed and
efficiency.
Robustness: Implement advanced face recognition techniques to handle varying environmental
conditions and reduce false positives/negatives.
Security Enhancements: Integrate additional security measures like liveness detection to prevent
spoofing attacks.
Scalability: Upgrade the system architecture to support a larger user base and higher concurrency.
6. Conclusion
While the existing face recognition attendance system offers automation and accuracy benefits, there
are several areas that require improvement to enhance performance, security, and scalability.
Addressing these limitations will enable the system to deliver reliable and efficient attendance
tracking solutions for organizations.
7. Recommendations
Conduct a thorough analysis of system performance and identify bottlenecks.
Explore advanced face recognition algorithms and techniques to improve accuracy and reliability.
Invest in upgrading hardware infrastructure to support system scalability and high concurrency.
Implement security best practices to mitigate risks associated with unauthorized access and spoofing
attacks.
2. System Overview
Components:
Enhanced Face Detection: Utilizes advanced face detection algorithms to improve accuracy and
speed, even under challenging environmental conditions.
Advanced Face Recognition: Integrates deep learning-based face recognition models for more robust
and reliable face identification.
Liveness Detection: Incorporates liveness detection techniques to ensure the authenticity of detected
faces and prevent spoofing attacks.
Cloud-Based Database: Utilizes a secure and scalable cloud database for storing attendance records,
allowing easy access and management.
3. Key Features
Real-Time Attendance Tracking: Enables real-time monitoring and logging of attendance with
timestamps.
Explore integration with other systems like Human Resource Management (HRM) for seamless data
exchange and improved workflow.
2. Technical Feasibility
Assessment Criteria:
Technology Stack: The proposed system leverages Python, OpenCV, deep learning models, and
cloud-based infrastructure, which are well-established and widely adopted technologies.
Hardware Requirements: The system requires standard hardware components, including cameras for
face detection and recognition, and servers for cloud-based storage and processing.
Integration Capability: The system can be integrated with existing databases and HRM systems,
facilitating seamless data exchange and workflow automation.
Conclusion: The proposed system demonstrates high technical feasibility with the availability of
required technologies and integration capabilities.
3. Operational Feasibility
Assessment Criteria:
User Acceptance: The system offers a user-friendly interface for administrators and users, requiring
minimal training and support.
Scalability: The cloud-based architecture allows easy scalability to accommodate a growing number
of users and increased workload.
Maintenance and Support: The system's modular design simplifies maintenance tasks and facilitates
updates and enhancements.
Conclusion: The proposed system is operationally feasible, with features designed to streamline
operations and meet user needs effectively.
4. Economic Feasibility
Assessment Criteria:
Cost Estimation: Initial and recurring costs for hardware, software licenses, cloud services, and
maintenance are evaluated.
Return on Investment (ROI): Potential savings from automated attendance tracking and reduced
manual efforts are considered to determine the ROI.
Cost-Benefit Analysis: A comprehensive cost-benefit analysis is conducted to assess the economic
viability of the proposed system.
Conclusion: While there may be significant initial investment costs, the long-term benefits, including
operational efficiency and reduced administrative overhead, justify the economic feasibility of the
proposed system.
5. Schedule Feasibility
Assessment Criteria:
Project Timeline: A realistic project timeline is established, considering the phases of requirement
analysis, design, development, testing, deployment, and training.
Resource Availability: Availability of skilled resources and expertise required for system
development and implementation is assessed.
Risk Management: Potential risks, such as delays in development or unforeseen technical challenges,
are identified, and mitigation strategies are planned.
Conclusion: The proposed system's implementation within the projected timeline appears feasible,
given the availability of resources and proper risk management strategies.
6. Conclusion
The feasibility study indicates that the proposed face recognition attendance system is technically
sound, operationally efficient, economically viable, and can be implemented within a realistic
schedule. With careful planning, resource allocation, and risk management, the proposed system has
the potential to deliver significant benefits in terms of accuracy, security, and efficiency, making it a
feasible solution for organizations seeking to modernize their attendance tracking processes.
7. Recommendations
Detailed Cost Analysis: Conduct a detailed cost analysis.
Functional Requirements
User Registration and Management
Ability to register new users (employees/students) with their personal details and photos.
User roles and permissions management for administrators and regular users.
Face Detection
Real-time face detection from video streams or uploaded images.
Support for detecting multiple faces simultaneously.
Face Recognition
Identification of registered users based on facial features.
Verification of user identity against stored face encodings.
Handling of variations in lighting, angles, and facial expressions.
Attendance Tracking
Automated logging of attendance with timestamps upon successful face recognition.
Integration with existing attendance management systems for data synchronization.
Reporting and Analytics
Generation of attendance reports with daily, weekly, and monthly summaries.
Visualization of attendance trends and patterns through graphs and charts.
Security Features
Implementation of liveness detection to prevent spoofing attacks.
Multi-factor authentication methods for enhanced security.
Compatibility with standard database systems like MySQL, PostgreSQL for data storage.
Compliance
Adherence to industry standards and best practices for software development and data security.
Documentation and reporting features to facilitate compliance audits.
Manual Attendance Adjustment: Allows administrators to manually adjust attendance records when
necessary.
Data Synchronization: Integrates with existing attendance management systems to synchronize
attendance data.
5. Reporting and Analytics Module
Attendance Reports: Generates detailed reports with daily, weekly, and monthly attendance
summaries.
Visual Analytics: Provides visualizations like graphs and charts to analyze attendance trends and
patterns.
Export Functionality: Enables users to export reports in various formats like PDF, Excel for further
analysis.
6. Security Module
Liveness Detection: Implements liveness detection techniques to ensure the authenticity of detected
faces and prevent spoofing attacks.
Data Encryption: Encrypts sensitive data stored in the database to maintain confidentiality and
security.
Access Control: Defines user roles and permissions to control access to system functionalities and
data.
7. Integration Module
API Development: Develops APIs to facilitate integration with existing HRM systems, attendance
management software, and databases.
Database Integration: Integrates with standard database systems like MySQL, PostgreSQL for data
storage and retrieval.
1. Unit Testing
Objective: To validate the individual components/modules of the system.
Test Procedures:
Test Procedures:
Test API integrations with HRM systems and attendance management software.
Validate data synchronization and consistency across modules.
Verify error handling and recovery mechanisms during data exchange.
3. System Testing
Objective: To evaluate the system as a whole to ensure it meets the specified requirements.
Test Procedures:
Conduct end-to-end testing of user registration, face detection, recognition, attendance logging, and
reporting functionalities.
Validate system performance under normal and peak load conditions.
Test security features, including liveness detection, data encryption, and access control.
4. Acceptance Testing
Objective: To ensure the system meets the user's requirements and is ready for deployment.
Test Procedures:
Test Procedures:
Conduct load testing to assess the system's stability and response time with multiple concurrent
users.
Perform stress testing to identify the system's breaking point and determine its scalability limits.
Monitor system resources, such as CPU, memory, and network utilization, during testing to identify
any bottlenecks or performance issues.
6. Security Testing
Objective: To identify and mitigate potential security vulnerabilities and risks.
Test Procedures:
class Face_Recognisation_System:
def __init__(self,root):
self.root=root
self.root.geometry("1280x600+0+0") #1280 X 600 is screen resolution and for start from
corner used 0+0
self.root.title("Face Recognization System")
#First Image
img=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\FACE2.jpg")
img=img.resize((426,130),Image.LANCZOS)
self.photoimg=ImageTk.PhotoImage(img)
f_lbl=Label(self.root,image=self.photoimg)
f_lbl.place(x=0,y=0,width=426,height=130)
#Second Image
img1=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\FACE2.jpg")
img1=img1.resize((426,130),Image.LANCZOS)
self.photoimg1=ImageTk.PhotoImage(img1)
f_lbl=Label(self.root,image=self.photoimg1)
f_lbl.place(x=426,y=0,width=426,height=130)
#Third Image
img2=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\FACE2.jpg")
img2=img2.resize((426,130),Image.LANCZOS)
self.photoimg2=ImageTk.PhotoImage(img2)
f_lbl=Label(self.root,image=self.photoimg2)
f_lbl.place(x=852,y=0,width=426,height=130)
#Background Image
img3=Image.open(r"C:\Users\user\Desktop\Face Reconization
System\Images\Background.jpg")
img3=img3.resize((1280,600),Image.LANCZOS)
self.photoimg3=ImageTk.PhotoImage(img3)
bg_img=Label(self.root,image=self.photoimg3)
bg_img.place(x=0,y=130,width=1280,height=470)
#Student Button
img4=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\student-
button.jpg")
img4=img4.resize((150,150),Image.LANCZOS)
self.photoimg4=ImageTk.PhotoImage(img4)
b1=Button(bg_img,image=self.photoimg4,command=self.login,cursor="hand2")
b1.place(x=80,y=60,width=150,height=150)
b1=Button(bg_img,text="Student Details",command=self.login,cursor="hand2",font=("times
new roman",12,"bold"),bg="darkblue",fg="white")
b1.place(x=80,y=200,width=150,height=25)
b1=Button(bg_img,image=self.photoimg5,cursor="hand2")
b1.place(x=350,y=60,width=150,height=150)
b1=Button(bg_img,image=self.photoimg6,cursor="hand2")
b1.place(x=620,y=60,width=150,height=150)
b1=Button(bg_img,text="Attendance",cursor="hand2",font=("times new
roman",12,"bold"),bg="darkblue",fg="white")
b1.place(x=620,y=200,width=150,height=25)
#Help Button
img7=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\help-button.jpg")
img7=img7.resize((150,150),Image.LANCZOS)
self.photoimg7=ImageTk.PhotoImage(img7)
b1=Button(bg_img,image=self.photoimg7,cursor="hand2")
b1.place(x=890,y=60,width=150,height=150)
b1=Button(bg_img,text="Help",cursor="hand2",font=("times new
roman",12,"bold"),bg="darkblue",fg="white")
b1.place(x=890,y=200,width=150,height=25)
#Train images Button
img8=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\train-
button.png")
img8=img8.resize((150,150),Image.LANCZOS)
self.photoimg8=ImageTk.PhotoImage(img8)
b1=Button(bg_img,image=self.photoimg8,cursor="hand2",command=self.train_classifier)
b1.place(x=80,y=300,width=150,height=150)
b1=Button(bg_img,text="Train
Face",cursor="hand2",command=self.train_classifier,font=("times new
roman",12,"bold"),bg="darkblue",fg="white")
b1.place(x=80,y=425,width=150,height=25)
#Photos Button
img9=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\photo-
button.jpg")
img9=img9.resize((150,150),Image.LANCZOS)
self.photoimg9=ImageTk.PhotoImage(img9)
b1=Button(bg_img,image=self.photoimg9,cursor="hand2",command=self.open_img)
b1.place(x=350,y=300,width=150,height=150)
b1=Button(bg_img,text="Photos",cursor="hand2",command=self.open_img,font=("times new
roman",12,"bold"),bg="darkblue",fg="white")
b1.place(x=350,y=425,width=150,height=25)
#Exit Button
img10=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\exit-
button.jpg")
img10=img10.resize((150,150),Image.LANCZOS)
self.photoimg10=ImageTk.PhotoImage(img10)
b1=Button(bg_img,image=self.photoimg10,cursor="hand2")
b1.place(x=890,y=300,width=150,height=150)
b1=Button(bg_img,text="Exit",cursor="hand2",font=("times new
roman",12,"bold"),bg="darkblue",fg="white")
b1.place(x=890,y=425,width=150,height=25)
#=====================open Images=====================
def open_img(self):
os.startfile("data")
#======================Function Button=============
#===========background image========
login_img=Image.open(r"C:\Users\user\Desktop\Face Reconization System\Images\login-
bg.jpg")
login_img=login_img.resize((1280,600),Image.LANCZOS)
self.photologin_img=ImageTk.PhotoImage(login_img)
bg_img=Label(self.root,image=self.photologin_img)
bg_img.place(x=0,y=0,width=1280,height=600)
login_frame=Frame(bg_img,bd=2, bg="black")
login_frame.place(x=500,y=100,width=300, height=420)
password_label=Label(login_frame,text="Password",font=("times new
roman",16,"bold"),bg="black",fg="red")
password_label.place(x=10,y=200)
self.password_entry=ttk.Entry(login_frame,show="•",font=15)
self.password_entry.place(x=120,y=200)
#login button
b1=Button(login_frame,text="Login",command=self.validate_login,cursor="hand2",font=("times
new roman",16,"bold"),bg="green",fg="yellow")
b1.place(x=120,y=300,width=80,height=40)
#=================validate Login==============
def validate_login(self):
username = self.username_entry.get()
password = self.password_entry.get()
cursor = conn.cursor()
# Fetch result
result = cursor.fetchone()
if result:
b1=Button(self.root,text="Welcome
Admin",command=self.student_details,cursor="hand2",font=("times new
roman",16,"bold"),bg="green",fg="yellow")
b1.place(x=560,y=470,width=200,height=40)
else:
messagebox.showerror("Error", "Please Enter valid Credentials")
except mysql.connector.Error as e:
messagebox.showerror("Error", f"Error connecting to MySQL database: {e}")
#=============Train Photos=============
def train_classifier(self):
data_dir=("data")
path=[os.path.join(data_dir,file) for file in os.listdir(data_dir)] # list comprehensive
faces=[]
ids=[]
faces.append(imageNp)
ids.append(id)
cv2.imshow("Training",imageNp)
cv2.waitKey(1)==13
ids=np.array(ids)
Accuracy Concerns: Face recognition algorithms may encounter challenges in accurately identifying
individuals under varying conditions, such as poor lighting, occlusions, or facial expressions, leading
to potential false positives or false negatives.
Hardware Dependency: The system's performance and reliability may be influenced by the quality
and capability of the hardware components, including cameras and servers, which may require
periodic upgrades or maintenance.
Security Risks: While biometric authentication enhances security, it also introduces new risks, such
as biometric data theft or spoofing attacks, which need robust security measures like liveness
detection and encryption to mitigate.
User Privacy: Collecting and storing biometric data raises privacy concerns, requiring compliance
with data protection regulations and transparent communication with users about data usage and
storage practices.
Integration Challenges: Integrating the system with existing HRM systems or databases may pose
technical challenges, such as data synchronization issues or compatibility issues with different
platforms or versions.
Conclusion
The face recognition attendance system presents a modern and efficient solution for automating
attendance tracking processes, offering benefits in terms of accuracy, efficiency, and security.
However, it is crucial to recognize and address the system's limitations to ensure its successful
implementation and adoption.
To maximize the system's potential and minimize its limitations:
Continuous Improvement: Regularly update and optimize algorithms, hardware, and security
measures to enhance performance, accuracy, and reliability.
User Education: Educate users about the system's capabilities, limitations, and best practices to
ensure proper usage and minimize errors or misunderstandings.
Compliance and Ethics: Prioritize data privacy and security, adhere to relevant regulations, and
uphold ethical standards in collecting, storing, and processing biometric data.
4.2 Bibliography:
OpenCV Documentation.
Retrieved from https://docs.opencv.org/
face_recognition GitHub Repository Retrieved from https://github.com/ageitgey/face_recognition
Chat GPT Open AI etc.