Gradio と EasyOCR を使ってOCRアプリを作成する

結果

わずか15行のスクリプトでOCRアプリが作成できました。




同じことを以前 Streamlit を使ってやっています。
touch-sp.hatenablog.com
その時は16行でした。

1行だけ短くなりました(笑)。

Pythonスクリプト

from PIL import ImageDraw
import easyocr
import numpy as np
import gradio as gr

reader = easyocr.Reader(['ja','en'])

def ocr(img):
    result = reader.readtext(np.array(img))
    draw = ImageDraw.Draw(img)
    result_text = []
    for each_result in result:
        draw.rectangle(tuple(each_result[0][0] + each_result[0][2]), outline=(0, 0, 255), width=3)
        result_text.append(each_result[1])
    return [img, "\n".join(result_text)]
demo = gr.Interface(fn=ocr, inputs=gr.Image(type="pil"), outputs=["image", "text"])

demo.launch()

動作環境

Windows 11
CUDA 11.8
Python 3.11.6
torch==2.1.1+cu118
easyocr==1.7.1
gradio==4.7.1





このエントリーをはてなブックマークに追加