Spaces:
Runtime error
Runtime error
import gradio as gr | |
import cv2 | |
from anti_spoofing import AntiSpoofingSystem | |
# Initialize the anti-spoofing system | |
anti_spoofing_system = AntiSpoofingSystem() | |
def process_frame(image, student_id, student_name): | |
# Set student details in the anti-spoofing system | |
anti_spoofing_system.student_id = student_id | |
anti_spoofing_system.student_name = student_name | |
# Convert the Gradio image format to OpenCV format | |
frame = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) | |
# Process the frame using the anti-spoofing system | |
processed_frame = frame.copy() # If needed, adapt the anti-spoofing system to take individual frames | |
anti_spoofing_system.detect_smartphone(processed_frame) | |
# Display a message if a smartphone is detected or blinks are counted | |
message = "Mobile phone detected, can't record attendance" if anti_spoofing_system.smartphone_detected else "Processing attendance..." | |
return cv2.cvtColor(processed_frame, cv2.COLOR_BGR2RGB), message | |
iface = gr.Interface( | |
fn=process_frame, | |
inputs=[ | |
gr.Image(source="webcam", tool=None, streaming=True, label="Webcam Feed"), | |
gr.Textbox(label="Student ID"), | |
gr.Textbox(label="Student Name") | |
], | |
outputs=[ | |
gr.Image(label="Processed Frame"), | |
gr.Textbox(label="Status Message") | |
] | |
) | |
iface.launch() | |