Vikas01's picture
Update app.py
a104a54
raw
history blame
2.22 kB
import face_recognition
import cv2
import numpy as np
import csv
from datetime import datetime
video_capture=cv2.VideoCapture(0)
sir_image=face_recognition.load_image_file("photos/sir.jpeg")
sir_encoding=face_recognition.face_encodings(sir_image)[0]
vikas_image=face_recognition.load_image_file("photos/vikas.jpg")
vikas_encoding=face_recognition.face_encodings(vikas_image)[0]
known_face_encoding=[sir_encoding,vikas_encoding]
known_faces_names=["Sarwan Sir","Vikas"]
students=known_faces_names.copy()
face_locations=[]
face_encodings=[]
face_names=[]
s=True
now=datetime.now()
current_date=now.strftime("%Y-%m-%d")
f=open(current_date+'.csv','w+',newline='')
lnwriter=csv.writer(f)
############################
import io
import streamlit as st
bytes_data=None
img_file_buffer=st.camera_input("Take a picture")
if img_file_buffer is not None:
while True:
_,frame=video_capture.read()
small_frame=cv2.resize(frame,(0,0),fx=0.25,fy=0.25)
rgb_small_frame=small_frame[:,:,::-1]
if s:
face_locations=face_recognition.face_locations(rgb_small_frame)
face_encodings = face_recognition.face_encodings(small_frame, face_locations)
face_names=[]
for face_encoding in face_encodings:
matches=face_recognition.compare_faces(known_face_encoding,face_encoding)
name=""
face_distance=face_recognition.face_distance(known_face_encoding,face_encoding)
best_match_index=np.argmin(face_distance)
if matches[best_match_index]:
name=known_faces_names[best_match_index]
face_names.append(name)
if name in known_faces_names:
if name in students:
students.remove(name)
print(students)
current_time=now.strftime("%H-%M-%S")
lnwriter.writerow([name,current_time,"Present"])
cv2.imshow("attendence system",frame)
if cv2.waitKey(1) & 0xFF==ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()
f.close()
if bytes_data is None:
st.stop()