from sklearn.metrics.pairwise import cosine_similarity from sentence_transformers import SentenceTransformer import gradio as gr import numpy as np model = SentenceTransformer("clip-ViT-L-14") def predict(im1, im2): embeddings = model.encode([im1, im2]) embeddings_reshaped = [np.reshape(img, (1, -1)) for img in embeddings] sim = cosine_similarity(embeddings_reshaped[0], embeddings_reshaped[1]) if sim > 0.72: return sim, "SAME PERSON, UNLOCK PHONE" else: return sim, "DIFFERENT PEOPLE, DON'T UNLOCK" interface = gr.Interface(fn=predict, inputs= [gr.Image(type="pil", source="webcam"), gr.Image(type="pil", source="webcam")], outputs= [gr.Number(label="Similarity"), gr.Textbox(label="Message")] ) interface.launch(debug=True)