|
""" |
|
Donut |
|
Copyright (c) 2022-present NAVER Corp. |
|
MIT License |
|
|
|
https://github.com/clovaai/donut |
|
""" |
|
import gradio as gr |
|
import torch |
|
from PIL import Image |
|
|
|
from donut import DonutModel |
|
|
|
def demo_process(input_img): |
|
global pretrained_model, task_prompt, task_name |
|
input_img = Image.fromarray(input_img) |
|
output = pretrained_model.inference(image=input_img, prompt=task_prompt)["predictions"][0] |
|
return output |
|
|
|
task_prompt = f"<s_cord-v2>" |
|
|
|
image = Image.open("./sample_image_cord_test_receipt_00004.jpg") |
|
image.save("cord_sample_receipt.jpg") |
|
|
|
pretrained_model = DonutModel.from_pretrained("naver-clova-ix/donut-base-finetuned-cord-v2") |
|
pretrained_model.encoder.to(torch.bfloat16) |
|
pretrained_model.eval() |
|
|
|
demo = gr.Interface( |
|
fn=demo_process, |
|
inputs=gr.inputs.Image(type="pil"), |
|
outputs="json", |
|
title=f"Donut 🍩 demonstration for `cord-v2` task", |
|
examples=[["cord_sample_receipt.jpg"]], |
|
) |
|
demo.launch(debug=True) |
|
|