sarwansingh commited on
Commit
be60b2c
1 Parent(s): 6bc0490
Files changed (1) hide show
  1. app.py +86 -0
app.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from keras.models import load_model
2
+ from PIL import Image
3
+ import numpy as np
4
+ import cv2
5
+ import requests
6
+
7
+ import face_recognition
8
+ import os
9
+ from datetime import datetime
10
+
11
+ #the following are to do with this interactive notebook code
12
+ from matplotlib import pyplot as plt # this lets you draw inline pictures in the notebooks
13
+ import pylab # this allows you to control figure size
14
+ pylab.rcParams['figure.figsize'] = (10.0, 8.0) # this controls figure size in the notebook
15
+
16
+ import io
17
+ import streamlit as st
18
+ bytes_data=None
19
+
20
+ Images = []
21
+ classnames = []
22
+ myList = os.listdir()
23
+ #st.write(myList)
24
+ for cls in myList:
25
+ if os.path.splitext(cls)[1] == ".jpg" :
26
+ curImg = cv2.imread(f'{cls}')
27
+ Images.append(curImg)
28
+ classnames.append(os.path.splitext(cls)[0])
29
+ st.write(classnames)
30
+
31
+
32
+ def findEncodings(Images):
33
+ encodeList = []
34
+ for img in Images:
35
+ img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
36
+ encode = face_recognition.face_encodings(img)[0]
37
+ encodeList.append(encode)
38
+ return encodeList
39
+
40
+
41
+ encodeListknown = findEncodings(Images)
42
+ st.write('Encoding Complete')
43
+
44
+ img_file_buffer=st.camera_input("Take a picture")
45
+ if img_file_buffer is not None:
46
+
47
+ test_image = Image.open(img_file_buffer)
48
+ st.image(test_image, use_column_width=True)
49
+
50
+ image = np.asarray(test_image)
51
+
52
+ #########################
53
+ imgS = cv2.resize(image,(0,0),None,0.25,0.25)
54
+ imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB)
55
+ facesCurFrame = face_recognition.face_locations(imgS)
56
+ encodesCurFrame = face_recognition.face_encodings(imgS,facesCurFrame)
57
+
58
+ for encodeFace,faceLoc in zip(encodesCurFrame,facesCurFrame):
59
+ matches = face_recognition.compare_faces(encodeListknown,encodeFace)
60
+ faceDis = face_recognition.face_distance(encodeListknown,encodeFace)
61
+ #print(faceDis)
62
+ matchIndex = np.argmin(faceDis)
63
+
64
+ if matches[matchIndex]:
65
+ name = classnames[matchIndex].upper()
66
+ st.write(name)
67
+ y1, x2, y2, x1 = faceLoc
68
+ y1, x2, y2, x1 = y1*4,x2*4,y2*4,x1*4
69
+ cv2.rectangle(image,(x1,y1),(x2,y2),(0,255,0),2)
70
+ cv2.rectangle(image,(x1,y2-35),(x2,y2),(0,255,0),cv2.FILLED)
71
+ cv2.putText(image,name,(x1+6,y2-6),cv2.FONT_HERSHEY_COMPLEX,1,(255, 255, 255),2)
72
+
73
+ ##############
74
+ url = "https://rgiattendance.000webhostapp.com"
75
+ url1 = "/update.php"
76
+ data1 = {'name':name }
77
+ response = requests.post(url+url1, data=data1)
78
+
79
+ if response.status_code == 200 :
80
+ st.write(" data updated on : " + url)
81
+ else : st.write("data not updated ")
82
+
83
+ ##############################
84
+ st.image(image)
85
+ if bytes_data is None:
86
+ st.stop()