LoginSignup
0
4

More than 1 year has passed since last update.

pythonを利用して画像から文字認識をする。

Last updated at Posted at 2022-05-13

目的

python + Tesseractによる画像処理をOCRで試し、使い勝手を調査します。

google ドライブのOCRを使用した場合、画像内の文字認識がかなりの高精度で判断でき、便利なことが分かりました。
ただ、不便なこともいくつかありました。
・複数の画像の処理をする場合、手作業に時間がかる。
・文字認識までに時間がかかる。
・余計なスペースが入る。

OCRとは

OCRは、Optical Character Reader の略で、画像データの文字部分を認識し、デジタルの文字データに変換する光学文字認識機能のことです。例えば、jpgやpngなどの画像データの拡張子ファイルから文字部分を取り出して、書かれている文字をテキストデータにできるようなイメージです。
クイックノート P1.png

環境

Python version:3.9.7
OS: windows 10.0
Anaconda:conda 4.11.0

インストール

TesseractとPyOCRをインストールします。

Tesseract

  1. Tesseractをここからダウンロードします。
    インストール時の注意点は、「Choose Components」画面が表示まで進めたとき、2つ作業があります。
    ①「Additional script data(download)」を展開し、「Japanese script」と「Japanese vertical script」にチェックを入れる。
    ②「Additional language data(download)」を展開し、「Japanese」と「Japanese(Vertical)」にチェックを入れます。

pyocr

pyocrをインストールする。

pip install pyocr

文字認識の確認

適当に英語が記載されているファイルを用い、文字認識を確認します。
私は、画像ファイルをtest.pngとして試しています。

test.py
from PIL import Image
import pyocr

# tesseractのpath 
pyocr.tesseract.TESSERACT_CMD = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'

tools = pyocr.get_available_tools()
tool = tools[0]

# 画像の文字を読み込む
txt = tool.image_to_string(Image.open('test.png'), lang="eng")
print(txt) # 「Test Message」が出力される

試した画像ファイルでは、英語の文字認識はうまくできました。

日本語での文字認識

デフォルトは、英語に設定されています。日本語にするには上記ファイルのengからjpnに変更すると行えます。
実行してみましたが、文字認識の結果がいまいちだったので、機械学習データの変更をしてみました。

ファイルの配置先は、C:\Program Files\Tesseract-OCR\tessdataに入れます。

【tessdata_best/jpn.traineddata】
https://github.com/tesseract-ocr/tessdata_best/blob/master/jpn.traineddata

【tessdata_best/jpn_vert.traineddata】
https://github.com/tesseract-ocr/tessdata_best/blob/master/jpn_vert.traineddata

結果は、こんな感じでうまく文字を認識できませんでした。もう少し、工夫する必要があるようです。
ャ.PNG

結果

現時点では、google ドライブのOCRを使用し、文字認識をした方が精度高く認識できそうです。
簡単に文字認識できる方法ないかな。。。

追記 Vision APIが使えそうかも。。

リンク

今回、下記リンクを参考にさせていただきました。
PythonとOCRエンジンで画像から文字を認識する
Python+Tesseractによる画像処理でOCRを試してみた!

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4