Major Project Report ON Attendance Sytem With FACEAPP Using Python

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 41

MAJOR PROJECT REPORT

ON

ATTENDANCE SYTEM WITH

FACEAPP using python

Submitted In Partial Fulfilment of the Requirement Of

Bachelors of Computer Application (BCA)

Guru Gobind Singh Indraprastha University, Delhi

Session 2017-2020

Under the Guidance of Submitted by


Ruchi Agarwal Bhoomika Behl
(H.O.D. BCA Dept.) BCA 6th SEM
00525502017

JIMS ENGINEERING MANAGEMENT TECHINICAL CAMPUS


48/4 Knowledge Park III, Greater Noida – 201306(U.P.)

1
DECLARATION

I hereby declare that this Major Project Report titled ”Attendance system with faceapp
using python” submitted by me to JEMTEC, Greater Noida is a bonafide work undertaken
during the period from Januray’20 to March’20 by me and has not been submitted to any
other University or Institution for the award of any degree diploma / certificate or
published any time before.

_____________________

(Signature of the Student) Date: -


28/APR/2020

Name: - Bhoomika Behl

Enroll. No.: - 00525502017

2
ACKNOWLEDGEMENT

I offer my sincere thanks and humble regards to JEMTEC, Greater Noida for imparting us
very valuable professional training in BCA.

I pay my gratitude and sincere regards to Dr.Ruchi Agarwal, my project guide for giving
me the cream of her knowledge. I am thankful to her as she has been a constant source of
advice, motivation and inspiration. I am also thankful to her for giving his suggestions and
encouragement throughout the project work.

I take the opportunity to express my gratitude and thanks to our computer Lab staff and
library staff for providing me opportunity to utilize their resources for the completion of
the project.

I am also thankful to my family and friends for constantly motivating me to complete the
project and providing me an environment, which enhanced my knowledge.

Date: - 28/Apr/2020

Name: - Bhoomika Behl

Enroll. – 00525502017

Course: - BCA (VI-Sem.)

_____________________

(Signature of the Student)

3
BONAFIDE CERTIFICATE

This is to certify that as per best of my belief the project entitled “Attndance system with
faceapp using python” is the bonafide research work carried out by BHOOMIKA BEHL
student of BCA, JEMTEC, Greater Noida, in partial fulfilment of the requirement for the
summer training report of the Degree of Bachelor of Computer Application.

He has worked under my guidance.

I wish him a success in all his future career endeavours.

Name: Dr.Ruchi Agarwal ___________________

Signature with Date


Designation: H.O.D. BCA Department

Name: Dr.Ruchi Agarwal ___________________

Signature with Date


Designation: H.O.D. BCA Department

4
CONTENTS

PAGE
S.NO. TOPIC
NO.

1. Declaration 2

2. Acknowledgements 3

3. Bonafide Certificate 4

4. Abstract 6
Chapter 1: Introduction
5.  Project description 7 - 10
 Objective of the study
6. Chapter 2: Software Requirements Specification 11 – 14

7. Chapter 3: Hardware Requirements and Software Requirements 15 – 16

8. Chapter 4: Source Code and Output Snapshot 17 – 35

9. Chapter 5: Conclusion 36 – 37

10. Chapter 6: future scope 38-39

11. Bibliography 40

5
ABSTRACT

The face is one of the easiest ways to distinguish the individual identity of each other. Face
recognition is a personal identification system that uses personal characteristics of a person
to identify the person's identity. Human face recognition procedure basically consists of
two phases, namely face detection, where this process takes place very rapidly in humans,
except under conditions where the object is located at a short distance away, the next is the
introduction, which recognize a face as individuals. Stage is then replicated and developed
as a model for facial image recognition (face recognition) is one of the much-studied
biometrics technology and developed by experts. The software requirements for this
project is pycharm. Further, this face recognition helps to mark the attendance of the
students by creating a excel sheet containing Id, name and time of the attendance.

6
CHAPTER 1:

INTRODUCTION

7
PROJECT DESCRIPTION

Face recognition is the task of identifying an already detected object as a known or


unknown face. Often the problem of face recognition is confused with the problem of face
detection. Face Recognition on the other hand is to decide if the "face" is someone known,
or unknown, using for this purpose a database of faces in order to validate this input
face. Once the face is recognised, the attendance is marked itself , creating an excel sheet
of the list of the students present.

