dots-ocr / app.py
Carlos Lorenzo Santos
Initial dots.ocr deployment for HuggingFace Space
7c6f837
Raw
History Blame Contribute Delete
1.29 kB
import gradio as gr
from transformers import AutoModel, AutoTokenizer
from PIL import Image
import torch
# Load model and tokenizer
model_name = "rednote-hilab/dots.ocr"
print("Loading dots.ocr model...")
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
trust_remote_code=True,
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
device_map="auto"
)
print("Model loaded!")
def process_image(image):
"""Process image with dots.ocr"""
if image is None:
return "Please upload an image"
try:
# Run OCR
result = model.generate(image, tokenizer)
return result
except Exception as e:
return f"Error: {str(e)}"
# Create Gradio interface
iface = gr.Interface(
fn=process_image,
inputs=gr.Image(type="pil", label="Upload Image"),
outputs=gr.Textbox(label="OCR Result", lines=10),
title="dots.ocr - Multilingual OCR",
description="Upload an image to extract text using dots.ocr. Supports 100+ languages, tables, formulas, and complex layouts.",
examples=[
["examples/example1.jpg"],
["examples/example2.png"]
],
theme="soft"
)
if __name__ == "__main__":
iface.launch()