imagecode-demo / app.py
BennoKrojer's picture
x
ed60eed
raw
history blame
2.12 kB
from turtle import color, onclick
import streamlit as st
from PIL import Image, ImageOps
import glob
import json
import requests
import random
import io
if 'show' not in st.session_state:
st.session_state.show = False
if 'example_idx' not in st.session_state:
st.session_state.example_idx = 0
st.set_page_config(layout="wide")
st.markdown("**This is a demo of the *ImageCoDe* dataset. Sample an example with the counter on the right and compare all the images with index counter on the right. Toggle the buttons to show/hide the groundtruth target image!**")
col1, col2 = st.columns(2)
prefix = 'https://raw.githubusercontent.com/BennoKrojer/imagecode-val-set/main/image-sets-val/'
set2ids = json.load(open('set2ids.json', 'r'))
descriptions = json.load(open('valid_list.json', 'r'))
# example_idx = int(col1.number_input('Sample an example (description + corresponding images) from the validation set', value=0, min_value=0, max_value=len(descriptions)-1))
if col1.button('Sample an example (description + corresponding images) from the validation set'):
st.session_state.example_idx = random.randint(0, len(descriptions)-1)
img_set, idx, descr = descriptions[st.session_state.example_idx]
idx = int(idx)
images = [prefix+'/'+img_set+'/'+i for i in set2ids[img_set]]
img_urls = images.copy()
index = int(col2.number_input('Image Index from 0 to 9', value=0, min_value=0, max_value=9))
col1.markdown(f'**Description**:')
col1.markdown(descr)
img = images[index]
images[index] = ImageOps.expand(Image.open(io.BytesIO(requests.get(images[index], stream=True).content)),border=20,fill='blue')
caps = list(range(10))
cap = str(index)
if st.session_state.show:
caps[idx] = f'{idx} (TARGET IMAGE)'
if idx == index:
cap = f'{idx} (TARGET IMAGE)'
else:
caps[idx] = f'{idx}'
if idx == index:
cap = f'{idx}'
col1.image(img, use_column_width=True, caption=cap)
col2.image(images, width=175, caption=caps)
if col1.button('Show groundtruth target image'):
st.session_state.show = True
if col1.button('Hide groundtruth target image'):
st.session_state.show = False