Spaces:
Runtime error
Runtime error
| from transformers import LayoutLMForTokenClassification, LayoutLMTokenizer | |
| import gradio as gr | |
| import cv2 | |
| import easyocr | |
| # Initialize EasyOCR reader for text extraction | |
| reader = easyocr.Reader(['en']) | |
| # Load pre-trained LayoutLM model and tokenizer | |
| model = LayoutLMForTokenClassification.from_pretrained("microsoft/layoutlm-large-uncased") | |
| tokenizer = LayoutLMTokenizer.from_pretrained("microsoft/layoutlm-large-uncased") | |
| # Function to extract text using EasyOCR and process with LayoutLM | |
| def extract_patient_info(image): | |
| # Convert the uploaded image to RGB (required by LayoutLM) | |
| image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) | |
| # Use EasyOCR to extract text from the image | |
| result = reader.readtext(image_rgb) | |
| extracted_text = " ".join([detection[1] for detection in result]) | |
| # Tokenize the extracted text with LayoutLM | |
| inputs = tokenizer(extracted_text, return_tensors="pt") | |
| outputs = model(**inputs) | |
| # For this example, we return the extracted text (you can further process LayoutLM's output) | |
| return extracted_text | |
| # Gradio interface setup | |
| with gr.Blocks() as demo: | |
| gr.Markdown("### OCR Using LayoutLM Pretrained Model with EasyOCR") | |
| # Image upload component | |
| image_input = gr.Image(type="numpy", label="Upload Image") | |
| # Output textboxes to display the extracted information | |
| output_text = gr.Textbox(label="Extracted Text") | |
| # Button to trigger image processing and text extraction | |
| process_button = gr.Button("Process Image") | |
| # When the button is clicked, process the image and show results in textboxes | |
| process_button.click(fn=extract_patient_info, inputs=image_input, outputs=output_text) | |
| # Launch the Gradio app | |
| if __name__ == "__main__": | |
| demo.launch() | |