This project is divided into 3 parts:

 FACEAPP DATASET
 The dataset of images (100 images per person) is created. Once the
dataset is created it is stored in the original file location with the name of
dataset itself.
 FACEAPP TRAINING
 Now the images of all the faces are trained whose datasets have been
created and stored it the form of yml extention file. This yml file is later
used to compare the images with faces of the people appearing in the
camera at that real time.
 FACEAPP RECOGNITION
 Third part is face recognition. In this, faces are recognised by comparing
to the datasets stored earlier in the form of yml format file. It compares
with number of images matching to the particular face which is appearing
at real time.

8
 TRACK IMAGE
 Fourth part is track image. In this, camera is turned on and our face is
recognised by the app and the we press Q for marking the attendance.

 ATTENDANCE MARKED
 In the last step, after pressing Q, attendance is marked hence creating an
excel sheet with the name, id and time of the attendance marked.

9
OBJECTIVE

The objective behind this project is to recognise the person by their faces appearing at real
time. Face app basically provides more security by detecting the person respective to their
faces. It is connected to attendance systems, which can be used in schools, colleges and
any other institutions or offices.

10
CHAPTER 2:

SOFTWARE REQUIREMENT SPECIFICATIONS

11
SOFTWARE REQUIREMENT SPECIFICATIONS

Overview:

 Creating a dataset of images (100 images per person) for future detection.
 Training of faces is done, and stored in the format or yml extension.
 Face recognition is done by comparing the real time faces to the dataset which is
stored as yml file and featured their names, and states unknown if no matching is
found.
 Attendance is marked in an excel sheet.

12
Interface Requirements:

 Python 3.7-python is a widely used high-level, general-purpose, interpreted,


dynamic programming language. Its design philosophy emphasizes code
readability, and its syntax allows programmers to express concepts in fewer lines of
code than would be possible in languages such as C++ or Java. The language
provides constructs intended to enable clear programs on both a small and large
scale.

Tools and platform:

 Python 3.7
 Numpy- it is the fundamental package for scientific computing with
Python. It contains among other things:
 A powerful N-dimensional array object
 Tools for integrating C/C++ and Fortran code
 Useful linear algebra, Fourier transform and random number
capabilities
 Opencv- python:
 Step 1: Considering our prerequisites, we will require an image, to
begin with. Later we need to create a cascade classifier which will
eventually give us the features of the face.
 Step 2: This step involves making use of OpenCV which will read
the image and the features file. So at this point, there are NumPy
arrays at the primary data points.All we need to do is to search for
the row and column values of the face NumPy and array. This is the
array with the face rectangle coordinates.
 Step 3: This final step involves displaying the image with the
rectangular face box.

 opencv_contrib_python:
 OpenCV (open source computer vision) is a very powerful library
for image processing and machine learning tasks which also

13
supports Tensorflow, Torch/Pytorch and Caffe. Install OpenCV
master, and OpenCV contrib files from source using Cmake GUI.

 Pillow:
 pillow is a Python Imaging Library (PIL), which adds support for
opening, manipulating, and saving images. The current version
identifies and reads a large number of formats. Write support is
intentionally restricted to the most commonly used interchange and
presentation formats.
 Pandas:
 Pandas is a Software Library in Computer Programming. It is
written for the Python Programming Language. They are used in
Python to deal with data analysis and manipulation. To put it in
simpler words, Pandas help us to organize data and manipulate
the data by putting it in a tabular form.
 Datetime:
 Date and time are not a data type of its own, but a module
named datetime can be imported to work with the date as well as
time. Datetime module comes built into Python, so there is no need
to install it externally.

14
CHAPTER 3:

HARDWARE AND SOFTWARE REQUIREMENTS

15
HARDWARE AND SOFTWARE REQUIREMENTS

Hardware Requirements:

 i3 Processor Based Computer


 4 Gigabytes of RAM
 40 Gigabytes of Hard disk
 Monitor
 Webcam

Software Requirements:

 Windows 7 and above.


 Pycharm

16
CHAPTER 4:

SOURCE CODE AND OUTPUT SNAPSHOTS

17
SOURCE CODE AND OUTPUT SNAPSHOTS

1. Face dataset

import cv2
import os

cam = cv2.VideoCapture(0)
cam.set(3, 640) # set video width
cam.set(4, 480) # set video height

