Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import AutoImageProcessor, AutoModelForObjectDetection | |
import torch | |
# Load the processor and model for table structure recognition | |
processor = AutoImageProcessor.from_pretrained("microsoft/table-transformer-structure-recognition") | |
model = AutoModelForObjectDetection.from_pretrained("microsoft/table-transformer-structure-recognition") | |
# Define the inference function | |
def predict(image): | |
# Preprocess the input image | |
inputs = processor(images=image, return_tensors="pt") | |
# Perform object detection using the model | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
# Extract bounding boxes and class labels | |
predicted_boxes = outputs.pred_boxes[0].cpu().numpy() # First image | |
predicted_classes = outputs.logits.argmax(-1).cpu().numpy() # Class predictions | |
# Filter predictions to only include columns | |
column_class_id = 1 # Assuming class ID 1 corresponds to columns, adjust if needed | |
column_boxes = predicted_boxes[predicted_classes == column_class_id] | |
# Return the bounding boxes for columns | |
return {"boxes": column_boxes.tolist(), "classes": ["column"] * len(column_boxes)} | |
# Set up the Gradio interface | |
interface = gr.Interface( | |
fn=predict, # The function that gets called when an image is uploaded | |
inputs=gr.Image(type="pil"), # Image input (as PIL image) | |
outputs="json", # Outputting a JSON with the boxes and classes | |
) | |
# Launch the Gradio app | |
interface.launch() | |