File size: 979 Bytes
2b11a19
 
 
 
 
 
 
 
 
b0014c2
2b11a19
 
 
 
 
 
 
 
 
 
 
 
3a8f1e1
 
 
 
 
0eed66d
3a8f1e1
2b11a19
 
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
import numpy as np
from PIL import Image
from araclip import AraClip
import gradio as gr
model = AraClip.from_pretrained("Arabic-Clip/araclip")

def search(labels, image):
    # process labels
    labels = labels.split(",")
    labels =  [item.strip() for item in labels if item != ""]
    
    # embed data 
    image_features = model.embed(image=image)
    text_features = np.stack([model.embed(text=label) for label in labels])
    # search for most similar data
    similarities = text_features @ image_features
    best_match = labels[np.argmax(similarities)]
    return best_match

    


demo = gr.Interface(search,
                    [gr.Textbox(label="labels",info="separate labels with ',' "),gr.Image(type="pil")],
                    [gr.Textbox(label="most probable label")],
                    examples=[["حصان, كلب, قطة", "cat.png"]], 
                    theme="ocean",
                    title="AraClip"
                   )

demo.launch(debug=True)