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

Tesseract OCR 導入

https://github.com/tesseract-ocr/tesseract

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 導入

https://github.com/openpaperwork/pyocr

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

インストールする

$ sudo pip3 install pyocr

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

サンプル実行

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

https://github.com/openpaperwork/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で使ってみた

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.