Facial Recognition Attendance System Using Flask And Open – CV

DOI : 10.17577/ICCIDT2K23-224

Download Full-Text PDF Cite this Publication

Text Only Version

Facial Recognition Attendance System Using Flask And Open – CV

Mr. Krishnaprasad A R, Ms. Sneha U P , Ms. Sreelakshmi P T Asst.Prof. Ms. Neena G Krishnan

Dept.of CSE , Mangalam College of Engineering Ettumanoor, Kerala, India

krishnaprasadcherusseri@gmail.com, snehakarthika@gmail.com, sreelakshmibabupt@gmail.com,

Abstract Based on a person's distinctive facial traits, face recognition technology employs computer algorithms to identify and confirm them. The device employs a camera to take pictures of people, identifies them using facial recognition software, and records their attendance. Python and the free computer vision package Open CV are used to implement the technique. Face identification and feature extraction are only two of the many techniques for image and video processing that are available in Open CV. Python is a well-liked machine learning programming language that is frequently used to develop and apply facial recognition models.


    This project's major goal is to develop a facial recognition- based attendance monitoring system for educational institutions in order to improve and modernize the current attendance system and make it more effective and efficient than it was previously. The existing outdated system is very ambiguous, which results in erroneous and ineffective attendance taking. When the authority is unable to enforce the rules that are present under the previous system, many issues occur. The face recognition system will be the technology at work. One of the natural characteristics that can be used to specifically identify a person is their face. The system uses facial recognition technology to correctly and swiftly identify pupils and mark their attendance, which is an improvement over the time-consuming and error-prone old techniques.

    This project's major goal is to replicate a brand-new, cutting- edge smart system that can benefit the institution while resolving the problems with the outdated attendance system. In this project, a program will be created that can recognize each person's identification and eventually save the information in a database system. In addition, an excel file is made that lists the students' attendance and is sent right away to the esteemed teachers.


Face recognition: A convolutional neural-network approach, IEEE Trans. Neural Networks, vol. 8, pp. 98-113, 1997. 2.1 S. Lawrence, C.L. Giles, A.C. Tsoi, and A.D. Back[1]. In this study, a face recognition system is created that is insensitive to significant variations in lighting. Histogram truncation was utilised as a pre-processing step before the implementation of the homomorphic filter in the second step of the normalisation

process. The fundamental tenet is that establishing illumination invariance leads to a feature extraction module that is simpler and has a higher recognition rate. Then, we used Fuzzy Linear Discriminant Analysis (FLDA) in the feature extraction stage, which demonstrated good discriminating ability in comparison to other methods, and Feed forward Neural Network (FFNN) for classification. The ORL (Olivetti Research Laboratory) face picture database was the subject of the studies, and the findings indicate that the current method is superior to other techniques used on the same database and described in the literature.

"Face recognition based on fitting a 3D morphable model,"

V. Blanz and T. Vetter, IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 25, no. 9, September 2003 [2]

This study proposes a method for face recognition under a variety of lighting conditions, such as cast shadows and specular reflections, and in poses ranging from frontal to profile views. The method, which estimates 3D shape and texture of faces from single photos, replicates the process of image production in 3D space using computer graphics in order to take these differences into account. A statistical, morphable model of 3D faces is fitted to the photos to provide the estimate. A collection of textured 3D head scans is used to train the model. We go over how the morphable model is made, an approach for fitting the model to images, and a framework for face recognition. Faces are represented in this framework by model parameters for 3D shape and texture. "RFID-based Student Attendance System" established by Hussain, Dugar, Deka, Hannan in 2013 [3]. This paper describes the use of open-source software in a multi-user environment to construct a student attendance management system based on radio frequency identification. Python serves as the system's back-end for reading tags. The python program is run, the lecturers are authenticated, and tags are recorded in an XML file using a desktop Java application. The XML file is then uploaded to the server to be processed and used to interpret student attendance. By using the web portal, users can view attendance.

The phrase "Fingerprint Based Attendance System Using Micro-controller and Lab-view" (2015) Kumar Yadav, Singh, Pujari, and Mishra [4]. In this context, research prospects are outlined together with an automated system for recognizing fingerprints and the identification of major problems. This report's description of an RTOS (Real time operating system) implementation in the context of an embedded system reads like a product design. Despite being very common, fingerprint recognition is a challenging pattern recognition problem. It is quite challenging to create precise algorithms that can extract

important traits and match them robustly. Here a novel approach is used to simplify the existing problems with a proper Embedded System Design .

Fig.1: Methodology [5]


