jasonwuyl92
initial commit after cleanup
2ab45c8
import numpy as np
import gradio as gr
from sentence_transformers import util as st_util
import pandas as pd
import os
from utils import load_models, get_image_embedding, img_folder, model_name_to_ids, data_path, model_names
def search(input_img, num_outputs):
results = []
for model_name in model_names:
query_embedding = get_image_embedding(model_name, input_img)
top_results = st_util.semantic_search(query_embedding,
np.vstack(list(corpus_embeddings[model_name + '-embedding'])),
top_k=int(num_outputs))[0]
results.append([os.path.join(img_folder,
corpus_embeddings.iloc[hit['corpus_id']]['name']) for hit in top_results])
return results
load_models()
corpus_embeddings = pd.read_parquet(
os.path.join(data_path, 'metadata/patagonia_losGatos_embeddings.pq'))
# Create the Gradio interface
iface = gr.Interface(
fn=search,
inputs=[gr.Image(type="pil"),
gr.inputs.Number(label="Number of results", default=3)],
outputs=[gr.Gallery(label=model_name, type='filepath') for model_name in model_names],
title="Search Similar Images",
description="Upload an image and find similar images",
)
# Launch the Gradio interface
iface.launch(debug=True)