Python 画像から文字認識(Tesseract)
インストール
今回は、Tesseractを使って文字認識行います。
brewを使ってインストールするので、事前に入れておいてください。
関連:M2 MacにHomebrewをインストール
Tesseractを使うにあたって、ラッパー(pytesseract)を使いたいと思います。
下記のコマンドでそれぞれインストールします。
brew install tesseract
pip3 install pytesseract
日本語対応
標準では日本語に対応していないため、必要なファイルをダウンロードします。ファイルは「jpn.traineddata」と「jpn_vert.traineddata」の2つです。後者は縦書きに対応するものです。
GitHubからダウンロードするよりもUbuntからダウンロードした方が精度が良いそうなので下記のサイトからダウンロードします。
クリックしてもダウンロードが始まらなかったので、右クリック>リンク先を別名で保存...をクリックして保存しました。
ファイルの移動
解凍したフォルダから先ほどの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/
コード
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