この記事では、PyocrとTessractOCRで画像から文字を抽出する方法を解説します。

悩んでいる人
- 画像から文字を抽出したい
- とても面倒なドキュメントの単純処理の作業を自動化したい
- プログミラング初心者でもできる業務効率をあげる便利なPythonの使い方は?
こんな悩みを持っている方におすすめの記事です。
この記事のゴール
- 画像から文字を抽出方法を習得できる
インストール
Pyocr
以下を入力することでインストール可能です。
pip install pyocr
TessractOCR
Windowsの場合
以下のURLよりダウンロード可能です。
Home
Tesseract Open Source OCR Engine (main repository) - UB-Mannheim/tesseract
ご自身のパソコンに合わせてインストールください。

その際、以下二点に✔️をしてください。
- Japanese script
- Japanese vertical script

また、以下二点にも✔️を入れてください。
- Japanese script
- Japanese vertical

これによって、日本語に対応することができます。
Macの場合
以下のコードでインストール可能です。
brew install tesseract
また、日本語を追加するためには、以下のコードで、tessdataに以下をgitより追加します。
wget https://github.com/tesseract-ocr/tessdata/raw/4.00/jpn.traineddata
mv jpn.traineddata /usr/local/Cellar/tesseract/4.1.0/share/tessdata/
mv jpn_vert.traineddata /usr/local/Cellar/tesseract/4.1.0/share/tessdata/
コード
以下の画像をカレントディレクトリに保存(右クリックから保存)し、以下のコードを実行してみてください。

from PIL import Image
import sys
import pyocr
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("OCRツールが見つかりませんでした")
sys.exit(1)
tool = tools[0]
print("use tool :", tool.get_name())
langs = tool.get_available_languages()
print(langs)
txt = tool.image_to_string(Image.open('img.png'), lang="jpn")
txt = txt.replace(' ', '')
print(txt)
実行結果が、以下のように表示されれば成功です。
日本語
OCR
エラーが発生する場合
解説
- pyocrより、tesseractを呼び出し、tesseractの機能で画像から文字(テキストデータ)を抽出
Pyocrとは?
- PyOCRはPython用のOCRのラッパーツール
PyOCRはPython用のOCRのラッパーツールです。
ラッパーツールとは、目的のために必要な機能操作をまとめたものを指します。
以下三つのOCRツールをサポートしています。
- Tesseract
- Libtesseract
- Cuneiform
Tesseractとは?
HP(ヒューレット・パッカード)が開発したオープンソースOCRエンジンです。
そのあと、Googleが引き取り公開にいたったという経緯があります。
まとめ
PyocrとTessractOCRで画像から文字を抽出する方法を解説しました。
OCRによって、画像データから文字データに変換することを実現できます。
ぜひ業務効率化の方法をより詳細に知りたい方は、以下の記事も参考にしてみてください。
コメント