-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstreamlit_app.py
More file actions
36 lines (30 loc) · 1.27 KB
/
streamlit_app.py
File metadata and controls
36 lines (30 loc) · 1.27 KB
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
import streamlit as st
from src.predict import predict
from src.model import prepare_model
from src import utils
from src.const import IMAGE_DIR, CSV_NAME, HUGGING_FACE_MODEL_NAME
def get_similar_images(model, processor, dataset, dataset_with_embeddings, url):
id_results, retrieved_examples, input_image = predict(model, processor, dataset, dataset_with_embeddings, url)
return id_results, retrieved_examples, input_image
st.set_page_config(layout="wide")
st.title("Image retrieval")
with st.spinner('Model creation'):
model, processor, dataset, dataset_with_embeddings = prepare_model()
with st.form('Input'):
url = st.text_input("Write an URL", "https://c8.staticflickr.com/9/8602/16049352178_7d3413f8dc_o.jpg")
submitted = st.form_submit_button('Find similar images')
if submitted:
id_results, retrieved_examples, input_image = get_similar_images(
model,
processor,
dataset,
dataset_with_embeddings,
url
)
st.image(input_image, caption='The input image', width=600)
st.image(
retrieved_examples['image'],
caption=[f'Top {i+1}' for i in range(len(retrieved_examples['image']))],
use_column_width="False",
width=300
)