The system will be a web-based application that uses OpenCV for face detection and recognition and Flask as the web framework. The two main functions of the system will be adding students to the database and collecting attendance. The user opens the camera by pressing a button, which then uses haarcascade frontal face detection to take a picture of the student's face and add them to the system. The student's name, roll number, and any other pertinent data will then be entered by the user and stored in a CSV file together with the student's image. The user will click a button to launch the camera and then use OpenCV to detect faces in order to take attendance. To assess whether the person is a registered student, the system will match the detected faces with the pictures in the database. The student's attendance will be noted in the CSV file with the date and time if a match is discovered. The front end of the system will present a table with each student's attendance history and any other pertinent data. The system will provide straightforward instructions for adding students and taking attendance, making it simple to use. With the right safeguards in place to make sure that the student's data is not compromised, the system will be secure and preserve the privacy of the users.

  1. Selection of Software FRONT-END:

    HTML stands for the Hypertext Markup language. It is the standard markup language used to create and design web pages. HTML is a set of tags and attributes that define the structure and content of a web page. HTML tags are used to create different types of elements such as headings, paragraphs, images, links, forms, tables, and more. HTML documents are text files with the extension ".html" or ".htm" and are viewed in a web browser. Web browsers interpret the HTML code and display it as avisual representation of the web page. HTML is a fundamental building block of the World Wide Web and is essential for creating static and dynamic web pages, as well as for creating

    mobile applications and desktop applications that use web technologies.

    CSS, or cascading style sheets, is an acronym. It is a language for creating style sheets that govern how HTML texts are presented and laid out, including the colors, fonts, spacing, and other visual elements. By separating a document's appearance from its information using CSS, a web page's visual style is simpler to manage and change. By setting rules that are applied to particular HTML elements, CSS operates. These guidelines outline the preferred design and presentation of the elements. For instance, you can alter the colour and size of text, the distance between items, and the layouts for various screen sizes using CSS.


    Python :A high-level, interpreted programming language was originally made available in 1991. It is a well-liked option among developers for a variety of applications, including web development, data science, machine learning, and more, because of its simplicity, readability, and applicability. Python's large ecosystem of third-party libraries and sizable standard library make it simpler to complete complicated tasks with little to no code. Python also supports a variety of programming paradigms, such as procedural, functional, and object-oriented programming.

    Flask Framework: Python-based Flask is a micro web framework that makes it simple and quick for developers to create online apps. It is renowned for being straightforward, adaptable, and simple to use. Flask is a lightweight, modular framework built on top of the Werkzeug toolkit and the Jinja2 template engine.

  2. Methodology

    Before the attendance management system to function, a set of data that primarily consists of the person's basic information, such as their ID and their faces, must be supplied into the system. The first step in acquiring a portrait is to use the camera to take pictures of people's faces. The system will first check to see if a face is present in the image that was shot; if it isn't, it will encourage the user to take another picture of their face until the project's minimum need of 10 photographs for each student is met. The decision of storing only 10 portrait per student is due to the consideration of the limited storage space in the raspberry pi because the total amount of students in the university is considered heavy. Then, the images will undergo several pre-processing procedures to obtain a gray- scale image and cropped faces of equal sized images because those are the prerequisites of using the Eigen Faces Recognizer. Both of the processes mentioned above can be represented in Fig.1.

    System hardware requirements

    Computer: The software components of the attendance marking system must be operated on a computer. The machine should have the minimal requirements needed by the project's software.

    Camera: A camera is necessary to record student images for facial recognition. The camera needs to be high-resolution, of decent quality, and have good lighting skills.

    Server: A server may be needed to manage the processing of facial recognition data as well as to maintain the attendance records. The server should have enough processing power and storage to handle the data produced by the system.

    Network: In order for the system's various parts, including the camera, server, and user interface, to communicate with one another, a network may be necessary. To guarantee that the data is transmitted and kept safely, the network needs to be dependable and secure.

    Peripherals: A variety of peripherals, such as a printer for producing attendance records and a bar-code scanner or card reader for identifying students or staff, may be needed for the attendance marking system.

    Backup tools: To make sure that the attendance records are carefully stored and can be easily recovered in case of data loss, backup tools like external hard drives or cloud storage may be needed.

    System software requirements

    Operating System – Windows, Linux, IOS Programming Language: PYTHON Front End : HTML, CSS

    Back-End :PYTHON, Flask Web Framework RAM : Min 4GB

    Processor : i3 and above


      Fig.2: Admin Home page

      Fig.3: Attendance viewing page

      The above figure (Fig.2) refers the admin home page and figure (Fig.3) refers the attendance viewing by admin.

      Using the User id and password, admin can log on to the system and view the attendance.


      Prior to the creation of this project, the traditional technique of taking attendance has many flaws, and most institutions have experienced significant problems as a result. As a result, the facial recognition technology built into the attendance monitoring system can guarantee accurate attendance capture while also removing the drawbacks of the prior approach. By handing off the entire complex operation to the machine, using technology to eliminate flaws not only lowers human interference in the process but also saves resources. The sole expense associated with this method is having enough room in the database storage to accommodate all of the faces. Thankfully, there are devices like micro SD that can make up for the data volume. The face database is successfully constructed in this project. In addition, the face recognition system is operating effectively. When all is said and done, the system not only fixes issues with the old model but also makes it convenient for the user to access the data gathered by mailing the attendance sheet to the esteemed faculty and corresponding parents.


[1] S. Lawrence, C.L. Giles, A.C. Tsoi, and A.D. Back, Face recognition: A convolutional neural-network approach, IEEE Trans. Neural Networks, vol. 8, pp. 98-113, 1997

[2] V. Blanz and T. Vetter, Face recognition based on fitting a 3D morphable model, IEEE Trans. On Pattern Analysis and Machine Intelligence, vol. 25, no. 9, September 2003

[3] RFID based Student Attendance System (Hussain, Dugar, Deka, Hannan, 2014)

[4] Fingerprint Based Attendance System Using Micro- controller and Lab-view (Kumar Yadav, Singh, Pujari, Mishra, 2015)

[5] Facial Recognition Attendance System Using Python and

OpenCv( Dr. V Suresh, Srinivasa Chakravarthi Dumpa, Chiranjeevi Deepak Vankayala,

HaneeshaAduri, Jayasree Rapa,