Spaces:
Runtime error
Runtime error
File size: 3,513 Bytes
748cc87 d79174d 748cc87 e4fefa7 748cc87 d79174d 748cc87 d79174d 748cc87 d79174d 748cc87 d79174d 748cc87 d79174d 748cc87 |
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 67 68 69 70 71 72 73 74 75 76 77 78 |
import streamlit as st
import numpy as np
from itertools import compress
from PIL import Image
from Dashboard_automation_setup import fun_dict
st.title('Automated Assessment')
st.write('On this page you can use automated assessment algorithms to assess how good uploaded images match their respective prompts.')
st.write(' ')
st.sidebar.image('Graphics/IL_Logo.png')
try:
# Create necessary variables
prompt_dir = st.session_state['prompt_dir']
curr_eval_df = st.session_state['eval_df']
curr_eval_df['Picture_index']=curr_eval_df.index.values
# Assess how many images are available for automatic assessment
automated_eval_available = sum(curr_eval_df['automated_eval'])
# Add task name to eval_df
temp_prompt_dir=prompt_dir[['ID','Representations','Task_specific_label']]
temp_prompt_dir['Prompt_no']=temp_prompt_dir['ID'].astype('str')
curr_eval_df = curr_eval_df.merge(temp_prompt_dir,on='Prompt_no')
# Check that user correctly filled out the automation setup file
assert list(fun_dict.keys())==st.session_state['automated_tasks'], 'Unsure that the list of automated tasks in Dashboard_setup.py is the same as the keys of the function dict in Dashboard_automation_setup.py'
except KeyError:
automated_eval_available = 0
# If images for assessment available: create form to start assessment
# Else: Note to upload images for assessment
if automated_eval_available > 0:
# Create objects to hold selections of tasks for automated assessment
task_list = list(fun_dict.keys())
task_list_len = len(task_list)
task_list_selected = task_list.copy()
with st.form("auto_assessment_form",clear_on_submit=True):
# Form info statment
st.write('Select tasks to assess with the automated assessment:')
# Create list of bool selection buttons, one for every task
for i_task in range(task_list_len):
curr_task = task_list[i_task]
curr_task_count = len(curr_eval_df.loc[
(curr_eval_df['automated_eval']==True)&
(curr_eval_df['Task']==curr_task)])
task_list_selected[i_task] = st.checkbox(
'{0} ({1} images available)'.format(curr_task, str(curr_task_count)))
submitted = st.form_submit_button("Start automated assessment")
if submitted:
# Create list for tasks which were selected for assessment
selected_tasks = list(compress(task_list,task_list_selected))
# Create dataset to loop over with assessment
assessed_df = curr_eval_df.loc[
(curr_eval_df['automated_eval']==True)&
(curr_eval_df['Task'].isin(selected_tasks))]
results_column = []
for row in assessed_df.itertuples():
# Apply task based classifier and safe in list
temp_image = Image.open(st.session_state['uploaded_img'][row.Picture_index])
temp_result = fun_dict[row.Task](
temp_image,row.Representations,row.Task_specific_label)
results_column.append(temp_result)
assessed_df['Score']=results_column
st.session_state['auto_eval_df']=assessed_df[['File_name','Prompt_no','Picture_index','Task','Score']]
st.write('Completed assessment. Access results on the summary page.')
else:
st.write('Upload files on dashboard starting page to start automated assessment.')
|