import gradio as gr from transformers import TrOCRProcessor, VisionEncoderDecoderModel from PIL import Image import torch device = "cuda" if torch.cuda.is_available() else "cpu" # Load the model processor = TrOCRProcessor.from_pretrained("microsoft/trocr-large-handwritten") model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-large-handwritten").to(device) def ocr_infer(image): pixel_values = processor(images=image, return_tensors="pt").pixel_values.to(device) generated_ids = model.generate(pixel_values) generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0] return generated_text # Gradio UI iface = gr.Interface( fn=ocr_infer, inputs=gr.Image(type="pil"), outputs="text", title="Image to Text (OCR) ver7", description="Upload a handwritten or printed image to extract text using TrOCR." ) iface.launch(share=True)