LoginSignup
1
4

More than 3 years have passed since last update.

pyOCRを用いて、カード中の説明文をテキスト化する

Last updated at Posted at 2020-05-04

目的

pyOCRを用いて、カード中の説明文をテキスト化する際の備忘録です

準備

  • pyOCR、Tesseract、jpn.traineddataをインストール

Mac環境でpyOCRで画像データをテキスト化する
PyOCR インストール

$ sudo pip install pyocr

OCRエンジン部である Tesseract をインストール

$ brew install tesseract
$ ls /usr/local/Cellar/tesseract/4.1.0/share/tessdata/

jpn.traineddataを取得

$ wget https://github.com/tesseract-ocr/tessdata/raw/4.00/jpn.traineddata
$ mv jpn.traineddata /usr/local/Cellar/tesseract/4.1.0/share/tessdata/
  • カード

(例)カードは以下を使用させて頂きます。
引用:遊戯王デュエルリンクス攻略
card1.png

コード

sample.py
from PIL import Image
import sys
sys.path.append('/path/to/dir')

import pyocr
import pyocr.builders

tools = pyocr.get_available_tools()
if len(tools) == 0:
    print("No OCR tool found")
    sys.exit(1)
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))

txt = tool.image_to_string(
    Image.open('card.png'),
    lang='jpn',
    builder=pyocr.builders.TextBuilder()
)
print(txt)

テスト

$ python sample.py
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, jpn_vert, osd, snum
士 い 攻 繁 カ を 誇 る 侵 設 の E ラ ゴ ン 。 ど ん な 祖 子 で
も 物 碑 す る 、 そ の 碇 壊 カ は 計 知 れ な い 。

備考

どうすればより高い精度で検出できるのだろう。

CodingError対策

問題:
 OCRの結果が出力されない
対策:
 画像中の文字が小さくて解析できていない可能性があります。
 画像サイズを大きくすると解析できました。
 (もしくは、他に必要な前処理があれば実行すると良い。例:背景ノイズ除去)

参考

遊戯王デュエルリンクス攻略
Mac環境でpyOCRで画像データをテキスト化する
PythonでOCRを実行する方法

1
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
1
4