104
138

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PyOCR】画像から日本語の文字データを抽出する

Last updated at Posted at 2018-04-05

Tesseract OCR 導入

OCR = 光学文字認識 (Optical Character Recognition)
Tesseract OCRは、Google製のOCRエンジン

各環境への導入の仕方(本記事はMac環境)
https://github.com/tesseract-ocr/tesseract/wiki

日本語の訓練データの取得

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
こちらからtesseract-ocr-3.02.jpn.tar.gzを取得する

解凍するとjpn.traineddataが得られるので、
/usr/local/Cellar/tesseract/3.05.01/share/tessdataへ移動
ここにはeng.traineddataなど、各言語の訓練データが格納されている

PyOCR 導入

現在 GitHub のリポジトリはアーカイブされており、GitLab に移行した。

PyOCRは、PythonでOCRを使えるようにするライブラリ

インストールする

$ sudo pip3 install pyocr

anacondaの場合
https://anaconda.org/auto/pyocr

サンプル実行

画像から文字データを抽出する

image2text.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('test.png'),
    lang='jpn',
    builder=pyocr.builders.TextBuilder()
)
print(txt)

test.png

↑こちらのヤフーニュースのスクショを解析すると...

動画 鵬 ニユ一ス ー 経済

エン夕メ 〉 スポ一$



。時ー9分更新
・ 日報 問題文書と思わず未報告楓

・西部さん自殺ほう助 2人逮捕塵
・AT小型二輪の教習 最短2日に
・明石大橋20年 震災無傷の技術趣剛
・女性市長 土俵ぁいさっ断られ趣
・cc社 買収受け入れの方針】
・栄氏が伊調にパヮハラ 認定〔
・鬼奴あきれ顔 借金激減を訂正趣剛

もっと見る トピックス一覧

まあ、読めなくもないけど人間が手動で校正する必要はある。
手書きや飾り文字は壊滅。
デザイン性のないただ文字が羅列しているだけの画像には有効。

参考
OCRツール「Tesseract OCR」をインストールしてPythonで使う
tesseract-ocrをMacで使ってみた

104
138
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
104
138

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?