Spaces:
Sleeping
Sleeping
import streamlit as st | |
import torch | |
import os | |
from PIL import Image | |
from utils.search import search_images | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
st.set_page_config(layout="wide") | |
search_path = None | |
def show_image(result): | |
col1, col2, col3 = st.columns(3) | |
image_folder2 = "./data/images_mr" | |
for idx, image_name in enumerate(result.ids): | |
if idx % 3 == 0: | |
with col1: | |
file_name = str(image_name) + ".jpg" | |
image_path = os.path.join(image_folder2, file_name) | |
st.image(image_path, caption=image_name, width=200) | |
elif idx % 3 == 1: | |
with col2: | |
file_name = str(image_name) + ".jpg" | |
image_path = os.path.join(image_folder2, file_name) | |
st.image(image_path, caption=image_name, width=200) | |
else: | |
with col3: | |
file_name = str(image_name) + ".jpg" | |
image_path = os.path.join(image_folder2, file_name) | |
st.image(image_path, caption=image_name, width=200) | |
image_folder1 = "./examples" | |
image_paths = [] | |
for file_name in os.listdir(image_folder1): | |
image_paths.append(os.path.join(image_folder1, file_name)) | |
# st.write(image_paths) | |
with st.sidebar: | |
if st.sidebar.button("Choose a examples"): | |
search_path = image_paths[0] | |
st.image(image_paths[0], caption="example", width=150) | |
search_term = st.file_uploader(label="Chose a file", type=["jpg", "png"]) | |
if search_term is None: | |
st.text("Please upload a image!") | |
else: | |
image = Image.open(search_term).convert('RGB') | |
st.image(image, width=300) | |
if search_term: | |
button = st.sidebar.button("Search") | |
if button: | |
search_path = search_term | |
st.header("Image Retrieval") | |
st.write("This is a simple app for image retrieval using Resnet18 and Vector Database") | |
if search_path is not None: | |
result = search_images(search_path) | |
show_image(result) | |