import datasets from transformers import AutoFeatureExtractor, AutoModelForImageClassification import gradio as gr import torch import transformers from sklearn.metrics.pairwise import cosine_similarity from sklearn.metrics import silhouette_score from sentence_transformers import SentenceTransformer model = SentenceTransformer("clip-ViT-L-14") def predict(im1, im2): embeddings = [model.encode(im1), model.encode(im2)] sim = cosine_similarity(embeddings[0].reshape(1, -1), embeddings[1].reshape(1, -1)).squeeze() if sim > 0.80: return sim, "SAME PERSON, UNLOCK PHONE" else: return sim, "DIFFERENT PEOPLE, DON'T UNLOCK" import gradio as gr 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")], title='Basic Face-Id', description='A very simple face-id implementation using sentence-transformer embeddings.', ) interface.launch()