VLMVibeEval / data_utils.py
sergiopaniego's picture
Use real results dataset (#1)
49eb64d verified
raw
history blame
1.66 kB
from PIL import Image, UnidentifiedImageError
from utils import *
def get_evaluation_data(ds):
evaluation_data = []
for i in range(len(ds)):
try:
img = ds[i]["image"]
thumbnail_img = img.copy()
thumbnail_img.thumbnail((256, 256))
evaluation_data.append({
"id": ds[i]["ex_id"],
"image_thumbnail": image_to_base64(thumbnail_img),
"image_full": image_to_base64(img),
"image_full_url": "https://huggingface.co/", # Dummy
"prompt": ds[i]["prompt"],
"category": ds[i]["category"]
})
except (UnidentifiedImageError, OSError, ValueError): # To handle .heic images -> can be removed when dataset is fixed
img = Image.new("RGB", (256, 256), color="white")
evaluation_data.append({
"id": i,
"image_thumbnail": image_to_base64(img),
"image_full": image_to_base64(img),
"image_full_url": "https://huggingface.co/", # Dummy
"prompt": "Dummy prompt",
"category": "Dummy category"
})
return evaluation_data
def get_model_names(ds_results):
models = list(set(ds_results['model_id']))
return models
def get_responses(ds_results):
responses = {}
for model in set(ds_results['model_id']):
model_responses = [
row["model_response"]
for row in ds_results
if row["model_id"] == model
]
responses[model] = {i: resp for i, resp in enumerate(model_responses)}
return responses