Spaces:
Runtime error
Runtime error
import os | |
from typing import Dict, List | |
import uuid | |
import csv | |
import numpy as np | |
from PIL import Image | |
def write_row(filepath:str, row: Dict): | |
new_file = not os.path.isfile(filepath) | |
with open(filepath, mode="a", newline="") as file: | |
fieldnames = row.keys() | |
writer = csv.DictWriter(file, fieldnames=fieldnames) | |
if new_file: | |
writer.writeheader() # Write header if new file | |
writer.writerow(row) # Write the row | |
class Feedback(): | |
def __init__(self, | |
image_dir = './data/image', | |
mask_dir = './data/mask', | |
inference_csv = './data/inference.csv', | |
feedback_csv = './data/feedback.csv', | |
): | |
os.makedirs(image_dir, exist_ok=True) | |
os.makedirs(mask_dir, exist_ok=True) | |
self.image_dir = image_dir | |
self.mask_dir = mask_dir | |
self.inference_csv = inference_csv | |
self.feedback_csv = feedback_csv | |
def save_inference(self, pt_coords:List, pt_labels:List, image: Image.Image, mask: np.ndarray): | |
self.inference_id = uuid.uuid4() | |
image_path = os.path.join(self.image_dir,f'{self.inference_id}.png') | |
mask_path = os.path.join(self.mask_dir, f'{self.inference_id}.npy') | |
image.save(image_path) | |
np.save(mask_path, mask) | |
write_row( | |
filepath=self.inference_csv, | |
row = { | |
"inference_id": self.inference_id, | |
"image": image_path, | |
"mask": mask_path, | |
"pt_coords": str(pt_coords), | |
"pt_labels": str(pt_labels), | |
} | |
) | |
def save_feedback(self, cutout_idx:int=None, feedback_str:str=None, like:int=None): | |
write_row( | |
filepath=self.feedback_csv, | |
row = { | |
"inference_id": self.inference_id, | |
"cutout_idx": cutout_idx, | |
"feedback_str": feedback_str, | |
"like": like, | |
} | |
) | |