Face Recognition Attendance System – Complete Machine Learning Project | Arunnachalam Shanmugaraajan | Skillshare

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Face Recognition Attendance System – Complete Machine Learning Project

teacher avatar Arunnachalam Shanmugaraajan

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Introduction To Course

      0:49

    • 2.

      DATASET MODULE CLASS 1 : IMPORT PACKAGES

      7:23

    • 3.

      DATASET MODULE CLASS 2 : IMPORT DATASET & OPENCV

      9:21

    • 4.

      DATASET MODULE CLASS 3 : OUTPUT & EXPLANATION

      12:01

    • 5.

      ATTENDANCE MODULE CLASS 1 : IMPORT PACKAGES

      3:37

    • 6.

      ATTENDANCE MODULE CLASS 2 : IMPORT DATASET & OPENCV

      10:22

    • 7.

      ATTENDANCE MODULE CLASS 3 : TRAIN DATASET USING KNN

      5:35

    • 8.

      ATTENDANCE MODULE CLASS 4 : OUTPUT & CONCLUSION

      9:20

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

8

Students

--

Projects

About This Class

Face Recognition Attendance System – Machine Learning Project

Build a real-world Face Recognition Attendance System using Machine Learning and computer vision. In this hands-on course, you’ll learn how to automatically detect and recognize faces, and use that data to mark attendance efficiently.

This project-based course is designed to help you understand practical applications of machine learning by building a complete system from scratch.

What You’ll Learn

  • Basics of face detection and recognition
  • Working with OpenCV and image processing
  • Training models to recognize faces
  • Capturing and storing face data
  • Automating attendance using real-time webcam input

Why Take This Course?

  • Learn by building a complete project
  • Beginner-friendly explanations
  • Practical, real-world use case
  • No prior advanced ML knowledge required

Outcome

By the end of this course, you’ll have built your own Face Recognition Attendance System and gained practical experience in machine learning and computer vision.

Meet Your Teacher

Hi I am Arunnachalam R S From India. I am working as Senior System Executive at Cognizant. I can teach people with my experienced knowledge about the technology. I am choosing Skillshare to show my passion towards technology and teaching.

See full profile

