導入
Tesseract は最も広く使われるオープンソースの OCR エンジンです。Python からは pytesseract という薄いラッパー経由で呼びます。まず、いちばん基本の「画像 → 文字列」を見ましょう。
説明
手元の環境では、次の2つを入れます。
# 1) Tesseract 本体(OSごとに導入方法が違う)
# macOS: brew install tesseract
# Ubuntu: sudo apt install tesseract-ocr
# Windows: 公式インストーラを使う
# 2) Python ラッパー
pip install pytesseract pillow
基本の読み取りコードはこれだけです。
import pytesseract
from PIL import Image
# 読み取りたい画像を開く(前章までの前処理済み画像が理想)
img = Image.open("sample.png")
# 画像から文字列を取り出す
text = pytesseract.image_to_string(img)
print(text)
pytesseract.image_to_string(画像)… 画像に写った文字を、まとめて1つの文字列で返します。- 渡す画像は 前処理済み(グレースケール → 二値化 → ノイズ除去)だと精度が上がります。第2〜4章の処理はこのためにあります。
- Tesseract 本体が見つからないと
TesseractNotFoundErrorが出ます。その場合は本体のインストールと、必要ならpytesseract.pytesseract.tesseract_cmdにパスを設定します。
前処理と組み合わせた実務の型は、次のようになります。
import cv2, pytesseract
gray = cv2.imread("sample.png", cv2.IMREAD_GRAYSCALE)
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
text = pytesseract.image_to_string(binary)
print(text)
演習
このレッスンは読み物です。「Tesseract 本体」と「pytesseract」は別物である、という点を押さえましょう。pytesseract だけを pip install してもエンジン本体が無ければ動かない——理由を説明できるようにしておいてください。