結果
わずか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