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) | |