#make sure 'haarcascade_frontalface_default.xml' is in


the same folder as this code
face_detector =
cv2.CascadeClassifier('haarcascade_frontalface_default.x
ml')

# For each person, enter one numeric face id (must enter


number start from 1, this is the lable of person 1)
face_id = input('\n enter user id end press <return> ==>
')

print("\n [INFO] Initializing face capture. Look the


camera and wait ...")
# Initialize individual sampling face count
count = 0

#start detect your face and take 30 pictures


while(True):

ret, img = cam.read()


gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_detector.detectMultiScale(gray, 1.3, 5)

18
for (x,y,w,h) in faces:

cv2.rectangle(img, (x,y), (x+w,y+h),


(255,255,255), 2)
count += 1

# Save the captured image into the datasets


folder
cv2.imwrite("dataset/User." + str(face_id) + '.'
+ str(count) + ".jpg", gray[y:y+h,x:x+w])

cv2.imshow('image', img)

k = cv2.waitKey(100) & 0xff # Press 'ESC' for


exiting video
if k == 27:
break
elif count >= 100: # Take 100 face sample and stop
video
break

# Do a bit of cleanup
print("\n [INFO] Exiting Program and cleanup stuff")
cam.release()
cv2.destroyAllWindows()

19
20
2. Face training

import cv2
import numpy as np
from PIL import Image #pillow package
import os

# Path for face image databaseh


path = 'dataset'

recognizer = cv2.face.LBPHFaceRecognizer_create()
detector =
cv2.CascadeClassifier("haarcascade_frontalface_default.
xml");

# function to get the images and label data


def getImagesAndLabels(path):

imagePaths = [os.path.join(path,f) for f in


os.listdir(path)]
faceSamples=[]
ids = []

for imagePath in imagePaths:

PIL_img = Image.open(imagePath).convert('L') #
convert it to grayscale
img_numpy = np.array(PIL_img,'uint8')

id = int(os.path.split(imagePath)[-
1].split(".")[1])
faces = detector.detectMultiScale(img_numpy)

for (x,y,w,h) in faces:

21
faceSamples.append(img_numpy[y:y+h,x:x+w])
ids.append(id)

return faceSamples,ids

print ("\n [INFO] Training faces. It will take a few


seconds. Wait ...")
faces,ids = getImagesAndLabels(path)
recognizer.train(faces, np.array(ids))

# Save the model into trainer/trainer.yml


recognizer.write('trainer/trainer.yml') #
recognizer.save() worked on Mac, but not on Pi

# Print the numer of faces trained and end program


print("\n [INFO] {0} faces trained. Exiting
Program".format(len(np.unique(ids))))

22
3. Face recognition

import cv2
import numpy as np
import os

recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read('trainer/trainer.yml') #load trained
model
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascadePath);

font = cv2.FONT_HERSHEY_SIMPLEX

#iniciate id counter, the number of persons you want to


include
id = 2 #two persons (e.g. Jacob, Jack)

names = ['','Kanishk','Bhoomika'] #key in names, start


from the second place, leave first empty

# Initialize and start realtime video capture


cam = cv2.VideoCapture(0)
cam.set(3, 640) # set video widht
cam.set(4, 480) # set video height

# Define min window size to be recognized as a face


minW = 0.1*cam.get(3)
minH = 0.1*cam.get(4)

while True:

ret, img =cam.read()

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(
gray,
scaleFactor = 1.2,
minNeighbors = 5,
minSize = (int(minW), int(minH)),
)

for(x,y,w,h) in faces:

cv2.rectangle(img, (x,y), (x+w,y+h),


(255,255,255), 2)

id, confidence =

23
recognizer.predict(gray[y:y+h,x:x+w])

# Check if confidence is less them 100 ==> "0"


is perfect match
if (confidence < 60):
id = names[id]
confidence = " {0}%".format(round(100 -
confidence))
else:
id = "unknown"
confidence = " {0}%".format(round(100 -
confidence))

cv2.putText(img, str(id), (x+5,y-5), font, 1,


(255,255,255), 2)
cv2.putText(img, str(confidence), (x+5,y+h-5),
font, 1, (255,255,0), 1)

cv2.imshow('camera',img)

k = cv2.waitKey(10) & 0xff # Press 'ESC' for exiting


video
if k == 27:
break

# Do a bit of cleanup
print("\n [INFO] Exiting Program and cleanup stuff")
cam.release()
cv2.destroyAllWindows()

24
4. Track image

import tkinter as tk

from tkinter import Message ,Text

import cv2,os

import shutil

import csv

import numpy as np

from PIL import Image, ImageTk

import pandas as pd

import datetime

import time

import tkinter.ttk as ttk

import tkinter.font as font

window = tk.Tk()

#helv36 = tk.Font(family='Helvetica', size=36, weight='bold')

window.title("Face_Recogniser")

dialog_title = 'QUIT'

dialog_text = 'Are you sure?'

#answer = messagebox.askquestion(dialog_title, dialog_text)

#window.geometry('1280x720')

window.configure(background='blue')

#window.attributes('-fullscreen', True)

window.grid_rowconfigure(0, weight=1)

25
window.grid_columnconfigure(0, weight=1)

#path = "profile.jpg"

#Creates a Tkinter-compatible photo image, which can be used


everywhere Tkinter expects an image object.

#img = ImageTk.PhotoImage(Image.open(path))

#The Label widget is a standard Tkinter widget used to display a text


or image on the screen.

#panel = tk.Label(window, image = img)

#panel.pack(side = "left", fill = "y", expand = "no")

#cv_img = cv2.imread("img541.jpg")

#x, y, no_channels = cv_img.shape

#canvas = tk.Canvas(window, width = x, height =y)

#canvas.pack(side="left")

#photo = PIL.ImageTk.PhotoImage(image = PIL.Image.fromarray(cv_img))

# Add a PhotoImage to the Canvas

#canvas.create_image(0, 0, image=photo, anchor=tk.NW)

#msg = Message(window, text='Hello, world!')

# Font is a tuple of (font_family, size_in_points,


style_modifier_string)

26
message = tk.Label(window, text="Face-Recognition-Based-Attendance-
Management-
System" ,bg="Green" ,fg="white" ,width=50 ,height=3,font=('times',
30, 'italic bold underline'))

message.place(x=200, y=20)

lbl = tk.Label(window, text="Enter ID",width=20 ,height=2 ,fg="red"


,bg="yellow" ,font=('times', 15, ' bold ') )

lbl.place(x=400, y=200)

txt = tk.Entry(window,width=20 ,bg="yellow" ,fg="red",font=('times',


15, ' bold '))

txt.place(x=700, y=215)

lbl2 = tk.Label(window, text="Enter


Name",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times',
15, ' bold '))

lbl2.place(x=400, y=300)

txt2 =
tk.Entry(window,width=20 ,bg="yellow" ,fg="red",font=('times', 15,
' bold ') )

txt2.place(x=700, y=315)

lbl3 = tk.Label(window, text="Notification :


",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times', 15, '
bold underline '))

lbl3.place(x=400, y=400)

message = tk.Label(window, text="" ,bg="yellow" ,fg="red" ,width=30


,height=2, activebackground = "yellow" ,font=('times', 15, ' bold '))

message.place(x=700, y=400)

27
lbl3 = tk.Label(window, text="Attendance :
",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times', 15, '
bold underline'))

lbl3.place(x=400, y=650)

message2 = tk.Label(window,
text="" ,fg="red" ,bg="yellow",activeforeground = "green",width=30
,height=2 ,font=('times', 15, ' bold '))

message2.place(x=700, y=650)

def clear():

txt.delete(0, 'end')

res = ""

message.configure(text= res)

def clear2():

txt2.delete(0, 'end')

res = ""

message.configure(text= res)

def is_number(s):

try:

float(s)

return True

except ValueError:

pass

try:

import unicodedata

unicodedata.numeric(s)

28
return True

except (TypeError, ValueError):

pass

return False

def TakeImages():

Id=(txt.get())

name=(txt2.get())

if(is_number(Id) and name.isalpha()):

cam = cv2.VideoCapture(0)

harcascadePath = "haarcascade_frontalface_default.xml"

detector=cv2.CascadeClassifier(harcascadePath)

sampleNum=0

while(True):

ret, img = cam.read()

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = detector.detectMultiScale(gray, 1.3, 5)

for (x,y,w,h) in faces:

cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

#incrementing sample number

sampleNum=sampleNum+1

#saving the captured face in the dataset folder


TrainingImage

cv2.imwrite("TrainingImage2\ "+name +"."+Id +'.'+


str(sampleNum) + ".jpg", gray[y:y+h,x:x+w])

#display the frame

cv2.imshow('frame',img)

#wait for 100 miliseconds

if cv2.waitKey(100) & 0xFF == ord('q'):

29
break

# break if the sample number is morethan 100

elif sampleNum>60:

break

cam.release()

cv2.destroyAllWindows()

res = "Images Saved for ID : " + Id +" Name : "+ name

row = [Id , name]

with open('StudentDetails\StudentDetails.csv','a+') as
csvFile:

writer = csv.writer(csvFile)

writer.writerow(row)

csvFile.close()

message.configure(text= res)

else:

if(is_number(Id)):

res = "Enter Alphabetical Name"

message.configure(text= res)

if(name.isalpha()):

res = "Enter Numeric Id"

message.configure(text= res)

def TrainImages():

recognizer = cv2.face_LBPHFaceRecognizer.create()#recognizer =
cv2.face.LBPHFaceRecognizer_create()#$cv2.createLBPHFaceRecognizer()

harcascadePath = "haarcascade_frontalface_default.xml"

detector =cv2.CascadeClassifier(harcascadePath)

faces,Id = getImagesAndLabels("TrainingImage2")

recognizer.train(faces, np.array(Id))

recognizer.save("C:\\Users\\hp\\PycharmProjects\\Major\\Face-
Recognition-Based-Attendance-System-master\\trainer\\trainer.yml")

30
res = "Image Trained"#+",".join(str(f) for f in Id)

message.configure(text= res)

def getImagesAndLabels(path):

#get the path of all the files in the folder

imagePaths=[os.path.join(path,f) for f in os.listdir(path)]

#print(imagePaths)

#create empth face list

faces=[]

#create empty ID list

Ids=[]

#now looping through all the image paths and loading the Ids and
the images

for imagePath in imagePaths:

#loading the image and converting it to gray scale

pilImage=Image.open(imagePath).convert('L')

#Now we are converting the PIL image into numpy array

imageNp=np.array(pilImage,'uint8')

#getting the Id from the image

Id=int(os.path.split(imagePath)[-1].split(".")[1])

# extract the face from the training image sample

faces.append(imageNp)

Ids.append(Id)

return faces,Ids

def TrackImages():

recognizer =
cv2.face.LBPHFaceRecognizer_create()#cv2.createLBPHFaceRecognizer()

recognizer.read("C:\\Users\\hp\\PycharmProjects\\Major\\Face-
Recognition-Based-Attendance-System-master\\trainer\\trainer.yml")

31
harcascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2.CascadeClassifier(harcascadePath);

df=pd.read_csv("StudentDetails\StudentDetails.csv")

cam = cv2.VideoCapture(0)

font = cv2.FONT_HERSHEY_SIMPLEX

col_names = ['Id','Name','Date','Time']

attendance = pd.DataFrame(columns = col_names)

while True:

ret, im =cam.read()

gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

faces=faceCascade.detectMultiScale(gray, 1.2,5)

for(x,y,w,h) in faces:

cv2.rectangle(im,(x,y),(x+w,y+h),(225,0,0),2)

Id, conf = recognizer.predict(gray[y:y+h,x:x+w])

if(conf < 50):

ts = time.time()

date =
datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')

timeStamp =
datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')

aa=df.loc[df['Id'] == Id]['Name'].values

tt=str(Id)+"-"+aa

attendance.loc[len(attendance)] =
[Id,aa,date,timeStamp]

else:

Id='Unknown'

tt=str(Id)

if(conf > 75):

noOfFile=len(os.listdir("ImagesUnknown"))+1

32
cv2.imwrite("ImagesUnknown\Image"+str(noOfFile) +
".jpg", im[y:y+h,x:x+w])

cv2.putText(im,str(tt),(x,y+h), font, 1,(255,255,255),2)

attendance=attendance.drop_duplicates(subset=['Id'],keep='first')

cv2.imshow('im',im)

if (cv2.waitKey(1)==ord('q')):

break

ts = time.time()

date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')

timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:
%S')

Hour,Minute,Second=timeStamp.split(":")

fileName="Attendance\
Attendance_"+date+"_"+Hour+"-"+Minute+"-"+Second+".csv"

attendance.to_csv(fileName,index=False)

cam.release()

cv2.destroyAllWindows()

#print(attendance)

res=attendance

message2.configure(text= res)

clearButton = tk.Button(window, text="Clear",


command=clear ,fg="red" ,bg="yellow" ,width=20 ,height=2 ,activeb
ackground = "Red" ,font=('times', 15, ' bold '))

clearButton.place(x=950, y=200)

clearButton2 = tk.Button(window, text="Clear",


command=clear2 ,fg="red" ,bg="yellow" ,width=20 ,height=2,
activebackground = "Red" ,font=('times', 15, ' bold '))

clearButton2.place(x=950, y=300)

takeImg = tk.Button(window, text="Take Images",


command=TakeImages ,fg="red" ,bg="yellow" ,width=20 ,height=3,
activebackground = "Red" ,font=('times', 15, ' bold '))

33
takeImg.place(x=200, y=500)

trainImg = tk.Button(window, text="Train Images", command=TrainImages


,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground =
"Red" ,font=('times', 15, ' bold '))

trainImg.place(x=500, y=500)

trackImg = tk.Button(window, text="Track Images", command=TrackImages


,fg="red" ,bg="yellow" ,width=20 ,height=3, activebackground =
"Red" ,font=('times', 15, ' bold '))

trackImg.place(x=800, y=500)

quitWindow = tk.Button(window, text="Quit",


command=window.destroy ,fg="red" ,bg="yellow" ,width=20 ,height=3
, activebackground = "Red" ,font=('times', 15, ' bold '))

quitWindow.place(x=1100, y=500)

copyWrite = tk.Text(window, background=window.cget("background"),


borderwidth=0,font=('times', 30, 'italic bold underline'))

copyWrite.tag_configure("superscript", offset=10)

copyWrite.configure(state="disabled",fg="red" )

copyWrite.pack(side="left")

copyWrite.place(x=800, y=750)

window.mainloop()

5. Attendance marking

34
35
36
CHAPTER-5

CONCLUSION

37
CONCLUSION

Face recognition is an emerging technology that can provide many benefits. Face
recognition can save resources and time, and even generate new income streams, for
companies that implement it right.

What lies ahead for this technology?

It’s difficult to be certain. Some experts predict that our faces will replace IDs, passports
and credit card pin numbers. Given the fact how convenient and cost-effective this
technology is, this prediction is not far-fetched.

If this prediction becomes a reality, any company that implemented the technology today
might gain a competitive advantage in the future.

Marking of attendance through face recognition can be very helpful when it comes to
appropriate and highly secured attendance.

In this type of attendance system, there are very few chances of marking the attendance
through proxies.

Hence, it can turn as the most secure way of marking the attendance.

38
CHAPTER-6
FUTURE SCOPE

39
FUTURE SCOPE

Today, one of the fields that uses facial recognition the most is security. Facial recognition
is a very effective tool that can help law enforcers recognize criminals and software
companies are leveraging the technology to help users access their technology. This
technology can be further developed to be used in other avenues such as ATMs, accessing
confidential files, or other sensitive materials. This can make other security measures such
as passwords and keys obsolete.

Another way that innovators are looking to implement facial recognition is within subways
and other transportation outlets. They are looking to leverage this technology to use faces
as credit cards to pay for your transportation fee. Instead of having to go to a booth to buy
a ticket for a fare, the face recognition would take your face, run it through a system, and
charge the account that you’ve previously created. This could potentially streamline the
process and optimize the flow of traffic drastically. The future is here.

As we took forward this project to connecting with attendance system, it turned out to be
so helpful.

Further, an app can be created for this whole process and can be used in schools, colleges
and other institutions. Or even in offices, malls, shops for marking the presence of the
employees.

40
BIBLOGRAPHY

1. https://facedetection.com/datasets/
2. https://docs.microsoft.com/en-us/azure/cognitive-services/Face/Overview
3. https://en.wikipedia.org/wiki/Facial_recognition_system
4. https://www.datacamp.com/community/tutorials/face-detection-python-opencv
5. Beymer, D. and Poggio, T. (1995) Face Recognition From One Example View,
A.I. Memo No. 1536, C.B.C.L. Paper No. 121. MIT
6. Goldstein, A.J., Harmon, L.D., and Lesk, A.B. (1971). Identification of human
faces. In Proc. IEEE, Vol. 59, page 748

41

You might also like