| import matplotlib.pyplot as plt |
| import gradio as gr |
| from sklearn.metrics.pairwise import cosine_similarity |
| from sentence_transformers import SentenceTransformer |
|
|
| model = SentenceTransformer(f'sentence-transformers/clip-ViT-L-14') |
|
|
| def predict(im1, im2): |
| embeddings = model.encode([im1, im2]) |
| sim = cosine_similarity(embeddings[0].reshape(1, -1), embeddings[1].reshape(1, -1))[0][0] |
| if sim > 0.89: |
| 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) |