|
import gradio as gr |
|
from transformers import TrOCRProcessor, VisionEncoderDecoderModel |
|
from PIL import Image, ImageOps |
|
|
|
|
|
processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-stage1") |
|
model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-stage1") |
|
|
|
|
|
def ocr_image(image, invert_image): |
|
|
|
if invert_image: |
|
image = ImageOps.mirror(image) |
|
|
|
|
|
pixel_values = processor(images=image, return_tensors="pt").pixel_values |
|
generated_ids = model.generate(pixel_values) |
|
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0] |
|
return generated_text |
|
|
|
|
|
interface = gr.Interface( |
|
fn=ocr_image, |
|
inputs=[ |
|
gr.Image(type="pil"), |
|
gr.Checkbox(label="画像を反転") |
|
], |
|
outputs="text", |
|
live=False |
|
) |
|
|
|
|
|
interface.launch() |
|
|