Spaces:
Runtime error
Runtime error
File size: 2,511 Bytes
61c7634 e15dae8 c9911aa 17bb1f6 fae45ed 61c7634 236866f c34d9ea 4622c8d 8465f52 3ce1a28 34700d7 78f266b 34700d7 d30d4ce 684d9c0 921054e ec11b9a 6f3fb83 62635cf 17bb1f6 5c5bd98 6f3fb83 34700d7 f4d85d5 6115563 31fec50 34700d7 925d019 62635cf af84b0b 58bc1a3 1377bb8 f4d85d5 ed60eed 5c5bd98 8465f52 f4d85d5 2ce2e3c f4d85d5 8465f52 f4d85d5 ec11b9a f4d85d5 cf1f1df |
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
from turtle import color, onclick
import streamlit as st
from PIL import Image, ImageOps
import glob
import json
import requests
import random
import io
random.seed(10)
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 on the left and compare all the images with index counter on the right. At the bottom there are buttons to show/hide the groundtruth!**")
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, true_idx, descr = descriptions[st.session_state.example_idx]
true_idx = int(true_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))
if col1.button('Click to reveal/hide groundtruth image index (try to guess yourself first!)'):
st.session_state.show = not st.session_state.show
col1.markdown(f'**Description for {img_set}**:')
col1.markdown(f'**{descr}**')
big_img = images[index]
img = Image.open(io.BytesIO(requests.get(images[index], stream=True).content))
img_width, img_height = img.size
smaller = min(img_width, img_height)
images[index]= ImageOps.expand(img,border=smaller//18,fill='blue')
caps = list(range(10))
cap = str(index)
if st.session_state.show:
caps[true_idx] = f'{true_idx} (TARGET IMAGE)'
img = Image.open(io.BytesIO(requests.get(img_urls[index], stream=True).content))
img_width, img_height = img.size
smaller = min(img_width, img_height)
images[true_idx] = ImageOps.expand(img,border=smaller//8,fill='green')
if true_idx == index:
cap = f'{true_idx} (TARGET IMAGE)'
else:
caps[true_idx] = f'{true_idx}'
if true_idx == index:
cap = f'{true_idx}'
col1.image(big_img, use_column_width=True, caption=cap)
col2.image(images, width=175, caption=caps)
|