import cv2 | |
import gradio as gr | |
from spoofynet import SpoofyNet | |
spoofynet = SpoofyNet() | |
def find_spoofs(input_img): | |
spoofs = spoofynet.find_spoof(input_img) | |
for spoof in spoofs: | |
(startX, startY, endX, endY) = spoof["coords"] | |
label = "Real" if spoof["is_real"] else "Spoofed" | |
color = (0, 255, 0) if spoof["is_real"] else (0, 0, 255) | |
cv2.putText( | |
input_img, | |
f"{label}: {spoof['probs']:.2f}", | |
(startX, startY - 10), | |
cv2.FONT_HERSHEY_SIMPLEX, | |
0.5, | |
color, | |
2, | |
) | |
cv2.rectangle(input_img, (startX, startY), (endX, endY), color, 4) | |
return input_img | |
demo = gr.Interface(find_spoofs, gr.Image(), "image") | |
demo.launch() | |