Spaces:
Runtime error
Runtime error
| from flask import * | |
| from PIL import Image | |
| import face_recognition | |
| import cv2 | |
| import numpy as np | |
| import csv | |
| from datetime import datetime | |
| ################# | |
| from flask_socketio import SocketIO,emit | |
| import base64 | |
| ################## | |
| cnt =1 | |
| app = Flask (__name__ ) | |
| ################# | |
| app.config['SECRET_KEY'] = 'secret!' | |
| socket = SocketIO(app,async_mode="eventlet") | |
| ####################### | |
| ###################### | |
| # def base64_to_image(base64_string): | |
| # # Extract the base64 encoded binary data from the input string | |
| # base64_data = base64_string.split(",")[1] | |
| # # Decode the base64 data to bytes | |
| # image_bytes = base64.b64decode(base64_data) | |
| # # Convert the bytes to numpy array | |
| # image_array = np.frombuffer(image_bytes, dtype=np.uint8) | |
| # # Decode the numpy array as an image using OpenCV | |
| # image = cv2.imdecode(image_array, cv2.IMREAD_COLOR) | |
| # return image | |
| # @socket.on("connect") | |
| # def test_connect(): | |
| # print("Connected") | |
| # emit("my response", {"data": "Connected"}) | |
| # @socket.on("image") | |
| # def receive_image(image): | |
| # global cnt | |
| # s = True | |
| # while s : | |
| # # Decode the base64-encoded image data | |
| # image = base64_to_image(image) | |
| # known_faces_names = ["Sarwan Sir", "Vikas","Lalit","Jasmeen","Anita Ma'am"] | |
| # known_face_encodings = [] | |
| # # Load known face encodings | |
| # 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] | |
| # lalit_image = face_recognition.load_image_file("photos/lalit.jpg") | |
| # lalit_encoding = face_recognition.face_encodings(lalit_image)[0] | |
| # jasmine_image = face_recognition.load_image_file("photos/jasmine.jpg") | |
| # jasmine_encoding = face_recognition.face_encodings(jasmine_image)[0] | |
| # maam_image = face_recognition.load_image_file("photos/maam.png") | |
| # maam_encoding = face_recognition.face_encodings(maam_image)[0] | |
| # known_face_encodings = [sir_encoding, vikas_encoding,lalit_encoding,jasmine_encoding,maam_encoding] | |
| # students = known_faces_names.copy() | |
| # face_locations = [] | |
| # face_encodings = [] | |
| # face_names = [] | |
| # # now = datetime.now() | |
| # # current_date = now.strftime("%Y-%m-%d") | |
| # # csv_file = open(f"{current_date}.csv", "a+", newline="") | |
| # # # csv_writer = csv.writer(csv_file) | |
| # small_frame = cv2.resize(image, (0, 0), fx=0.25, fy=0.25) | |
| # rgb_small_frame = small_frame[:, :, ::-1] | |
| # # # emit("result",{"name":"level " +str(cnt),"score":str(len(face_encodings))}) | |
| # face_locations = face_recognition.face_locations(rgb_small_frame) | |
| # face_encodings = face_recognition.face_encodings(small_frame, face_locations) | |
| # face_names = [] | |
| # emit("result",{"name":"level2 " +str(cnt),"score":str(len(face_encodings))}) | |
| # cnt = cnt +1 | |
| # for face_encoding in face_encodings: | |
| # # emit("result",{"name":"in for ","score":"34"}) | |
| # matches = face_recognition.compare_faces(known_face_encodings, face_encoding) | |
| # name = "" | |
| # face_distance = face_recognition.face_distance(known_face_encodings, 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) | |
| # s = False | |
| # break | |
| # emit("result",{"name":str(name),"score":"myScore"}) | |
| # # for name in face_names: | |
| # # if name in known_faces_names and name in students and name not in existing_names: | |
| # # students.remove(name) | |
| # # print(students) | |
| # # print(f"Attendance recorded for {name}") | |
| # # current_time = now.strftime("%H-%M-%S") | |
| # # csv_writer.writerow([name, current_time, "Present"]) | |
| # # existing_names.add(name) # Add the name to the set of existing names | |
| def home(): | |
| return render_template("index.html") | |
| def show_table(): | |
| # Get the current date | |
| current_date = datetime.now().strftime("%Y-%m-%d") | |
| # Read the CSV file to get attendance data | |
| attendance=[] | |
| try: | |
| with open(f"{current_date}.csv", newline="") as csv_file: | |
| csv_reader = csv.reader(csv_file) | |
| attendance = list(csv_reader) | |
| except FileNotFoundError: | |
| pass | |
| # Render the table.html template and pass the attendance data | |
| return render_template('attendance.html', attendance=attendance) | |
| if __name__ == '__main__': | |
| socket.run(app,host="0.0.0.0", port=7860) | |
| ########################################################################### | |
| # @app.route('/table') | |
| # def show_table(): | |
| # # Get the current date | |
| # current_date = datetime.now().strftime("%Y-%m-%d") | |
| # # Read the CSV file to get attendance data | |
| # attendance=[] | |
| # try: | |
| # with open(f"{current_date}.csv", newline="") as csv_file: | |
| # csv_reader = csv.reader(csv_file) | |
| # attendance = list(csv_reader) | |
| # except FileNotFoundError: | |
| # pass | |
| # # Render the table.html template and pass the attendance data | |
| # return render_template('attendance.html', attendance=attendance) | |
| # if __name__ == "__main__": | |
| # socket.run(app,host="0.0.0.0", port=7860) | |