File size: 1,767 Bytes
b4db714 277cb8f b4db714 8b20647 b4db714 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import torch
import gradio as gr
import matplotlib.pyplot as plt
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
model = SentenceTransformer('clip-ViT-L-14')
def predict(im1, im2):
embeding = model.encode([im1, im2])
sim = cosine_similarity(embeding)
sim = sim[0][1]
if sim > 0.75:
return sim, "SAME PERSON, UNLOCK PHONE"
else:
return sim, "DIFFERENT PEOPLE, DON'T UNLOCK"
title="Face-id Application Demo 🤓"
description = "Upload similar/different images to compare Image similarity for face-id demo"
article = """
- Select any two facial images from your device or use a webcam.
- Alternatively, select any pair of examples facial images provided for demo
- Click submit button for image face comparison
- Click clear button to try new Images
"""
img_upload = gr.Interface(
fn=predict,
inputs= [gr.Image(type="pil", source="upload"),
gr.Image(type="pil", source="upload")],
outputs= [gr.Number(label="Similarity"),
gr.Textbox(label="Message")],
title=title,
description=description,
article=article,
examples=[['examples/img1.jpg', 'examples/img2.jpg'],
['examples/img1.jpg', 'examples/img3.jpg']]
)
webcam_upload = 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=title,
description=description,
article=article,
)
face_id = gr.TabbedInterface(
[img_upload, webcam_upload],
["Upload-Image", "Use Webcam"])
face_id.launch(debug=True)
|