はじめに
EasyOCRは名前の通り簡単にOCR機能を実装できるパッケージです。OCRとはざっくり言うと画像から文字を取り出すことです。
StreamlitはGUI操作可能なアプリケーションを非常に簡単に作成できるパッケージです。パッケージではなくフレームワークと表現されることも多いです。
この二つを使って簡単なOCRアプリを作成しました。
スクリプトはたったの20行です。
環境構築も非常に簡単でPython環境に「easyocr」と「streamlit」をpipでインストールするだけです。
pip install streamlit pip install easyocr
完成したアプリ
ファイルを選択するだけで結果を返してくれます。日本語に対応してくれています。しかし残念ながら結果は完璧ではありませんでした。日本語は難しいのでしょう。
Pythonスクリプト
import numpy as np from PIL import Image, ImageDraw import easyocr import streamlit as st reader = easyocr.Reader(['ja','en']) selected_image = st.file_uploader('upload image', type='jpg') original_image = st.empty() result_image = st.empty() if (selected_image != None): original_image.image(selected_image) pil = Image.open(selected_image) result = reader.readtext(np.array(pil)) draw = ImageDraw.Draw(pil) for each_result in result: draw.rectangle(tuple(each_result[0][0] + each_result[0][2]), outline=(0, 0, 255), width=3) st.write(each_result[1]) result_image.image(pil)
上記スクリプトを適当な名前で保存してStreamlitで実行して下さい。
例えば「ocr.py」と名前を付けたらこのようになります。
streamlit run ocr.py
動作環境
Windows 10 no GPU Python 3.8.6
easyocr==1.2.5.1 streamlit==0.79.0
2021年7月22日追記
easyocrを1.3にアップデートした新しい記事を書きました。touch-sp.hatenablog.com