Level: All Levels

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Introduction To Course: Welcome to Mine learning project course. In today's class, we are going to create a project phase recognizon atenance system using KNN algorithm and open CV. So this course consists of two modules. In the first module we are going to discuss about how to create the data set for our phase recognition project, and also we are going to discuss about how to save the dataset for our project. In the second model, we are going to discuss about how to train the dataset using the KNN algorithm, and also we are going to discuss about how to create the attenance for our project. So this course is very, very, very useful for the students who are trying to create phase recognition atnance system for the first time. So let's get started. 2. DATASET MODULE CLASS 1 : IMPORT PACKAGES: Welcome everyone to the first class. Today's class, we are going to discuss about how to import the packages and how to import the dataset for our project phase recognizer atnan system using KNN and OpenCV. For the first, we are going to create a new Python file in the PyCaM IDE. So you ought to select your folder, and then you have to select new Python file. In that, you have to type your own Python file name. For the first, we are going to create the dataset. For that, we are typing the name dataset dot PI. Before running your project, you have to set your Python interpreter. For that, you have to select the settings. In the settings, you have to select the project Python interpreter. After that, you have to select any one of your Python interpreter for running your project. For my project, I'm going to use the Python three Pine NN for my project. So you have to select any one of your Python interpreter. After that, you have to select Okay. That's it. So these are the first steps for running our project. So we are going to discuss about how to import the packages for our project. So let's start. First, we are going to import a package CV two. For that, you to type Import CV two. So CV two is nothing but OpenCV package for opening the web camera, for detecting the phases. After that, we are going to import second package NumPi as NP. So numPi for creating the array. After that, we are going to import a third package OS, OS for reading and writing the files in the OS. After that, we are going to import a fourth package pickle. So pickle is very, very useful for saving our dataset. For that only, we are going to use the pickle package for saving our dataset. So if you don't know how to install the packages, for our project, you have to select the settings. So in the settings, you have to select the plus icon. So plus icon is nothing but installing the packages. So you have to select that. After that, you ought to type your package name. For that, I'm going to type package pickle. After that, you can see the packages available for your project, how to select your own package, and then you have to select install package. So it will install your packages for your project. So that's the step for installing the packages in the Picham IDE. After that, you ought to set o. So these four packages must be installed for our project. So after that, we are going to discuss about how to import the dataset for our project. For the dataset, we are going to use our web camera to direct the pass and recognize the pass. For that only, we are using the CV two package. So you have to type video equal to C two. So CV two is the package and Video VDO capture. So we are going to capture our video. So inside the bracket, you have to type zero. Zero is nothing but web camera. So we are going to use the web camera to capture our face. So that's why we are using the zero for capturing the web camera for the phase dataset. So that's the meaning of the first line. So we are going to use our web camera to detect our faces. It will be used for our dataset. After that, we are going to use the phase deduct using the Cascade classifier algorithm from the CV two package. For that, you have to type CV two dot Cascade classifier. So OpenCV uses Haar Cascade classifier to deduct the phases in the web camera. For that only we are using the Cascade classifier. So inside the bracket, we are going to import the XML file. So EML file for frontal phase deduction. For that, we are going to use the Google to download the XML file for our project. For that, you have to open the Google and then you have to type Haar Cascade frontal phase, default aL download. So you have to open the Gitup for downloading the frontal phase XML file. So you can see a lot of XML file available for your project. We are going to use only the frontal phase, default XML file. So you have to download that so our file is downloaded, so you have to open that. So you have to copy the file and paste that file in your project folder. So the examal file will be present in your project folder. After that, you have to open your Picham IDA. So in that, you can see your examL file is available. And then you have to copy the examal file name. After that, you have to paste that file name inside the bracket. So that said, we are going to use the Haar Cascade EamLFle to deideect our phases. So after that, we are going to create a new array to store the phase data. And then I equal to zero. And then name equal input taf Enter your name. So we are going to ask the user to enter their student's name. For that only, we are using the user defined input value. So that's it. In today's class, we are discussed about how to import the packages like CV two. So C two is for the web camera and NumPi is for the array, is for reading and writing the file, pickle for storing the dataset. After that, we are using our web camera to detect our phases, and then we are using the XML file for the phase frontal deduction. And then we are creating the array for storing the phase data. At last, we are storing the user defined student's name. So in the next class, we are going to discuss about how to detect the pass using the web camera. So let's see in the next class. 3. DATASET MODULE CLASS 2 : IMPORT DATASET & OPENCV: Welcome everyone to the second class. In today's class, we are going to discuss about how to use the web camera to detect our faces, along with the OpenCV algorithm. In the previous class, we are discussed about how to import the packages. In today's class, we are going to discuss about how to use the web camera to detect our faces. For that, we are using the wild condition, and then we are using the variable RET and frame equal to Video dot, read. We are going to read our web camera. And gray Gray will be the variable CV two dt CVT color of Inside that, you have to type the frame. Co Cv two dt color BGR. BGR to gray. So we are converting our colorful images to black and white images because Haar Cascade classifier uses grayscale images for directing the faces. For that, only we are converting the colorful images into black and white. First, we are reading the images, and then we are converting the images into black and white. So that's the meaning of these two lines. So after that, ato type phases, equal to phase, deduct, dt, deduct, multi scale. So we are just using the scaling functions for reading our web camera video. So the scaling factor will be 1.3 and gray, and minimum neighbors will be five. So we are using the scaling functions. After that, we are going to use the far loop. For inside the bracket, we are going to type the coordinates like X, Y, W H W H is nothing but width and height. So you have to type X, Y, W huh in phases X, Y, W H in phases. We are just finding the coordinates in the pass. After that, we are going to crop our image frame we are going to crop our frame, see how to type this. So Y is two Y plus H X two, X plus width Y plus height, X plus width After that, after cropping our image, we are going to resize our image. For that, we have to type resized image equal to CV two dart resize. We are going to resize our image for our own convenience. Crop image. Come on. Inside the bracket, you have to type the size 50 50. We are going to resize our image into 50 coma 50. Height and width will be 50 co 50. After that, we are going to use the I length of phase data. So phase data is nothing but array. So array length less than 100 and I modulo ten, equality equal zero. If these two conditions are satisfied, so we are going to execute our condition. C two dart, put text. We are going to write our text in the frame, frame comma, STR, string string of, no phase theta. Total data in the phases. How many phases are deducted using our web camera. So that's the meaning of Lena phase of data. We are going to write our text that is Lena phase of data in the output. So then size will be original size will be 50, come 50 with height. C CV two dot font, we are going to use the font, and then you have to type the font scale. Font scale will be one. 50, come 50, and then you have to type your color. So you can type your own color. Comma one. So that's the meaning of this line. We are going to write the text in the output frame. After that, we are going to use the CV two package rectangle. C two dot, rectangle off, we are going to create a rectangle to deduct our face. For that, only we are using the code. For deducting the pass, we are going to use the rectangle. So inside the frame, we are going to use the rectangle. So you have to type the coordinates X and Y, and plus width, Y plus height. That is Hutch. C, 50, C, 50. C 255, it is color of our rectangle. C one. Thickness will be one. If you want more thickness, you can type two, three, or four. If you want less thickness, you can type one for creating the rectangle to direct our faces. So after that, we are going to show our output. For that, we are going to use IM show of frame, co frame. So the windows name will be frame. And then you have to type K equal to CV two dot, weight of one. So the way key will be one. And then K equal equal 50. If K equality equal to 50, our output will be break. So if the phases are directed 50 times our output will be break. That is quick from our output. After that, we are going to release our video after the completion of our output, our video will be released. We are going to remove all the output. For that only, we are typing CV two dot, destroy all windows. So the intendation of Python is very, very important. If you ignore that, it will be considered as error. So that's it. In today's class, we discussed about how to use the web camera to detect our paces. In the next class, we are going to save the deducted pass using the pickle package, so that will be considered as our dataset. So let's see in the next class. 4. DATASET MODULE CLASS 3 : OUTPUT & EXPLANATION: Come, everyone, in today's class, we are going to discuss about how to save the detected phases and convert that phases into our dataset. For that, we are going to use our pickle package to save the dataset for our project. So we are going to see how to save the dataset using the pickle package. So how to tie phase data equal to Np dot array of we are going to convert our normal phase data array into NumPi array. So inside the bracket, you have to type the array that is phase data. We just converted our phase data, normal array into NumPi array, and then you have to type phase data equal to phase data dot resp. We are going to resave all the phases detected in the array. So you have to type the values 100 comma minus one. We are going to resave that so we are just converted our normal array into nape array. So this array consists of all our phases deducted using the web camera. So after that, we are going to discuss about how to save the dataset using the pickle file. For that, we are going to create two pickle file for saving the dataset. The first one for saving the student's name for the attendance, and the second pickle file will be the phases detected using the web camera. So we are going to save the pickle file for that, we are going to create an condition if names dot PK. So that is Pin in OS. So if the pickle files are not present in our OS, we are going to create a new folder. For that, you have to type your folder name. Our folder name will be theta. So you have to create a folder in your project. For that, you have to create new folder. So you have to type data. Inside the data, our dataset will be stored using the pickle package. So pickle package is very, very useful for saving our dataset. So after that, we are going to use the names variable. So the names is nothing but the names of the students. We are going to save the names of the students for our dataset. So you have to type name star hundred. Open, we are going to open the file. Inside that, you have to type the folder name, theta, you have to type inside the quotation, Theta slash names dot PKLPickle so I have to close the quotation, C, WB, we are going to use the write format to write our data. As F. We are going to rename that folder as F. After that, we are going to store our names for that, you have to type pickle dot dump. We are going to dump our names inside the names dot pickle file. So that's the use of WB. WB is nothing but writing format. We are going to write our names inside the names dot pickle file. Else, we are going to open the file. If the pixels file is already present in our output, we are going to update the file. So that's the use of else condition. If if the pickle is not present, we are going to create a new folder. So s is for if the pickle already present, we are going to update the values. So again, we are going to use the names dot pickle in reading format as F. So we are going to read what are all the names and pass stored in the pickle file. And names equal to Pickle dot Load. We are going to load the file for our dataset. And names equal name plus name star hundred. So the is far if the file is not present, we are going to create a new pickle file. We are going to open the data folder again using the names dot pick Come WF. So the abos function is used for loading, what are all the names present in the pickle file. So the Blows function is very, very useful for. If we want to update the values, we are going to use that. We are going to update the new values for our project. So after that, we are going to create a second pickle file that is phase data dot pickle. So again, we are going to type the A fungals. If the phase data dot pickle file is not present in our OS, we are going to create a new folder for storing the phase data, pickle file. So inside the data folder, we are going to create a second pickle file that is phase data. So the phase data consists of all the phases detected using our web camera. So again, we are going to open the phase data Pickle file dot W. As tickle dt dump off. We're going to store the phase data Come on in the folder. So if the phase data pickle file is not present in the data folder, we are going to create a phase data Pickle file. Else, if the phase data pickle file already present in our folder, we are going to update or load the file. For that, you have to type the two codes for loading and update. First, we are going to type for loading the phase data pickle file for our project. So for that only, we are using the RB RB for read only. We are just reading the already present pickle file. So you have to type faces equal to pickle dot load. So we are going to load the already present pickle five for our dataset. After that, atotypePass equal to N B dot, upend. We are going to upend the phases in the phase data. Axis equal to zero. After that, we are going to update the pickle file. So if any new phases are detected using our web camera, it will be updated in the pickle file. For that, only we are typing the WB for updating the file. The first one for loading the file as read format. The second one for updating the file as WB format. You have to type open pickle dot, dump. So dump is useful for updating. Load is for already present. Pass phases F. So that's it. We have completed our first module for creating the dataset for our project. Before running your projects, there is some small mistake you have to re change the code. So you have to delete the K equality equal to 50, so it will not produce the output for that we are going to reach in the code, len of phase data, equality equal to 50. So if the len of phase data equality equal to 50, after that only our output will be exit. Of the previous code, you have to delete that. After that, you have to run our code. So you have to type your student's name or your own name. So I'm going to type my name, and then you have to press Enter. After that, you can see your phase is detected using the web camera along with the number of pass detected in the web camera. So 17, 1920, it will be the n of phase of data. So after the 50, our output will be exit. So you have to wait for the 50 countdown. So 50 phases are deducted. After that, your phase will be stored in the pickle file. So you can see in the data, there are two pickle files are generated. The first one is the phases deducted in the web camera and the second one is the name. So name after student. So the name will be Run the phase will be Run phases. So that's the use of our first module dataset. So that's the use of the pickle file. So pickle file is very, very useful for saving our dataset. So our dataset consists of two files, names and the faces of the students. So in the next class, we are going to discuss about how to create the attendance for our project. 5. ATTENDANCE MODULE CLASS 1 : IMPORT PACKAGES: Welcome everyone to the second module, we are going to discuss about how to create the attendance using the KNN algorithm. In the previous class, we discussed about how to create the dataset for our project. So in today's class, we are going to discuss about how to import the packages for our project. So let's start. So first, we are going to import the CV two package for reading the phases in the web camera. And then we are going to import the second package NumPi for creating the array. After that, we are going to import a third package OS. After that, we are going to import the fourth package. That is CSV. We are going to use the CSV file for our project attendance. So the CSV files contains the attendance of the students. And the fifth package will be T for decting the time of the students, and the sixth package will be pickle for loading the dataset of the faces and the student's name. After that, we are going to import the SC learn package. So in the SK lean, we are going to import the KNN N K neighbors classifier. So we are going to use the K neighbors classifier algorithm. So this algorithm will be used for our project. And then we are going to import the date and time for storing the date and time of the students because atnans consists of date and time. So we are going to input daytime. So these packages must be installed in your Python IDE. So CV two is for web camera, Nampa is for array, OS for reading the files, CSV for the attendance, time for storing the time of the students and pickle for loading the dataset. And then K neighbors algorithm for the training of the dataset. We are going to train the dataset using the KNN. At last, we are going to use the data and time for our student atance. So after that, we are going to discuss about how to load the dataset for our project. For that, you have to type video equal to for that, you have to tie video equal to, C V two dot, video capture. We are going to capture our video using the web camera. For the web camera, you to t zero. After that, we are going to deduct the phases using the castde classifier again. You have to type Cascade classifier. So inside the bracket, you have to type the XML file name. You have to type the XML file name. So in the next class, we are going to discuss about how to import the dataset and how to train the dataset using the KNN algorithm. So let's see in the next class. 6. ATTENDANCE MODULE CLASS 2 : IMPORT DATASET & OPENCV: Welcome, everyone. In today's class, we are going to discuss about how to recognize our faces using the K and N and OpenCV. For that, we are going to create a I loop. Inside the Y loop, we are going to type the code for recognizer the faces. First, we are going to create the variable for reading the web camera video dot, read. We are going to read the web camera. And then we are going to convert the images into grayscale for that your tot gray equal to C two dt, CVT color, we're going to change the color of the mages SV two dt BGR color, BGR two gray. That is black and white. We are converting our frames into black and white. After that, we are going to use the multiscale function for our frame for that to type, direct multi scale of gray coma, scale factor will be 1.3, and minimum neighbors will be five. So these codes are same as the previous module dataset. After that, we are going to create the far for the coordinates X, Y, W, Hutch, W HH is nothing but width and height. In phases, we are going to find the coordinates in the phases. And then we are going to crop our image for our own convenient. So we are going to crop the frame. Y is the Y plus hutch. Come, X plus hutch. Sorry, X plus W. So we are going to crop the image, and then we are going to resize the image. Equal to CV dot resize of crop image. So crop image will be resized to 50 coma 50. So that is width and height. After that, we are going to flat the shape of the images. So we are just reshape that and then we are finding the output of the resized image. For that, we are using the KNN to predict the output. So we are just recognizer the images using the KNN algorithm because the KNN algorithm trains the dataset. After that, we are finding the time for the attenans. Also, we are finding that date time stamp. We are using the time stamp Ts dot Inside the quotation, you have to type the format. The first one will be that day, Monday, Tuesday or Wednesday, and then month, March or April. And then you have to type the year 2024. So that's the format of the date. And then we are finding the timestamp, date time dot from timestamp. We are finding the timestamp of the students. So after 10 minutes, the student is present. After the 10 minutes, again, next student will be present. So that's the timestamp. So you have to type the format, how minutes and then seconds. So that's the timestamp. So each students will come because each students will come with their own timestamp. After that, we are going to use the is equal to OS dot path dot is file Attendance. We are going to create a new folder for attendance. So inside the attendance folder, we are going to create a CSV file. For that, you to type the CSV file name, attendance. You can type your own format, plus date, so date of the attendance, plus dot format. Format will be CSV. So that's the format of the CSV five. After that, we are using the C two for finding the pass using the rectangle. So we are just finding the faces of the students using the rectangle. We have to type the coordinates like X and Y, X, Y, X plus with Y plus height. Zero, zero, 255. That's the color of the rectangle. I think it is red dark green. So you can type your own color 002 55. One will be the thickness of the rectangle. After that, we are going to use the rectangle again because our background image rectangle will be considered for our output. It So x plus W Y plus HH. Come, 50, come up 50. Come on, 255, come on, two. So two is nothing but thickness. 50, come up 50, come on, two, 55 is color of the rectangle. Two is nothing but thickness of the rectangle. Again, we are using the rectangle function. So you have to consider the background shape of the rectangle because we are using the background image. So inside the background image, we are using the CV two plus W Y, inside the bracket, you have to type the color. So color will be 50, 52 55 minus one minus one will be the thickness. After that, we are going to type the text inside the frame for that dot to type, put text of frame. Inside the frame, we are going to type the text. So the text will be X, Y, X plus W, co, Y plus HH, Come on, 50, 50 to 55, font, and then thickness. Font scale will be one. So we are going to type the text inside the frame. So after that, we are going to create the attenanceu to type atnance equal to. String of output. So the predicted output will be present in the attendance CSV file. So the predicted output will be the face of the student at the name of the student in the zero index of the CSV file. So the timestamp. And then image background in 62 is the 162 plus 480. Come on. 55 is 55 plus it's 40. So there's the background image, size, equal to frame. The frame will be this format. So in the next class, we are going to discuss about how to import the dataset inside the attendance CSV file. So let's see on the next 7. ATTENDANCE MODULE CLASS 3 : TRAIN DATASET USING KNN: Welcome everyone to the second class. In today's class, we are going to discuss about how to import the dataset and how to use the KNN algorithm to train the dataset. For that, we are going to see that. I have to type KNN equal to K neighbors classifier. The full form of the KNN is K nearest neighbor. And then you have to use the neighbor value will be five. So KNN is a supervised missin learning algorithm. So we are going to fit the values of the dataset, pass and labels. So the pass contains the faces of the users, and the labels contains the name of the students. So we are going to discuss how to import these two files using the pickle package because the pickle contains the names and the pass. For that, we are going to load the dataset with open. We have to type caret, open, off. Inside the data folder, the pickle file is present. First, we are going to use the names dot Pickle File in read format. RB as W. We are going to read the names, so we are going to store the names in the labels variable. After that, only we can train the dataset using the KNN. So we are going to load the names inside the labels. So after that, we are going to load the faces of the students using the phase data pickle file. For that, you have to open the file, so you have to type data. So inside the data folder, we are going to load the phase data pickle file. As B, read format. We are going to read what are all the phases stored in the pickle file as F. And then we are going to store the phase data using the phases variable. Pickle dt load. We are going to load the phase data. The first is useful for names pickle file, so it contains the names of the students, and the second very useful for phase data because it contains the pass of the students. Before running this, you have to copy that, and then you have to pace above the KNN because Python is up to down interpreter. For that only, you can see the error is zoned. So to type above the KNN pickle file because the Python is up to down. Interpreter goes from up to down. After that, we are going to use the image background for our project. So it will be considered as GOI. So you have to type image background equal to dot, IMR of how to type your background name. So you can create your own background. For my project, I'm going to use this background. So inside the rectangle, my face will be detected and recognized. And then you have to paste the background inside the quotation. So these resources will be uploaded in your course. So you don't have to worry about the resources. I will upload the resources in the course section. So after that, we are going to create the column names for our CSV file. So the columns contains the name of the student, and then Tim Time after student. So tnance is based on the name Tim. So that's it. In today's class, we discuss about how to load the dataset for our project. And then we discuss about how to train the dataset using the KNN algorithm. So the KNN dot Fit will train the dataset. So in the fit function of the KNN automatically trains the dataset. So we don't have to type the code for the training of the dataset. And then we are using the image background for the GUI purpose. After that, we are using the column names for our CSV file. So in the next class, we are going to discuss about how to recognize the phases using the web camera. Let's see in the next 8. ATTENDANCE MODULE CLASS 4 : OUTPUT & CONCLUSION: Come everyone to the final class. In today's class, we are going to see our output using the KNN algorithm. Before seeing the output, we are going to create the CSV file. For that, we are going to discuss that. So you have to type C two dart, I am so for sewing the output. So you have to type the frame name, and then you have to type image background. So the frame will be considered as image background. And then you have to type K equal to CV to dart weight one. And then we are going to use the I condition, K equal equal ORD. Inside that you have to type the alphabet O. So if the user types O, our atnance will be taken. So if the user clicks O, our atnans will be taken from our web camera. So that's the use of K equality equal to ORD of O. From that, we are going to create that sleep function. For taking the atance of the students. After that, we are going to create the second if exist. If the CSE file exist or not, we are going to open the file. Inside the bracket, you have to type the attenanceFolder, atenance attendance CSV plus so it will be double quotation date CSV. So we are just opening this CSV file, you have to take the format, correct? Dot and then format after CSV, plus A as CSV. P. We are opening this CSV file. Writer equal t CSV, dot, write off. We are going to write the output inside the CSV file. Rows will be our output written. Write dot, write dot, right row of attendance. So atans will be small So that's why source error. Stance is small variable. After that, we are going to close the CSV file. Else with open atnans we are going to open the tenansFle The first I is far already, the CSV file is present, we are going to update. The second one is far. If the CSV file does not present, we are going to create the CSV file. The first if is for the tenans already present inside that folder, we are going to update the values. The second one is for creating the new tenans file for the project. Because we are going to the attenance for each day. Same day will be updated. For the second day, we are going to create new attenanceSV file. For that only we are creating the I fundiLsF is for updating the values in the same day, is for creating the attendance in the next day. You have to type writer dot write row of column names. The column names will be name on the labels. Atnans we are going to write the atance. After that, we are going to close the CSV file. We are going to close our output for that Yo two ti, K equal t equal to ORD of Q. So if the user clicks the Q, our output will be exit. So that's the use of break condition. And then we are going to close our output for that Yotti video dot release off. And then YotTi C two dt, destroy all windows for exit our output. So that's it. We have completed our project phase recognizer tenan system using KNN and OpenCV. The first class, we discussed about how to import the packages and the XML file for our project. So in the second class, we are discussed about how to load the dataset using the pickle package. And then we are trained the dataset using the KNN algorithm. After that, we are using the background for our project. And then we are using the web camera to detect the faces, reading the faces, converting the images into grayscale, and then we are using the multiscale function. And then we are cropping the images after that, we are finding the output using the KNN algorithm because the KNN algorithm trains the dataset. After that, we are finding the date and time of the students. And then we are finding the recognized pass using the rectangle. At last, we are creating the CSV file to store the names of the students along with their date and time. That's the use of CSV file. So the CSV files contains the recognizer Sudan phase with their time. After that, we are closing our output. So that's it. We have completed our project, so you have to run this code. So in the output, you can see your phase is deducted and recognized very successfully using the KNN algorithm. Also, you can see the beautiful background image for our project. After that, you have to click O for taking the attendance. So if I click ox, my output will be sleep for 5 seconds for taking the attendance of the students. At last, you have to exit the output using the Q. So you have to click Q to exit your output. Your CSV file is created along with the date and time. So the dat and time inside that, you can see the column name and time, the name of the students, and the time of the present data. So you have to open the CSV file. So in the CSE five, you can see the name and the time. So name and the time format, 24 and 2024. So the 20 will be that day, four will be the month, and then 2024 will be the year. So that's it, everyone. We have completed our face recognizer at Nan system project using the OpenCV and KNN algorithm. If you like my project, please put positive review in the command section. Hope I can see you in the upcoming courses teached by me. Thank you.