File size: 1,344 Bytes
e93b7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import configparser
import gradio as gr
import numpy as np
from search_engine_model import SearchEngineModel

def get_image_embeddings(input_image_paths_list):
    search_engine_model = SearchEngineModel()

    model, preprocess = search_engine_model.load_clip_model()
    image_embeddings_list = []
    for current_input_image_path_aux in input_image_paths_list:
        current_image_embeddings = search_engine_model.encode_image(model, preprocess, current_input_image_path_aux)
        image_embeddings_list.append(current_image_embeddings.values[0])

    image_embeddings_np = np.array(image_embeddings_list)

    return image_embeddings_np

def main():
    config_manager_obj = configparser.ConfigParser()
    config_manager_obj.read('./config.cfg')
    
    main_app = gr.Interface(
        fn=get_image_embeddings,
        inputs=[
            gr.File(label="Upload Image", file_count="multiple"),
        ],
        outputs=[
            gr.Dataframe(type='numpy'),
        ],
        title="CLIP Image Embeddings",
        description="Obtain the embeddings of the input images",
        flagging_mode="never"
    )

    HOST_IP_ADDRESS = config_manager_obj['SERVER']['HOST_IP_ADDRESS']
    PORT_NUMBER = int(config_manager_obj['SERVER']['PORT_NUMBER'])
    main_app.launch(server_name=HOST_IP_ADDRESS, server_port=PORT_NUMBER)

main()