Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -52,25 +52,104 @@ def test_connect():
|
|
52 |
def receive_image(image):
|
53 |
# Decode the base64-encoded image data
|
54 |
image = base64_to_image(image)
|
55 |
-
image = cv2.resize(image, (224, 224), interpolation=cv2.INTER_AREA)
|
56 |
-
|
57 |
-
#
|
58 |
-
|
59 |
-
image = (image
|
60 |
-
#
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
@app.route ("/")
|
69 |
def home():
|
70 |
return render_template("index.html")
|
71 |
|
72 |
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
|
76 |
|
|
|
52 |
def receive_image(image):
|
53 |
# Decode the base64-encoded image data
|
54 |
image = base64_to_image(image)
|
55 |
+
# image = cv2.resize(image, (224, 224), interpolation=cv2.INTER_AREA)
|
56 |
+
|
57 |
+
# # emit("processed_image", image)
|
58 |
+
# # Make the image a numpy array and reshape it to the models input shape.
|
59 |
+
# image = np.asarray(image, dtype=np.float32).reshape(1, 224, 224, 3)
|
60 |
+
# image = (image / 127.5) - 1
|
61 |
+
# # Predicts the model
|
62 |
+
# prediction = model.predict(image)
|
63 |
+
# index = np.argmax(prediction)
|
64 |
+
# class_name = class_names[index]
|
65 |
+
# confidence_score = prediction[0][index]
|
66 |
+
# emit("result",{"name":str(class_name),"score":str(confidence_score)})
|
67 |
+
# #######################
|
68 |
+
|
69 |
+
|
70 |
+
|
71 |
+
|
72 |
+
# @app.route('/at')
|
73 |
+
# def attend():
|
74 |
+
# # Face recognition variables
|
75 |
+
known_faces_names = ["Sarwan Sir", "Vikas","Lalit","Jasmeen","Anita Ma'am"]
|
76 |
+
known_face_encodings = []
|
77 |
+
|
78 |
+
# Load known face encodings
|
79 |
+
sir_image = face_recognition.load_image_file("photos/sir.jpeg")
|
80 |
+
sir_encoding = face_recognition.face_encodings(sir_image)[0]
|
81 |
+
|
82 |
+
vikas_image = face_recognition.load_image_file("photos/vikas.jpg")
|
83 |
+
vikas_encoding = face_recognition.face_encodings(vikas_image)[0]
|
84 |
+
|
85 |
+
lalit_image = face_recognition.load_image_file("photos/lalit.jpg")
|
86 |
+
lalit_encoding = face_recognition.face_encodings(lalit_image)[0]
|
87 |
+
|
88 |
+
jasmine_image = face_recognition.load_image_file("photos/jasmine.jpg")
|
89 |
+
jasmine_encoding = face_recognition.face_encodings(jasmine_image)[0]
|
90 |
+
|
91 |
+
maam_image = face_recognition.load_image_file("photos/maam.png")
|
92 |
+
maam_encoding = face_recognition.face_encodings(maam_image)[0]
|
93 |
+
|
94 |
+
known_face_encodings = [sir_encoding, vikas_encoding,lalit_encoding,jasmine_encoding,maam_encoding]
|
95 |
+
|
96 |
+
students = known_faces_names.copy()
|
97 |
+
|
98 |
+
face_locations = []
|
99 |
+
face_encodings = []
|
100 |
+
face_names = []
|
101 |
+
|
102 |
+
# now = datetime.now()
|
103 |
+
# current_date = now.strftime("%Y-%m-%d")
|
104 |
+
# csv_file = open(f"{current_date}.csv", "a+", newline="")
|
105 |
+
|
106 |
+
# csv_writer = csv.writer(csv_file)
|
107 |
+
small_frame = cv2.resize(image, (0, 0), fx=0.25, fy=0.25)
|
108 |
+
rgb_small_frame = small_frame[:, :, ::-1]
|
109 |
+
|
110 |
+
face_locations = face_recognition.face_locations(rgb_small_frame)
|
111 |
+
face_encodings = face_recognition.face_encodings(small_frame, face_locations)
|
112 |
+
face_names = []
|
113 |
+
|
114 |
+
for face_encoding in face_encodings:
|
115 |
+
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
|
116 |
+
name = ""
|
117 |
+
face_distance = face_recognition.face_distance(known_face_encodings, face_encoding)
|
118 |
+
best_match_index = np.argmin(face_distance)
|
119 |
+
if matches[best_match_index]:
|
120 |
+
name = known_faces_names[best_match_index]
|
121 |
+
|
122 |
+
face_names.append(name)
|
123 |
+
emit("result",{"name":str(name),"score":"myScore"})
|
124 |
+
|
125 |
+
# for name in face_names:
|
126 |
+
# if name in known_faces_names and name in students and name not in existing_names:
|
127 |
+
# students.remove(name)
|
128 |
+
# print(students)
|
129 |
+
# print(f"Attendance recorded for {name}")
|
130 |
+
# current_time = now.strftime("%H-%M-%S")
|
131 |
+
# csv_writer.writerow([name, current_time, "Present"])
|
132 |
+
# existing_names.add(name) # Add the name to the set of existing names
|
133 |
|
134 |
@app.route ("/")
|
135 |
def home():
|
136 |
return render_template("index.html")
|
137 |
|
138 |
|
139 |
+
@app.route('/table')
|
140 |
+
def show_table():
|
141 |
+
# Get the current date
|
142 |
+
current_date = datetime.now().strftime("%Y-%m-%d")
|
143 |
+
# Read the CSV file to get attendance data
|
144 |
+
attendance=[]
|
145 |
+
try:
|
146 |
+
with open(f"{current_date}.csv", newline="") as csv_file:
|
147 |
+
csv_reader = csv.reader(csv_file)
|
148 |
+
attendance = list(csv_reader)
|
149 |
+
except FileNotFoundError:
|
150 |
+
pass
|
151 |
+
# Render the table.html template and pass the attendance data
|
152 |
+
return render_template('attendance.html', attendance=attendance)
|
153 |
|
154 |
|
155 |
|