💬

Python 画像から文字認識(Tesseract)

2022/10/12に公開

インストール

今回は、Tesseractを使って文字認識行います。
brewを使ってインストールするので、事前に入れておいてください。
関連:M2 MacにHomebrewをインストール

Tesseractを使うにあたって、ラッパー(pytesseract)を使いたいと思います。
下記のコマンドでそれぞれインストールします。

brew install tesseract
pip3 install pytesseract

日本語対応

標準では日本語に対応していないため、必要なファイルをダウンロードします。ファイルは「jpn.traineddata」と「jpn_vert.traineddata」の2つです。後者は縦書きに対応するものです。

GitHubからダウンロードするよりもUbuntからダウンロードした方が精度が良いそうなので下記のサイトからダウンロードします。
https://packages.ubuntu.com/focal/tesseract-ocr-jpn

クリックしてもダウンロードが始まらなかったので、右クリック>リンク先を別名で保存...をクリックして保存しました。

ファイルの移動

解凍したフォルダから先ほどの2つのファイルを探して、share/tessdata/に移動します。

人によってtesseractのバージョンやディレクトリが変わる可能性があるのでbrew list tesseractを実行し、最後がshare/tessdata/のディレクトリを探してください。

$ brew list tesseract
/opt/homebrew/Cellar/tesseract/5.2.0/bin/tesseract
/opt/homebrew/Cellar/tesseract/5.2.0/include/tesseract/
/opt/homebrew/Cellar/tesseract/5.2.0/lib/libtesseract.5.dylib
/opt/homebrew/Cellar/tesseract/5.2.0/lib/pkgconfig/tesseract.pc
/opt/homebrew/Cellar/tesseract/5.2.0/lib/
/opt/homebrew/Cellar/tesseract/5.2.0/share/tessdata/  ← これ

ターミナルまたはFinderで「jpn.traineddata」と「jpn_vert.traineddata」のファイルを今見つけたディレクトリに移動します。

# ターミナルの場合
# 私の環境だと
mv ~/Downloads/tesseract-lang-4.00~git30-7274cfa/jpn* /opt/homebrew/Cellar/tesseract/5.2.0/share/tessdata/
Finderでやりたい方

Finderでやりたい方は、ターミナルでopenコマンドを使い、share/tessdata/を開くと便利です。(普通に探すと、optのファイルが隠しファイルだったりと面倒だと思われます。)

# Finderの場合
# 私の環境だと
open /opt/homebrew/Cellar/tesseract/5.2.0/share/tessdata/



コード

test_ocr.py
import pytesseract

# 認識させたい画像ファイル
img_name = "sample.png"

# 文字認識
# lang="jpn" → 日本語対応
# lang="jpn+jpn_vert" → 日本語+縦書き対応
str = pytesseract.image_to_string(img_name, lang="jpn+jpn_vert")
print("認識文字:\n%s" % str)

次回は、画像からの文字認識の方法がわかったので、画面上の指定範囲から文字を認識し、クリップボードに取り込むプログラムを作りたいと思います。


参考

Discussion